Подключение датчика приближения, жестов и цвета APDS9960 к Arduino


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

Подключения датчика приближения, жестов и цвета APDS9960 к Arduino

Ранее на нашем сайте мы рассматривали подключение к Arduino датчика цвета TCS3200. Но бесконтактные жесты — это новый рубеж в мире интерфейсов человек-машина. Проведя рукой по датчику, вы можете управлять компьютером, микроконтроллером , роботом и т. д. На нашем сайте мы уже рассматривали ряд проектов, связанных с управлением жестами:

В этом статье мы рассмотрим обзор датчика APDS9960 и его взаимодействие с платой Arduino UNO. Для начала мы рассмотрим каждый из контактов на плате коммутации и их функции. Затем мы подключим датчик через контакты интерфейса I2C. Мы измерим направления жестов, такие как влево, вправо, вверх, вниз, близко и далеко. Затем мы будем использовать этот датчик в качестве детектора цвета RGB, а также для обнаружения приближения.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Модуль OLED дисплея с диагональю 0.96 дюйма и интерфейсом I2C (купить на AliExpress).
  3. Датчик APDS9960 (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Датчик приближения, освещенности, цвета (RGB) и жестов APDS9960

Обзор

APDS-9960 — это многофункциональный датчик, который может распознавать жесты, окружающее освещение, цвета RGB и значения света.

Датчик приближения, освещенности, цвета (RGB) и жестов APDS9960

Этот датчик состоит из четырех фотодиодов. Эти фотодиоды обнаруживают отраженную ИК-энергию, которая передается встроенным светодиодом. Таким образом, всякий раз, когда выполняется какой-либо жест, эта ИК-энергия блокируется и отражается обратно на датчик, так датчик обнаруживает информацию о скорости и направлении и преобразует ее в цифровую информацию. APDS-9960 имеет диапазон обнаружения от 4 до 8 дюймов (от 10 до 20 см).

Архитектура

Этот датчик работает по протоколу связи I2C. Он потребляет ток 1 мкА и питается от 3,3 В, поэтому будьте осторожны и не подключайте его к выводу 5 В. Вывод INT здесь является выводом прерывания, который используется для управления связью I2C.

Архитектура датчика APDS9960

Архитектура движка жестов включает автоматическую активацию (на основе результатов движка Proximity), вычитание окружающего света, подавление перекрестных помех, двойные 8-битные преобразователи данных , энергосберегающую задержку между преобразованиями, 32-наборный FIFO и управляемую прерываниями связь I2C. Потребление энергии и шум минимизируются с помощью регулируемой синхронизации ИК-светодиодов.

Схемы подключения датчика APDS9960

Распиновка

Датчик APDS9960 имеет 6 контактов. Их функции приведены в следующей таблице.

Распиновка датчика APDS9960

Схема проекта

Мы будем использовать плату Arduino UNO для сопряжения с датчиком APDS9960. Для питания датчика нам необходимо использовать напряжение 3,3 В. Если мы попытаемся использовать источник питания 5 В, мы рискуем повредить APDS-9960.

Схема подключения датчика APDS9960 к плате Arduino представлена на следующем рисунке.

Схема подключения датчика APDS9960 к плате Arduino

Подключите вывод SDA датчика к контакту A4 платы Arduino, а вывод SCL датчика — к контакту A5 датчика. Подключите его вывод INT к контакту D2 платы. Мы оставляем контакт VL на коммутационной плате неподключенным.

Собранная на макетной плате конструкция проекта представлена на следующем рисунке.

Собранная на макетной плате конструкция проекта

Примечание: датчик APDS9960 не работает с некоторыми платами Arduino, такими как Arduino Nano.

Установка в Arduino IDE библиотеки для работы с датчиком APDS9960

Библиотека Arduino для APDS9960 создана компанией Sparkfun. Библиотека упрощает использование датчика APDS-9960.

Чтобы установить библиотеку, перейдите в менеджер библиотек в Arduino IDE и установите следующую библиотеку Sparkfun, как показано на рисунке ниже.

Установка в Arduino IDE библиотеки для работы с датчиком APDS9960

Пример кода распознавания жестов

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

Тестирование работы кода распознавания жестов в окне монитора последовательной связи

Пример кода распознавания цвета

Теперь, чтобы увидеть изменение частоты цвета, держите различные цветные объекты перед датчиком. Последовательный монитор отобразит значение красного, зеленого, синего цвета вместе со значением окружающего цвета.

Тестирование работы кода распознавания цвета в окне монитора последовательной связи

Пример кода обнаружения приближения

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

Тестирование работы кода обнаружения приближения в окне монитора последовательной связи

Взаимодействие датчика жестов APDS9960 с OLED-дисплеем и Arduino

Теперь давайте добавим дополнительный I2C OLED-дисплей в схему, чтобы мы могли просматривать данные жестов на OLED-экране. Поэтому выполните подключение, как показано на рисунке ниже.

Схема подключения датчика APDS9960 и OLED дисплея к плате Arduino

Исходный код

Перед загрузкой кода добавьте эти две библиотеки для OLED-дисплея.

  1. Библиотека Adafruit GFX: Загрузить
  2. Библиотека SSD1306: Загрузить

После загрузки кода на OLED-экране отобразится следующее сообщение.

Пример распознавания жеста на экране OLED дисплея

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
30 просмотров

Добавить комментарий

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