Turinys:

LED POVstick su „Bluetooth“mažai energijos: 10 žingsnių (su nuotraukomis)
LED POVstick su „Bluetooth“mažai energijos: 10 žingsnių (su nuotraukomis)

Video: LED POVstick su „Bluetooth“mažai energijos: 10 žingsnių (su nuotraukomis)

Video: LED POVstick su „Bluetooth“mažai energijos: 10 žingsnių (su nuotraukomis)
Video: 16 LED POV wand – we got PCB – fun persistence of vision part II 2024, Lapkritis
Anonim
LED POVstick su „Bluetooth“mažai energijos
LED POVstick su „Bluetooth“mažai energijos

Ši instrukcija parodo, kaip sukurti šviesos rašytojo lazdelę su RGB šviesos diodais, kurią galima valdyti naudojant BLE iš savo telefono!

Prasidėjus tamsiam sezonui ir jums reikia nufotografuoti ilgas ekspozicijas: naudodami šią lazdelę galite parašyti paveikslėlyje savo parašą, motyvacinę citatą, meilės deklaraciją, QR kodą, žiniatinklio adresą ar daugelį kitų kiti dalykai…

Ji apima keletą plėtros temų:

  • statant aparatūrą
  • programuojant „Cypress BLE“mikroschemų rinkinį su C
  • sukurkite savo programą, kad galėtumėte ją valdyti.

1 žingsnis: „BLE-LED-Stick“aparatinė įranga

„BLE-LED-Stick“aparatinė įranga
„BLE-LED-Stick“aparatinė įranga
„BLE-LED-Stick“aparatinė įranga
„BLE-LED-Stick“aparatinė įranga
„BLE-LED-Stick“aparatinė įranga
„BLE-LED-Stick“aparatinė įranga
„BLE-LED-Stick“aparatinė įranga
„BLE-LED-Stick“aparatinė įranga

Lazdai jums reikia:

  • Kiparisinis BLE modulis (CY8C4247LQI-BL583)
  • WS2812b RGB-LED juostelė (64LED iš 144Led vienam metrui juostos)
  • Ličio jonų baterija su tinkamu laikikliu (18650)
  • mygtukas
  • duonos lentos gabalas

Pati lazdos aparatūra yra gana paprasta.

„Cypress BLE“modulis yra sumontuotas ant duonos lentos, o šviesos diodai, mygtukas ir maitinimo šaltinis yra tiesiog prijungti prie šios lentos.

Viskas sumontuota, priklijuota arba prisukta prie nedidelio medinės juostelės gabalėlio, kuris pats iš dalies įkišamas į skaidrų poliakriilo vamzdelį. Bet tai nėra būtina. Norėjau viską sumontuoti vamzdžio viduje, bet neradau tinkamo BLE moduliui ir akumuliatoriui, kurie yra gana dideli, palyginti su šviesos diodais. Pirmajam šūviui jums nereikia akrilo vamzdžio.

2 žingsnis: elektronikos surinkimas

Elektronikos surinkimas
Elektronikos surinkimas
Elektronikos surinkimas
Elektronikos surinkimas

Šis žingsnis parodo, kaip sumontuotas BLE modulis ir kokie kaiščiai naudojami tam tikslui.

Kaip ir keliose instrukcijose, naudoju „Cypress BLE Development Kit“. CY8CKIT-042-BLE Greitas pradžios vadovas

Jei norite valdyti modulį atskirai, jums tereikia prijungti maitinimo šaltinius ir naudojamus kaiščius.

Mūsų projektui mes naudojame tik 3.5 kaištį, kad galėtume valdyti LED juostą. Bet, žinoma, galite tai pakeisti naudodami „PSoC Creator“.

Kaip matote PCB paveikslėlyje, aš pridėjau smeigtuko galvutes visuose mikroschemos kampuose, bet praleidau VREF kaištį.

Tokiu būdu modulis yra tinkamai sumontuotas ir neįmanoma neteisingai prijungti modulio.

3 žingsnis: kaip sukurti šriftus?

Kaip sukurti šriftus?
Kaip sukurti šriftus?

Na, manau, kad tai buvo viena įdomiausių problemų, kurias išsprendžiau šio projekto metu.

