Съдържание:
- Консумативи
- Стъпка 1: Разберете системата
- Стъпка 2: Писане на WebSocketServer
- Стъпка 3: Създайте протокол от серийни команди
Видео: Запали ме! Контрол на LED ленти с кръстосана платформа в реално време: 5 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Запали ме! е система, която аз измислих за управление на RGB LED лента в реално време, като същевременно поддържа ниска цена и висока производителност.
Сървърът е написан на Node.js и затова може да се използва за различни платформи.
В моя пример използвам Raspberry Pi 3B за дългосрочна употреба, но моя компютър с Windows за демонстрация и отстраняване на грешки.
4-пиновата лента се управлява от платка тип Arduino Nano, която изпълнява последователно дадени команди за изпращане на ШИМ сигнали до три транзистора, превключващи +12VDC в съответния цветен щифт на лентата.
LightMeUp! системата също така проверява собствената си температура, след като е над 60 ° C (140 ° F), тя включва два 12VDC компютърни вентилатора, вградени в корпуса, за да се охлади, за да подобри живота на веригата.
Друга характеристика на LightMeUp! е да осветява бутилка от Бомбай-Сапфир Джин, но това не е фокусът на тази инструкция.
Наслади се на четенето:)
Консумативи
- Arduino Nano (или друг ATmega328 / по-висок микроконтролер)
- Raspberry Pi 3 Модел B с инсталиран Node.js (или друг компютър)
- 12V RGB 4-пинова LED лента
- 12V 3A Захранване
- Джъмперни кабели (мъжки-мъжки, ако използвате макет, разбира се)
- Платка (по избор)
- 2 12V DC вентилатора за компютър (по избор)
- 3x TIP120 Darlington Transistor с радиатор (4, ако искате да включите охлаждащи вентилатори)
- 2 светодиода за състоянието червен и зелен (по избор)
- 6, 7K NTC резистор, базиран на температура + 6, 7K резистор (по избор)
- USB-Mini към USB 2.0 кабел за данни (за Raspberry Pi да комуникира с Arduino)
- USB-хъб с външно захранване (по избор, само за Raspberry Pi)
Стъпка 1: Разберете системата
Запали ме! се основава на много проста електронна схема.
Имаме някакъв компютър (в този случай Raspberry Pi), който комуникира последователно с нашата платка за микроконтролер. Тази платка след това изпълнява специфични серийни команди като "RGB (255, 255, 255)", които биха превърнали нашата LED лента в бяло.
След като получим трите си стойности за ЧЕРВЕНО, ЗЕЛЕНО и СИНО, необходими за нашата 4-пинова LED лента, ние изпълняваме analogWrite (пин, стойност), за да доставим нашия TIP120 транзистор с PWM сигнал.
Този ШИМ сигнал позволява на транзистора да превключи съответния цветен щифт, към който колекторът е свързан към земята, до определена степен или напълно да се включи / изключи. Да, много "до":)
Чрез смесване на трите транзисторни изхода към цветните щифтове на LED лентите можем да създадем практически всеки цвят, който желаем!
Сега с това разбиране можем да атакуваме най -голямото предизвикателство на този проект, websocketserver и неговата серийна връзка с нашия Arduino.
Стъпка 2: Писане на WebSocketServer
Сега трябва да създадем специфичен вид уеб сървър, който ни позволява да прехвърляме данни напред и назад, без да се опресняваме веднъж, за да постигнем контрол на LED лентата в реално време.
Моля, обърнете внимание, че комуникацията в реално време, разбира се, е невъзможна, винаги ще има поне няколко милисекунди забавяне, но за човешкото око това е значително като в реално време.
Това може лесно да се постигне с помощта на библиотеката socket.io, ако използвате Node.js както аз. Разбира се, винаги можете да се придържате към любимия си език за програмиране.
Ще се занимаваме с връзка с websocket, която ни позволява да прехвърляме входни данни, например на кой цвят искате да настроите LED лентата, или данни за състоянието като „LED ON“двупосочно, без да се опресняват.
Друга много важна функция, която сървърът трябва да има, но не е необходимо, е просто влизане. Базирах влизането си от просто поле за потребителско име и парола. Тези части от информацията след това се публикуват в /login маршрута на сървъра, който след това сравнява потребителското име със списък с потребители (.txt файл) и съответната му парола в нейната SHA256-криптирана форма. Не искате съседите ви да се забъркват с вашата LED лента, докато се наслаждавате на любимата си напитка на най -удобната си седалка, нали?
Сега идва сърцето на сървъра, серийната комуникация.
Вашият сървър трябва да може да комуникира серийно - в Node.js това може да се постигне чрез отваряне на порт с помощта на библиотеката "serialport". Но първо определете името на вашия arduino порт на вашия компютър, хостващ сървъра. В зависимост от вашата операционна система, портовете ще имат различни имена, напр. в Windows тези портове се наричат "COMx" портове, докато в Linux те се наричат "/dev/ttyUSBx", където x е номерът на USB порта.
Стъпка 3: Създайте протокол от серийни команди
На горната снимка виждате действителния IDE код на Arduino, отговорен за RGB контрола. Целта на тази стъпка е да накарате вашия самостоятелно написан сървър и дъската на Arduino да говорят помежду си успешно.
След като успешно отворите серийния порт, трябва да можете да изпращате команди до дъската, която се грижи за вашите желания. Например, ако нарисуваме пръст над инструмента за избор на цвят на уеб страницата HTML, RGB кодът трябва да бъде изпратен до сървъра, който след това да го изпрати до вашия Arduino, за да обработи зададените стойности.
Използвах jscolor, те имат страхотна реализация на висококачествен елемент за избор на цвят, който притежава събитие, наречено "onFineChange", което позволява вашите данни за процеса от инструмента за избор на цвят, веднага щом стойностите му се променят.
Препоръчано:
Измервател на нивото на водата в кладенец в реално време: 6 стъпки (със снимки)
Измервател на нивото на водата в кладенец в реално време: Тези инструкции описват как да се изгради евтин водомер в реално време за използване в изкопани кладенци. Измервателят на нивото на водата е проектиран да виси в изкопан кладенец, да измерва нивото на водата веднъж на ден и да изпраща данните чрез WiFi или клетъчна връзка
Измервател на температурата на водата, проводимостта и нивото на водата в кладенец в реално време: 6 стъпки (със снимки)
Измервател на температурата на водата, проводимостта и нивото на водата в кладенец в реално време: Тези инструкции описват как да се изгради евтин водомер в реално време за мониторинг на температурата, електропроводимостта (EC) и нивата на водата в изкопани кладенци. Уредът е проектиран да виси в изкопан кладенец, да измерва температурата на водата, EC и
Програма MicroPython: Актуализиране на данните за коронавирусната болест (COVID-19) в реално време: 10 стъпки (със снимки)
Програма MicroPython: Актуализиране на данните за коронавирусната болест (COVID-19) в реално време: През последните няколко седмици броят на потвърдените случаи на коронавирусна болест (COVID 19) в световен мащаб надхвърли 100 000, а Световната здравна организация (СЗО) обяви новата епидемия от коронавирус пневмония ще бъде глобална пандемия. Аз бях много
Прости лампи с LED ленти (надстройте вашите LED ленти): 4 стъпки (със снимки)
Прости лампи с LED ленти (надстройте вашите LED ленти): Използвам LED ленти от доста време и винаги съм обичал простотата им. Просто отрязвате парче от роля, запоявате няколко проводника към него, прикрепяте захранване и имате себе си източник на светлина. През годините открих c
Робот SCARA: Научете за обратната и обратната кинематика !!! (Сюжет Twist Научете как да направите интерфейс в реално време в ARDUINO Използване на ПРОЦЕСИРАНЕ !!!!): 5 стъпки (със снимки)
Робот SCARA: Научете за обратната и обратната кинематика !!! (Plot Twist Научете как да направите интерфейс в реално време в ARDUINO, използвайки ПРОЦЕСИРАНЕ !!!!): робот SCARA е много популярна машина в света на индустрията. Името означава както селективна съвместима сглобяема роботизирана ръка, така и селективна съвместима съчленена роботизирана ръка. По същество това е робот с три степени на свобода, като първите два displ