Mundarija:
- 1-qadam: BLE-LED-Stick uchun uskunalar
- 2 -qadam: elektronika yig'ilishi
- 3 -qadam: Shriftlarni qanday yaratish kerak?
- 4 -qadam: BLE boshqaruv dasturi
- 5 -qadam: Birinchi sinov
- 6 -qadam: Animatsiyalarni tanlang
- 7 -qadam: RGB nazorati
- 8 -qadam: Text_Animation xizmati va doimiy saqlash xizmati
- 9 -qadam: Android ilovasini ishga tushiring
- 10 -qadam: Xabarlarni rasmlarga yozing
Video: Bluetooth past quvvatli LED POVstick: 10 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Bu ko'rsatma sizga telefoningizdan BLE orqali boshqariladigan RGB svetodiodli yoritgichli tayoqchani qanday yasashni ko'rsatib beradi!
Endi qorong'u mavsum boshlanadi va siz uzoq vaqt rasmga olishingiz kerak bo'ladi: bu tayoq yordamida siz rasmga o'z imzoingizni yoki motivatsion taklifni yoki sevgi izhorini, QR-kodni, veb-manzilni yoki ko'p narsalarni yozishingiz mumkin. boshqa narsalar …
U rivojlanishning bir nechta mavzularini o'z ichiga oladi:
- uskunani qurish
- Cypress BLE chipsetini C bilan dasturlash
- uni boshqarish uchun o'z ilovangizni yarating.
1-qadam: BLE-LED-Stick uchun uskunalar
Pichoq uchun sizga quyidagilar kerak bo'ladi:
- Cypress BLE moduli (CY8C4247LQI-BL583)
- WS2812b RGB-LED tasmasi (har bir metr uchun 144Leddan 64 LED)
- mos keladigan ushlagichli Li-Ion batareyasi (18650)
- tugma
- non bo'lagi
Tayoqning apparati juda oddiy.
Cypress BLE moduli bir bo'lak non paneliga o'rnatilgan va LEDlar, tugma va quvvat manbai faqat shu taxtaga ulangan.
Hamma narsa yog'och polosaning kichik qismiga o'rnatiladi, yopishtiriladi yoki vidalanadi, uning o'zi qisman shaffof poliakril naychaga solinadi. Lekin bu shart emas. Men hamma narsani quvur ichiga o'rnatishni xohlardim, lekin BLE-moduli va LED-larga qaraganda ancha katta bo'lgan batareyani topa olmadim. Birinchi tortishish uchun sizga akril naycha kerak emas.
2 -qadam: elektronika yig'ilishi
Bu qadam sizga BLE-moduli qanday o'rnatilishini va qaysi pinlar qaysi maqsadda ishlatilishini ko'rsatadi.
Bir nechta ko'rsatmalarim singari, men Cypress BLE Development Kit -dan foydalandim. CY8CKIT-042-BLE tez ishga tushirish bo'yicha qo'llanma
Agar siz modulni mustaqil boshqarishni xohlasangiz, faqat quvvat manbalari va ishlatilgan pimlarni ulashingiz kerak.
Loyihamiz uchun biz LED-chizig'ini haydash uchun faqat 3,5-pinni ishlatamiz. Albatta, siz buni PSoC Creator yordamida o'zgartirishingiz mumkin.
PCB rasmida ko'rib turganingizdek, men chipning har bir burchagiga pinhon qo'shdim, lekin men VREF pinini o'tkazib yubordim.
Shunday qilib, modul to'g'ri o'rnatilgan va modulni noto'g'ri ulash mumkin emas.
3 -qadam: Shriftlarni qanday yaratish kerak?
Menimcha, bu loyiha davomida men hal qilgan eng qiziqarli muammolardan biri edi.
Albatta, yangi shriftni loyihalash va uni qatorga yozish mumkin, lekin bu juda ko'p ish!
Xo'sh, men nima qildim?
Men hex-bitmap konvertatsiyasiga qandaydir ASCII kerakligini bilardim. Va men omadli edim, chunki men bu muammo bilan birinchi emasman!:-)
"GLCD shrift generatori" dasturi to'g'ri ish qildi:
Men LED-tayoqchadan maksimal darajada foydalanishni xohlaganim uchun shriftni juda katta hajmda (~ 32 piksel) import qildim. Agar siz faqat katta harflardan foydalansangiz, ko'tarilish haqida g'amxo'rlik qilishingiz shart emas, bu sizning ko'rinadigan shrift hajmini yana bir necha pikselga oshiradi. Lekin men ham katta harflarni, ham kichik harflarni ishlatishni tanladim. (https://uz.wikipedia.org/wiki/Ascender_%28typography%29)
GLCD shrift generatoriga shriftni import qilganingizdan so'ng, siz uni turli formatlarda eksport qilishni tanlashingiz mumkin.
Men uni yaxshi, lekin mukammal bo'lmagan sarlavhalarga eksport qilishga harakat qildim. Olingan eksport-bu birinchi 128-ascii belgisining har bir belgi uchun ustunlar uchun bayt-olti qiymatli qisqa chiziqlar (16bit). Men xohlagan yoki kerak bo'lgan narsa emas …
Shunday qilib, men qatorni ochiq ofis ishchi varag'iga import qildim. Keyin men "0x" ni to'rtta qiymatdan uchtasini olib tashladim va ularni 32 bitli uzunlikdagi qiymatga birlashtirdim. Shuningdek, men alohida baytlarning xatoligini aniqladim.
Olingan qator 32 bitli N*M massividir. M - tegishli belgi va N - bu harfni ko'rsatadigan ustunlar. Bu birinchi qoralamada barcha belgilar bir xil miqdordagi ustunlarga ega, ya'ni hamma harflar, xuddi Courier shriftidagi kabi, bir xil kenglikda. "I" yoki "t" kabi kichik belgilar kosmosda yo'qolganga o'xshaydi.
Shuning uchun men har bir belgining boshiga bu belgi qancha ustunli yoki bu belgi qanchalik kengligini aytish uchun yangi parametr qo'shdim. Bu xotirani tejaydi va matnni yanada yaxshi qiladi!
4 -qadam: BLE boshqaruv dasturi
BLE-dasturiy tamoyili juda oson:
- Boshida hech narsa qilmaydi.
- BLE orqali siz ko'rsatiladigan turli animatsiyalar yoki matnlarni o'rnatishingiz mumkin.
- Tugmani bosgandan so'ng, animatsiya yoki matnning alohida ustunlari ko'rsatiladi.
- Matn ko'rsatilgandan so'ng, u yana kutishda davom etadi.
Kipr loyihasini PSoC-Creator-ga import qiling va agar xohlasangiz, uni o'zgartiring.
PSoC-4-da shriftlarning to'liq RGB-tasvirlarini ushlab turish uchun RAM va fleshka unchalik katta emas. Shuning uchun men LED-kontentni matndan dinamik ravishda yaratish usulini tanlashim kerak edi. Bu juda oddiy, hozircha alohida hech narsa yo'q. Ko'p harfli matndan algoritm bitta harfni oladi va uni qora-oq-bitmapli massivga aylantiradi. Keyin bitta harfli bitmapning har bir ustunini oladi va oq o'rniga LED-qatorga joriy RGB rangini yozadi. Shunday qilib, siz bitta rangli matnlarni yaratishingiz yoki qo'shimcha funktsiya yordamida har bir ustundan, har bir harfdan yoki hatto har bir pikseldan keyin rangni o'zgartirishingiz mumkin.
"Harf" ni bitta bayt o'zgaruvchida saqlash mumkin, qora va oq rangli bitmapni qandaydir massivda saqlash kerak.
Ma'lumotlar tuzilishi quyidagicha:
String: newtext = "Salom";
Shrift: uint32 belgilar = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Rang: uint32 rgbcolor = 0xHHBBGGRR; // Yorqinlik, ko'k, yashil, qizil ranglarning har biri 8 bitli qiymat
Satrni ekranga aylantirish uchun biz quyidagilarni bajaramiz:
getCharacter (): H (8bit)
getColumn (int i): ustun (32bit) (i birinchi ustundan boshlanadi, oxirigacha ishlaydi.) agar (ustundagi bit 1) Stripdagi LED rangga o'rnatilgan bo'lsa. LED-Strip Array-har biri 32 bitli 64 ta LED!
Va agar bu ustun ko'rsatilsa, biz keyingisiga o'tamiz.
Bu oson.
5 -qadam: Birinchi sinov
Endi dasturiy ta'minot ishga tushganda, biz birinchi sinovlarga tayyormiz.
O'rnatilgan funktsiyani sinovdan o'tkazishning eng oson usuli - bu Bluetooth kam quvvatli sinov dasturi. Skandinaviya yoki Cypress ilovalari kabi.
Skandinaviya: mobil uchun nRF ulanish
Cypress: CySmart
Pov-Stick-ni ishga tushiring va demo-satr qanday ko'rsatilishini kuzatib boring. Bu tugallangach, dasturni ishga tushirish vaqti keldi. Povstick qurilmasini qidiring va ulanishni bosing.
Ulanish o'rnatilgandan so'ng, dastur avtomatik ravishda barcha xizmatlar va xususiyatlarni aniqlaydi.
Birinchi xizmatni qidiring (0000ccce bilan boshlanishi kerak …). Uni ochish va birinchi belgini ko'rsatish uchun ustiga bosing (0000ccc1 bilan boshlanadi). Keyin yozish (yoki yuklash) tugmachasini bosing va bu belgiga 01 yozing.
Yuborish tugmachasini bosganingizda, POVstick rang o'zgaruvchi Larson skaneri deb nomlangan Color-Knight-rider animatsiyasini ishga tushiradi.
Tabriklaymiz, siz birinchi qiymatingizni BLE orqali yubordingiz!
6 -qadam: Animatsiyalarni tanlang
Dasturiy ta'minotda biz quyidagi qiymatlarga ega "e_Animation" ni aniqladik:
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}
Bu qiymatlar ccc1 xarakteristikasi uchun amal qiladi. Agar siz CandyCane-animatsiyasini ko'rishni xohlasangiz, bu xususiyatga 4, 5 yoki 6 yozishingiz kerak. Ular ranglarda farq qiladi.
Ikkita maxsus animatsiya - RGB_Control va TextAnimation. Agar siz ularni faollashtirishni tanlagan bo'lsangiz, tayoq birinchi bo'lib hech narsani ko'rsatmaydi. Lekin u sizga tayoqni boshqa xizmatlar bilan boshqarish uchun qo'shimcha variantlarni taklif qiladi.
7 -qadam: RGB nazorati
RGB-Controlni CySmart ilovasi yordamida osonlikcha sinab ko'rish mumkin, chunki men Cypress Demo-dagi kabi bir xil UUID-dan foydalanganman.
CySmart dasturini ishga tushiring va Povstick -ga ulaning. Avval ccc1 xarakteristikasiga "0x0A" yozishingiz kerak.
0x0A-bu 10 uchun olti qiymat, bu ro'yxatda RGB-Control animatsiyasi.
Keyin CySmart ilovasida RGB-LED boshqaruv paneliga o'tishingiz mumkin. Ehtimol, bu ekranga o'tish uchun dasturni qayta ishga tushirishingiz kerak bo'ladi. Keyin siz RGB-diagramma yordamida barcha LEDlarning rangini boshqarishingiz mumkin.
Albatta, siz qiymatlarni to'g'ridan -to'g'ri xarakteristikaga yozishingiz mumkin.
8 -qadam: Text_Animation xizmati va doimiy saqlash xizmati
Bu xizmatlarni tekshirish oson emas.
Texnik jihatdan siz buning uchun odatiy ilovadan ham foydalanishingiz mumkin, lekin siz qaysi xarakteristikaga qanday qiymatlarni yozishni bilishingiz kerak.
Agar siz buni sinab ko'rmoqchi bo'lsangiz, qaysi UUID xususiyatiga ega bo'lgan PSoC loyihasini ko'rib chiqishingiz kerak.
"O'rnatish tezligi" xususiyati muhim ahamiyatga ega. Bu xususiyat yordamida siz animatsiyalar qanchalik tezligini boshqarishingiz mumkin.
PersistentStorageService -ning "Set_Animation" xarakteristikasi yordamida siz matn satrining shriftlari va ranglarini boshqarishingiz mumkin. Amaliy qiymatlar "povanimation.h", ikkita shrift "mono" va "serif" va bitta rangli va kamalak rangida belgilanadi. 0 va 1 qiymatlari matnni RGB_Control xarakteristikasi orqali boshqariladigan sobit rangda ko'rsatadi. 2 va 3 qiymatlari har bir ustun rangini o'zgartiradi va ipga chiroyli kamalak beradi.
"Write_Text_Service" boshqacha. Siz "Set_Character" belgisiga individual belgilar yozib, qurilmaga yangi satr yozishingiz mumkin. Har bir yozishda siz satrning joriy uzunligi to'g'risida bildirishnoma olasiz.
Yangi qatorni boshlash uchun "Clear_String" ga "rost" yozing.
Bu eng yaxshi dastur emas, lekin MTU hajmini o'zgartirmasdan 250 belgigacha bo'lgan har qanday satr uchun ishlaydi.
Povstickdagi tugma bosilganda start bilan yangi qatorning ko'rsatilishi.
9 -qadam: Android ilovasini ishga tushiring
Bu muhim qadam, lekin bu ko'rsatma doirasidan tashqarida. Buning uchun uzr!
Ehtimol, men test-ilovani o'yin do'koniga yuklashim mumkin, lekin u hali tugallanmagan yoki chiqarilmagan.
10 -qadam: Xabarlarni rasmlarga yozing
Xo'sh, shuning uchun men birinchi navbatda bu povstikni quraman: rasmlarga xabar yozish.
Sizga tripod, uzoq ta'sir qilish funktsiyali kamera va yaxshi joylashuv kerak.
Birinchi sinov uchun kamerani o'rnating va ekspozitsiya vaqtini 10 soniyagacha sozlang.
Chiqarishni ishga tushiring va rasm bo'ylab yurishni boshlang, tayoqdagi matnli displeyni boshlang.
Et Voila mana biz!
LED yorug'ligi, diafragma va ta'sir qilish vaqtining to'g'ri kombinatsiyasi bilan hatto tong otganda ham suratga olish mumkin.
Bu bosqichdagi uchta rasm imkoniyatlarning to'liq spektrini ko'rsatadi.
Birinchisida, LEDlar haddan tashqari oshib ketadi va sehrli porlashni yaratadi. Ammo shuning uchun erdagi akslar ko'rinadi va fon yaxshi.
Ikkinchi rasm LEDlar uchun ochiq, lekin bu fonni butunlay qora rangda qoldiradi.
Uchinchisi, quyosh botganidan ko'p o'tmay, xira LEDlarni ko'rsatadi. LEDlar boshqa rasmlardagidek yorug ', lekin atrof -muhit shunchalik yorqin ediki, men LEDlar ancha qorong'i bo'lib ko'rinishi uchun past kuch va past ISO qiymatidan foydalanishim kerak edi.
"Make it Glow" tanlovining ikkinchi mukofoti - 2018
Tavsiya:
Ultra past quvvatli WiFi uy avtomatlashtirish tizimi: 6 qadam (rasmlar bilan)
Ultra past quvvatli WiFi uy avtomatlashtirish tizimi: Ushbu loyihada biz bir necha bosqichda uyning asosiy mahalliy avtomatlashtirish tizimini qanday qurishingiz mumkinligini ko'rsatamiz. Biz markaziy WiFi qurilmasi vazifasini bajaradigan Raspberry Pi -dan foydalanmoqchimiz. Holbuki, tugun tugunlari uchun biz batareyani ishlab chiqarish uchun IOT Cricket -dan foydalanmoqchimiz
LP-2010 AES17 1998 Kommutatsiya kuchaytirgichi past o'tish (past o'tish) filtri: 4 qadam
LP-2010 AES17 1998 kommutatsiya kuchaytirgichi past o'tkazgichli (past o'tkazgichli) filtr: bu past o'tkazgichli filtrning D sinfidagi ajoyib kuchaytirgichi. Yaxshi ishlash, superiro ishlash, oson ulanish bu mahsulotni ishlatishni osonlashtiradi va unga ega bo'lishga arziydi. yuqori xarajatli ishlash
Ultra past vattli, yuqori quvvatli quvurli kuchaytirgich: 13 qadam (rasmlar bilan)
Ultra past vattli, yuqori quvvatli quvurli kuchaytirgich: Men kabi yotoqxona rokchilari uchun shovqin shikoyatidan yomonroq narsa yo'q. Boshqa tomondan, 50 Vt kuchaytirgich yukga bog'lanib, deyarli hamma narsani issiqda tarqatib yuborishi uyat. Shuning uchun men oilaga asoslangan yuqori daromadli preamp qurishga harakat qildim
ESP8266: 3 qadamli ultra past quvvatli podvaldagi suv toshqini signalizatsiyasi
ESP8266 bilan juda past quvvatli podvaldagi suv toshqini signalizatsiyasi: Salom, mening birinchi ko'rsatmaga xush kelibsiz. Mening uyimning podvalini har bir necha yil ichida yozning kuchli momaqaldiroqlari, er osti suvlari yoki hatto quvur yorilishi kabi turli sabablarga ko'ra suv bosadi. Bu yaxshi joy bo'lmasa-da, lekin mening markaziy isitishim
Past kuchlanishli ikki pinli halogenlarni LEDlar bilan almashtiring: 6 qadam (rasmlar bilan)
Past kuchlanishli ikki pimli halogenlarni LEDlar bilan almashtiring: Bu ko'rsatma past kuchlanishli (12V) ikki pimli halogenli armaturani yuqori quvvatli LEDli "lampochka" bilan qanday osonlik bilan qayta jihozlash haqida batafsil ma'lumot beradi. Bu kamroq quvvat sarflaydi (< 10W), uzoqroq (50,000 soat) va taxminan bir xil yorug'lik quvvatini beradi (~ 300 lumen