So erkennen Sie Gesten mit Arduino und dem APDS-9960-Sensor

  • Der APDS-9960 erkennt Gesten, Nähe, Farbe und Umgebungslicht.
  • Die Kommunikation erfolgt über den I2C-Bus und der Betrieb erfolgt mit 3.3 V.
  • Die Verbindung und Programmierung auf Plattformen wie Arduino ist einfach.
  • Es gibt Adafruit-Bibliotheken, die die Integration und Nutzung erleichtern.

apds-9960

Der Sensor APDS-9960, ein kleines Juwel der Technik, ist eine erstaunliche Komponente, die Gesten- und Näherungserkennung sowie die Messung von Umgebungslicht und -farbe ermöglicht. Es wird in hochmodernen elektronischen Geräten wie dem Samsung Galaxy S5 verwendet und ist heute für jeden Elektronik-Enthusiasten zugänglich, der mit Plattformen wie Arduino arbeitet. Mit seiner Fähigkeit, Gesten in einem Bereich von 5 bis 20 cm zu erkennen und seiner einfachen Integration mit anderen Geräten ist es die ideale Wahl für alle, die Gestensteuerung in ihre Projekte integrieren möchten.

In diesem Artikel befassen wir uns eingehend mit der Funktionsweise dieses Sensors und dem Anschluss an ein Arduino. Dabei achten wir auf die vielfältigen Verwendungsmöglichkeiten und bieten Codebeispiele an, die es Ihnen ermöglichen, schnell damit zu arbeiten.

Was ist der APDS-9960-Sensor?

El APDS-9960 Es handelt sich um einen Sensor, der vier Hauptfunktionen vereint: Gestenerkennung, Nähe, Farbe und Umgebungslicht. Es handelt sich um ein Gerät, das seine Messwerte mithilfe des I2C-Kommunikationsprotokolls kommuniziert, was die Verwendung mit Mikrocontrollern wie z. B. erheblich erleichtert Arduino. Zu seinen Vorzügen zählt die Fähigkeit, Farbe und Umgebungslicht zu messen und Gesten berührungslos zu erkennen, indem es Bewegungen wie links, rechts, oben, unten, nah und fern erkennt.

Dieser Sensor funktioniert dank der Integration eines Infrarotstrahler und vier gerichtete Fotodioden, die es ermöglichen, die Bewegungsrichtung von Objekten in der Nähe zu erkennen und zu berechnen. Darüber hinaus ist es in der Lage, die Menge des Umgebungslichts zu messen und RGB-Farben zu erkennen.

Verbinden des APDS-9960-Sensors mit Arduino

apds9960

Zum Anschließen der APDS-9960 Mit Arduino müssen Sie lediglich die Kommunikation über den Bus herstellen I2C. Dieser Sensor arbeitet mit einer Spannung von 3.3 V, daher ist es wichtig, die richtigen Verbindungen herzustellen, um eine Beschädigung zu vermeiden, insbesondere wenn Sie mit einem arbeiten 5V Arduino. In diesem Fall empfiehlt sich die Verwendung von a Logikpegeladapter um die I2C-Busspannung zu senken.

Pins zum Verbinden:
  • GND an den GND-Pin von Arduino.
  • Vcc an den 3.3V-Pin von Arduino.
  • SDA an den SDA-Pin von Arduino.
  • SCL an den SCL-Pin von Arduino.

Wenn Ihr Arduino-Modell über 5 V verfügt, müssen natürlich zusätzliche Vorsichtsmaßnahmen getroffen werden, obwohl in einigen Fällen berichtet wurde, dass der Sensor ohne Beschädigung funktionieren könnte. Ganz sicher ist dies jedoch auf lange Sicht nicht.

Bibliotheken und Code für Arduino

Um den APDS-9960 mit Arduino zu verwenden, ist die Verwendung der von entwickelten Bibliothek eine der einfachsten Möglichkeiten Adafruit, was die Verwendung vereinfacht. Sie können es herunterladen unter GitHub und installieren Sie es direkt in der Arduino-Entwicklungsumgebung.

