Sensors APDS-9960, mazs inženierijas dārgakmens, ir pārsteidzošs komponents, kas ļauj noteikt žestus un tuvumu, kā arī mērīt apkārtējo gaismu un krāsas. To izmanto vismodernākajās elektroniskajās ierīcēs, piemēram, Samsung Galaxy S5, šodien tas ir pieejams ikvienam elektronikas entuziastam, kurš strādā ar tādām platformām kā Arduino. Tā spēj uztvert žestus diapazonā no 5 līdz 20 cm un to viegli integrēt ar citām ierīcēm, tāpēc tā ir ideāla izvēle tiem, kas vēlas savos projektos iekļaut žestu vadību.
Šajā rakstā mēs padziļināti izpētīsim, kā šis sensors darbojas un kā to savienot ar Arduino, pievēršot uzmanību daudzajiem tā izmantošanas veidiem un piedāvājot kodu piemērus, kas ļaus jums ātri sākt strādāt ar to.
Kas ir APDS-9960 sensors?
El APDS-9960 Tas ir sensors, kas apvieno četras galvenās funkcijas: žestu noteikšanu, tuvumu, krāsu un apkārtējo gaismu. Tā ir ierīce, kas paziņo savus rādījumus, izmantojot I2C sakaru protokolu, kas ievērojami atvieglo tās lietošanu ar tādiem mikrokontrolleriem kā Arduino. Starp tās tikumiem izceļas tā spēja izmērīt krāsas un apkārtējo gaismu un noteikt žestus bez kontakta, atpazīstot tādas kustības kā pa kreisi, pa labi, uz augšu, uz leju, tuvu un tālu.
Šis sensors darbojas, pateicoties integrācijai a infrasarkano staru izstarotājs un četras virziena fotodiodes, kas ļauj noteikt un aprēķināt tuvumā esošo objektu kustības virzienu. Turklāt tam ir iespēja izmērīt apkārtējās gaismas daudzumu un noteikt RGB krāsu.
APDS-9960 sensora savienošana ar Arduino
Lai savienotu APDS-9960 Izmantojot Arduino, jums vienkārši ir jāizveido saziņa, izmantojot autobusu I2C. Šis sensors darbojas ar 3.3 V spriegumu, tāpēc ir ļoti svarīgi izveidot atbilstošus savienojumus, lai to nesabojātu, it īpaši, ja strādājat ar 5V Arduino. Šajā gadījumā vēlams izmantot a loģikas līmeņa adapteris lai pazeminātu I2C kopnes spriegumu.
- GND uz Arduino GND tapu.
- VDC uz Arduino 3.3 V kontaktu.
- SDA uz Arduino SDA tapu.
- SCL uz Arduino SCL tapu.
Ja jūsu Arduino modelim ir 5 V, noteikti ir jāveic papildu piesardzības pasākumi, lai gan dažos gadījumos ir ziņots, ka sensors var darboties bez bojājumiem. Tomēr ilgtermiņā tas nav pilnīgi droši.
Arduino bibliotēkas un kods
Lai izmantotu APDS-9960 ar Arduino, viens no vienkāršākajiem veidiem ir izmantot bibliotēku, ko izstrādājusi Adafruit, kas vienkāršo tā lietošanu. Jūs varat to lejupielādēt no GitHub un instalējiet to tieši Arduino izstrādes vidē.
Pamatpiemērs: Rādīt žestus, izmantojot seriālo portu
Šajā pirmajā piemērā konstatētie žesti tiks nolasīti un parādīti seriālajā portā. Vienkārši nolieciet roku pāri sensoram 5–20 cm attālumā, lai tiktu uztverti žesti:
#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");
}
Šis kods ir tikai piemērs tam, ko varat darīt ar žestu sensoru, piemēram, APDS-9960. Kad jūs nododat roku pār ierīci, programma atklās žestu un parādīs rezultātu seriālā porta konsolē.
Papildu piemērs: mirgo LED, pamatojoties uz žestu
Šajā otrajā piemērā mēs apvienosim atklātos žestus ar LED integrēts dēlī. Atkarībā no konstatētā žesta mēs mirgosim LED noteiktu skaitu reižu:
#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);
}
}
Kopīgas problēmas un risinājumi
Aunque el APDS-9960 Tas ir diezgan izturīgs sensors, tiesa, vidē ar daudz gaismas vai traucējumiem rādījumi var neizdoties. Turklāt, ja to izmanto neideālos apstākļos, tas var nespēt noteikt kustību vai pat radīt viltus pozitīvus rezultātus.
Vēl viens aspekts, kas jāpatur prātā, ir tas, ka šis sensors ir ļoti atkarīgs no pareiza apkārtējā apgaismojuma un, lai gan tas ir ļoti jutīgs, tas var nedarboties labi ar objektiem tādos apstākļos kā spīdīgas virsmas vai cimdi, jo tie var nepareizi atspoguļot gaismu. izstaro infrasarkano gaismu.
I2C protokols, ko izmanto šī ierīce, ir diezgan vienkāršs, taču joprojām ir svarīgi pārliecināties, ka savienojumi ir pareizi un nav problēmu ar spriegumu.
APDS-9960 sensors ir lielisks rīks projektiem, kas vēlas integrēt žestu un tuvuma noteikšanu. Tas ir ekonomisks, viegli integrējams, izmantojot I2C, un tajā ir bibliotēkas, kas vienkāršo tā lietošanu. Lai gan dažās vidēs tas var radīt problēmas, tā regulējamā jutība un spēja strādāt aiz stikla padara to par daudzpusīgu izvēli. Izmantojot sniegtos kodu piemērus, varat sākt strādāt ar šo sensoru un atklāt visu tā potenciālu savos projektos.