Sadržaj:
- Korak 1: Oprema za BLE-LED-Stick
- Korak 2: Montaža elektronike
- Korak 3: Kako generirati fontove?
- Korak 4: Softver za kontrolu BLE
- Korak 5: Prvi test
- Korak 6: Odaberite animacije
- Korak 7: RGB kontrola
- Korak 8: Usluga Text_Animation i usluga trajne pohrane
- Korak 9: Pokrenite Android aplikaciju
- Korak 10: Napišite poruke u slikama
Video: LED POVstick s Bluetooth -om s niskom potrošnjom energije: 10 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Ove upute vam pokazuju kako izgraditi svjetlosni štapić s RGB LED diodama koji se može kontrolirati putem BLE -a s vašeg telefona!
Sada kada počinje mračna sezona i morate snimiti fotografije s dugom ekspozicijom: Ovim štapićem možete zapisati svoj potpis na sliku, ili motivacijski citat, ili izjavu ljubavi, QR-kod, web-adresu ili mnoge druge stvari druge…
Pokriva nekoliko razvojnih tema:
- izgradnja hardvera
- programiranje Cypress BLE čipseta sa C
- izradite vlastitu aplikaciju za upravljanje njome.
Korak 1: Oprema za BLE-LED-Stick
Za štap vam je potrebno sljedeće:
- BLE modul čempresa (CY8C4247LQI-BL583)
- WS2812b RGB-LED traka (64 LED sa 144 LED po traci metra)
- Li-Ion baterija s odgovarajućim držačem (18650)
- tipkalo
- komad matične ploče
Hardver samog štapa prilično je jednostavan.
Cypress BLE modul montiran je na komad ploče, a LED diode, gumb i napajanje su samo spojeni na ovu ploču.
Sve je montirano, zalijepljeno ili zašrafljeno na mali komad drvene trake, koja je sama djelomično umetnuta u prozirnu poliakrilnu cijev. Ali to nije nužno. Htio sam sve montirati unutar cijevi, ali nisam našao odgovarajući za BLE-modul i bateriju koji su prilično veliki, u usporedbi sa LED-ima. Za prvi snimak ne trebate akrilnu cijev.
Korak 2: Montaža elektronike
Ovaj korak prikazuje kako se BLE-modul montira i koje se igle koriste u koje svrhe.
Kao i u nekoliko mojih instrukcija, koristio sam Cypress BLE Development Kit. CY8CKIT-042-BLE Vodič za brzi početak
Ako želite samostalno upravljati modulom, sve što trebate spojiti su izvori napajanja i korišteni pinovi.
Za naš projekt koristimo samo pin 3.5 za pogon LED trake. Naravno, to možete promijeniti s PSoC Creator.
Kao što možete vidjeti na slici PCB -a, dodao sam pinheads u sve uglove čipa, ali sam preskočio VREF pin.
Na ovaj način modul je pravilno montiran i nemoguće je pogrešno spojiti modul.
Korak 3: Kako generirati fontove?
Pa, mislim da je ovo bio jedan od najzanimljivijih problema koje sam riješio tijekom ovog projekta.
Naravno da se može samo dizajnirati novi font i zapisati ga u niz, ali to je zaista mnogo posla!
Pa što sam učinio?
Znao sam da mi je potrebna neka vrsta ASCII konverzije u hex-bitmap. I imao sam sreću, jer nisam bio prvi s ovim problemom!:-)
Softver "GLCD Font Generator" učinio je pravu stvar:
Budući da sam želio izvući maksimum iz LED štapa, uvezao sam font u prilično velikoj veličini (~ 32 piksela). Ako koristite samo velika slova, ne morate brinuti o usponima, što će povećati vašu vidljivu veličinu fonta za još nekoliko piksela. No, odlučio sam koristiti velika i mala slova. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
Nakon što uvezete font u GLCD Font generator, možete ga izvesti u različitim formatima.
Pokušao sam ga izvesti izravno u zaglavlja što je bilo dobro, ali nije savršeno. Dobiveni izvoz je niz kratkih hlača (16 bita) s hete-hete-vrijednostima za stupce za svaki znak prvog 128-ascii znaka. Nije baš ono što sam želio ili trebao …
Pa sam uvezao niz u otvoreni uredski radni list calc. Zatim sam uklonio "0x" na tri od četiri vrijednosti i spojio ih u jednu vrijednost od 32 bita. Ispravio sam i pogrešnu krajnost pojedinih bajtova.
Rezultirajući niz je N*M niz od 32 bitnih vrijednosti. M je odgovarajući znak, a N stupci koji čine prikaz ovog slova. U ovom prvom nacrtu svi znakovi imaju isti broj stupaca, što znači da su sva slova jednako široka, poput poznatog slova Courier. Mali likovi poput "i" ili "t" izgledaju kao da su izgubljeni u prostoru.
Stoga sam dodao novi parametar na početak svakog znaka kako bih rekao, koliko stupaca ovaj znak ima ili koliko je širok. Ovo štedi memoriju i čini da tekst izgleda bolje!
Korak 4: Softver za kontrolu BLE
Princip BLE softvera je vrlo jednostavan:
- Na početku jednostavno ne radi ništa.
- Putem BLE -a možete postaviti različite animacije ili tekstove za prikaz.
- Nakon što pritisnete gumb, prikazuju se pojedinačni stupci animacije ili teksta.
- Nakon što se tekst prikaže, nastavlja se čekati ponovo.
Samo uvezite projekt čempresa u svoj PSoC-Creator i promijenite ga ako želite.
PSoC-4 nema toliko RAM-a i bljeskalice da može držati potpune RGB-slike fontova. Stoga mi je trebao način za dinamičko generiranje LED sadržaja iz teksta. To je prilično jednostavno, dosad ništa posebno. Od teksta s mnogo slova, algoritam uzima jedno slovo i pretvara ga u crno-bijelo-bitmap polje. Zatim uzima svaki stupac ove jednoslovne bitmape i umjesto bijele, zapisuje trenutnu RGB boju u LED niz. Na ovaj način možete generirati jednobojne tekstove ili dodatnom funkcijom promijeniti boju iza svakog stupca, svakog slova ili čak iza svakog piksela.
"Slovo" se može pohraniti u jednu bajt-varijablu, dok crno-bijelu bitmapu treba pohraniti u neku vrstu niza.
Struktura podataka je sljedeća:
Niz: newtext = "Zdravo";
Font: uint32 znakova = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount, … LastCharacter_LastColum}; Boja: uint32 rgbcolor = 0xHHBBGGRR; // Svjetlina, plava, zelena, crvena svaka kao 8 -bitna vrijednost
Za pretvaranje niza za prikaz radimo sljedeće:
getCharacter (): H (8 bit)
getColumn (int i): stupac (32bit) (i počinje s prvim stupcem, radi do posljednjeg.) if (bit u stupcu je 1) LED u traci je postavljen na boju. Niz LED traka sastoji se od 64 LED diode sa po 32 bitne boje!
A ako se prikaže ovaj stupac, nastavljamo sa sljedećim.
Ovo je tako lako.
Korak 5: Prvi test
Sada kada softver radi, spremni smo za prve testove.
Najjednostavniji način testiranja ugrađene funkcije je Bluetooth testna aplikacija za nisku potrošnju energije. Kao Nordic ili Cypress Apps.
Nordijski: nRF Connect za mobitele
Čempres: CySmart
Pokrenite Pov-Stick i promatrajte kako će se demonstrirati niz. Nakon što ovo završi, vrijeme je za pokretanje aplikacije. Pretražite Povstick uređaj i kliknite na poveži.
Nakon što se veza uspostavi, aplikacija automatski otkriva sve definirane usluge i karakteristike.
Potražite prvu uslugu (trebala bi početi s 0000ccce …). Kliknite na nju da biste je otvorili i prikazali prvu karakteristiku (počinje s 0000ccc1). Zatim pritisnite gumb za pisanje (ili učitavanje) i upišite 01 na ovu karakteristiku.
Nakon što pritisnete send, POVstick će pokrenuti animaciju Color-Knight-jahača zvanu Larson Scanner s promjenom boja.
Čestitamo, poslali ste svoju prvu vrijednost putem BLE -a!
Korak 6: Odaberite animacije
U softveru smo definirali popis "e_Animation" sa sljedećim vrijednostima:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_ContA, Text, Animation, Text
To su vrijednosti koje vrijede za karakteristiku ccc1. Ako želite vidjeti animaciju CandyCane, morate ovoj značajki napisati 4, 5 ili 6. Razlikuju se po bojama.
Dvije posebne animacije su RGB_Control i TextAnimation. Ako ste ih odlučili aktivirati, palica u početku očito neće ništa pokazati. Ali nudi vam dodatne mogućnosti za kontrolu štapa s drugim uslugama.
Korak 7: RGB kontrola
RGB-kontrola može se vrlo lako testirati s CySmart aplikacijom jer sam za tu karakteristiku koristio isti UUID kao u Cypress Demo.
Pokrenite aplikaciju CySmart i spojite se na Povstick. Prvo morate unijeti "0x0A" u karakteristiku ccc1.
0x0A je heksadecimalna vrijednost za 10, što je animacija RGB-kontrole u popisu.
Zatim se možete prebaciti na RGB-LED upravljačku ploču u aplikaciji CySmart. Možda morate ponovno pokrenuti aplikaciju da biste došli do ovog zaslona. Tada možete kontrolirati boju svih LED dioda pomoću ovog RGB-dijagrama.
Naravno, vrijednosti možete upisati i izravno u karakteristiku.
Korak 8: Usluga Text_Animation i usluga trajne pohrane
Ove usluge nije tako lako isprobati.
Tehnički, za to možete koristiti i nordijsku aplikaciju, ali morate znati koje vrijednosti napisati na koju karakteristiku.
Dakle, ako ih želite testirati, trebali biste pogledati projekt PSoC, čija karakteristika ima koji UUID.
Važna značajka je "Set-Speed" karakteristika. Pomoću ove karakteristike možete kontrolirati koliko su brze animacije.
S "Set_Animation" karakteristikom PersistentStorageService možete kontrolirati fontove i boje tekstualnog niza. Valjane vrijednosti definirane su u "povanimation.h", dva fonta "mono" i "serif" te jednobojno i u boji duge. Vrijednosti 0 i 1 prikazuju tekst fiksne boje, kojim se može upravljati putem karakteristike RGB_Control. Vrijednosti 2 i 3 mijenjaju boju za svaki stupac i daju nizu lijepu dugu.
"Write_Text_Service" je nešto drugačije. Možete upisati novi niz na uređaj upisivanjem pojedinačnih znakova u karakteristiku "Set_Character". Prilikom svakog pisanja dobit ćete obavijest o trenutnoj duljini niza.
Da biste pokrenuli novi niz, napišite "true" u "Clear_String".
Ovo nije najbolja implementacija, ali radi za bilo koji niz do 250 znakova bez promjene veličine MTU -a.
Prikaz novog niza s početkom kada se pritisne tipka na Povsticku.
Korak 9: Pokrenite Android aplikaciju
Ovo je važan korak, ali daleko izvan okvira ovog uputstva. Žao nam je zbog toga!
Možda bih mogao prenijeti svoju testnu aplikaciju u trgovinu za igru, ali još nije dovršena niti se može objaviti.
Korak 10: Napišite poruke u slikama
Pa, zato sam uopće izgradio ovaj povstick: Za pisanje poruka u slikama.
Potreban vam je stativ, fotoaparat s funkcijom duge ekspozicije i neko dobro mjesto.
Postavite kameru i podesite vrijeme ekspozicije na 10s za prvi test.
Pokrenite otpuštanje i počnite hodati kroz sliku, pokrećući prikaz teksta na štapiću.
Et Voila tu smo!
Uz odgovarajuću kombinaciju LED svjetline, otvora blende i vremena ekspozicije moguće je čak i fotografirati u zoru.
Tri slike u ovom koraku prikazuju potpuni spektar mogućnosti.
U prvom, LED diode su preosvijetljene i stvaraju čarobni sjaj. Ali zato su refleksije na tlu vidljive i pozadina je prilično dobra.
Druga slika je izložena za LED diode, ali pozadina ostaje potpuno crna.
I treći prikazuje prilično prigušene LED diode ubrzo nakon zalaska sunca. LED diode su svijetle kao na drugim slikama, ali okruženje je bilo toliko svijetlo da sam morao koristiti nisku otvor blende i nizak ISO kako bi LED diode izgledale prilično tamno.
Druga nagrada na natjecanju Make it Glow 2018
Preporučeni:
DIY višenamjenski mjerač energije V2.0: 12 koraka (sa slikama)
DIY višenamjenski mjerač energije V2.0: U ovom uputstvu pokazat ću vam kako napraviti višenamjenski mjerač energije temeljen na Wemosu (ESP8266). Ovaj mali mjerač je vrlo koristan uređaj koji prati napon, struju, snagu, energiju i kapacitet. Osim ovih, prati i ambijent
DIY Arduino višenamjenski mjerač energije V1.0: 13 koraka (sa slikama)
DIY Arduino višenamjenski mjerač energije V1.0: U ovom uputstvu pokazat ću vam kako napraviti višenamjenski mjerač energije baziran na Arduinu. Ovaj mali mjerač je vrlo koristan uređaj koji prikazuje važne informacije o električnim parametrima. Uređaj može mjeriti 6 korisnih električnih parametara
Ploča vozača motora s učinkovitom potrošnjom energije: 5 koraka
Ploča pogona motora s učinkovitom potrošnjom energije: Predstavljeni projekt je koračni motor/pločica upravljačkog programa motora s IC -om upravljačkog programa motora SN754410, uključujući neke značajke za uštedu energije. Ploča može pokretati 2 istosmjerna motora ili koračni motor uz pomoć dvostrukog kruga H mosta u IC -u. SN754410 IC
Kako ispravno mjeriti potrošnju energije bežičnih komunikacijskih modula u doba niske potrošnje energije?: 6 koraka
Kako ispravno mjeriti potrošnju energije bežičnih komunikacijskih modula u doba niske potrošnje energije ?: Mala potrošnja energije iznimno je važan koncept u Internetu stvari. Većina IoT čvorova moraju se napajati baterijama. Samo ispravnim mjerenjem potrošnje energije bežičnog modula možemo točno procijeniti koliko sam baterije napunila
Kako napraviti prekidač timera s niskom tehnologijom: 5 koraka (sa slikama)
Kako napraviti prekidač timera s niskom tehnologijom. Ovo je uputstvo za izradu prekidača s timerom s vrlo niskom tehnologijom. moja se isključuje svakih 12 sati oko 3 minute. Napravio sam ovo jer nisam baš dobar s elektronikom, ali sam ipak želio jeftin mjerač vremena. Ovo je samo prototip i nadam se da ću