Съдържание:
- Стъпка 1: Хардуер за BLE-LED-Stick
- Стъпка 2: Сглобяване на електроника
- Стъпка 3: Как да генерирате шрифтове?
- Стъпка 4: Софтуер за управление на BLE
- Стъпка 5: Първи тест
- Стъпка 6: Изберете анимациите
- Стъпка 7: RGB контрол
- Стъпка 8: Услуга Text_Animation и Услуга за постоянно съхранение
- Стъпка 9: Стартирайте приложението Android
- Стъпка 10: Напишете съобщения в снимки
Видео: LED POVstick с Bluetooth с ниска енергия: 10 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Тази инструкция ви показва как да изградите светкавична пръчка с RGB светодиоди, която да се контролира чрез BLE от вашия телефон!
Сега, когато тъмният сезон започва и трябва да направите снимки с продължителна експозиция: С тази пръчка можете да напишете своя подпис в картината, или мотивационен цитат, или признание в любов, QR-код, уеб адрес или много други други неща…
Той обхваща няколко теми за развитие:
- изграждане на хардуер
- програмиране на чипсета Cypress BLE с C
- направете свое собствено приложение, за да го контролирате.
Стъпка 1: Хардуер за BLE-LED-Stick
За пръчката се нуждаете от следното:
- BLE модул от кипарис (CY8C4247LQI-BL583)
- WS2812b RGB-LED лента (64LEDs от 144Led на метър лента)
- литиево-йонна батерия с подходящ държач (18650)
- бутон
- парче макет
Хардуерът на самата пръчка е доста прост.
Модулът Cypress BLE е монтиран на парче макет и светодиодите, бутонът и захранването са просто свързани към тази дъска.
Всичко е монтирано, залепено или завито към малко парче дървена лента, което само по себе си е частично поставено в прозрачна полиакрилна тръба. Но това не е задължително. Исках да монтирам всичко в тръба, но не намерих подходящ за BLE-модула и батерията, които са доста големи, в сравнение със светодиодите. За първи изстрел не ви е необходима акрилната тръба.
Стъпка 2: Сглобяване на електроника
Тази стъпка ви показва как е монтиран BLE-модулът и кои щифтове се използват за каква цел.
Както в няколко от моите инструкции, използвах Cypress BLE Development Kit. CY8CKIT-042-BLE Ръководство за бързо стартиране
Ако искате да работите с модула самостоятелно, всичко, което трябва да свържете, са източниците на захранване и използваните щифтове.
За нашия проект използваме само щифт 3.5 за задвижване на LED лентата. Но разбира се можете да промените това с PSoC Creator.
Както можете да видите на снимката на печатната платка, добавих щифтове във всички ъгли на чипа, но пропуснах щифта VREF.
По този начин модулът е монтиран правилно и е невъзможно неправилното свързване на модула.
Стъпка 3: Как да генерирате шрифтове?
Е, мисля, че това беше един от най -интересните проблеми, които реших по време на този проект.
Разбира се, човек може просто да проектира нов шрифт и да го напише в масив, но това наистина е много работа!
И така, какво направих?
Знаех, че се нуждая от някакво преобразуване на ASCII в шестнадесетична растерна карта. И аз имах късмет, защото не бях първият с този проблем!:-)
Софтуерът "GLCD Font Generator" направи точно правилното нещо:
Тъй като исках да извлека максимума от LED стика, импортирах шрифта в доста голям размер (~ 32 пиксела). Ако използвате само главни букви, не е нужно да се грижите за изкачванията, което ще увеличи видимия ви размер на шрифта с още няколко пиксела. Но аз избрах да използвам главни и малки букви. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
След като импортирате шрифт в генератора на шрифтове на GLCD, можете да изберете да го експортирате в различни формати.
Опитах се да го експортирам директно в заглавки, което беше добро, но не перфектно. Полученият експорт е масив от къси панталони (16 бита) с байт-шестнадесетични стойности за колоните за всеки знак от първия 128-ascii символ. Не съвсем това, което исках или имах нужда …
Затова импортирах масива в отворен офис calc работен лист. След това премахнах "0x" на три от четирите стойности и ги свързах в една 32 -битова дълга стойност. Също така поправих грешната крайност на отделните байтове.
Полученият масив е N*M масив с 32 -битови стойности. M е съответният знак и N са колоните, които съставляват показването на тази буква. В тази първа чернова всички знаци имат еднакъв брой колони, което означава, че всички букви са еднакво широки, както в добре познатия шрифт Courier. Малките герои като „i“или „t“изглеждат така, сякаш са загубени в космоса.
Затова добавих нов параметър в началото на всеки знак, за да кажа колко колони има този знак или колко широк е този знак. Това спестява памет и прави текста да изглежда по -добре!
Стъпка 4: Софтуер за управление на BLE
Принципът на софтуера BLE е много лесен:
- В началото просто не прави нищо.
- Чрез BLE можете да зададете различни анимации или текстове, които да се показват.
- След като натиснете бутона, се показват отделните колони на анимацията или текста.
- След като текстът се покаже, той продължава да чака отново.
Просто импортирайте проекта кипарис във вашия PSoC-Creator и го променете, ако желаете.
PSoC-4 няма толкова RAM и флаш, за да може да съхранява пълни RGB изображения на шрифтовете. Затова имах нужда от начин за динамично генериране на LED-съдържанието от текста. Това е доста ясно, нищо особено засега. От текст с много букви алгоритъмът взема една буква и я преобразува в черно-бял-растров масив. След това той взема всяка колона от тази еднобуквена растерна карта и вместо бяла, тя записва текущия RGB цвят в LED-масива. По този начин можете да генерирате едноцветни текстове или чрез допълнителна функция да промените цвета след всяка колона, всяка буква или дори след всеки пиксел.
"Буква" може да се съхранява в една байтова променлива, докато черно-бяла растерна карта трябва да се съхранява в някакъв вид масив.
Структурата на данните е следната:
Низ: newtext = "Здравейте";
Шрифт: uint32 знака = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColum}; Цвят: uint32 rgbcolor = 0xHHBBGGRR; // Яркост, синьо, зелено, червено всяка като 8 -битова стойност
За да преобразуваме низ за показване, правим следното:
getCharacter (): H (8 бита)
getColumn (int i): колона (32bit) (i започва с първата колона, работи до последната.) if (bit в колона е 1) LED в Strip е настроен на цвят. LED-Strip Array е 64 светодиода с 32-битови цветове всеки!
И ако тази колона се показва, продължаваме със следващата.
Това е толкова лесно.
Стъпка 5: Първи тест
Сега, когато софтуерът работи, ние сме готови за първите тестове.
Най -лесният начин да тествате вградената функция е с Bluetooth ниско енергийно приложение за тестване. Подобно на Nordic или Cypress Apps.
Скандинавски: nRF Connect за мобилни устройства
Кипарис: CySmart
Стартирайте Pov-Stick и наблюдавайте как ще се покаже демонстрационният низ. След като това приключи, е време да стартирате приложението. Потърсете в устройството Povstick и кликнете върху свързване.
След като връзката се установи, приложението автоматично открива всички определени услуги и характеристики.
Потърсете първата услуга (трябва да започне с 0000ccce …). Щракнете върху него, за да го отворите и покажете първата характеристика (започва с 0000ccc1). След това натиснете бутона за запис (или качване) и напишете 01 към тази характеристика.
След като натиснете изпращане, POVstick ще стартира анимацията Color-Knight-ездач, известен още като Larson Scanner с променящи се цветове.
Поздравления, изпратихте първата си стойност чрез BLE!
Стъпка 6: Изберете анимациите
В софтуера дефинирахме изброяване „e_Animation“със следните стойности:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Contation, Text, Animation, Text
Това са стойностите, които са валидни за характеристиката ccc1. Ако искате да видите CandyCane-Animation, трябва да напишете 4, 5 или 6 към тази характеристика. Те се различават по цветовете.
Две специални анимации са RGB_Control и TextAnimation. Ако сте избрали да ги активирате, пръчката очевидно първо няма да покаже нищо. Но той ви предлага допълнителни опции за управление на пръчката с другите услуги.
Стъпка 7: RGB контрол
RGB-Control може много лесно да бъде тестван с приложението CySmart, защото използвах същия UUID за тази характеристика, както в демонстрацията на Cypress.
Стартирайте приложението CySmart и се свържете с Povstick. Първо трябва да напишете "0x0A" към характеристиката ccc1.
0x0A е шестнадесетичната стойност за 10, която е анимацията RGB-Control в изброяването.
След това можете да превключите към контролния панел RGB-LED в приложението CySmart. Може би трябва да рестартирате приложението, за да стигнете до този екран. След това можете да контролирате цвета на всички светодиоди с тази RGB-диаграма.
Разбира се, можете също да запишете стойностите директно в характеристиката.
Стъпка 8: Услуга Text_Animation и Услуга за постоянно съхранение
Тези услуги не са толкова лесни за тестване.
Технически можете също да използвате nordic приложението за това, но трябва да знаете какви стойности да напишете към коя характеристика.
Така че, ако искате да ги тествате, трябва да разгледате проекта PSoC, чиято характеристика има кой UUID.
Важно е характеристиката "Set-Speed". С тази характеристика можете да контролирате колко бързи са анимациите.
С характеристиката "Set_Animation" на PersistentStorageService можете да контролирате шрифтовете и цветовете на текстовия низ. Валидните стойности са дефинирани в "povanimation.h", два шрифта "моно" и "засечка" и едноцветни и в цвят на дъгата. Стойностите 0 и 1 показват текста с фиксиран цвят, управляем чрез характеристиката RGB_Control. Стойностите 2 и 3 променят цвета на всяка колона и придават на низа хубава дъга.
"Write_Text_Service" е нещо различно. Можете да напишете нов низ на устройството, като напишете отделни знаци към характеристиката "Set_Character". При всяко записване ще получавате известие обратно за текущата дължина на низа.
За да стартирате нов низ, напишете „true“в „Clear_String“.
Това не е най -доброто изпълнение, но работи за всеки низ до 250 знака, без да променя размера на MTU.
Показване на нов низ с начало при натискане на бутона на Povstick.
Стъпка 9: Стартирайте приложението Android
Това е важна стъпка, но далеч извън обхвата на тази инструкция. Съжалявам за това!
Може би бих могъл да кача тестовото си приложение в магазина за игри, но все още не е завършено или освободено.
Стъпка 10: Напишете съобщения в снимки
Е, ето защо на първо място изграждам този повдик: да пиша съобщения в снимки.
Нуждаете се от статив, камера с функция за продължителна експозиция и добро местоположение.
Настройте камерата и регулирайте времето на експозиция на 10s за първи тест.
Задействайте освобождаването и започнете да се разхождате из картината, като стартирате текстовия дисплей на стика.
Et Voila, ето ни!
С правилната комбинация от LED яркост, бленда и време на експозиция е възможно дори да се правят снимки на разсъмване.
Трите снимки в тази стъпка показват пълния спектър от възможности.
В първия светодиодите са преекспонирани и създават магическа светлина. Но затова отраженията на земята са видими и фонът е доста добър.
Втората картина е изложена за светодиодите, но това оставя фона напълно черен.
И третият показва доста приглушени светодиоди малко след залез слънце. Светодиодите са толкова ярки, колкото на другите снимки, но околната среда беше толкова ярка, че трябваше да използвам ниска апертура и ниско ISO, така че светодиодите да изглеждат доста тъмни.
Втора награда в конкурса Make it Glow 2018
Препоръчано:
Осветен терариум със слънчева енергия: 15 стъпки (със снимки)
Светлинен терариум със слънчева енергия: Въпрос: Какво получавате, когато пресичате нощна светлина с лексикон? О: Соларен захранващ терариум! Аз рециклирах счупен набор от градински светлини със слънчева енергия, за да създам тази сцена с мини терариум . Тя изобразява каютата, която с приятеля ми наехме
Метеорологична станция NaTaLia: Метеорологична станция със слънчева енергия Arduino, направена по правилния начин: 8 стъпки (със снимки)
Метеорологична станция NaTaLia: Метеорологична станция Arduino със слънчева енергия, направена по правилния начин: След 1 година успешна работа на 2 различни места споделям плановете си за проекти на метеорологични станции със слънчева енергия и обяснявам как се е развила в система, която наистина може да оцелее дълго време периоди от слънчевата енергия. Ако следвате
LED сензор за паркиране със слънчева енергия: 8 стъпки (със снимки)
Слънчев LED сензор за паркиране: Нашият гараж няма много дълбочина и има шкафове в края, които допълнително намаляват дълбочината. Колата на жена ми е достатъчно къса, за да се побере, но е близо. Направих този сензор, за да опростя процеса на паркиране и да се уверя, че колата е пълна
Как правилно да измерваме консумацията на енергия на модулите за безжична комуникация в епохата на ниска консумация на енергия?: 6 стъпки
Как правилно да измерваме консумацията на енергия на безжичните комуникационни модули в епохата на ниска консумация на енергия?: Ниската консумация на енергия е изключително важно понятие в Интернет на нещата. Повечето IoT възли трябва да се захранват от батерии. Само чрез правилно измерване на консумацията на енергия на безжичния модул можем да преценим точно колко батерия съм
ГЕНЕРАТОР НА СЛЪНЧЕВА ЕНЕРГИЯ - Енергия от слънцето за ежедневни домакински уреди: 4 стъпки
ГЕНЕРАТОР НА СЛЪНЧЕВА ЕНЕРГИЯ | Енергия от слънцето за ежедневни домакински уреди: Това е много прост научен проект, който се основава на превръщането на слънчевата енергия в използваема електрическа енергия. Той използва регулатора на напрежението и нищо друго. Изберете всички компоненти и се пригответе да направите страхотен проект, който ще ви помогне да