Capteur de gestes APDS-9960 Arduino

Le module Arduino APDS-9960 est une petite carte avec un capteur intégré qui permet la détection de la lumière et des couleurs, la détection de proximité et la reconnaissance des gestes sans contact. Il peut être utilisé pour commander des robots, des lumières et bien plus encore d’un simple geste de la main. Voyons comment connecter le module de capteur de RGB et reconnaissance des gestes SparkFun APDS 9960 à une carte Arduino.


Pour cette activité, nous aurons besoin:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • module APDS9960 Arduino
  • fils de connexion
  • librairie SparkFun_APDS9960.h

Matériel supplémentaire sur ce sujet:

  1. Contrôle de lampe par capteur à ultrasons
  2. Branchement сapteur de mouvement Arduino
  3. Branchement capteur de distance Arduino

Fonctionnement capteur de gestes APDS-9960

Capteur de gestes APDS-9960 grove est doté d’un capteur de lumière ambiante (ALS) intégré, d’un filtre ultraviolet et infrarouge, de quatre photodiodes séparées (récepteurs qui détectent le rayonnement IR réfléchi par un objet) et d’une LED IR (émetteur). Lorsque nous effectuons un geste de la main, le capteur reçoit le rayonnement infrarouge réfléchi et le microcontrôleur Arduino calcule la direction du mouvement de la main ou de l’objet.

APDS-9960 Arduino pinout, datasheet
Module sensor APDS-9960 Arduino pinout, datasheet

Caractéristiques APDS-9960 Arduino

  • Alimentation: 3,3 V
  • Adresse I2C: 0x39
  • Détection de proximité
  • Détection de gestes
  • Détection de la lumière ambiante et de la couleur RVB
  • Portée de fonctionnement: de 10 à 20 cm (4 à 8 pouces)

Il y a 2 cavaliers PS et I2C PU sur la face avant de la carte du capteur :

PS – ce cavalier relie l’alimentation du module et de la LED IR. Lorsque le cavalier est fermé, l’alimentation doit être fournie uniquement à la broche VCC du module. Lorsque le cavalier est ouvert, une alimentation séparée doit être appliquée à la broche VL du capteur SparkFun afin d’allumer la LED IR. Par défaut, ce cavalier est fermé.

I2C PU – Ce cavalier est utilisé pour connecter des résistances d’excursion haute sur les lignes SDA et SCL. Si les résistances pull-up ne sont pas nécessaires, ouvrez le cavalier.

Comment brancher capteur de gestes Arduino Uno

Connecter capteur de gestes APDS-9960 à Arduino
Comment connecter capteur de gestes APDS-9960 à Arduino
APDS-9960 I2C Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VDD 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Le sensor est capable de détecter le niveau global de lumière en lux ou les niveaux de lumière dans les trois canaux du spectre – rouge, vert, bleu (RVB). Approche et retrait d’un objet (obstacle) du capteur, gestes simples (mouvement gauche, droite, haut, bas). Vous devez également installer la bibliothèque APDS9960.h pour travailler avec le module. Après avoir construit le circuit montré ci-dessus, chargez le programme dans l’Arduino Uno.

Programme Arduino pour des gestes 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");
    }
  }
}

Explication du code pour de reconnaissance des gestes:

  1. passez votre main devant le capteur GY-9960-LLC – le moniteur du port IDE de l’Arduino vous dira quel geste a été reconnu;
  2. si aucun geste n’est défini, NONE apparaîtra sur le moniteur du port.

Conclusion. Le capteur GY 9960 LLC peut facilement détecter la proximité d’un objet, des gestes simples, la lumière et les couleurs (luminosité des valeurs de couleur RVB). Il existe d’autres exemples dans la bibliothèque SparkFun_APDS9960.h pour démontrer les capacités du capteur. Par exemple, AmbientLightInterrupt vous permet de mesurer la lumière ambiante et l’exemple ColorSensor lit les valeurs de lumière rouge, verte et bleue.





One Reply to “Branchement capteur de gestes APDS-9960 Arduino”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.