Andur APDS-9960, väike insenerikunsti pärl, on hämmastav komponent, mis võimaldab tuvastada liigutusi ja lähedust ning mõõta ümbritsevat valgust ja värve. Seda kasutatakse tipptasemel elektroonikaseadmetes, nagu Samsung Galaxy S5, ja see on tänapäeval käeulatuses igale elektroonikahuvilisele, kes töötab selliste platvormidega nagu Arduino. Tänu oma võimele tuvastada žeste vahemikus 5–20 cm ja hõlpsasti integreerida teiste seadmetega, on see ideaalne valik neile, kes soovivad oma projektidesse lisada žestide juhtimise.
Selles artiklis uurime põhjalikult, kuidas see andur töötab ja kuidas seda Arduinoga ühendada, pöörates tähelepanu selle paljudele kasutusvõimalustele ja pakkudes koodinäiteid, mis võimaldavad teil sellega kiiresti töötada.
Mis on APDS-9960 andur?
El APDS-9960 See on andur, mis ühendab endas neli peamist funktsiooni: liigutuste tuvastamine, lähedus, värv ja ümbritsev valgus. See on seade, mis edastab oma näidud I2C sideprotokolli abil, mis hõlbustab oluliselt selle kasutamist mikrokontrolleritega nagu Arduino. Selle vooruste hulgas paistab silma selle võime mõõta värve ja ümbritsevat valgust ning tuvastada žeste ilma kontaktita, tuvastades liigutusi, nagu vasakule, paremale, üles, alla, lähedal ja kaugel.
See andur töötab tänu integratsioonile a infrapuna kiirgaja ja neli suunatavad fotodioodid, mis võimaldavad tuvastada ja arvutada läheduses asuvate objektide liikumissuunda. Lisaks on sellel võimalus mõõta ümbritseva valguse hulka ja tuvastada RGB värvi.
APDS-9960 anduri ühendamine Arduinoga
Ühendamiseks APDS-9960 Arduinoga peate lihtsalt looma side bussi kaudu I2C. See andur töötab pingel 3.3 V, seega on ülioluline teha sobivad ühendused, et vältida selle kahjustamist, eriti kui töötate 5V Arduino. Sel juhul on soovitav kasutada a loogikataseme adapter I2C siini pinge alandamiseks.
- GND Arduino GND tihvti.
- VDC Arduino 3.3 V viigu külge.
- SDA Arduino SDA tihvti.
- SCL Arduino SCL-tihvtile.
Kui teie Arduino mudel on 5 V, tuleb ilmselgelt rakendada täiendavaid ettevaatusabinõusid, kuigi mõnel juhul on teatatud, et andur võib töötada ilma kahjustamata. See pole aga pikas perspektiivis täiesti kindel.
Arduino raamatukogud ja kood
APDS-9960 kasutamiseks koos Arduinoga on üks lihtsamaid viise kasutada poolt välja töötatud raamatukogu Adafruit, mis lihtsustab selle kasutamist. Saate selle alla laadida aadressilt GitHub ja installige see otse Arduino arenduskeskkonda.
Põhinäide: kuvage žeste jadapordi kaudu
Selles esimeses näites loetakse tuvastatud žeste ja kuvatakse need jadapordi kaudu. Liigutuste tuvastamiseks viige lihtsalt käsi üle anduri 5–20 cm kaugusel:
#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");
}
See kood on vaid näide sellest, mida saate teha žestianduriga nagu APDS-9960. Kui annate käe üle seadme, tuvastab programm žesti ja kuvab tulemuse jadapordi konsoolil.
Täpsem näide: LED-märgutuli vilgub liigutuse alusel
Selle teise näite puhul ühendame tuvastatud žestid LED integreeritud tahvlisse. Olenevalt tuvastatud žestist vilgutame LED-i teatud arv kordi:
#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);
}
}
Levinud probleemid ja lahendused
Kuigi APDS-9960 Tegemist on üsna jõulise anduriga, tõsi, valgus- või häiretega keskkondades võivad näidud ebaõnnestuda. Lisaks ei pruugi see mitteideaalsetes tingimustes kasutamisel liikumist tuvastada või isegi valepositiivseid tulemusi anda.
Veel üks aspekt, mida meeles pidada, on see, et see andur sõltub suuresti õigest ümbritsevast valgustusest ja kuigi see on väga tundlik, ei pruugi see hästi töötada objektidega, näiteks läikivate pindade või kinnastega, kuna need ei pruugi valgust õigesti peegeldada. kiirgab infrapuna valgust.
Selle seadme kasutatav I2C-protokoll on üsna lihtne, kuid siiski on oluline jälgida, et ühendused oleksid õiged ja pingega ei tekiks probleeme.
APDS-9960 andur on suurepärane tööriist projektide jaoks, mis soovivad integreerida žesti ja läheduse tuvastamise. See on ökonoomne, I2C kaudu hõlpsasti integreeritav ja sellel on teegid, mis lihtsustavad selle kasutamist. Kuigi see võib mõnes keskkonnas probleeme tekitada, muudab selle reguleeritav tundlikkus ja võimalus töötada klaasi taga mitmekülgseks valikuks. Esitatud koodinäidete abil saate selle anduriga töötada ja avastada oma projektides selle kogu potentsiaali.