СОДЕРЖАНИЕ ►
Модуль APDS-9960 Arduino — это небольшая плата со встроенным датчиком, который обеспечивает измерение освещенности и цвета, обнаружение приближения предметов и бесконтактное распознавание жестов. С помощью этого модуля можно управлять роботами, освещением и еще многим другим простым взмахом руки. Рассмотрим подключение датчика распознавания жестов SparkFun APDS 9960 к плате Ардуино.
Датчик жестов APDS-9960 характеристики
APDS-9960 имеет встроенный датчик освещенности (ALS), ультрафиолетовый и инфракрасный фильтр, четыре отдельных фотодиода (приемники которые обнаруживают ИК-излучение) и одного ИК светодиода (излучателя). Когда мы выполняем жест рукой, датчик получает отраженное инфракрасное излучение, а микроконтроллер производит расчет направления перемещения руки.

Характеристики APDS-9960
- Рабочее напряжение: 2,8 — 3,8 Вольт
- Работает в условиях низкой освещенности при 0,01 люкс
- Откалиброванное обнаружение на расстоянии 100 мм
- Диапазон чувствительности распознавания жестов 100 — 200 мм
- Потребляемая мощность в режиме ожидания — 2,2 мкА
- Программируемый таймер ожидания
На передней стороне платы сенсора находятся 2 перемычки PS и I2C PU:
PS — эта перемычка соединяет питание модуля и ИК-светодиода. Когда перемычка замкнута питание следует подавать только на контакт VCC модуля. Если перемычка разомкнута, то для включения ИК-светодиода сенсора SparkFun на контакт VL необходимо подать отдельное питание. По умолчанию эта перемычка замкнута.
I2C PU — эта перемычка используется для подключения подтягивающих резисторов на линии SDA и SCL. Если подтягивающие резисторы не нужны — откройте перемычку.
Как подключить датчик жестов APDS-9960 Ардуино
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- датчика жестов GY-9960 / APDS-9960;
- макетная плата;
- провода «папа-мама».

Сенсор способен определить общий уровень освещенности в Lux или освещенность по трем каналам спектра — красный, зелёный, синий (RGB). Приближение и удаление объекта (препятствия) от сенсора, простые жесты (движение влево, вправо, вверх, вниз). Необходимо также установить библиотеку APDS9960.h для работы с модулем, после сборки схемы, представленной выше, загрузите программу в Arduino Uno.
Скетч распознавание жестов с помощью APDS-9960
#include "Wire.h" #include "SparkFun_APDS9960.h" #define APDS9960_INT 2 // порт прерывания SparkFun_APDS9960 apds = SparkFun_APDS9960(); // создаем объект apds int isr_flag; void setup() { Serial.begin(9600); // инициализируем прерывание на спад attachInterrupt(0, interruptRoutine, FALLING); // инициализируем APDS-9960 if ( apds.init() ) { Serial.println(F("APDS-9960 initialization complete")); } else { Serial.println(F("Something went wrong during APDS-9960 init!")); } if ( apds.enableGestureSensor(true) ) { Serial.println(F("Gesture sensor is now running")); } else { Serial.println(F("Something went wrong during gesture sensor init!")); } } void loop() { if( isr_flag == 1 ) { detachInterrupt(0); handleGesture(); isr_flag = 0; attachInterrupt(0, interruptRoutine, FALLING); } } void interruptRoutine() { isr_flag = 1; } void handleGesture() { if ( apds.isGestureAvailable() ) { switch ( apds.readGesture() ) { case DIR_UP: Serial.println("UP"); break; case DIR_DOWN: Serial.println("DOWN"); break; case DIR_LEFT: Serial.println("LEFT"); break; case DIR_RIGHT: Serial.println("RIGHT"); break; case DIR_NEAR: Serial.println("NEAR"); break; case DIR_FAR: Serial.println("FAR"); break; default: Serial.println("NONE"); } } }
Пояснения к коду:
- проведите рукой перед датчиком GY-9960-LLC — на мониторе порта Arduino IDE вы увидите информацию, о том какой жест был распознан;
- если жест не определен, то на мониторе порта появится надпись NONE.
Заключение. Сенсор GY 9960 LLC может легко определить приближение объекта, простые жесты, освещенность и цвета (яркость значений RGB-цветов). В библиотеке SparkFun_APDS9960.h есть другие примеры демонстрирующие возможности датчика. Например, AmbientLightInterrupt позволяет измерять освещенность в помещении, а пример ColorSensor считывает значения красного, зеленого и синего света.










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