Žinoma, galima tiesiog sukurti naują šriftą ir parašyti jį masyvu, bet tai tikrai daug darbo!

Taigi ką aš padariau?

Žinojau, kad man reikia kažkokio ASCII konvertavimo į šešiabriaunį žemėlapį. Ir man pasisekė, nes su šia problema susidūriau ne pirmą kartą!:-)

Programinė įranga „GLCD šriftų generatorius“pasielgė teisingai:

Kadangi norėjau išnaudoti visas LED lemputės galimybes, importavau šriftą gana dideliu dydžiu (~ 32 pikselių). Jei naudojate tik didžiąsias raides, jums nereikia rūpintis pakilimais, todėl matomas šrifto dydis padidės dar keliais pikseliais. Bet aš nusprendžiau naudoti didžiąsias ir mažąsias raides. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)

Kai importuojate šriftą į GLCD šriftų generatorių, galite pasirinkti jį eksportuoti skirtingais formatais.

Bandžiau eksportuoti jį tiesiai į antraštes, kurios buvo geros, bet ne tobulos. Gautas eksportas yra šortų masyvas (16 bitų) su baitų šešioliktainėmis reikšmėmis kiekvieno pirmojo 128 ascii simbolio stulpelių stulpeliams. Ne visai tai, ko norėjau ar reikėjo…

Taigi aš importavau masyvą į atvirą biuro skaičiavimo darbalapį. Tada pašalinau „0x“trijose iš keturių verčių ir sujungiau jas į vieną 32 bitų ilgio vertę. Taip pat ištaisiau neteisingą atskirų baitų galingumą.

Gautas masyvas yra 32 bitų verčių N*M masyvas. M yra atitinkamas simbolis, o N - stulpeliai, sudarantys šią raidę. Šiame pirmajame juodraštyje visi simboliai turi tą patį stulpelių skaičių, tai reiškia, kad visos raidės yra vienodai plačios, kaip ir gerai žinomame „Courier“šrifte. Maži simboliai, tokie kaip „i“ar „t“, atrodo tarsi pasiklydę erdvėje.

Todėl kiekvieno simbolio pradžioje pridėjau naują parametrą, norėdamas pasakyti, kiek stulpelių turi šis simbolis arba koks jis yra platus. Taip taupoma atmintis ir tekstas atrodo geriau!

4 žingsnis: BLE valdymo programinė įranga

BLE valdymo programinė įranga
BLE valdymo programinė įranga

BLE programinės įrangos principas yra labai paprastas:

  • Pradžioje tiesiog nieko nedaro.
  • Naudodami BLE galite nustatyti skirtingas animacijas ar tekstus.
  • Kai paspausite mygtuką, bus rodomi atskiri animacijos stulpeliai arba tekstas.
  • Parodžius tekstą, jis vėl laukia.

Tiesiog importuokite kipariso projektą į savo PSoC-Creator ir, jei norite, pakeiskite jį.

„PSoC-4“neturi tiek daug RAM ir blykstės, kad galėtų išlaikyti visus šriftų RGB vaizdus. Todėl man reikėjo būdo, kaip dinamiškai generuoti šviesos diodų turinį iš teksto. Tai gana paprasta, kol kas nieko ypatingo. Iš teksto, kuriame yra daug raidžių, algoritmas paima vieną raidę ir paverčia ją juodai baltu bitų žemėlapių masyvu. Tada jis paima kiekvieną šios vienos raidės bitų žemėlapio stulpelį ir vietoj baltos spalvos į LED masyvą įrašo esamą RGB spalvą. Tokiu būdu galite generuoti vienspalvius tekstus arba naudodami papildomą funkciją pakeisti spalvą po kiekvieno stulpelio, kiekvienos raidės ar net po kiekvieno pikselio.

„Laišką“galima išsaugoti viename baitų kintamajame, o nespalvotą bitkartę reikia išsaugoti tam tikrame masyve.

Duomenų struktūra yra tokia:

Styga: newtext = "Sveiki";

Šriftas: uint32 simboliai = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Spalva: uint32 rgbcolor = 0xHHBBGGRR; // Ryškumas, mėlyna, žalia, raudona kaip 8 bitų vertė

