Obsah:

LED POVstick s nízkou spotrebou energie Bluetooth: 10 krokov (s obrázkami)
LED POVstick s nízkou spotrebou energie Bluetooth: 10 krokov (s obrázkami)

Video: LED POVstick s nízkou spotrebou energie Bluetooth: 10 krokov (s obrázkami)

Video: LED POVstick s nízkou spotrebou energie Bluetooth: 10 krokov (s obrázkami)
Video: Умные часы GOKOO S11: что нужно знать // Обзор из реальной жизни 2024, November
Anonim
LED POVstick s Bluetooth s nízkou spotrebou energie
LED POVstick s Bluetooth s nízkou spotrebou energie

Tento návod vám ukáže, ako vytvoriť palicu na písanie svetla s RGB LED diódami, ktorú je možné ovládať pomocou BLE z vášho telefónu!

Teraz, keď začína temná sezóna a je potrebné urobiť dlhé expozície: S touto palicou môžete do obrázku napísať svoj podpis alebo motivačný citát alebo vyznanie lásky, QR kód, webovú adresu alebo mnoho ďalších. iné veci…

Zahŕňa niekoľko vývojových tém:

  • budovanie hardvéru
  • programovanie čipovej sady Cypress BLE pomocou C.
  • vytvorte si vlastnú aplikáciu, ktorá to bude ovládať.

Krok 1: Hardvér pre BLE-LED-Stick

Hardvér pre BLE-LED-Stick
Hardvér pre BLE-LED-Stick
Hardvér pre BLE-LED-Stick
Hardvér pre BLE-LED-Stick
Hardvér pre BLE-LED-Stick
Hardvér pre BLE-LED-Stick
Hardvér pre BLE-LED-Stick
Hardvér pre BLE-LED-Stick

Na palicu potrebujete nasledujúce:

  • Modul cyprusu BLE (CY8C4247LQI-BL583)
  • pásik WS2812b RGB-LED (64 LED diód z pásu s 144 LED na meter)
  • Li-Ion batéria s vhodným držiakom (18650)
  • tlačidlo
  • kúsok chleba

Samotný hardvér palice je celkom jednoduchý.

Modul Cypress BLE je namontovaný na doske a LED diódy, tlačidlo a napájací zdroj sú k nemu jednoducho pripojené.

Všetko je namontované, prilepené alebo priskrutkované k malému kúsku dreveného pásu, ktorý je sám čiastočne vložený do priehľadnej polyakrylovej trubice. Nie je to však nevyhnutné. Chcel som všetko namontovať do trubice, ale nenašiel som vhodný modul BLE a batériu, ktoré sú v porovnaní s diódami LED dosť veľké. Na prvý výstrel nepotrebujete akrylovú trubicu.

Krok 2: Zostavenie elektroniky

Zostava elektroniky
Zostava elektroniky
Zostava elektroniky
Zostava elektroniky

Tento krok ukazuje, ako je modul BLE namontovaný a aké kolíky sa používajú na aký účel.

Rovnako ako vo viacerých mojich pokynoch som použil vývojovú súpravu Cypress BLE. CY8CKIT-042-BLE Stručný sprievodca

Ak chcete modul ovládať samostatne, stačí pripojiť zdroje napájania a použité kolíky.

V našom projekte používame na napájanie pásky LED iba kolík 3,5. Ale to môžete samozrejme zmeniť pomocou PSoC Creator.

Ako vidíte na obrázku plošného spoja, vo všetkých rohoch čipu som pridal špendlíky, ale kolík VREF som preskočil.

Takto je modul správne namontovaný a nie je možné modul nesprávne odpojiť.

Krok 3: Ako generovať písma?

Ako generovať písma?
Ako generovať písma?

Myslím si, že toto bol jeden z najzaujímavejších problémov, ktoré som počas tohto projektu vyriešil.

Samozrejme by sa dalo navrhnúť nové písmo a napísať ho do poľa, ale to je naozaj veľa práce!

Čo som teda urobil?

Vedel som, že potrebujem nejaký druh konverzie ASCII na hex-bitmapu. A mal som šťastie, pretože som nebol prvý s týmto problémom!:-)

Softvér „GLCD Font Generator“urobil správnu vec:

Pretože som chcel z LED páky vyťažiť maximum, importoval som písmo v dosť veľkej veľkosti (~ 32 pixelov). Ak používate iba veľké písmená, nemusia vám záležať na nadradených prvkoch, čo zvýši vašu viditeľnú veľkosť písma o niekoľko pixelov. Ale rozhodol som sa použiť veľké aj malé písmena. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)

Po importovaní písma do generátora písma GLCD sa môžete rozhodnúť exportovať ho v rôznych formátoch.

Skúsil som to exportovať priamo do hlavičiek, čo bolo dobré, ale nie dokonalé. Výsledný export je pole skratiek (16 bitov) s hexadecimálnymi hodnotami pre stĺpce pre každý znak prvého znaku 128-ascii. Nie celkom to, čo som chcel alebo potreboval…

