Comment détecter les gestes avec Arduino et le capteur APDS-9960

  • L'APDS-9960 détecte les gestes, la proximité, la couleur et la lumière ambiante.
  • Il communique via le bus I2C et fonctionne à 3.3V.
  • Il est facile de se connecter et de programmer sur des plateformes telles que Arduino.
  • Il existe des bibliothèques Adafruit qui facilitent son intégration et son utilisation.

apds-9960

Le capteur APDS-9960, petit bijou d'ingénierie, est un composant étonnant qui permet la détection des gestes et de la proximité, ainsi que la mesure de la lumière ambiante et des couleurs. Utilisé dans des appareils électroniques de pointe comme le Samsung Galaxy S5, il est aujourd'hui à la portée de tout passionné d'électronique travaillant avec des plateformes comme Arduino. Avec sa capacité à détecter les gestes dans une plage de 5 à 20 cm et son intégration facile avec d'autres appareils, c'est le choix idéal pour ceux qui cherchent à intégrer le contrôle gestuel dans leurs projets.

Dans cet article, nous explorerons en profondeur le fonctionnement de ce capteur et comment le connecter à un Arduino, en prêtant attention aux nombreuses utilisations qu'il peut avoir et en proposant des exemples de code qui vous permettront de commencer à travailler avec lui rapidement.

Qu'est-ce que le capteur APDS-9960 ?

El APDS-9960 C'est un capteur qui combine quatre fonctionnalités principales : détection de gestes, proximité, couleur et lumière ambiante. C'est un appareil qui communique ses lectures grâce au protocole de communication I2C, ce qui facilite grandement son utilisation avec des microcontrôleurs tels que Arduino. Parmi ses vertus, se distingue sa capacité à mesurer la couleur et la lumière ambiante et à détecter les gestes sans contact, en reconnaissant les mouvements tels que la gauche, la droite, le haut, le bas, le proche et le lointain.

Ce capteur fonctionne grâce à l'intégration d'un émetteur infrarouge et quatre photodiodes directionnelles, qui permettent de détecter et de calculer la direction de mouvement des objets à proximité. De plus, il a la capacité de mesurer la quantité de lumière ambiante et de détecter les couleurs RVB.

Connexion du capteur APDS-9960 avec Arduino

apds9960

Pour connecter le APDS-9960 avec Arduino, il vous suffit d'établir une communication via le bus I2C. Ce capteur fonctionne sous une tension de 3.3V, il est donc crucial de réaliser les branchements appropriés pour éviter de l'endommager, surtout si vous travaillez avec un Arduino 5V. Dans ce cas, il est conseillé d'utiliser un adaptateur de niveau logique pour abaisser la tension du bus I2C.

Broches à connecter :
  • GND à la broche GND de l'Arduino.
  • Vcc à la broche 3.3 V de l'Arduino.
  • SDA à la broche SDA d'Arduino.
  • SCL à la broche SCL d'Arduino.

Si votre modèle Arduino est en 5V, des précautions supplémentaires doivent évidemment être prises, même si dans certains cas, il a été signalé que le capteur pouvait fonctionner sans être endommagé. Toutefois, cela n’est pas tout à fait certain à long terme.

Bibliothèques et code pour Arduino

Pour utiliser l'APDS-9960 avec Arduino, l'un des moyens les plus simples consiste à utiliser la bibliothèque développée par Adafruit, ce qui simplifie son utilisation. Vous pouvez le télécharger depuis GitHub et installez-le directement dans l'environnement de développement Arduino.

Exemple de base : Afficher les gestes via le port série

Dans ce premier exemple, les gestes détectés seront lus et affichés sur le port série. Passez simplement votre main sur le capteur à une distance comprise entre 5 et 20 cm pour que les gestes soient détectés :

#include "Adafruit_APDS9960.h"

Adafruit_APDS9960 apds;

void setup() {
  Serial.begin(115200);
  if (!apds.begin()) {
    Serial.println("Error al inicializar el sensor, comprueba el cableado");
    while (1);
  }
  apds.enableGesture(true);
}

void loop() {
  uint8_t gesture = apds.readGesture();
  if (gesture == APDS9960_DOWN) Serial.println("Abajo");
  if (gesture == APDS9960_UP) Serial.println("Arriba");
  if (gesture == APDS9960_LEFT) Serial.println("Izquierda");
  if (gesture == APDS9960_RIGHT) Serial.println("Derecha");
}

Ce code n'est qu'un exemple de ce que vous pouvez faire avec un capteur de gestes comme l'APDS-9960. Lorsque vous passez votre main sur l'appareil, le programme détectera le geste et affichera le résultat sur la console du port série.

Exemple avancé : clignotement de la LED en fonction du geste

Pour ce deuxième exemple, nous combinerons les gestes détectés avec les LED intégrée à la carte. En fonction du geste détecté, nous ferons clignoter la LED un nombre de fois déterminé :

#include "Adafruit_APDS9960.h"

Adafruit_APDS9960 apds;

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  if (!apds.begin()) {
    Serial.println("Error al inicializar el sensor");
    while (1);
  }
  apds.enableGesture(true);
}

void loop() {
  uint8_t gesture = apds.readGesture();
  if (gesture == APDS9960_DOWN) blink(1);
  if (gesture == APDS9960_UP) blink(2);
  if (gesture == APDS9960_LEFT) blink(3);
  if (gesture == APDS9960_RIGHT) blink(4);
}

void blink(int times) {
  for (int i = 0; i < times; i++) {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(100);
    digitalWrite(LED_BUILTIN, LOW);
    delay(100);
  }
}

Problèmes courants et solutions

Bien que le APDS-9960 C'est un capteur assez robuste, il est vrai que dans des environnements avec beaucoup de lumière ou d'interférences, les lectures peuvent échouer. De plus, s’il est utilisé dans des conditions non idéales, il peut ne pas détecter de mouvement ou même générer de faux positifs.

Un autre aspect à garder à l'esprit est que ce capteur est très dépendant d'un éclairage ambiant correct et, bien qu'il soit très sensible, il peut ne pas fonctionner correctement avec des objets dans des conditions telles que des surfaces brillantes ou avec des gants, car ceux-ci peuvent ne pas refléter correctement la lumière. .émettait de la lumière infrarouge.

Le protocole I2C qu'utilise cet appareil est assez simple, mais il reste néanmoins essentiel de s'assurer que les connexions sont correctes et qu'il n'y a pas de problèmes de tension.

Le capteur APDS-9960 est un excellent outil pour les projets cherchant à intégrer la détection de gestes et de proximité. Il est économique, facile à intégrer via I2C et dispose de bibliothèques qui simplifient son utilisation. Bien qu'il puisse présenter des problèmes dans certains environnements, sa sensibilité réglable et sa capacité à travailler derrière une vitre en font un choix polyvalent. Grâce aux exemples de code fournis, vous pouvez commencer à travailler avec ce capteur et découvrir tout son potentiel dans vos projets.


Soyez le premier à commenter

Laisser un commentaire

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

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.