Kazalo:

LED POVstick z nizko porabo energije Bluetooth: 10 korakov (s slikami)
LED POVstick z nizko porabo energije Bluetooth: 10 korakov (s slikami)

Video: LED POVstick z nizko porabo energije Bluetooth: 10 korakov (s slikami)

Video: LED POVstick z nizko porabo energije Bluetooth: 10 korakov (s slikami)
Video: Высокая плотность 2022 2024, November
Anonim
LED POVstick z nizko porabo energije Bluetooth
LED POVstick z nizko porabo energije Bluetooth

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

Strojna oprema za BLE-LED-Stick
Strojna oprema za BLE-LED-Stick
Strojna oprema za BLE-LED-Stick
Strojna oprema za BLE-LED-Stick
Strojna oprema za BLE-LED-Stick
Strojna oprema za BLE-LED-Stick
Strojna oprema za BLE-LED-Stick
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

Sestava elektronike
Sestava elektronike
Sestava elektronike
Sestava 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?

Kako ustvariti pisave?
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

Programska oprema za nadzor BLE
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

Prvi test
Prvi test
Prvi test
Prvi test
Prvi test
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

Izberite Animacije
Izberite Animacije
Izberite Animacije
Izberite Animacije
Izberite Animacije
Izberite Animacije
Izberite Animacije
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

Nadzor RGB
Nadzor RGB
Nadzor RGB
Nadzor RGB
Nadzor RGB
Nadzor RGB
Nadzor RGB
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

Storitev Text_Animation in storitev trajnega shranjevanja
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

Napišite sporočila v slikah
Napišite sporočila v slikah
Napišite sporočila v slikah
Napišite sporočila v slikah
Pisanje sporočil v slikah
Pisanje sporočil 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.

Naj bo tekmovanje Glow 2018
Naj bo tekmovanje Glow 2018
Naj bo tekmovanje Glow 2018
Naj bo tekmovanje Glow 2018

Druga nagrada na tekmovanju Make it Glow 2018

Priporočena: