Si të zbuloni gjestet me Arduino dhe sensorin APDS-9960

  • APDS-9960 zbulon gjestet, afërsinë, ngjyrën dhe dritën e ambientit.
  • Ai komunikon nëpërmjet autobusit I2C dhe funksionon në 3.3V.
  • Është e lehtë për t'u lidhur dhe programuar në platforma të tilla si Arduino.
  • Ka biblioteka Adafruit që lehtësojnë integrimin dhe përdorimin e tij.

apds-9960

Sensori APDS-9960, një perlë e vogël inxhinierike, është një komponent i mahnitshëm që mundëson zbulimin e gjesteve dhe afërsisë, si dhe matjen e dritës dhe ngjyrës së ambientit. I përdorur në pajisjet elektronike më të fundit si Samsung Galaxy S5, sot është brenda mundësive të çdo entuziastësh të elektronikës që punon me platforma të tilla si Arduino. Me aftësinë e tij për të zbuluar gjestet në një gamë prej 5 deri në 20 cm dhe integrimin e lehtë me pajisje të tjera, është zgjedhja ideale për ata që kërkojnë të përfshijnë kontrollin e gjesteve në projektet e tyre.

Në këtë artikull ne do të shqyrtojmë në thellësi se si funksionon ky sensor dhe si ta lidhim atë me një Arduino, duke i kushtuar vëmendje përdorimit të shumtë që mund të ketë dhe duke ofruar shembuj kodesh që do t'ju lejojnë të filloni të punoni me të shpejt.

Çfarë është sensori APDS-9960?

El APDS-9960 Është një sensor që kombinon katër funksionalitete kryesore: zbulimin e gjesteve, afërsinë, ngjyrën dhe dritën e ambientit. Është një pajisje që komunikon leximet e saj duke përdorur protokollin e komunikimit I2C, i cili lehtëson shumë përdorimin e tij me mikrokontrollues si p.sh. Arduino. Ndër virtytet e tij bie në sy aftësia për të matur ngjyrën dhe dritën e ambientit dhe për të zbuluar gjestet pa kontakt, duke njohur lëvizje të tilla si majtas, djathtas, lart, poshtë, afër dhe larg.

Ky sensor funksionon falë integrimit të a emetues infra të kuqe dhe katër fotodioda me drejtim, të cilat lejojnë zbulimin dhe llogaritjen e drejtimit të lëvizjes së objekteve pranë. Përveç kësaj, ai ka aftësinë për të matur sasinë e dritës së ambientit dhe zbulon ngjyrën RGB.

Lidhja e sensorit APDS-9960 me Arduino

apds9960

Për të lidhur APDS-9960 me Arduino, thjesht duhet të vendosni komunikim përmes autobusit I2C. Ky sensor punon me një tension prej 3.3 V, kështu që është thelbësore të bëni lidhjet e duhura për të shmangur dëmtimin e tij, veçanërisht nëse punoni me 5V Arduino. Në këtë rast, këshillohet përdorimi i një përshtatës i nivelit logjik për të ulur tensionin e autobusit I2C.

Kunjat për t'u lidhur:
  • GND te kunja GND e Arduino.
  • KQV-ja në pinin 3.3V të Arduino.
  • burime natyrore te kunja SDA e Arduino.
  • SCL te kunja SCL e Arduino.

Nëse modeli juaj Arduino është 5V, sigurisht që duhen marrë masa paraprake shtesë, megjithëse në disa raste është raportuar se sensori mund të funksionojë pa u dëmtuar. Megjithatë, kjo nuk është plotësisht e sigurt në terma afatgjatë.

Bibliotekat dhe kodi për Arduino

Për të përdorur APDS-9960 me Arduino, një nga mënyrat më të lehta është përdorimi i bibliotekës së zhvilluar nga Adafruit, gjë që thjeshton përdorimin e saj. Mund ta shkarkoni nga GitHub dhe instaloni direkt në mjedisin e zhvillimit Arduino.

Shembulli bazë: Shfaq gjestet nëpërmjet portit serial

Në këtë shembull të parë, gjestet e zbuluara do të lexohen dhe shfaqen në portën serike. Thjesht kaloni dorën mbi sensor në një distancë midis 5 dhe 20 cm që gjestet të zbulohen:

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

Ky kod është vetëm një shembull i asaj që mund të bëni me një sensor gjestesh si APDS-9960. Kur kaloni dorën mbi pajisjen, programi do të zbulojë gjestin dhe do ta shfaqë rezultatin në tastierën e portës serike.

Shembull i avancuar: Vezulloni LED bazuar në gjestet

Për këtë shembull të dytë, ne do të kombinojmë gjestet e zbuluara me LED i integruar në tabelë. Në varësi të gjestit të zbuluar, ne do të ndezim LED një numër të caktuar herë:

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

Problemet dhe zgjidhjet e përbashkëta

Pse APDS-9960 Është një sensor mjaft i fortë, është e vërtetë që në mjedise me shumë dritë ose ndërhyrje, leximet mund të dështojnë. Për më tepër, nëse përdoret në kushte jo ideale, mund të dështojë të zbulojë lëvizjen ose madje të gjenerojë pozitivë të rremë.

Një aspekt tjetër që duhet mbajtur parasysh është se ky sensor është mjaft i varur nga ndriçimi i saktë i ambientit dhe, megjithëse është shumë i ndjeshëm, mund të mos funksionojë mirë me objekte në kushte të tilla si sipërfaqet me shkëlqim ose me doreza, pasi këto mund të mos reflektojnë saktë dritën. emetuar dritë infra të kuqe.

Protokolli I2C që përdor kjo pajisje është mjaft i thjeshtë, por gjithsesi është thelbësore të sigurohet që lidhjet të jenë të sakta dhe të mos ketë probleme me tensionin.

Sensori APDS-9960 është një mjet i shkëlqyer për projektet që kërkojnë të integrojnë gjestet dhe zbulimin e afërsisë. Është ekonomik, i lehtë për t'u integruar përmes I2C dhe ka biblioteka që thjeshtojnë përdorimin e tij. Ndërsa mund të paraqesë probleme në disa mjedise, ndjeshmëria e tij e rregullueshme dhe aftësia për të punuar pas xhamit e bëjnë atë një zgjedhje të gjithanshme. Me shembujt e kodit të ofruar, mund të filloni të punoni me këtë sensor dhe të zbuloni potencialin e tij të plotë në projektet tuaja.


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.