Как обнаружить жесты с помощью Arduino и датчика APDS-9960

  • APDS-9960 распознает жесты, близость, цвет и окружающее освещение.
  • Он обменивается данными через шину I2C и работает при напряжении 3.3 В.
  • Его легко подключить и программировать на таких платформах, как Arduino.
  • Существуют библиотеки Adafruit, которые облегчают его интеграцию и использование.

apds-9960

Датчик АПДС-9960, маленькая жемчужина инженерной мысли, представляет собой удивительный компонент, который позволяет обнаруживать жесты и приближение, а также измерять окружающее освещение и цвет. Используемый в новейших электронных устройствах, таких как Samsung Galaxy S5, сегодня он доступен любому энтузиасту электроники, работающему с такими платформами, как Arduino. Благодаря способности распознавать жесты в диапазоне от 5 до 20 см и простой интеграции с другими устройствами он является идеальным выбором для тех, кто хочет включить управление жестами в свои проекты.

В этой статье мы подробно рассмотрим, как работает этот датчик и как его подключить к Arduino, обращая внимание на множество вариантов его использования и предлагая примеры кода, которые позволят вам быстро начать с ним работать.

Что такое датчик APDS-9960?

El АПДС-9960 Это датчик, который сочетает в себе четыре основные функции: обнаружение жестов, приближение, цвет и окружающее освещение. Это устройство, которое передает свои показания с использованием протокола связи I2C, что значительно облегчает его использование с такими микроконтроллерами, как Arduino. Среди его достоинств выделяется способность измерять цвет и окружающее освещение, а также бесконтактно распознавать жесты, распознавая такие движения, как влево, вправо, вверх, вниз, близко и далеко.

Этот датчик работает благодаря интеграции инфракрасный излучатель и четыре направленные фотодиоды, которые позволяют обнаруживать и рассчитывать направление движения близлежащих объектов. Кроме того, он имеет возможность измерять количество окружающего света и определять цвета RGB.

Подключение датчика APDS-9960 к Arduino

apds9960

Для подключения АПДС-9960 с Arduino вам просто нужно установить связь по шине I2C. Этот датчик работает при напряжении 3.3 В, поэтому очень важно выполнить соответствующие подключения, чтобы не повредить его, особенно если вы работаете с 5 В Ардуино. В этом случае целесообразно использовать адаптер логического уровня чтобы снизить напряжение шины I2C.

Пины для подключения:
  • GND к выводу GND Arduino.
  • VDC к выводу 3.3 В Arduino.
  • SDA к выводу SDA Arduino.
  • SCL к выводу SCL Arduino.

Если ваша модель Arduino рассчитана на напряжение 5 В, очевидно, необходимо принять дополнительные меры предосторожности, хотя в некоторых случаях сообщалось, что датчик может работать без повреждений. Однако в долгосрочной перспективе это не является полной уверенностью.

Библиотеки и код для 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. Когда вы проводите рукой по устройству, программа распознает жест и отображает результат на консоли последовательного порта.

Расширенный пример: мигание светодиода в зависимости от жеста

Во втором примере мы объединим обнаруженные жесты с Светодиод встроен в плату. В зависимости от обнаруженного жеста мы мигнем светодиодом определенное количество раз:

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

Общие проблемы и решения

Несмотря на то, АПДС-9960 Это довольно надежный датчик, правда, в условиях большого количества света или помех показания могут не сработать. Кроме того, при использовании в неидеальных условиях он может не обнаруживать движение или даже генерировать ложные срабатывания.

Еще один аспект, который следует иметь в виду, заключается в том, что этот датчик во многом зависит от правильного окружающего освещения и, хотя он очень чувствителен, он может плохо работать с объектами в таких условиях, как блестящие поверхности или в перчатках, поскольку они могут неправильно отражать свет. . излучает инфракрасный свет.

Протокол I2C, который использует это устройство, довольно прост, но все же важно убедиться в правильности соединений и отсутствии проблем с напряжением.

Датчик APDS-9960 — отличный инструмент для проектов, стремящихся интегрировать обнаружение жестов и приближения. Он экономичен, легко интегрируется через I2C и имеет библиотеки, упрощающие его использование. Хотя в некоторых условиях он может создавать проблемы, его регулируемая чувствительность и возможность работать за стеклом делают его универсальным выбором. С помощью предоставленных примеров кода вы можете начать работу с этим датчиком и раскрыть весь его потенциал в своих проектах.


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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