Kazalo:
- 1. korak: Strojna oprema za BLE-LED-Stick
- 2. korak: Montaža elektronike
- 3. korak: Kako ustvariti pisave?
- 4. korak: programska oprema za nadzor BLE
- 5. korak: Prvi test
- 6. korak: Izberite animacije
- 7. korak: Nadzor RGB
- 8. korak: storitev Text_Animation in storitev trajnega shranjevanja
- 9. korak: Zaženite aplikacijo Android
- 10. korak: Napišite sporočila v slikah
Video: LED POVstick z nizko porabo energije Bluetooth: 10 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta navodila vam pokažejo, kako sestaviti palico za pisanje luči z RGB LED diodami, ki jih je mogoče upravljati prek BLE iz telefona!
Zdaj, ko se začne temna sezona in morate posneti fotografije z dolgo osvetlitvijo: s to palico lahko na sliko vpišete svoj podpis ali motivacijski citat ali izjavo o ljubezni, QR-kodo, spletni naslov ali številne druge. druge stvari…
Zajema več razvojnih tem:
- izdelava strojne opreme
- programiranje nabora čipov Cypress BLE s C
- ustvarite svojo aplikacijo za nadzor.
1. korak: Strojna oprema za BLE-LED-Stick
Za palico potrebujete naslednje:
- Modul BLE iz ciprese (CY8C4247LQI-BL583)
- WS2812b RGB-LED-trak (64LEDs od 144Led na meter traku)
- litij-ionska baterija z ustreznim držalom (18650)
- gumb
- kos mize
Strojna oprema same palice je precej preprosta.
Modul Cypress BLE je nameščen na kos plošče, LED diode, gumb in napajalnik pa so samo povezani s to ploščo.
Vse je nameščeno, zlepljeno ali privita na majhen kos lesenega traku, ki je sam delno vstavljen v prozorno poliakrilno cev. Toda to ni nujno. Želel sem vgraditi vse v cev, vendar nisem našel primernega za modul BLE in baterijo, ki sta v primerjavi z LED precej velika. Za prvi posnetek ne potrebujete akrilne cevi.
2. korak: Montaža elektronike
Ta korak prikazuje, kako je modul BLE nameščen in kateri zatiči se uporabljajo za kateri namen.
Kot v več mojih navodilih sem uporabil razvojni komplet Cypress BLE. CY8CKIT-042-BLE Navodila za hiter začetek
Če želite z modulom upravljati sami, morate priključiti samo vire napajanja in uporabljene zatiče.
Za naš projekt uporabljamo le pin 3.5 za pogon LED-traku. Seveda pa lahko to spremenite s programom PSoC Creator.
Kot lahko vidite na sliki tiskanega vezja, sem v vse vogale čipa dodal zatiče, vendar sem preskočil zatič VREF.
Na ta način je modul pravilno nameščen in modula ni mogoče napačno povezati.
3. korak: Kako ustvariti pisave?
No, mislim, da je bil to eden najbolj zanimivih problemov, ki sem jih rešil med tem projektom.
Seveda bi lahko oblikovali novo pisavo in jo zapisali v matriko, vendar je to res veliko dela!
Kaj sem torej naredil?
Vedel sem, da potrebujem nekakšno pretvorbo ASCII v šestnajstiško sliko. Imel sem srečo, ker nisem bil prvi s tem problemom!:-)
Programska oprema "GLCD Font Generator" je naredila prav:
Ker sem želel kar najbolje izkoristiti LED-palico, sem uvozil pisavo v precej veliki velikosti (~ 32 slikovnih pik). Če uporabljate samo velike tiskane črke, vam ni treba skrbeti za vzpone, kar bo povečalo vašo vidno velikost pisave še za nekaj slikovnih pik. Odločil sem se, da uporabljam tako velike kot majhne črke. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
Ko uvozite pisavo v generator pisav GLCD, jo lahko izvozite v različnih oblikah.
Poskušal sem ga izvoziti neposredno v glave, kar je bilo dobro, vendar ne popolno. Nastali izvoz je niz kratkih hlač (16 bitov) s hete-vrednostmi bajtov za stolpce za vsak znak prvega znaka 128-ascii. Ni ravno tisto, kar sem hotel ali potreboval …
Zato sem matriko uvozil na odprt pisarniški delovni list calc. Nato sem odstranil "0x" pri treh od štirih vrednosti in jih združil v eno 32 -bitno dolgo vrednost. Odpravil sem tudi napačno končnost posameznih bajtov.
Nastala matrika je matrika N*M z 32 -bitnimi vrednostmi. M je ustrezni znak in N so stolpci, ki sestavljajo prikaz te črke. V tem prvem osnutku imajo vsi znaki enako število stolpcev, kar pomeni, da so vse črke enako široke, kot v dobro znani pisavi Courier. Majhni liki, kot sta "i" ali "t", izgledajo kot izgubljeni v vesolju.
Zato sem dodal nov parameter na začetku vsakega znaka, da povem, koliko stolpcev ima ta znak ali kako širok je ta znak. Tako prihranite spomin in izboljšate videz besedila!
4. korak: programska oprema za nadzor BLE
Načelo programske opreme BLE je zelo preprosto:
- Na začetku preprosto ne naredi ničesar.
- Preko BLE lahko nastavite različne animacije ali besedila za prikaz.
- Ko pritisnete gumb, se prikažejo posamezni stolpci animacije ali besedila.
- Ko se besedilo prikaže, znova čaka.
Uvozite projekt ciprese v svoj PSoC-Creator in ga po želji spremenite.
PSoC-4 nima toliko RAM-a in bliskavice, da bi lahko imel popolne RGB-slike pisav. Zato sem potreboval način za dinamično ustvarjanje LED-vsebine iz besedila. To je precej preprosto, zaenkrat nič posebnega. Iz besedila z veliko črkami algoritem vzame eno črko in jo pretvori v črno-belo bitno sliko. Nato vzame vsak stolpec te enočrkovne bitne slike in namesto bele beleži trenutno barvo RGB v matriko LED. Na ta način lahko ustvarite enobarvna besedila ali z dodatno funkcijo spremenite barvo za vsakim stolpcem, vsako črko ali celo za vsako slikovno piko.
"Črko" je mogoče shraniti v eno bajtno spremenljivko, medtem ko je treba črno-belo bitno sliko shraniti v neke vrste matriko.
Struktura podatkov je naslednja:
Niz: newtext = "Pozdravljeni";
Pisava: uint32 znakov = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColum}; Barva: uint32 rgbcolor = 0xHHBBGGRR; // Svetlost, modra, zelena, rdeča vsaka kot 8 -bitna vrednost
Za pretvorbo niza za prikaz naredimo naslednje:
getCharacter (): H (8bit)
getColumn (int i): stolpec (32bit) (i se začne s prvim stolpcem, teče do zadnjega.) if (bit v stolpcu je 1) LED v traku je nastavljen na barvo. Polje LED trakov je 64 LED z 32-bitnimi barvami!
Če se prikaže ta stolpec, nadaljujemo z naslednjim.
Tako enostavno je.
5. korak: Prvi test
Zdaj, ko se programska oprema zažene, smo pripravljeni na prve teste.
Najlažji način za preizkušanje vdelane funkcije je aplikacija za testiranje nizke porabe energije Bluetooth. Tako kot Nordic ali Cypress Apps.
Nordijsko: nRF Connect za mobilne naprave
Cypress: CySmart
Zaženite Pov-Stick in opazujte, kako bo prikazan demo-niz. Ko je to končano, je čas za zagon aplikacije. Poiščite napravo Povstick in kliknite povezavo.
Ko je povezava vzpostavljena, aplikacija samodejno odkrije vse definirane storitve in značilnosti.
Poiščite prvo storitev (začeti se mora z 0000 ccm …). Kliknite nanjo, da jo odprete in prikažete prvo značilnost (začne se z 0000ccc1). Nato pritisnite gumb za pisanje (ali nalaganje) in tej lastnosti napišite 01.
Ko pritisnete gumb za pošiljanje, bo POVstick zagnal animacijo Color-Knight-jahač, imenovano Larson Scanner, s spreminjanjem barv.
Čestitamo, prvo vrednost ste poslali preko BLE!
6. korak: Izberite animacije
V programski opremi smo opredelili enum "e_Animation" z naslednjimi vrednostmi:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, Text, RGB_ContA, Text;
To so vrednosti, ki veljajo za lastnost ccc1. Če želite videti animacijo CandyCane, morate tej značilnosti napisati 4, 5 ali 6. Razlikujejo se po barvah.
Dve posebni animaciji sta RGB_Control in TextAnimation. Če ste se odločili, da jih aktivirate, palica na začetku očitno ne bo nič pokazala. Ponuja pa vam dodatne možnosti za nadzor palice z drugimi storitvami.
7. korak: Nadzor RGB
RGB-Control je zelo enostavno preizkusiti z aplikacijo CySmart, ker sem za to lastnost uporabil isti UUID kot v predstavitvi Cypress.
Zaženite aplikacijo CySmart in se povežite s Povstikom. Najprej morate na oznako ccc1 napisati "0x0A".
0x0A je šestnajstiška vrednost 10, ki je animacija RGB-Control v enumu.
Nato lahko preklopite na nadzorno ploščo RGB-LED v aplikaciji CySmart. Morda boste morali znova zagnati aplikacijo, da pridete na ta zaslon. Nato lahko s tem diagramom RGB nadzirate barvo vseh LED.
Seveda lahko vrednosti vnesete tudi neposredno v lastnost.
8. korak: storitev Text_Animation in storitev trajnega shranjevanja
Teh storitev ni tako enostavno preizkusiti.
Tehnično lahko za to uporabite tudi nordijsko aplikacijo, vendar morate vedeti, katere vrednosti na katero značilnost zapisati.
Torej, če želite te preizkusiti, si oglejte projekt PSoC, katerega značilnost ima kateri UUID.
Pomembna pri tem je značilnost "Set-Speed". S to lastnostjo lahko nadzorujete, kako hitre so animacije.
Z značilnostjo "Set_Animation" za storitev PersistentStorageService lahko nadzorujete pisave in barve besedilnega niza. Veljavne vrednosti so določene v "povanimation.h", dveh pisavah "mono" in "serif" ter enobarvnih in mavričnih barvah. Vrednosti 0 in 1 prikazujeta besedilo s fiksno barvo, ki ga je mogoče upravljati prek značilnosti RGB_Control. Vrednosti 2 in 3 spreminjata barvo vsakega stolpca in dajejo nizu lepo mavrico.
"Write_Text_Service" je nekako drugačen. Na napravo lahko napišete nov niz tako, da v značaj "Set_Character" vnesete posamezne znake. Ob vsakem pisanju boste prejeli obvestilo o trenutni dolžini niza.
Če želite začeti nov niz, v "Clear_String" napišite "true".
To ni najboljša izvedba, vendar deluje za kateri koli niz do 250 znakov brez spreminjanja velikosti MTU.
Prikaz novega niza z začetkom ob pritisku gumba na Povstick -u.
9. korak: Zaženite aplikacijo Android
To je pomemben korak, ki pa presega obseg tega navodila. Žal mi je za to!
Morda bi lahko svojo testno aplikacijo naložil v trgovino za predvajanje, vendar še ni končana ali sprostljiva.
10. korak: Napišite sporočila v slikah
No, zato najprej ustvarim ta povstick: za pisanje sporočil v slikah.
Potrebujete stativ, fotoaparat s funkcijo dolge osvetlitve in nekaj dobre lokacije.
Nastavite fotoaparat in za prvi preizkus nastavite čas osvetlitve na 10 s.
Sprožite sprostitev in začnite hoditi po sliki ter zagnati prikaz besedila na ključku.
Et Voila, tu smo!
S pravo kombinacijo svetlosti LED, zaslonke in časa osvetlitve je mogoče celo fotografirati ob zori.
Tri slike v tem koraku prikazujejo celoten spekter možnosti.
V prvem so LED diode preveč osvetljene in ustvarjajo čaroben sijaj. Toda zato so odsevi na tleh vidni in ozadje je precej dobro.
Druga slika je izpostavljena za LED diode, vendar ostane ozadje popolnoma črno.
Tretji prikazuje kmalu po sončnem zahodu precej zatemnjene LED diode. LED diode so tako svetle kot na drugih slikah, vendar je bilo okolje tako svetlo, da sem moral uporabiti nizko zaslonko in nizek ISO, tako da so LED diode precej temne.
Druga nagrada na tekmovanju Make it Glow 2018
Priporočena:
Domači avtomatizacijski sistem WiFi z nizko porabo energije: 6 korakov (s slikami)
Domači avtomatizacijski sistem z nizko porabo energije: V tem projektu vam pokažemo, kako lahko v nekaj korakih zgradite osnovni lokalni avtomatizacijski sistem. Uporabili bomo Raspberry Pi, ki bo deloval kot osrednja naprava WiFi. Medtem ko bomo za končna vozlišča uporabili IOT Cricket za izdelavo moči baterije
Enostaven BLE z zelo nizko porabo energije v Arduinu, 2. del - Nadzor temperature/vlažnosti - Rev 3: 7 korakov
Enostaven BLE z zelo nizko porabo energije v Arduinu, 2. del - Nadzor temperature/vlažnosti - Rev 3: Posodobitev: 23. november 2020 - Prva zamenjava 2 x AAA baterij od 15. januarja 2019, tj. 22 mesecev za 2xAAA alkalno Posodobitev: 7. april 2019 - Rev 3 od lp_BLE_TempHumidity, doda datumske/časovne ploskve z uporabo pfodApp V3.0.362+in samodejno dušenje
Določite povprečno trenutno porabo naprave z nizko porabo energije: 4 koraki
Določite povprečno trenutno porabo naprave z motnjami pri nizki porabi energije: Uvod Zaradi radovednosti sem hotel vedeti, kako dolgo lahko baterije zdržijo v mojem daljinskem senzorju temperature. Za serijo sta potrebni dve AA celici, vendar ni v pomoč, če postavite ampermeter v vrsto in opazujete zaslon, ker je poraba energije
Enostaven BLE z nizko porabo energije v Arduinu, 3. del - zamenjava Nano V2 - koraki 3: 7 (s slikami)
Enostavno BLE z nizko porabo energije v Arduinu, 3. del - Zamenjava Nano V2 - Rev. 3: Posodobitev: 7. april 2019 - 3. rev. Lp_BLE_TempHumidity, doda datumske/časovne ploskve z uporabo pfodApp V3.0.362+in samodejno dušenje pri pošiljanju podatkov Posodobitev: 24. marec 2019 - 2. revija lp_BLE_TempHumidity, dodaja več možnosti ploskve in i2c_ClearBus, dodaja GT832E_
Vremenska postaja z nizko porabo energije: 6 korakov (s slikami)
Vremenska postaja z nizko porabo energije: Zdaj v svoji tretji različici, ki je bila preizkušena že več kot dve leti, se moja vremenska postaja nadgrajuje za boljše delovanje pri nizki porabi energije in zanesljivost prenosa podatkov. Poraba energije - v drugih mesecih razen decembra in januarja ni problem,