Рубрики
Схемы на Arduino

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

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

Ранее на нашем сайте мы рассматривали подключение к 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 и значения света.

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

Архитектура

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

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

Распиновка

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

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

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

Схема подключения датчика 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, как показано на рисунке ниже.

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

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

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

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

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

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

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

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

Исходный код

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

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

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

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

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

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