Norėdami konvertuoti eilutę į ekraną, mes atliekame šiuos veiksmus:

getCharacter (): H (8 bitų)

getColumn (int i): stulpelis (32 bitų) (i prasideda nuo pirmo stulpelio, tęsiasi iki paskutinio.), jei (bitas stulpelyje yra 1) LED juostelėje nustatyta kaip spalva. „LED-Strip Array“yra 64 šviesos diodai su 32 bitų spalvomis!

Ir jei rodomas šis stulpelis, mes tęsiame kitą.

Tai lengva.

5 žingsnis: pirmasis bandymas

Pirmasis bandymas
Pirmasis bandymas
Pirmasis bandymas
Pirmasis bandymas
Pirmasis bandymas
Pirmasis bandymas

Dabar, kai programinė įranga veikia, esame pasiruošę pirmiesiems bandymams.

Lengviausias būdas išbandyti įterptąją funkciją yra naudojant „Bluetooth“mažos energijos testavimo programą. Kaip ir „Nordic“ar „Cypress Apps“.

„Nordic“: „nRF Connect for Mobile“

Kiparisas: „CySmart“

Paleiskite „Pov-Stick“ir stebėkite, kaip bus rodoma demonstracinė eilutė. Kai tai bus baigta, laikas paleisti programą. Ieškokite „Povstick“įrenginio ir spustelėkite prisijungti.

Užmezgus ryšį, programa automatiškai atranda visas apibrėžtas paslaugas ir savybes.

Ieškokite pirmosios paslaugos (turėtų prasidėti nuo 0000ccce …). Spustelėkite jį, kad atidarytumėte ir parodytumėte pirmąją charakteristiką (prasideda 0000ccc1). Tada paspauskite rašymo (arba įkėlimo) mygtuką ir parašykite 01 prie šios charakteristikos.

Kai paspausite „Siųsti“, „POVstick“su besikeičiančiomis spalvomis paleis „Color-Knight-rider“animaciją, dar žinomą kaip „Larson Scanner“.

Dėkojame, kad išsiuntėte pirmąją vertę per BLE!

6 veiksmas: pasirinkite animacijas

Pasirinkite animacijas
Pasirinkite animacijas
Pasirinkite animacijas
Pasirinkite animacijas
Pasirinkite animacijas
Pasirinkite animacijas
Pasirinkite animacijas
Pasirinkite animacijas

Programinėje įrangoje apibrėžėme enum „e_Animation“su šiomis reikšmėmis:

typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimation, Animacijos animacija;

Tai reikšmės, galiojančios charakteristikai ccc1. Jei norite pamatyti „CandyCane“animaciją, prie šios savybės turite parašyti 4, 5 arba 6. Jie skiriasi spalvomis.

Dvi specialios animacijos yra „RGB_Control“ir „TextAnimation“. Jei pasirinksite juos suaktyvinti, iš pradžių lazda akivaizdžiai nieko nerodys. Tačiau tai siūlo papildomas galimybes valdyti lazdą su kitomis paslaugomis.

7 žingsnis: RGB valdymas

RGB valdymas
RGB valdymas
RGB valdymas
RGB valdymas
RGB valdymas
RGB valdymas
RGB valdymas
RGB valdymas

„RGB-Control“galima labai lengvai išbandyti naudojant „CySmart“programą, nes šiai charakteristikai naudoju tą patį UUID, kaip ir „Cypress Demo“.

Paleiskite „CySmart“programą ir prisijunkite prie „Povstick“. Pirmiausia prie ccc1 charakteristikos turite parašyti „0x0A“.

0x0A yra šešiakampė reikšmė 10, kuri yra „RGB-Control“animacija.

Tada galite pereiti prie „RGB-LED“valdymo skydelio programoje „CySmart“. Galbūt, norėdami patekti į šį ekraną, turėsite iš naujo paleisti programą. Tada galite valdyti visų šviesos diodų spalvą naudodami šią RGB diagramą.

Žinoma, reikšmes taip pat galite įrašyti tiesiai į charakteristiką.

8 veiksmas: „Text_Animation Service“ir nuolatinio saugojimo paslauga

