Как да разпознаем жестове с Arduino и сензора APDS-9960

  • APDS-9960 разпознава жестове, близост, цвят и околна светлина.
  • Той комуникира чрез I2C шина и работи на 3.3V.
  • Лесно е да се свързва и програмира на платформи като Arduino.
  • Има библиотеки на Adafruit, които улесняват интегрирането и използването му.

apds-9960

Сензорът APDS-9960, малък скъпоценен камък на инженерството, е невероятен компонент, който позволява откриване на жестове и близост, както и измерване на околната светлина и цвят. Използван в авангардни електронни устройства като Samsung Galaxy S5, днес той е в обсега на всеки електронен ентусиаст, който работи с платформи като Arduino. Със способността си да разпознава жестове в диапазон от 5 до 20 cm и лесната си интеграция с други устройства, той е идеалният избор за тези, които искат да включат управление с жестове в своите проекти.

В тази статия ще проучим в дълбочина как работи този сензор и как да го свържете към Arduino, като обърнем внимание на многото приложения, които може да има, и ще предложим примерни кодове, които ще ви позволят да започнете да работите с него бързо.

Какво представлява сензорът APDS-9960?

El APDS-9960 Това е сензор, който комбинира четири основни функции: разпознаване на жестове, близост, цвят и околна светлина. Това е устройство, което предава показанията си с помощта на комуникационния протокол I2C, което значително улеснява използването му с микроконтролери като напр. Arduino. Сред достойнствата му се откроява способността му да измерва цвят и околна светлина и да открива жестове без контакт, като разпознава движения като наляво, надясно, нагоре, надолу, близо и далеч.

Този сензор работи благодарение на интегрирането на a инфрачервен излъчвател и четири насочени фотодиоди, които позволяват откриване и изчисляване на посоката на движение на близки обекти. В допълнение, той има способността да измерва количеството околна светлина и открива RGB цвят.

Свързване на сензора APDS-9960 с Arduino

apds9960

За да свържете APDS-9960 с Arduino просто трябва да установите комуникация през шината I2C. Този сензор работи при напрежение от 3.3 V, така че е изключително важно да направите подходящите връзки, за да избегнете повредата му, особено ако работите с 5V Ардуино. В този случай е препоръчително да използвате a адаптер на логическо ниво за понижаване на напрежението на шината I2C.

Пинове за свързване:
  • GND към щифта GND на Arduino.
  • VDC към щифта 3.3V на Arduino.
  • S.D.A. към SDA щифта на Arduino.
  • SCL към SCL щифта на Arduino.

Ако вашият модел Arduino е 5V, очевидно трябва да се вземат допълнителни предпазни мерки, въпреки че в някои случаи се съобщава, че сензорът може да работи без да се повреди. Това обаче не е напълно сигурно в дългосрочен план.

Библиотеки и код за Arduino

За да използвате APDS-9960 с Arduino, един от най-лесните начини е да използвате библиотеката, разработена от Adafruit, което опростява използването му. Можете да го изтеглите от GitHub и го инсталирайте директно в средата за разработка на Arduino.

Основен пример: Показване на жестове през сериен порт

В този първи пример откритите жестове ще бъдат прочетени и показани през серийния порт. Просто прекарайте ръката си над сензора на разстояние между 5 и 20 см, за да бъдат засечени жестовете:

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

Този код е само пример за това, което можете да правите със сензор за жестове като APDS-9960. Когато прокарате ръката си над устройството, програмата ще открие жеста и ще покаже резултата на конзолата на серийния порт.

Разширен пример: Мигащ светодиод въз основа на жест

За този втори пример ще комбинираме откритите жестове с LED интегриран в платката. В зависимост от открития жест, ще мига светодиода определен брой пъти:

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

Често срещани проблеми и решения

Въпреки че APDS-9960 Това е доста здрав сензор, вярно е, че в среда с много светлина или смущения показанията могат да се провалят. Освен това, ако се използва при неидеални условия, може да не успее да открие движение или дори да генерира фалшиви положителни резултати.

Друг аспект, който трябва да имате предвид, е, че този сензор е доста зависим от правилното околно осветление и въпреки че е много чувствителен, може да не работи добре с обекти в условия като лъскави повърхности или с ръкавици, тъй като те може да не отразяват правилно светлината . излъчвана инфрачервена светлина.

I2C протоколът, който използва това устройство, е доста прост, но все пак е важно да се гарантира, че връзките са правилни и че няма проблеми с напрежението.

Сензорът APDS-9960 е отличен инструмент за проекти, които искат да интегрират разпознаване на жестове и близост. Той е икономичен, лесен за интегриране чрез I2C и има библиотеки, които опростяват използването му. Въпреки че може да създаде проблеми в някои среди, неговата регулируема чувствителност и способността да работи зад стъкло го правят универсален избор. С предоставените примери за код можете да започнете да работите с този сензор и да откриете пълния му потенциал във вашите проекти.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.