Comments 38
Хорошая работа!
Вот инструкция по сборке https://youtu.be/771-Okf0dYs
Судя по дате: 10 окт. 2015 г, Гайвер тоже взял эту идею у Cine-Lights за основу.
Эффекты я брал тут
А чем обусловлен выбор отдельного датчика? Не пробовали самостоятельно собрать на ИК светодиоде и ИК фотодиода?
А так же для управления жестами в двух плоскостях, понадобится 4 фотодиода и ИК светодиод, а это влечет за собой увеличение размеров.
а это влечет за собой увеличение размеровМне кажется, вверху лампы предостаточно места. Можно хоть датчик жестов сделать и дополнительно датчик расстояния.
Но датчик то представляет собой ту же самую пару — ИК диод, ИК фотодиод, ну насколько я могу судить по фотографиям. Да и насколько я знаком с такими парами расстояние замерить тоже возможно путем измерения падения напряжения на фотодиоде (чем дальше препятствие, тем больше падение, т.к. фотодиод приоткрыт не полностью). Просто возиться с таким привередливым датчиком так себе занятие...
Я лампу делал на ИК-датчике Sharp GP2Y0A21YK, режимы переключаются по кольцу (потому что датчик, конечно, не имеет полноценного распознавания жестов), когда проводишь рукой над датчиком в горизонтальной плоскости. Яркость, оттенок регулируются в вертикальной плоскости, как раз по контролю расстояния до ладони.
Если станешь использавать ESP8266, тогда не подключай WI FI, иначе динамическое отображение эфектов станет прерывчато, по причине требования ресурсов микроконтроллера для обслуживания функций WIFI. Нужно использовать двухядерную ESP32, где второе ядро самостоятельно обслуживает WIFI.
Если станешь использовать ESP8266, тогда не подключай WI FI, иначе динамическое отображение эффектов станет прерывисто, по причине требования ресурсов микроконтроллера для обслуживания функций WIFI.
поди библиотека NeoPixel? У нее на esp8266 импульсы для WS2812 софтварно генерируются. Можно попробовать задействовать I2S с DMA или UART1 аппаратным FIFO, тогда никаких рывков не будет.
Нужно использовать двухядерную ESP32, где второе ядро самостоятельно обслуживает WIFI.
Для esp32 некоторые версии NeoPixel используют аппаратную часть — RMI для генерирования импульсов для WS2812, второе ядро тут совсем ни причем.
А вот если поддержку RMI выключить то на esp32 оно даже работает без заеданий, пока не начинаешь делать что то тяжёлое — например декодировать и воспроизводить mp3, тогда вместо красивой гирлянды получаем непонятный стробоскоп.
Но если для управления нужно протягивать руку в сторону светильника. — почему не протянуть ее чуть-чуть дальше? Можно вместо датчика движения взять сенсорные кнопки, это надёжнее. Можно поставить их 20 шт, управлять светом в одно нажатие удобнее.
Заглянул в код библиотеки. Он показался знакомым (тоже игрался с датчиком) обилием подобных фрагментов:
if( !setMode(POWER, 1) ) {
return false;
}
return true;
Лёгким движением руки 5 строчек превращаются в одну:
return !!setMode(POWER, 1);
return setMode(POWER, 1);
Зачем две подряд логические инверсии? Чтобы именно true/false на выходе получить? Но это не нужно. false = 0, true !=0
true/false на выходе получить? Но это не нужно.
Согласен, здесь совершенно не нужно. Машинально написал.
Бывают ситуации, когда нужно что-то явно привести к bool, а "!!" известное сокращение для этого.
Мне кажется самым читабельным и понятным вариант
return setMode(POWER, 1) != 0;
Предположу что если поставить несколько датчиков то вероятность что случайные прерывания у них совпадут будет весьма низкой.
Что скажите о такой идее?
Когда же прекратят называть схемой, то что ей не является.
Если Вы считаете специалистом в этом вопросе, то разъясните пожалуйста?
Такие схемы рисуют в программе Fritzing. Не по ГОСТу, но своеобразный стандарт.
Схема — изложение, изображение, представление чего-либо в самых общих чертах, упрощённо
Светильник управляемый жестами на Arduino