CONTENUTO ►
Il sensore di riconoscimento dei gesti GY-9960 APDS Arduino è un modulo con un sensore incorporato che fornisce il rilevamento di luce e colore, il rilevamento della prossimità e il riconoscimento dei gesti senza contatto. Con questo modulo è possibile controllare robot, luci e altri dispositivi con un semplice gesto della mano. Vediamo come collegare il modulo di riconoscimento dei gesti SparkFun APDS 9960 a un microcontrollore Arduino.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- sensore di gesti APDS-9960
- cavi di collegamento
- libreria SparkFun_APDS9960.h
Sensore di gesti APDS-9960 datasheet, pinout
Il sensore di gesti GY-9960 APDS SparkFun è dotato di un sensore di luce ambientale integrato, di un filtro ultravioletto e infrarosso, di quattro fotodiodi separati (ricevitori che rilevano la radiazione IR riflessa da un oggetto) e di un LED IR (trasmettitore). Quando facciamo un gesto con la mano, il sensore riceve la radiazione infrarosso riflessa e il microcontrollore Arduino calcola la direzione del movimento della mano.
Caratteristiche del sensore APDS-9960 Arduino:
- Tensione di alimentazione: 3,3 V
- Indirizzo I2C: 0x39
- Rilevamento di prossimità
- Rilevamento dei gesti
- Rilevamento della luce ambientale e dei colori RGB
- Campo di funzionamento: da 10 a 20 cm (da 4 a 8 pollici)
PS – Questo ponticello collega l’alimentazione al modulo e al LED IR. Quando il ponticello è chiuso, l’alimentazione deve essere applicata solo al pin VCC del modulo. Quando il ponticello è aperto, è necessario applicare un’alimentazione separata al pin VL del sensore SparkFun da Arduino per accendere il LED IR. Per impostazione predefinita, questo ponticello è chiuso.
I2C PU – Questo ponticello viene utilizzato per collegare le resistenze di pull-up alle linee SDA e SCL. Se le resistenze non sono necessarie, aprire il ponticello.
Come collegare sensore di gesti APDS-9960 ad Arduino
Il sensore è in grado di rilevare il livello di luce totale in lux o il livello di luce in tre canali dello spettro – rosso, verde, blu (RGB). Rileva la vicinanza e la distanza dell’oggetto dal sensore, semplici gesti della mano (movimento a sinistra, a destra, in alto, in basso). Per lavorare con il modulo è necessario installare la libreria SparkFun_APDS9960.h e, dopo aver assemblato il circuito, caricare il seguente programma nel microcontrollore Arduino.
Programma Arduino per utilizzare sensore di gesti APDS-9960
#include "Wire.h" #include "SparkFun_APDS9960.h" #define APDS9960_INT 2 SparkFun_APDS9960 apds = SparkFun_APDS9960(); int isr_flag; void setup() { Serial.begin(9600); attachInterrupt(0, interruptRoutine, FALLING); if ( apds.init() ) { Serial.println(F("APDS-9960 initialization complete")); } else { Serial.println(F("Something went wrong during APDS-9960 init!")); } if ( apds.enableGestureSensor(true) ) { Serial.println(F("Gesture sensor is now running")); } else { Serial.println(F("Something went wrong during gesture sensor init!")); } } void loop() { if( isr_flag == 1 ) { detachInterrupt(0); handleGesture(); isr_flag = 0; attachInterrupt(0, interruptRoutine, FALLING); } } void interruptRoutine() { isr_flag = 1; } void handleGesture() { if ( apds.isGestureAvailable() ) { switch ( apds.readGesture() ) { case DIR_UP: Serial.println("UP"); break; case DIR_DOWN: Serial.println("DOWN"); break; case DIR_LEFT: Serial.println("LEFT"); break; case DIR_RIGHT: Serial.println("RIGHT"); break; case DIR_NEAR: Serial.println("NEAR"); break; case DIR_FAR: Serial.println("FAR"); break; default: Serial.println("NONE"); } } }
Spiegazione del codice per utilizzare sensore di gesti APDS-9960:
- passare la mano davanti al sensore GY-9960-LLC – il monitor della porta di Arduino IDE vi dirà quale gesto è stato riconosciuto;
- se non è stato definito alcun gesto, sul monitor della porta apparirà NONE.
Conclusione. Il modulo sensore GY 9960 LLC è in grado di rilevare facilmente la vicinanza di un oggetto, semplici gesti, luce e colori (luminosità dei valori cromatici RGB). Nella libreria SparkFun_APDS9960.h sono presenti altri esempi per dimostrare le capacità del sensore. Ad esempio, AmbientLightInterrupt consente di misurare la luce ambientale e l’esempio ColorSensor legge i valori di luce rossa, verde e blu.
Lascia un commento