Preto som pole importoval do pracovného hárka kalkulačky otvorenej kancelárie. Potom som odstránil "0x" na troch zo štyroch hodnôt a spojil ich do jednej 32 -bitovej dlhej hodnoty. Opravil som tiež nesprávnu koncovosť jednotlivých bytov.

Výsledné pole je pole N*M s 32 bitovými hodnotami. M je príslušný znak a N sú stĺpce, ktoré tvoria zobrazenie tohto písmena. V tomto prvom koncepte majú všetky znaky rovnaký počet stĺpcov, to znamená, že všetky písmená sú rovnako široké, ako v prípade dobre známeho písma Courier. Malé postavy ako „i“alebo „t“vyzerajú, akoby sa stratili vo vesmíre.

Preto som na začiatku každého znaku pridal nový parameter, aby som povedal, koľko stĺpcov má tento znak alebo aký široký je tento znak. Šetrí to pamäť a text vyzerá lepšie!

Krok 4: Ovládací softvér BLE

Ovládací softvér BLE
Ovládací softvér BLE

Princíp softvéru BLE je veľmi jednoduchý:

  • Na začiatku to nič nerobí.
  • Prostredníctvom BLE môžete nastaviť, aby sa zobrazovali rôzne animácie alebo texty.
  • Po stlačení tlačidla sa zobrazia jednotlivé stĺpce animácie alebo textu.
  • Keď sa text zobrazí, pokračuje v čakaní.

Stačí importovať projekt cypress do vášho PSoC-Creator a podľa potreby ho upraviť.

PSoC-4 nemá toľko pamäte RAM a blesku, aby dokázal pojať úplné obrázky RGB týchto fontov. Preto som potreboval spôsob, ako dynamicky generovať obsah LED z textu. To je celkom jednoduché, zatiaľ nič zvláštne. Algoritmus z textu s mnohými písmenami vezme jedno písmeno a prevedie ho na čierno-biele-bitmapové pole. Potom vezme každý stĺpec tejto jednopísmenovej bitmapy a namiesto bielej zapíše aktuálnu farbu RGB do poľa LED. Týmto spôsobom môžete generovať jednofarebné texty alebo pomocou dodatočnej funkcie zmeniť farbu za každým stĺpcom, každým písmenom alebo dokonca za každým pixelom.

„Písmeno“je možné uložiť do jednej bajtovej premennej, zatiaľ čo čiernobielu bitmapu je potrebné uložiť do určitého druhu poľa.

Štruktúra údajov je nasledovná:

Reťazec: newtext = "Dobrý deň";

Písmo: uint32 znakov = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Farba: uint32 rgbcolor = 0xHHBBGGRR; // Jas, Modrá, Zelená, Červená, každá ako 8bitová hodnota

Ak chcete previesť reťazec na zobrazenie, postupujte takto:

getCharacter (): H (8bit)

getColumn (int i): stĺpec (32bit) (i začína prvým stĺpcom, beží do posledného.) ak (bit v stĺpci je 1) LED v páse je nastavená na farbu. Pole LED Strip Array je 64 LED diód s 32 bitovými farbami!

A ak sa tento stĺpec zobrazí, pokračujeme ďalším.

Je to také ľahké.

Krok 5: Prvý test

Prvý test
Prvý test
Prvý test
Prvý test
Prvý test
Prvý test

Teraz, keď je softvér spustený, sme pripravení na prvé testy.

Vstavanú funkciu je možné najľahšie otestovať pomocou nízkoenergetickej testovacej aplikácie Bluetooth. Rovnako ako severské alebo Cypress aplikácie.

Severské: nRF Connect pre mobil

Cypress: CySmart

Spustite Pov-Stick a sledujte, ako sa bude zobrazovať demo reťazec. Akonáhle je to hotové, je čas spustiť aplikáciu. Vyhľadajte zariadenie Povstick a kliknite na tlačidlo pripojiť.

Po nadviazaní pripojenia aplikácia automaticky zistí všetky definované služby a vlastnosti.

Vyhľadajte prvú službu (mala by začínať na 0000 ccm …). Kliknutím naň otvoríte a zobrazíte prvú charakteristiku (začína na 0000ccc1). Potom kliknite na tlačidlo zapísať (alebo nahrať) a k tejto charakteristike napíšte 01.

Akonáhle stlačíte odoslať, POVstick spustí animáciu Color-Knight-rider aka Larson Scanner s meniacimi sa farbami.

Blahoželáme vám, že ste odoslali svoju prvú hodnotu prostredníctvom služby BLE!

Krok 6: Vyberte animácie

Vyberte položku Animácie
Vyberte položku Animácie
Vyberte položku Animácie
Vyberte položku Animácie
Vyberte položku Animácie
Vyberte položku Animácie
Vyberte položku Animácie
Vyberte položku Animácie

V softvéri sme definovali enum „e_Animation“s nasledujúcimi hodnotami:

typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimation, Animation_Max}

