Turinys:
- 1 žingsnis: „BLE-LED-Stick“aparatinė įranga
- 2 žingsnis: elektronikos surinkimas
- 3 žingsnis: kaip sukurti šriftus?
- 4 žingsnis: BLE valdymo programinė įranga
- 5 žingsnis: pirmasis bandymas
- 6 veiksmas: pasirinkite animacijas
- 7 žingsnis: RGB valdymas
- 8 veiksmas: „Text_Animation Service“ir nuolatinio saugojimo paslauga
- 9 veiksmas: paleiskite „Android“programą
- 10 veiksmas: rašykite pranešimus paveikslėliais
Video: LED POVstick su „Bluetooth“mažai energijos: 10 žingsnių (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Š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
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
Š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?
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 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
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
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-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
Š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
Š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.
Antrasis prizas konkurse „Padaryk švytėjimą 2018“
Rekomenduojamas:
„Pasidaryk pats“daugiafunkcis energijos matuoklis V2.0: 12 žingsnių (su nuotraukomis)
„Pasidaryk pats“daugiafunkcis energijos matuoklis V2.0: Šioje instrukcijoje aš jums parodysiu, kaip padaryti „Wemos“(ESP8266) pagrindu pagamintą daugiafunkcį energijos matuoklį. Šis mažas matuoklis yra labai naudingas prietaisas, kuris stebi įtampą, srovę, galią, energiją ir talpą. Be to, jis taip pat stebi ambi
Pasidaryk pats „Arduino“daugiafunkcis energijos matuoklis V1.0: 13 žingsnių (su nuotraukomis)
Pasidaryk pats „Arduino“daugiafunkcis energijos matuoklis V1.0: Šioje instrukcijoje aš jums parodysiu, kaip pasigaminti „Arduino“pagrindu pagamintą daugiafunkcį energijos matuoklį. Šis mažas matuoklis yra labai naudingas prietaisas, rodantis svarbią informaciją apie elektros parametrus. Prietaisas gali išmatuoti 6 naudingus elektros parametrus
Sukurkite „pasidaryk pats“laistymo puodą su „WiFi“- „Waters Plants“automatiškai ir siunčia įspėjimus, kai vandens yra mažai: 19 žingsnių
Sukurkite „pasidaryk pats“laistymo puodą su „WiFi“- „Waters Plants“automatiškai ir siunčia įspėjimus, kai vandens yra mažai: Šioje pamokoje parodyta, kaip sukurti pritaikytą „WiFi“prijungtą savaiminio laistymo sodinuką naudojant seną sodo sodintuvą, šiukšliadėžę, šiek tiek klijų ir „Self“Laistymo puodo surinkimo rinkinys iš „Adosia“
„Arduino“energijos sąnaudų elektros skaitiklio prietaisas: 13 žingsnių (su nuotraukomis)
„Arduino“energijos sąnaudų elektros skaitiklio prietaisas: ar mokate per daug už sąskaitas už elektrą? Ar norite sužinoti, kiek elektros energijos sunaudoja jūsų virdulys ar šildytuvas? Sukurkite savo nešiojamąjį elektros energijos elektros skaitiklį! Pažiūrėkite, kaip radau šio prietaiso naudojimą
Kaip teisingai išmatuoti belaidžio ryšio modulių energijos suvartojimą mažos energijos suvartojimo laikais?: 6 žingsniai
Kaip teisingai išmatuoti belaidžio ryšio modulių energijos suvartojimą mažo energijos suvartojimo eroje?: Mažas energijos suvartojimas yra labai svarbi daiktų interneto sąvoka. Dauguma daiktų interneto mazgų turi būti maitinami baterijomis. Tik teisingai išmatuodami belaidžio modulio energijos suvartojimą galime tiksliai įvertinti, kiek akumuliatoriaus