APDS-9960 Gestensensor mit Arduino

APDS-9960 Gestensensor mit Arduino

Der Gestensensor APDS-9960 ermöglicht die Erkennung von Handgesten wie Wischbewegungen und die Näherungserkennung. In diesem Tutorial zeigen wir, wie man den APDS-9960 an einen Arduino anschließt und ihn so programmiert, dass er Gesten erkennt. Das Ergebnis ist ein einfaches Setup, das Bewegungen erfassen und diese über den seriellen Monitor melden kann. Diese Anleitung hilft Ihnen, die Verkabelung und den Code zu verstehen, die nötig sind, um mit dem Gestensensor zu beginnen. (im Video bei 00:30)

APDS-9960 gesture sensor module -1

Hardware erklärt

Der APDS-9960 ist ein vielseitiger Sensor, der RGB-Farberkennung, Umgebungslichtmessung, Näherungserkennung und Gestenerkennung kombiniert. Er kommuniziert mit dem Arduino über I2C, was eine einfache Integration bei minimaler Verkabelung ermöglicht. Der Sensor arbeitet nur mit 3.3V, daher ist es wichtig, die korrekten Spannungspegel sicherzustellen, um eine Beschädigung des Geräts zu vermeiden. In diesem Aufbau verwenden wir den Arduino, um Gestendaten auszulesen. Der Sensor gibt Gesteninformationen über Interrupts aus, wodurch der Arduino schnell auf Handbewegungen reagieren kann. Die Integration des APDS-9960 mit dem Arduino eröffnet viele Möglichkeiten für interaktive Projekte, einschließlich gestensteuerter Geräte.

Details zum Datenblatt

HerstellerBroadcom
TeilenummerAPDS-9960
Logik-/I/O-Spannung2.7 - 3.6 V
Versorgungsspannung3.3 V
Ausgangsstrom (pro Kanal)1 mA
Spitzenstrom (pro Kanal)10 mA
Empfehlungen zur PWM-Frequenz100 Hz
Schwellenwerte der Eingangslogik0.3 x VDD(niedrig), 0.7 x VDD(hoch)
Spannungsabfall / RDS(on)/ Sättigung0.5 V max
Thermische Grenzwerte-40 bis +85 °C
Paket6-poliges LGA
Notizen / VariantenUnterstützt I2C-Kommunikation

  • Stellen Sie sicher, dass die Versorgungsspannung 3.6 V nicht überschreitet, um Schäden zu vermeiden.
  • Verwenden Sie Pull-up-Widerstände an den I2C-Leitungen für eine zuverlässige Kommunikation.
  • Halten Sie den Sensor von direktem Sonnenlicht fern, um genaue Messwerte zu erhalten.
  • Stellen Sie sicher, dass der Sensor im Code korrekt initialisiert wird.
  • Überprüfen Sie die Kabelverbindungen, um schwebende Eingänge zu vermeiden.

Verdrahtungsanleitung

Arduino wiring for APDS9960 Gesture sensor
Arduino wiring for APDS9960 Gesture sensor

Beginnen Sie damit, die Stromversorgung anzuschließen. Verwenden Sie ein rotes Kabel, um den VCC-Pin des APDS-9960 mit dem 3.3V-Pin des Arduino zu verbinden. Als Nächstes verbinden Sie den GND-Pin des Sensors mit einem GND-Pin des Arduino mithilfe eines schwarzen Kabels. Für die I2C-Kommunikation verbinden Sie den SDA-Pin des APDS-9960 mit dem A4-Pin des Arduino. Ebenso verbinden Sie den SCL-Pin mit dem A5-Pin des Arduino. Schließlich verbinden Sie den INT-Pin des Sensors mit Pin 2 am Arduino. Dadurch kann der Arduino auf vom Sensor ausgelöste Interrupts reagieren.

Codebeispiele & Schritt-für-Schritt-Anleitung

Der bereitgestellte Code initialisiert den APDS-9960-Sensor und richtet das Arduino so ein, dass Gesten erkannt werden. Hier ist ein kurzer Auszug der Setup-Funktion:

void setup() {
  pinMode(APDS9960_INT, INPUT);
  Serial.begin(9600);
  attachInterrupt(0, interruptRoutine, FALLING);
  if ( apds.init() ) {
    Serial.println(F("APDS-9960 initialization complete"));
  }
}

In diesem Ausschnitt initialisieren wir den seriellen Monitor und setzen den Interrupt-Pin. Der Sensor wird initialisiert und eine Bestätigungsmeldung auf der Konsole ausgegeben. Als Nächstes prüfen wir in der loop()-Funktion auf Gesten:

void loop() {
  if( isr_flag == 1 ) {
    detachInterrupt(0);
    handleGesture();
    isr_flag = 0;
    attachInterrupt(0, interruptRoutine, FALLING);
  }
}

Hier überprüft die Schleife kontinuierlich auf Gesten. Wenn eine Geste erkannt wird, wird der Interrupt deaktiviert und die Funktion `handleGesture` aufgerufen, um die Geste zu verarbeiten. Schließlich verarbeitet die Funktion `handleGesture` die erkannten Gesten:

void handleGesture() {
  if ( apds.isGestureAvailable() ) {
    switch ( apds.readGesture() ) {
      case DIR_UP:
        Serial.println("UP");
        break;
      case DIR_DOWN:
        Serial.println("DOWN");
        break;
      // Additional cases...
    }
  }
}

In dieser Funktion wird die Geste gelesen und entsprechend der erkannten Richtung die passende Aktion ausgeführt. Dies ermöglicht eine interaktive Steuerung anhand von Handbewegungen. Für ein vollständiges Verständnis des Codes beachten Sie bitte das vollständige Programm, das unterhalb des Artikels geladen ist.

APDS-9960 gesture sensor -3

Demonstration / Was Sie erwartet

Wenn die Einrichtung abgeschlossen ist, können Sie erwarten, dass der Arduino Gesten erkennt und die erkannte Richtung im seriellen Monitor anzeigt. Einfache Tests sind, die Hand vor dem Sensor nach oben, unten, links oder rechts zu bewegen. Wenn alles richtig verdrahtet ist, sollten Sie die entsprechende Ausgabe im seriellen Monitor sehen, die die Gestenerkennung bestätigt. Achten Sie auf schwebende Eingänge, da diese zu inkonsistenten Messwerten führen können (im Video bei 05:20).

Video-Zeitstempel

  • 00:00- Einführung
  • 01:15- Hardware-Übersicht
  • 03:00- Verdrahtungsanleitung
  • 04:30- Code-Durchgang
  • 06:15- Demonstration

Bilder

APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -1
APDS-9960 gesture sensor module -1
APDS-9960 gesture sensor -3
APDS-9960 gesture sensor -3
Arduino wiring for APDS9960 Gesture sensor
Arduino wiring for APDS9960 Gesture sensor
1-Code for an APDS-9960 gesture sensor for Arduino
Sprache: C++
2-Source code for controlling a servo with your hand
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Andere Dateien