Toto sú hodnoty, ktoré platia pre charakteristiku ccc1. Ak by ste chceli vidieť animáciu CandyCane, musíte k tejto charakteristike napísať 4, 5 alebo 6. Líšia sa farbami.

Dve špeciálne animácie sú RGB_Control a TextAnimation. Ak sa ich rozhodnete aktivovať, páčka na začiatku evidentne neukáže nič. Ponúka však ďalšie možnosti ovládania páčky inými službami.

Krok 7: Ovládanie RGB

Ovládanie RGB
Ovládanie RGB
Ovládanie RGB
Ovládanie RGB
Ovládanie RGB
Ovládanie RGB
Ovládanie RGB
Ovládanie RGB

RGB-Control je možné veľmi ľahko testovať pomocou aplikácie CySmart, pretože som pre túto charakteristiku použil rovnaký UUID ako v Cypress Demo.

Spustite aplikáciu CySmart a pripojte sa k Povstick. Najprv musíte napísať „0x0A“k charakteristike ccc1.

0x0A je hexadecimálna hodnota pre 10, čo je animácia RGB-Control v enume.

Potom sa môžete prepnúť na ovládací panel RGB-LED v aplikácii CySmart. Na túto obrazovku sa môžete dostať až po reštartovaní aplikácie. Potom môžete pomocou tohto RGB diagramu ovládať farbu všetkých LED diód.

Hodnoty môžete samozrejme zapísať aj priamo do charakteristiky.

Krok 8: Služba Text_Animation a služba trvalého úložiska

Služba Text_Animation a služba trvalého ukladania
Služba Text_Animation a služba trvalého ukladania

Tieto služby nie je také ľahké testovať.

Technicky na to môžete použiť aj severskú aplikáciu, ale musíte vedieť, aké hodnoty je potrebné zapísať do ktorej charakteristiky.

Ak ich teda chcete otestovať, mali by ste sa pozrieť na projekt PSoC, ktorého charakteristika má ktorý UUID.

Dôležitou položkou je charakteristika „nastavenej rýchlosti“. Pomocou tejto charakteristiky môžete ovládať, ako rýchlo sú animácie.

S charakteristikou „Set_Animation“služby PersistentStorageService môžete ovládať písma a farby textového reťazca. Platné hodnoty sú definované v „povanimation.h“, dvoch písmach „mono“a „serif“a jednofarebných a dúhových. Hodnoty 0 a 1 zobrazujú text s pevnou farbou, ktorú je možné ovládať pomocou charakteristiky RGB_Control. Hodnoty 2 a 3 menia farbu pre každý stĺpec a dodávajú reťazcu peknú dúhu.

Služba „Write_Text_Service“je celkom odlišná. Do zariadenia môžete napísať nový reťazec zapísaním jednotlivých znakov do charakteristiky „Set_Character“. Pri každom zápise dostanete späť upozornenie na aktuálnu dĺžku reťazca.

Ak chcete začať nový reťazec, napíšte „true“do „Clear_String“.

Toto nie je najlepšia implementácia, ale funguje pre ľubovoľný reťazec do 250 znakov bez zmeny veľkosti MTU.

Zobrazenie nového reťazca so štartom po stlačení tlačidla na Povstiku.

Krok 9: Spustite aplikáciu pre Android

Toto je dôležitý krok, ktorý však presahuje rámec tohto pokynu. Ospravedlňujem sa za to!

Možno by som mohol svoju testovaciu aplikáciu nahrať do obchodu Play, ale ešte nie je dokončená alebo uvoľniteľná.

Krok 10: Napíšte správy do obrázkov

Píšte správy do obrázkov
Píšte správy do obrázkov
Píšte správy do obrázkov
Píšte správy do obrázkov
Píšte správy do obrázkov
Píšte správy do obrázkov

To je dôvod, prečo staviam tento povstick na prvom mieste: písať správy v obrázkoch.

Potrebujete statív, fotoaparát s funkciou dlhej expozície a nejaké dobré miesto.

Pri prvom teste nastavte fotoaparát a upravte expozičný čas na 10 s.

Spustite uvoľnenie a začnite prechádzať obrázkom a začnite textové zobrazenie na páčke.

Et Voila, sme tam!

So správnou kombináciou jasu LED, clony a expozičného času je dokonca možné fotografovať za úsvitu.

Tri obrázky v tomto kroku ukazujú kompletné spektrum možností.

V prvom sú LED diódy preexponované a vytvárajú magickú žiaru. Ale práve preto sú odrazy na zemi viditeľné a pozadie je celkom dobré.

Druhý obrázok je pre LED diódy exponovaný, ale pozadie zostane úplne čierne.

A ten tretí ukazuje dosť slabé LED diódy krátko po západe slnka. LED diódy sú jasné ako na ostatných obrázkoch, ale prostredie bolo také jasné, že som musel použiť nízku clonu a nízke ISO, aby diódy LED vyzerali dosť tmavé.

Make it Glow Contest 2018
Make it Glow Contest 2018
Make it Glow Contest 2018
Make it Glow Contest 2018

Druhá cena v súťaži Make it Glow Contest 2018

Odporúča: