Ako rozpoznať gestá pomocou Arduina a senzora APDS-9960

  • APDS-9960 detekuje gestá, blízkosť, farbu a okolité svetlo.
  • Komunikuje cez zbernicu I2C a pracuje pri 3.3V.
  • Je ľahké ho pripojiť a programovať na platformách, ako je Arduino.
  • Existujú knižnice Adafruit, ktoré uľahčujú jeho integráciu a používanie.

apds-9960

Senzor APDS-9960, malý technický klenot, je úžasný komponent, ktorý umožňuje detekciu gest a blízkosti, ako aj meranie okolitého svetla a farieb. Používa sa v špičkových elektronických zariadeniach, ako je Samsung Galaxy S5, dnes je v dosahu každého nadšenca elektroniky, ktorý pracuje s platformami, ako je Arduino. Vďaka svojej schopnosti rozpoznať gestá v rozsahu 5 až 20 cm a jednoduchej integrácii s inými zariadeniami je ideálnou voľbou pre tých, ktorí chcú do svojich projektov začleniť ovládanie gestami.

V tomto článku podrobne preskúmame, ako tento senzor funguje a ako ho pripojiť k Arduinu, pričom budeme venovať pozornosť mnohým použitiam, ktoré môže mať, a ponúkneme príklady kódu, ktoré vám umožnia rýchlo s ním začať pracovať.

Čo je senzor APDS-9960?

El APDS-9960 Ide o senzor, ktorý kombinuje štyri hlavné funkcie: detekciu gest, blízkosť, farbu a okolité svetlo. Ide o zariadenie, ktoré svoje hodnoty komunikuje pomocou komunikačného protokolu I2C, čo značne uľahčuje jeho použitie s mikrokontrolérmi ako napr. Arduino. Medzi jeho prednosťami vyniká schopnosť merať farbu a okolité svetlo a bezdotykovo detegovať gestá, rozpoznávajúce pohyby ako vľavo, vpravo, hore, dole, do blízka a do diaľky.

Tento snímač funguje vďaka integrácii a infračervený žiarič a štyri smerové fotodiódy, ktoré umožňujú zistiť a vypočítať smer pohybu blízkych objektov. Okrem toho má schopnosť merať množstvo okolitého svetla a deteguje RGB farbu.

Pripojenie senzora APDS-9960 k Arduinu

apds9960

Ak chcete pripojiť APDS-9960 s Arduino jednoducho potrebujete nadviazať komunikáciu cez zbernicu I2C. Tento snímač pracuje pri napätí 3.3 V, preto je dôležité vykonať vhodné pripojenia, aby nedošlo k jeho poškodeniu, najmä ak pracujete s 5V Arduino. V tomto prípade je vhodné použiť a adaptér na logickú úroveň na zníženie napätia zbernice I2C.

Piny na pripojenie:
  • GND ku kolíku GND Arduina.
  • VDC na 3.3V pin Arduina.
  • SDA na kolík SDA Arduina.
  • SCL na kolík SCL Arduina.

Ak je váš model Arduino 5V, samozrejme je potrebné prijať ďalšie opatrenia, aj keď v niektorých prípadoch bolo hlásené, že senzor by mohol fungovať bez poškodenia. Z dlhodobého hľadiska to však nie je úplne isté.

Knižnice a kód pre Arduino

Ak chcete použiť APDS-9960 s Arduino, jedným z najjednoduchších spôsobov je použiť knižnicu vyvinutú Adafruit, čo zjednodušuje jeho používanie. Môžete si ho stiahnuť z GitHub a nainštalujte ho priamo do vývojového prostredia Arduino.

Základný príklad: Zobrazenie gest cez sériový port

V tomto prvom príklade budú zistené gestá načítané a zobrazené cez sériový port. Jednoducho prejdite rukou po snímači vo vzdialenosti 5 až 20 cm, aby sa rozpoznali gestá:

#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");
}

Tento kód je len ukážkou toho, čo môžete robiť so snímačom gest, ako je APDS-9960. Keď prejdete rukou po zariadení, program rozpozná gesto a zobrazí výsledok na konzole sériového portu.

Pokročilý príklad: Blikanie LED na základe gesta

V tomto druhom príklade skombinujeme zistené gestá s LED integrovaná do dosky. V závislosti od zisteného gesta zablikáme LED diódou niekoľkokrát:

#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);
  }
}

Bežné problémy a riešenia

Hoci APDS-9960 Ide o pomerne robustný snímač, je pravda, že v prostredí s veľkým množstvom svetla alebo rušení môžu namerané hodnoty zlyhať. Navyše, ak sa používa v neideálnych podmienkach, môže zlyhať pri detekcii pohybu alebo dokonca generovať falošné pozitíva.

Ďalším aspektom, ktorý treba mať na pamäti, je, že tento snímač je dosť závislý od správneho okolitého osvetlenia a hoci je veľmi citlivý, nemusí dobre fungovať s predmetmi v podmienkach, ako sú lesklé povrchy alebo rukavice, pretože tieto nemusia správne odrážať svetlo. vyžarované infračervené svetlo.

Protokol I2C, ktorý toto zariadenie používa, je pomerne jednoduchý, ale stále je nevyhnutné zabezpečiť, aby boli pripojenia správne a aby neboli problémy s napätím.

Senzor APDS-9960 je vynikajúci nástroj pre projekty, ktoré chcú integrovať detekciu gest a blízkosti. Je ekonomický, ľahko sa integruje cez I2C a má knižnice, ktoré zjednodušujú jeho používanie. Aj keď môže v niektorých prostrediach predstavovať problémy, jeho nastaviteľná citlivosť a schopnosť pracovať za sklom z neho robia všestrannú voľbu. S poskytnutými príkladmi kódu môžete začať pracovať s týmto senzorom a objaviť jeho plný potenciál vo svojich projektoch.


Buďte prvý komentár

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.