Einfaches Beispiel: Gesten über serielle Schnittstelle anzeigen

In diesem ersten Beispiel werden die erkannten Gesten über die serielle Schnittstelle gelesen und angezeigt. Führen Sie Ihre Hand einfach in einem Abstand zwischen 5 und 20 cm über den Sensor, damit die Gesten erkannt werden:

#include "Adafruit_APDS9960.h"

Adafruit_APDS9960 apds;

void setup() {
  Serial.begin(115200);
  if (!apds.begin()) {
    Serial.println("Error al inicializar el sensor, comprueba el cableado");
    while (1);
  }
  apds.enableGesture(true);
}

void loop() {
  uint8_t gesture = apds.readGesture();
  if (gesture == APDS9960_DOWN) Serial.println("Abajo");
  if (gesture == APDS9960_UP) Serial.println("Arriba");
  if (gesture == APDS9960_LEFT) Serial.println("Izquierda");
  if (gesture == APDS9960_RIGHT) Serial.println("Derecha");
}

Dieser Code ist nur ein Beispiel dafür, was Sie mit einem Gestensensor wie dem APDS-9960 tun können. Wenn Sie Ihre Hand über das Gerät führen, erkennt das Programm die Geste und zeigt das Ergebnis auf der Konsole des seriellen Ports an.

Erweitertes Beispiel: Blinkende LED basierend auf einer Geste

Für dieses zweite Beispiel kombinieren wir die erkannten Gesten mit dem LED im Board integriert. Abhängig von der erkannten Geste blinken wir die LED eine bestimmte Anzahl von Malen:

#include "Adafruit_APDS9960.h"

Adafruit_APDS9960 apds;

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  if (!apds.begin()) {
    Serial.println("Error al inicializar el sensor");
    while (1);
  }
  apds.enableGesture(true);
}

void loop() {
  uint8_t gesture = apds.readGesture();
  if (gesture == APDS9960_DOWN) blink(1);
  if (gesture == APDS9960_UP) blink(2);
  if (gesture == APDS9960_LEFT) blink(3);
  if (gesture == APDS9960_RIGHT) blink(4);
}

void blink(int times) {
  for (int i = 0; i < times; i++) {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(100);
    digitalWrite(LED_BUILTIN, LOW);
    delay(100);
  }
}

Häufige Probleme und Lösungen

Obwohl die APDS-9960 Es handelt sich um einen recht robusten Sensor, allerdings kann es in Umgebungen mit viel Licht oder Störungen zu Fehlmessungen kommen. Darüber hinaus kann es bei Verwendung unter nicht idealen Bedingungen dazu kommen, dass Bewegungen nicht erkannt werden oder sogar Fehlalarme generiert werden.

Ein weiterer zu beachtender Aspekt ist, dass dieser Sensor stark von der richtigen Umgebungsbeleuchtung abhängig ist und, obwohl er sehr empfindlich ist, bei Objekten unter Bedingungen wie glänzenden Oberflächen oder mit Handschuhen möglicherweise nicht gut funktioniert, da diese das Licht möglicherweise nicht richtig reflektieren . emittierte Infrarotlicht.

Das von diesem Gerät verwendete I2C-Protokoll ist recht einfach, dennoch ist es wichtig sicherzustellen, dass die Anschlüsse korrekt sind und keine Probleme mit der Spannung auftreten.

Der APDS-9960-Sensor ist ein hervorragendes Werkzeug für Projekte, die Gesten- und Näherungserkennung integrieren möchten. Es ist wirtschaftlich, einfach über I2C zu integrieren und verfügt über Bibliotheken, die seine Verwendung vereinfachen. Obwohl es in manchen Umgebungen Probleme bereiten kann, ist es aufgrund seiner einstellbaren Empfindlichkeit und der Möglichkeit, hinter Glas zu arbeiten, eine vielseitige Wahl. Mit den bereitgestellten Codebeispielen können Sie mit der Arbeit mit diesem Sensor beginnen und sein volles Potenzial in Ihren Projekten entdecken.


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.