Jak detekovat gesta pomocí Arduina a senzoru APDS-9960

  • APDS-9960 detekuje gesta, blízkost, barvu a okolní světlo.
  • Komunikuje přes I2C sběrnici a pracuje při 3.3V.
  • Je snadné se připojit a programovat na platformách, jako je Arduino.
  • Existují knihovny Adafruit, které usnadňují jeho integraci a použití.

apds-9960

Senzor APDS-9960, malý technický klenot, je úžasný komponent, který umožňuje detekci gest a blízkosti, stejně jako měření okolního světla a barev. Používá se v nejmodernějších elektronických zařízeních, jako je Samsung Galaxy S5, dnes je v dosahu každého nadšence elektroniky, který pracuje s platformami, jako je Arduino. Díky své schopnosti detekovat gesta v rozsahu 5 až 20 cm a snadné integraci s jinými zařízeními je ideální volbou pro ty, kteří chtějí do svých projektů začlenit ovládání gesty.

V tomto článku podrobně prozkoumáme, jak tento senzor funguje a jak jej připojit k Arduinu, přičemž budeme věnovat pozornost mnoha využití, které může mít, a nabídneme příklady kódu, které vám umožní začít s ním rychle pracovat.

Co je senzor APDS-9960?

El APDS-9960 Jedná se o senzor, který kombinuje čtyři hlavní funkce: detekci gest, blízkost, barvu a okolní světlo. Jedná se o zařízení, které komunikuje své odečty pomocí komunikačního protokolu I2C, což značně usnadňuje jeho použití s ​​mikrokontroléry jako např. Arduino. Mezi jeho přednostmi vyniká jeho schopnost měřit barvu a okolní světlo a bezkontaktně detekovat gesta, rozpoznávající pohyby jako doleva, doprava, nahoru, dolů, na blízko a na dálku.

Tento senzor funguje díky integraci a infračervený zářič a čtyři směrové fotodiody, které umožňují detekovat a vypočítat směr pohybu blízkých objektů. Navíc má schopnost měřit množství okolního světla a detekuje RGB barvu.

Propojení senzoru APDS-9960 s Arduinem

apds9960

Pro připojení APDS-9960 u Arduina stačí navázat komunikaci po sběrnici I2C. Tento snímač pracuje při napětí 3.3 V, takže je důležité provést vhodná připojení, aby nedošlo k jeho poškození, zejména pokud pracujete s 5V Arduino. V tomto případě je vhodné použít a adaptér logické úrovně snížit napětí sběrnice I2C.

Piny pro připojení:
  • GND na GND pin Arduina.
  • Vcc na 3.3V pin Arduina.
  • SDA na pin SDA Arduina.
  • SCL na pin SCL Arduina.

Pokud je váš model Arduino 5V, je samozřejmě nutné přijmout další opatření, i když v některých případech bylo hlášeno, že senzor by mohl fungovat bez poškození. Z dlouhodobého hlediska to však není zcela jisté.

Knihovny a kód pro Arduino

Chcete-li použít APDS-9960 s Arduinem, jedním z nejjednodušších způsobů je použití knihovny vyvinuté společností Adafruit, což zjednodušuje jeho použití. Můžete si jej stáhnout z GitHub a nainstalujte jej přímo do vývojového prostředí Arduino.

Základní příklad: Zobrazení gest přes sériový port

V tomto prvním příkladu budou detekovaná gesta načtena a zobrazena přes sériový port. Jednoduše přejeďte rukou přes senzor ve vzdálenosti 5 až 20 cm, aby byla rozpoznána gesta:

#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 jen ukázkou toho, co můžete dělat se senzorem gest, jako je APDS-9960. Když podáte ruku nad zařízením, program rozpozná gesto a zobrazí výsledek na konzole sériového portu.

Pokročilý příklad: Blikání LED na základě gesta

Pro tento druhý příklad zkombinujeme detekovaná gesta s LED integrovaná do desky. V závislosti na detekovaném gestu zablikáme LED několikrá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);
  }
}

Běžné problémy a řešení

Ačkoli APDS-9960 Je to poměrně robustní snímač, je pravda, že v prostředí s velkým množstvím světla nebo rušení může měření selhat. Navíc, pokud je použit v neideálních podmínkách, může selhat při detekci pohybu nebo dokonce generovat falešné poplachy.

Dalším aspektem, který je třeba mít na paměti, je, že tento senzor je dosti závislý na správném okolním osvětlení, a přestože je velmi citlivý, nemusí dobře fungovat s předměty v podmínkách, jako jsou lesklé povrchy nebo rukavice, protože tyto nemusí správně odrážet světlo. vyzařované infračervené světlo.

Protokol I2C, který toto zařízení používá, je poměrně jednoduchý, ale přesto je nezbytné zajistit, aby připojení byla správná a nebyly problémy s napětím.

Senzor APDS-9960 je vynikajícím nástrojem pro projekty, které chtějí integrovat detekci gest a přiblížení. Je ekonomický, snadno se integruje pomocí I2C a má knihovny, které zjednodušují jeho použití. I když může v některých prostředích představovat problémy, jeho nastavitelná citlivost a schopnost pracovat za sklem z něj činí všestrannou volbu. S poskytnutými příklady kódu můžete začít pracovat s tímto senzorem a objevit jeho plný potenciál ve svých projektech.


Začněte konverzaci

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.