Настольная RGB-лампа с управлением жестами – Интерактивное беспроводное освещение
Компоненты и материалы
| Arduino UNO | 1 шт. |
| Датчик линии SmartElex RLS-08 (аналоговый и цифровой, 8 датчиков) | 1 шт. |
| Провода перемычки (набор) | 1 шт. |
| LED-лента NeoPixel (адресная, RGB, WS2812B) | 1 шт. |
Необходимые инструменты
- Клеевой пистолет
Программное обеспечение и онлайн-сервисы
- Arduino IDE
О проекте
Мы все видели различные настроенные лампы и RGB-подсветку. Обычно они управляются кнопками или пультом, но мы решили создать RGB-настольную лампу с управлением жестами, которая меняет цвет простым движением руки. Это интерактивный арт-проект на базе платы Arduino Uno и массива ИК-датчиков. Проект простой и увлекательный – отлично подходит для обучения студентов и школьников.
Шаг 1: Подготовка материалов
Все компоненты легко найти в местных магазинах или заказать онлайн:
- Arduino Uno
- Массив ИК-датчиков (8 датчиков)
- Адресная RGB-лента WS2812B
- Блок питания 5В, 2А
Шаг 2: Принцип работы
Используемый датчик – это массив из 8 ИК-датчиков приближенности. Каждый выдает аналоговый и цифровой сигнал. Мы используем их для определения направления движения руки и соответствующего изменения цвета ленты. Arduino считывает данные с датчиков и управляет светодиодами.
На схеме показаны два основных жеста:
- Свайп влево
- Свайп вправо
Шаг 3: Схема подключения
Подключение простое (см. схему на изображении):
Подключение ИК-датчика:
- GND датчика → GND Arduino
- VCC датчика → 5V Arduino
- Цифровые выходы датчиков A–H → цифровые пины 4–11 Arduino
Подключение LED-ленты:
- GND ленты → GND Arduino
- 5V ленты → Vin Arduino
- Data In ленты → цифровой пин 3 Arduino
Шаг 4: Программирование
Код использует библиотеку FastLED для управления лентой и создания эффектов. Объявлены 8 переменных для хранения данных с датчиков. Количество светодиодов задано как 90 (можно изменить), 데이터-пин – 3.
В основном цикле два вложенных условия проверяют, какие датчики сработали, и запускают соответствующие цветовые эффекты. Функция fadeall() обеспечивает плавное изменение оттенка (Hue).
Шаг 5: Фотографии готового устройства
Ниже приведены фото собранной лампы в действии.
Исходный код
#include <FastLED.h>
int a,b,c,d,e,f,g,h,j=0;
#define NUM_LEDS 90
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
void setup() {
for(int pin=4; pin<=11; pin++) pinMode(pin, INPUT);
LEDS.addLeds<WS2812,DATA_PIN,RGB>(leds,NUM_LEDS);
LEDS.setBrightness(84);
}
void fadeall() {
for(int i=0; i<NUM_LEDS; i++) leds[i].nscale8(250);
}
void loop() {
a=digitalRead(4); b=digitalRead(5); c=digitalRead(6); d=digitalRead(7);
e=digitalRead(8); f=digitalRead(9); g=digitalRead(10); h=digitalRead(11);
static uint8_t hue = 0;
// Свайп влево (A и B сработали)
if(a==1 && b==1) {
for(int i=4; i<55; i++) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(10);
}
}
// Свайп вправо (G и F сработали)
if(g==1 && f==1) {
for(int i=55; i>=4; i--) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(10);
}
}
}
Схема в Fritzing
Схема показывает подключение 8 отдельных ИК-датчиков. Можно использовать либо 8 отдельных датчиков, либо готовый массив.
Производственный процесс
- Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
- Жестово-управляемый робот на Raspberry Pi
- Управление светодиодами через Alexa с помощью Raspberry Pi – простое пошаговое руководство
- Превращаем старую радиоуправляемую машину в джойстик-контролируемый болид на Arduino
- SunGlass-BOT: Умные солнцезащитные очки с авто-подстройкой под свет
- Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
- Умный беспроводной выключатель света: Arduino-контроллер для удаленного управления
- Голосовой робот на Arduino Nano: Управление речью через Bluetooth
- PiBot: Робот-пианист на Arduino для точного исполнения музыки
- Arduino RGB-микшер цветов: Простой проект для начинающих