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)

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
| Produttore | Broadcom |
|---|---|
| Numero di parte | APDS-9960 |
| Tensione logica/IO | 2,7 - 3,6 V |
| Tensione di alimentazione | 3.3 V |
| Corrente d'uscita (per canale) | 1 mA |
| Corrente di picco (per canale) | 10 mA |
| Linee guida sulla frequenza PWM | 100 Hz |
| Soglie logiche di ingresso | 0.3 x VDD(basso), 0.7 x VDD(alto) |
| Caduta di tensione / RDS(on)/ saturazione | 0.5 V massimo |
| Limiti termici | da -40 a +85 °C |
| Pacchetto | LGA a 6 pin |
| Note / varianti | Supporta 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

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.

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
Risorse e riferimenti
Nessuna risorsa ancora.