Teksto_animacijos paslauga ir nuolatinio saugojimo paslauga
Teksto_animacijos paslauga ir nuolatinio saugojimo paslauga

Šios paslaugos nėra taip lengvai išbandomos.

Techniškai taip pat galite naudoti šiaurietišką programą, tačiau turite žinoti, kokias vertes kokiai charakteristikai rašyti.

Taigi, jei norite tai išbandyti, turėtumėte pažvelgti į PSoC projektą, kurio charakteristika turi kokį UUID.

Svarbi yra „Nustatyto greičio“charakteristika. Naudodami šią savybę galite valdyti animacijos greitį.

Naudodami „Set_Animation“, būdingą „PersistentStorageService“, galite valdyti šriftus ir teksto eilutės spalvas. Galiojančios reikšmės yra nurodytos skiltyje „povanimation.h“, du šriftai „mono“ir „serif“, vienos spalvos ir vaivorykštės spalvos. Reikšmės 0 ir 1 rodo tekstą su fiksuota spalva, kurią galima valdyti naudojant RGB_Control charakteristiką. 2 ir 3 reikšmės keičia kiekvieno stulpelio spalvą ir suteikia eilutei gražią vaivorykštę.

„Write_Text_Service“yra kitokia. Į įrenginį galite įrašyti naują eilutę rašydami atskirus simbolius į „Set_Character“charakteristiką. Kiekvieną kartą rašydami gausite pranešimą apie dabartinį eilutės ilgį.

Norėdami pradėti naują eilutę, į „Clear_String“įrašykite „true“.

Tai nėra geriausias diegimas, tačiau jis tinka bet kuriai iki 250 simbolių eilutei, nekeičiant MTU dydžio.

Naujos eilutės rodymas su pradžia, kai paspaudžiamas „Povstick“mygtukas.

9 veiksmas: paleiskite „Android“programą

Tai yra svarbus žingsnis, tačiau gerokai viršija tai, kas nurodyta šioje instrukcijoje. Atsiprašome už tai!

Galbūt galiu įkelti savo bandomąją programą į „Play“parduotuvę, bet ji dar nebaigta arba išleidžiama.

10 veiksmas: rašykite pranešimus paveikslėliais

Rašykite žinutes paveikslėliais
Rašykite žinutes paveikslėliais
Rašykite žinutes paveikslėliais
Rašykite žinutes paveikslėliais
Rašykite žinutes paveikslėliais
Rašykite žinutes paveikslėliais

Štai kodėl aš pirmiausia kuriu šį povsticką: rašyti pranešimus nuotraukose.

Jums reikia trikojo, fotoaparato su ilgo išlaikymo funkcija ir geros vietos.

Nustatykite fotoaparatą ir pirmam bandymui sureguliuokite ekspozicijos laiką iki 10 s.

Paleiskite atleidimą ir pradėkite vaikščioti po paveikslėlį, pradėdami teksto rodymą ant lazdos.

Ir mes čia!

Tinkamai derinant šviesos diodų ryškumą, diafragmą ir ekspozicijos laiką, galima fotografuoti net auštant.

Trys šio žingsnio paveikslėliai rodo visą galimybių spektrą.

Pirmuoju atveju šviesos diodai yra per daug eksponuojami ir sukuria stebuklingą švytėjimą. Tačiau todėl atspindžiai ant žemės yra matomi, o fonas yra gana geras.

Antrasis paveikslėlis yra apšviestas šviesos diodams, tačiau fonas lieka visiškai juodas.

Ir trečiasis rodo gana silpnus šviesos diodus netrukus po saulėlydžio. Šviesos diodai yra tokie ryškūs, kaip ir kitose nuotraukose, tačiau aplinka buvo tokia šviesi, kad turėjau naudoti žemą išvaizdą ir mažą ISO, kad šviesos diodai atrodytų gana tamsūs.

Konkursas „Padaryk švytėjimą 2018“
Konkursas „Padaryk švytėjimą 2018“
Konkursas „Padaryk švytėjimą 2018“
Konkursas „Padaryk švytėjimą 2018“

Antrasis prizas konkurse „Padaryk švytėjimą 2018“

Rekomenduojamas: