Sadržaj:

LED POVstick s Bluetooth -om s niskom potrošnjom energije: 10 koraka (sa slikama)
LED POVstick s Bluetooth -om s niskom potrošnjom energije: 10 koraka (sa slikama)

Video: LED POVstick s Bluetooth -om s niskom potrošnjom energije: 10 koraka (sa slikama)

Video: LED POVstick s Bluetooth -om s niskom potrošnjom energije: 10 koraka (sa slikama)
Video: Тест MI диапазона Android SDK 2024, Studeni
Anonim
LED POVstick sa Bluetooth energijom niske energije
LED POVstick sa Bluetooth energijom niske energije

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

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

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

Kako generirati fontove?
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

BLE softver za kontrolu
BLE softver za kontrolu

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

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

Odaberite Animacije
Odaberite Animacije
Odaberite Animacije
Odaberite Animacije
Odaberite Animacije
Odaberite Animacije
Odaberite Animacije
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
RGB kontrola
RGB kontrola
RGB kontrola
RGB kontrola
RGB kontrola
RGB kontrola
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

Usluga Text_Animation i usluga trajne pohrane
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

Pišite poruke u slikama
Pišite poruke u slikama
Pišite poruke u slikama
Pišite poruke u slikama
Pišite poruke u slikama
Piš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.

Napravi natječaj za sjaj 2018
Napravi natječaj za sjaj 2018
Napravi natječaj za sjaj 2018
Napravi natječaj za sjaj 2018

Druga nagrada na natjecanju Make it Glow 2018

Preporučeni: