Мазмуну:
- 1-кадам: BLE-LED-Stick үчүн жабдыктар
- 2 -кадам: Электрондук Ассамблея
- 3 -кадам: Шрифттерди кантип түзүү керек?
- 4 -кадам: BLE Control Software
- 5 -кадам: Биринчи тест
- 6 -кадам: Анимацияларды тандаңыз
- 7 -кадам: RGB Control
- 8 -кадам: Text_Animation кызматы жана туруктуу сактоо кызматы
- 9 -кадам: Android колдонмосун баштаңыз
- 10 -кадам: Билдирүүлөрдү Сүрөттөргө жазуу
Video: LED POVstick Bluetooth аз энергия менен: 10 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул көрсөтмө сизге телефонуңуздан BLE аркылуу башкарыла турган RGB светодиоддору менен жарык жазуучу таякчаны кантип курууну көрсөтөт!
Эми караңгы мезгил башталып, узак экспозициядагы сүрөттөрдү тартуу керек: Бул таякчанын жардамы менен сүрөткө кол тамгаңызды же мотивациялык цитатаны же сүйүү декларациясын, QR-кодду, веб-даректи же башка көптөгөн нерселерди жаза аласыз. башка нерселер…
Бул өнүгүүнүн бир нече темаларын камтыйт:
- аппараттык курулуш
- Cypress BLE чипсетин C менен программалоо
- аны көзөмөлдөө үчүн өз колдонмо жаса.
1-кадам: BLE-LED-Stick үчүн жабдыктар
Чач үчүн сизге төмөнкүлөр керек:
- Кипарис BLE модулу (CY8C4247LQI-BL583)
- WS2812b RGB-LED-Strip (метр тилкесине 144Ledден 64LED)
- ылайыктуу кармагычы бар Li-Ion батареясы (18650)
- баскыч
- нан бир кесим
Таяктын аппараттык жабдуулары абдан жөнөкөй.
Cypress BLE модулу нан табактын бир бөлүгүнө орнотулган жана светодиоддор, баскычы жана электр менен камсыздоо бул панельге гана туташкан.
Бардыгы монтаждалат, желимделет же кичине жыгач тилкесине буралат, ал өзү жарым -жартылай тунук полиакрил түтүккө салынат. Бирок бул милдеттүү эмес. Мен бардыгын түтүктүн ичине салгым келди, бирок BLE-модулуна жана LEDга салыштырмалуу абдан чоң батареяга ылайыктуусун тапкан жокмун. Биринчи атуу үчүн акрил түтүктүн кереги жок.
2 -кадам: Электрондук Ассамблея
Бул кадам сизге BLE-модулу кантип орнотулганын жана кайсы казыктар кандай максатта колдонуларын көрсөтөт.
Менин бир нече көрсөтмөлөрүмдөгүдөй эле, мен Cypress BLE Development Kitти колдондум. CY8CKIT-042-BLE Ыкчам баштоо көрсөтмөсү
Эгерде сиз модулду өз алдынча иштеткиңиз келсе, анда электр булактары жана колдонулган казыктар гана туташышы керек.
Биздин долбоор үчүн биз LED-Stripти айдап өтүү үчүн 3,5 пинди гана колдонобуз. Бирок, албетте, муну PSoC Жаратуучусу менен өзгөртө аласыз.
ПХБнын сүрөтүндө көрүнүп тургандай, мен чиптин бардык бурчтарына түйрүкчөлөрдү коштум, бирок VREF пинин өткөрүп жибердим.
Ошентип, модуль туура орнотулган жана модулду туура эмес туташтыруу мүмкүн эмес.
3 -кадам: Шрифттерди кантип түзүү керек?
Ооба, мен бул долбоордун жүрүшүндө чечкен эң кызыктуу маселелердин бири болду деп ойлойм.
Албетте, жаңы арипти иштеп чыгып, аны массивге жазууга болот, бирок бул чындыгында көп эмгек!
Анда мен эмне кылдым?
Мен hex-bitmap конверсиясына кандайдыр бир ASCII керек экенин билчүмүн. Жана мен бактылуу болдум, анткени мен бул көйгөй менен биринчи эмесмин!:-)
"GLCD шрифт генератору" программасы эң туура кылган:
Мен LED таякчасынан максималдуу түрдө пайда көргүм келгендиктен, шрифтти чоң өлчөмдө (~ 32 пиксел) импорттодум. Эгерде сиз чоң тамгаларды гана колдонсоңуз, анда жогорулоо жөнүндө кам көрүүнүн кажети жок, бул сиздин көрүнөө шрифтиңиздин өлчөмүн дагы бир нече пикселге көбөйтөт. Бирок мен баш тамгаларды да, кичине тамгаларды да колдонууну чечтим. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
GLCD Font генераторуна шрифт импорттогондон кийин, аны ар кандай форматта экспорттоону тандай аласыз.
Мен аны түздөн -түз баштыктарга экспорттоого аракет кылдым, бул жакшы, бирок кемчиликсиз эмес. Натыйжада экспорттоо-бул 128-ascii биринчи белгинин ар бир белгиси үчүн мамычалар үчүн байт-гекс-мааниси бар шорты (16 бит). Мен каалагандай же керектүү эмес …
Ошентип, мен массивди ачык кеңсе калькуляциялоо барагына импорттодум. Анан мен "0x" төрт баанын үчөөсүн алып салдым жана аларды 32 биттик узундукка бириктирдим. Мен ошондой эле жеке байттардын туура эмес учурун оңдоп койдум.
Алынган массив Nbit -32 массив болуп саналат. М - тиешелүү тамга, ал эми N - бул тамганын дисплейин түзгөн мамычалар. Бул биринчи долбоордо бардык символдор бирдей мамычаларга ээ, башкача айтканда, бардык тамгалар белгилүү Courier шрифти сыяктуу бирдей кенен. "I" же "t" сыяктуу кичинекей каармандар мейкиндикте жоголгондой көрүнөт.
Ошондуктан мен ар бир символдун башына жаңы белгини коштум, бул символдун канча мамычасы бар же канчалык кең экенин. Бул эс тутумду үнөмдөйт жана текстти жакшыраак кылат!
4 -кадам: BLE Control Software
BLE-программасынын принциби абдан оңой:
- Башында эч нерсе кылбайт.
- BLE аркылуу ар кандай анимацияларды же тексттерди көрсөтө аласыз.
- Сиз баскычты баскандан кийин, анимациянын же тексттин жеке тилкелери көрсөтүлөт.
- Текст көрсөтүлгөндөн кийин, ал дагы күтө берет.
Кипарис долбоорун PSoC-Creatorго импорттоп, кааласаңыз, аны өзгөртүңүз.
PSoC-4 тамгаларынын толук RGB-сүрөттөрүн кармап туруу үчүн анчалык оперативдүү жана флэшка ээ эмес. Ошондуктан мен тексттен динамикалык түрдө LED мазмунун түзүүнүн жолуна муктаж болдум. Бул абдан жөнөкөй, азырынча өзгөчө эч нерсе жок. Көптөгөн тамгалары бар тексттен алгоритм бир тамга алып, аны ак-кара түстөгү массивге айландырат. Андан кийин бул бир тамгадан турган битмаптын ар бир тилкесин алат жана ак түстүн ордуна, LED массивине учурдагы RGB түсүн жазат. Ошентип, сиз бир түстүү тексттерди түзө аласыз же кошумча функция аркылуу түстү ар бир мамычадан, ар бир тамгадан кийин, ал тургай ар бир пикселден кийин өзгөртө аласыз.
"Катты" бир байт өзгөрмөсүндө сактаса болот, ал эми ак-кара түстүү разряд кандайдыр бир массивде сакталышы керек.
Маалымат структурасы бул:
Стринг: newtext = "Hello";
Шрифт: uint32 characters = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Түсү: uint32 rgbcolor = 0xHHBBGGRR; // Жарыктык, Көк, Жашыл, Кызыл 8bit мааниге ээ
Сапты дисплейге айландыруу үчүн биз төмөнкүлөрдү кылабыз:
getCharacter (): H (8 бит)
getColumn (int i): мамыча (32 бит) (i биринчи колонкадан башталат, акырына чейин иштейт.) if (тилкедеги бит 1) Stripтеги LED түскө коюлган. LED-Strip Array-ар бири 32 бит түстүү 64 LED!
Ал эми бул тилке көрсөтүлсө, биз кийинки бирин улантабыз.
Бул оңой.
5 -кадам: Биринчи тест
Эми программа иштей баштаганда, биз биринчи сыноолорго даярбыз.
Камтылган функцияны тестирлөөнүн эң оңой жолу - бул Bluetooth аз энергия сыноо колдонмосу. Скандинавиялык же кипарис колдонмолору сыяктуу.
Скандинавия: Mobile үчүн nRF Connect
Cypress: CySmart
Pov-Stickти баштаңыз жана демо-сап кантип көрсөтүлөрүн байкаңыз. Бул аяктагандан кийин, колдонмону баштоого убакыт келди. Povstick түзмөгүн издеп, туташууну чыкылдатыңыз.
Байланыш түзүлгөндөн кийин, колдонмо автоматтык түрдө бардык аныкталган кызматтарды жана мүнөздөмөлөрдү табат.
Биринчи кызматты издеңиз (0000ccce менен башталышы керек …). Аны ачуу үчүн басыңыз жана биринчи мүнөздөмөнү көрсөтүңүз (0000ccc1 менен башталат). Андан кийин жазуу (же жүктөө) баскычын басыңыз жана бул мүнөздөмөгө 01 жазыңыз.
Жөнөтүүнү баскандан кийин, POVstick Color-Knight-rider анимациясын, башкача айтканда Ларсон сканерин, түстөрдү өзгөртүү менен баштайт.
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_Cax, Animation_nimation}
Бул ccc1 мүнөздөмөсү үчүн жарактуу болгон баалуулуктар. Эгерде сиз CandyCane-Animation көргүңүз келсе, анда бул мүнөздөмөгө 4, 5 же 6 жазышыңыз керек. Алар түстөр менен айырмаланат.
Эки атайын анимация - бул RGB_Control жана TextAnimation. Эгер сиз буларды активдештирүүнү тандасаңыз, таяк албетте эч нерсени көрсөтпөйт. Бирок ал башка кызматтар менен таякты башкаруунун кошумча мүмкүнчүлүктөрүн сунуштайт.
7 -кадам: RGB Control
RGB көзөмөлү CySmart тиркемеси менен оңой эле сыналышы мүмкүн, анткени мен Cypress Demo сыяктуу эле ушул мүнөздөмө үчүн UUIDди колдонгом.
CySmart колдонмосун иштетип, Povstickке туташыңыз. Алгач ccc1 мүнөздөмөсүнө "0x0A" жазышыңыз керек.
0x0A-бул энциклдеги RGB-Control анимациясы болгон 10 үчүн он алтылык мааниси.
Андан кийин CySmart тиркемесиндеги RGB-LED башкаруу панелине которула аласыз. Балким, сиз бул экранга өтүү үчүн колдонмону өчүрүп күйгүзүшүңүз керек. Андан кийин бул RGB-диаграмма менен бардык светодиоддордун түсүн көзөмөлдөй аласыз.
Албетте, сиз баалуулуктарды мүнөздөмөгө түз жаза аласыз.
8 -кадам: Text_Animation кызматы жана туруктуу сактоо кызматы
Бул кызматтарды сыноо оңой эмес.
Техникалык жактан бул үчүн скандинавдык колдонмону колдонсоңуз болот, бирок кайсы мүнөздөмөгө кандай баалуулуктарды жазуу керек экенин билишиңиз керек.
Демек, эгер сиз буларды сынап көргүңүз келсе, анда PSUC долбоорун карап чыгыңыз, кайсы мүнөздөмө UUIDге ээ.
Маанилүү нерсе-"Set-Speed" мүнөздөмөсү. Бул өзгөчөлүк менен сиз анимациялардын ылдамдыгын көзөмөлдөй аласыз.
PersistentStorageServiceтин "Set_Animation" мүнөздөмөсү менен текст сабынын шрифттерин жана түстөрүн көзөмөлдөй аласыз. Жарактуу маанилер "povanimation.h", "mono" жана "serif" эки шрифт жана бир түстүү жана асан-үсөн түсү менен аныкталат. 0 жана 1 баалуулуктары текстти RGB_Control мүнөздөмөсү аркылуу башкарылуучу туруктуу түс менен көрсөтөт. 2 жана 3 баалуулуктары ар бир мамычанын түсүн өзгөртүп, сапка сонун асан -үсөн тартуулайт.
"Write_Text_Service" башкача. "Set_Character" мүнөздөмөсүнө жеке тамгаларды жазуу менен түзмөккө жаңы сап жаза аласыз. Ар бир жазууда сиз саптын узундугу жөнүндө эскертме аласыз.
Жаңы сапты баштоо үчүн "Clear_String" ге "true" деп жазыңыз.
Бул эң жакшы ишке ашыруу эмес, бирок MTU өлчөмүн өзгөртпөстөн, 250 белгиге чейин каалаган сапта иштейт.
Povstick баскычы басылганда башталышы менен жаңы саптын көрүнүшү.
9 -кадам: Android колдонмосун баштаңыз
Бул маанилүү кадам, бирок бул көрсөтмө берүүнүн чегинен тышкары. Бул үчүн кечирим сурайм!
Балким, мен тест-тиркемени оюн дүкөнүнө жүктөшүм мүмкүн, бирок ал бүтө элек же чыгарыла элек.
10 -кадам: Билдирүүлөрдү Сүрөттөргө жазуу
Ооба, мен бул повистти биринчи кезекте куруп жатам: сүрөттөргө билдирүүлөрдү жазуу.
Сизге штатив, узак экспозициядагы камера жана жакшы жайгашуу керек.
Камераны орнотуп, биринчи сыноо үчүн экспозиция убактысын 10 секундга чейин тууралаңыз.
Чыгарууну козгоңуз жана таякчадагы текст-дисплейди баштап, сүрөттү аралай баштаңыз.
Et Voila биз барбыз!
Жарык диоддун жарыктыгы, диафрагмасы жана экспозиция убактысынын туура айкалышы менен таң атканда да сүрөткө тартууга болот.
Бул кадамдагы үч сүрөт мүмкүнчүлүктөрдүн толук спектрин көрсөтөт.
Биринчисинде, Светодиоддор ашыкча экспозицияга түшүп, сыйкырдуу жаркыроону жаратат. Бирок ошол себептен жердеги чагылуулар көрүнүп турат жана фону жакшы.
Экинчи сүрөт светодиоддор үчүн ачык, бирок бул фону таптакыр кара.
Үчүнчүсү күн баткандан көп өтпөй, начар LED диоддорун көрсөтөт. Светодиоддор башка сүрөттөрдөгүдөй жарык, бирок айлана -чөйрө ушунчалык жарык болгондуктан, диоддор караңгы болуп көрүнүшү үчүн мен аз аппертияны жана төмөн ISOны колдонууга туура келди.
Экинчи сыйлык Make It Glow конкурсунда 2018
Сунушталууда:
Бөлүкчөлөрдүн электронун колдонуу менен энергия мониторун түзүңүз: 5 кадам (сүрөттөр менен)
Бөлүкчөлөрдүн электронун колдонуу менен энергия мониторун түзүңүз: Көпчүлүк ишканаларда биз Энергияны бизнестин чыгымы деп эсептейбиз. Эсеп биздин почтада же электрондук почтада көрүнөт жана биз аны жокко чыгаруу күнүнө чейин төлөйбүз. IoT жана акылдуу түзмөктөрдүн пайда болушу менен Energy бизнестин баласында жаңы орунду ала баштады
Батареяны жөнгө салынуучу энергия менен камсыздоо - Ryobi 18V: 6 кадам (Сүрөттөр менен)
Батареяны жөнгө салынуучу энергия менен камсыздоо - Ryobi 18V: DPS5005ти (же окшошун) бир нече электр компоненттери жана 3D басылган корпусу бар Ryobi One+ батарейкасы менен жөнгө салынуучу энергия менен камсыз кылыңыз
Төмөн энергия керектөө доорунда зымсыз байланыш модулдарынын энергия керектөөсүн кантип туура өлчөө керек?: 6 кадам
Төмөн энергия керектөө доорунда зымсыз байланыш модулдарынын энергия керектөөсүн кантип туура өлчөө керек ?: Аз энергия керектөө нерселердин Интернетинде өтө маанилүү түшүнүк. Көпчүлүк IoT түйүндөрү батарейкалар менен иштеши керек. Зымсыз модулдун энергия керектөөсүн туура өлчөө менен гана, мен канча батареяны так эсептей алам
DIY Lab скамейкасынын энергия менен камсыздалышы: 9 кадам (сүрөттөр менен)
DIY Lab Bench Power Supply: Саламатсыздарбы! Бул Инструкцияга кош келиңиз, мен сизге бул жөнөкөй, бирок укмуштуудай электр энергиясын кантип жасаганымды көрсөтөм! Менде бул темада видео бар жана мен аны көрүүгө кеңеш берер элем. Бул так кадамдарды жана мак үчүн керектүү бардык маалыматты камтыйт
Батарея менен иштеген түзмөк үчүн энергия булагын колдонуу: 5 кадам (сүрөттөр менен)
Батарея менен иштөөчү түзмөк үчүн кубат булагын колдонуу: Бир досум мага бул жарык чачуучу шар оюнчукту алып келип берди, жана мен аны кубат менен камсыз кыла аламбы деп сурады, анткени батареяны дайыма алмаштыруу оор жана экологиялык жактан кыйратуучу болчу. Бул 2 x AA батарейкасы түгөндү (бардыгы 3V)