Sadržaj:
- Korak 1: Hardver 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 trajnog skladištenja
- Korak 9: Pokrenite Android aplikaciju
- Korak 10: Napišite poruke u slikama
Video: LED POVstick sa Bluetooth -om sa niskom potrošnjom energije: 10 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Ova instrukcija vam pokazuje kako izgraditi svjetlosni štapić sa RGB LED diodama koji se može kontrolirati putem BLE -a sa 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
- napravite vlastitu aplikaciju za kontrolu.
Korak 1: Hardver za BLE-LED-Stick
Za štap vam je potrebno sljedeće:
- BLE modul čempresa (CY8C4247LQI-BL583)
- WS2812b RGB-LED traka (64LED sa 144Led trake po metru)
- Li-Ion baterija sa odgovarajućim držačem (18650)
- dugme
- 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 privijeno na mali komad drvene trake, koja je sama djelomično umetnuta u prozirnu poliakrilnu cijev. Ali to nije potrebno. Htio sam sve montirati u cijev, ali nisam našao odgovarajući za BLE-modul i bateriju koji su prilično veliki, u odnosu na LED diode. Za prvi snimak ne trebate akrilnu cijev.
Korak 2: Montaža elektronike
Ovaj korak prikazuje kako se BLE-modul montira i koji se pinovi 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 vam je potrebno za povezivanje su izvori napajanja i korišteni pinovi.
Za naš projekt koristimo samo pin 3.5 za pogon LED trake. Naravno, to možete promijeniti sa 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 tokom ovog projekta.
Naravno da se može jednostavno dizajnirati novi font i zapisati u niz, ali to je zaista mnogo posla!
Pa šta sam uradio?
Znao sam da mi je potrebna neka vrsta ASCII konverzije u hex-bitmap. I imao sam sreću, jer nisam bio prvi sa 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 uzlaznim linijama, š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 izabrati da ga izvezete u različitim formatima.
Pokušao sam ga izvesti izravno u zaglavlja što je bilo dobro, ali nije savršeno. Rezultirajući izvoz je niz kratkih prikaza (16 bita) sa hete-hete-vrijednostima za stupce za svaki znak prvog 128-ascii znaka. Nije baš ono što sam želio ili trebao …
Tako 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. Takođe sam ispravio pogrešnu krajnost pojedinačnih bajtova.
Rezultirajući niz je N*M niz od 32 -bitnih vrijednosti. M je odgovarajući znak, a N su 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, kao u poznatom Courier fontu. 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 kolona ima ovaj znak 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.
- Kada pritisnete dugme, prikazuju se pojedinačne kolone animacije ili teksta.
- Nakon što se tekst prikaže, nastavlja čekati ponovo.
Samo uvezite projekat čempresa u svoj PSoC-Creator i izmijenite ga ako želite.
PSoC-4 nema toliko RAM-a i flash memorije 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, do sada ništa posebno. Od teksta s mnogo slova, algoritam uzima jedno slovo i pretvara ga u crno-bijeli niz bitmapa. Zatim uzima svaku kolonu ove bitmape od jednog slova i umjesto bijele, upisuje trenutnu RGB boju u LED niz. Na ovaj način možete generirati jednobojne tekstove ili dodatnom funkcijom promijeniti boju iza svake kolone, 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:
String: 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): kolona (32bit) (i počinje sa prvom kolonom, radi do poslednje.) if (bit u koloni je 1) LED u traci je podešen na boju. Niz LED traka sastoji se od 64 LED diode sa po 32 bitne boje!
A ako se ova kolona prikaže, nastavljamo sa sljedećom.
To je tako lako.
Korak 5: Prvi test
Sada kada softver radi, spremni smo za prve testove.
Najjednostavniji način testiranja ugrađene funkcije je pomoću Bluetooth aplikacije za testiranje niske potrošnje energije. Kao Nordic ili Cypress Apps.
Nordijski: nRF Connect for Mobile
Čempres: CySmart
Pokrenite Pov-Stick i promatrajte kako će se demonstrirati niz. Kada 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 dugme za pisanje (ili učitavanje) i napišite 01 ovoj karakteristici.
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_xControl,, Ovo 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 odabrali da ih aktivirate, štap 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 pomoću CySmart aplikacije jer sam za ovu karakteristiku koristio isti UUID kao u Cypress Demo-u.
Pokrenite aplikaciju CySmart i spojite se na Povstick. Prvo morate upisati "0x0A" u karakteristiku ccc1.
0x0A je heksadecimalna vrijednost za 10, što je animacija RGB kontrole u enumu.
Zatim se možete prebaciti na RGB-LED kontrolnu ploču u aplikaciji CySmart. Možda ćete morati ponovo pokrenuti aplikaciju da biste došli do ovog ekrana. Tada možete kontrolirati boju svih LED dioda pomoću ovog RGB-dijagrama.
Naravno, vrijednosti možete upisati i direktno u karakteristiku.
Korak 8: Usluga Text_Animation i usluga trajnog skladištenja
Ove usluge nije tako lako testirati.
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 PSoC projekt, čija karakteristika ima koji UUID.
Važna karakteristika je "Set-Speed" karakteristika. Pomoću ove karakteristike možete kontrolirati koliko su brze animacije.
Sa "Set_Animation" karakteristikom PersistentStorageService možete kontrolirati fontove i boje tekstualnog niza. Važeće vrijednosti su definirane u "povanimation.h", dva fonta "mono" i "serif" i jednobojni i dugini. Vrijednosti 0 i 1 prikazuju tekst fiksne boje, kojim se može upravljati pomoću karakteristike RGB_Control. Vrijednosti 2 i 3 mijenjaju boju za svaku kolonu 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 dužini niza.
Da biste započeli 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 sa početkom kada se pritisne dugme na Povstick -u.
Korak 9: Pokrenite Android aplikaciju
Ovo je važan korak, ali daleko izvan okvira ovog uputstva. Žao mi je zbog toga!
Možda bih mogao otpremiti 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, ovo je razlog zašto ja uopće stvaram ovaj povstick: Za pisanje poruka u slikama.
Potreban vam je stativ, kamera s funkcijom duge ekspozicije i dobra lokacija.
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.
Evo Voile, tu smo!
Uz odgovarajuću kombinaciju LED svjetline, otvora blende i vremena ekspozicije moguće je čak i slikati u zoru.
Tri slike u ovom koraku prikazuju potpuni spektar mogućnosti.
U prvom, LED diode su preeksponirane i stvaraju čarobni sjaj. Ali zato su refleksije na tlu vidljive i pozadina je prilično dobra.
Druga slika je izložena LED diodama, ali pozadina ostaje potpuno crna.
I treći prikazuje prilično prigušene LED diode ubrzo nakon zalaska sunca. LED diode su svijetle kao i na drugim slikama, ali okruženje je bilo toliko svijetlo da sam morao koristiti nisku otvor blende i nizak ISO tako da LED diode izgledaju prilično tamno.
Druga nagrada na takmičenju Make it Glow 2018
Preporučuje se:
WiFi sistem kućne automatizacije sa izuzetno niskom snagom: 6 koraka (sa slikama)
WiFi sistem kućne automatizacije iznimno male snage: U ovom projektu pokazujemo kako možete izgraditi osnovni lokalni sistem kućne automatizacije u nekoliko koraka. Koristit ćemo Raspberry Pi koji će djelovati kao centralni WiFi uređaj. Dok ćemo za krajnje čvorove koristiti IOT kriket za izradu baterije
Ploča za pogon motora s učinkovitom potrošnjom energije: 5 koraka
Ploča za pogon motora s učinkovitom potrošnjom energije: Predstavljeni projekt predstavlja koračni motor/pločicu upravljačkog programa motora sa IC upravljačkim programom 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 izuzetno je važan koncept u Internetu stvari. Većina IoT čvorova moraju se napajati baterijama. Samo pravilnim mjerenjem potrošnje energije bežičnog modula možemo precizno procijeniti koliko sam baterije napunila
Cijevno pojačalo s izuzetno niskom snagom, visokim pojačanjem: 13 koraka (sa slikama)
Cijevno pojačalo iznimno male snage, visokog pojačanja: Za rockere u spavaćim sobama poput mene nema ništa gore od pritužbi na buku. S druge strane, šteta je imati pojačalo od 50 W priključeno na opterećenje koje rasipa gotovo sve topline. Stoga sam pokušao da napravim pretpojačalo sa visokim pojačanjem, zasnovano na porodici
Kako napraviti prekidač za mjerenje vremena sa niskom tehnologijom .: 5 koraka (sa slikama)
Kako napraviti prekidač za mjerenje timera sa niskom tehnologijom. Ovo je uputstvo za izradu prekidača sa mjeračem jako niske tehnologije. moja se isključuje svakih 12 sati oko 3 minute. Napravio sam ovo jer nisam baš dobar s elektronikom, ali sam ipak želio jeftin tajmer. Ovo je samo prototip i nadam se da ću