Sensore di gesti APDS-9960 con Arduino

Sensore di gesti APDS-9960 con Arduino

Il sensore di gesti APDS-9960 permette di rilevare gesti della mano come scorrimenti e la prossimità. In questo tutorial dimostreremo come collegare l'APDS-9960 a un Arduino e programmarlo per riconoscere i gesti. Il risultato sarà una configurazione semplice in grado di rilevare i movimenti e segnalarli tramite il monitor seriale. Questa guida ti aiuterà a comprendere il cablaggio e il codice necessari per iniziare con il sensore di gesti. (nel video a 00:30)

APDS-9960 gesture sensor module -1

Hardware spiegato

L'APDS-9960 è un sensore versatile che combina il rilevamento del colore RGB, della luce ambientale, della prossimità e il rilevamento dei gesti. Comunica con Arduino tramite I2C, permettendo un'integrazione semplice con un cablaggio minimo. Il sensore funziona solo a 3.3V, quindi è essenziale garantire livelli di tensione adeguati per evitare di danneggiare il dispositivo. In questo progetto useremo Arduino per leggere i dati dei gesti. Il sensore fornisce le informazioni sui gesti tramite interruzioni, il che permette ad Arduino di rispondere prontamente ai movimenti della mano. L'integrazione dell'APDS-9960 con Arduino apre molte possibilità per progetti interattivi, inclusi dispositivi controllati tramite gesti.

Dettagli della scheda tecnica

ProduttoreBroadcom
Numero di parteAPDS-9960
Tensione logica/IO2,7 - 3,6 V
Tensione di alimentazione3.3 V
Corrente d'uscita (per canale)1 mA
Corrente di picco (per canale)10 mA
Linee guida sulla frequenza PWM100 Hz
Soglie logiche di ingresso0.3 x VDD(basso), 0.7 x VDD(alto)
Caduta di tensione / RDS(on)/ saturazione0.5 V massimo
Limiti termicida -40 a +85 °C
PacchettoLGA a 6 pin
Note / variantiSupporta la comunicazione I2C

  • Assicurarsi che la tensione di alimentazione non superi 3,6 V per evitare danni.
  • Usare resistori di pull-up sulle linee I2C per una comunicazione affidabile.
  • Tieni il sensore lontano dalla luce solare diretta per letture accurate.
  • Assicurati di inizializzare correttamente il sensore nel codice.
  • Controllare i collegamenti del cablaggio per evitare ingressi flottanti.

Istruzioni di cablaggio

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

Per collegare l'APDS-9960 all'Arduino, inizia collegando l'alimentazione. Usa un filo rosso per collegare il pin VCC dell'APDS-9960 al pin 3.3V dell'Arduino. Poi, collega il pin GND del sensore a un pin di massa dell'Arduino usando un filo nero. Ora, per la comunicazione I2C, collega il pin SDA dell'APDS-9960 al pin A4 dell'Arduino. Allo stesso modo, collega il pin SCL al pin A5 dell'Arduino. Infine, collega il pin INT del sensore al pin 2 dell'Arduino. Questo permetterà all'Arduino di rispondere alle interruzioni generate dal sensore.

Esempi di codice e guida passo-passo

Il codice fornito inizializza il sensore APDS-9960 e configura l'Arduino per leggere i gesti. Ecco un breve estratto della funzione setup:

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

In questo frammento, inizializziamo il monitor seriale e impostiamo il pin di interrupt. Il sensore viene inizializzato e un messaggio di conferma viene stampato sulla console. Successivamente, controlliamo i gesti nella funzione loop:

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

Qui, il ciclo controlla continuamente la presenza di gesti. Quando viene rilevato un gesto, l'interrupt viene disabilitato e la funzione `handleGesture` viene chiamata per elaborare il gesto. Infine, la funzione `handleGesture` elabora i gesti rilevati:

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 questa funzione il gesto viene letto e l'azione corrispondente viene eseguita in base alla direzione rilevata. Ciò consente il controllo interattivo basato sui movimenti della mano. Per una comprensione completa del codice, consultare il programma completo caricato sotto l'articolo.

APDS-9960 gesture sensor -3

Dimostrazione / Cosa aspettarsi

Quando la configurazione è completa, puoi aspettarti che l'Arduino rilevi i gesti e mostri la direzione rilevata sul monitor seriale. Test semplici includono muovere la mano verso l'alto, verso il basso, a sinistra o a destra davanti al sensore. Se tutto è collegato correttamente, dovresti vedere l'output corrispondente sul monitor seriale, confermando il riconoscimento del gesto. Fai attenzione agli ingressi flottanti, poiché possono causare letture incoerenti (nel video a 05:20).

Marcatori temporali del video

  • 00:00- Introduzione
  • 01:15- Panoramica dell'hardware
  • 03:00- Istruzioni di cablaggio
  • 04:30- Analisi guidata del codice
  • 06:15- Dimostrazione

Immagini

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
Lingua: C++
2-Source code for controlling a servo with your hand
Lingua: C++
Copia!

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

Altri file