Sisukord:

LED POVstick Bluetoothi vähese energiatarbega: 10 sammu (piltidega)
LED POVstick Bluetoothi vähese energiatarbega: 10 sammu (piltidega)

Video: LED POVstick Bluetoothi vähese energiatarbega: 10 sammu (piltidega)

Video: LED POVstick Bluetoothi vähese energiatarbega: 10 sammu (piltidega)
Video: Умные часы GOKOO S11: что нужно знать // Обзор из реальной жизни 2024, November
Anonim
LED POVstick Bluetoothi vähese energiatarbega
LED POVstick Bluetoothi vähese energiatarbega

See juhend annab teile teada, kuidas ehitada RGB LED -idega valguskirjutaja, mida saab telefonist BLE kaudu juhtida!

Nüüd, kui algab tume hooaeg ja peate tegema pika säriajaga pilte: selle pulgaga saate pildile kirjutada oma allkirja või motiveeriva hinnapakkumise või armastusavalduse, QR-koodi, veebiaadressi või palju muud muud asjad…

See hõlmab mitmeid arendusteemasid:

  • riistvara ehitamine
  • Cypress BLE kiibistiku programmeerimine C -ga
  • looge oma rakendus selle juhtimiseks.

Samm: riistvara BLE-LED-pulga jaoks

Riistvara BLE-LED-pulga jaoks
Riistvara BLE-LED-pulga jaoks
Riistvara BLE-LED-pulga jaoks
Riistvara BLE-LED-pulga jaoks
Riistvara BLE-LED-pulga jaoks
Riistvara BLE-LED-pulga jaoks
Riistvara BLE-LED-pulga jaoks
Riistvara BLE-LED-pulga jaoks

Pulga jaoks vajate järgmist:

  • Küpress BLE moodul (CY8C4247LQI-BL583)
  • WS2812b RGB-LED-riba (64LED 144Led meetri kohta)
  • Li-Ion aku koos sobiva hoidikuga (18650)
  • nupp
  • tükk leivaplaati

Pulga riistvara on üsna lihtne.

Cypress BLE moodul on paigaldatud leivalauale ja LED-id, nupp ja toiteallikas on lihtsalt selle leivaplaadiga ühendatud.

Kõik on paigaldatud, liimitud või kruvitud väikese puust riba külge, mis ise on osaliselt sisestatud läbipaistvasse polüakrüültorusse. Kuid see pole kohustuslik. Tahtsin kõik toru sisse paigaldada, kuid ei leidnud sobivat BLE-moodulile ja akule, mis on LED-idega võrreldes üsna suured. Esimese võtte jaoks pole akrüültoru vaja.

2. samm: elektroonika kokkupanek

Elektroonika koost
Elektroonika koost
Elektroonika kokkupanek
Elektroonika kokkupanek

See samm näitab teile, kuidas BLE-moodul on paigaldatud ja milliseid tihvte kasutatakse selleks.

Nagu mitmes oma juhendis, kasutasin ka Cypress BLE arenduskomplekti. CY8CKIT-042-BLE Kiirjuhend

Kui soovite moodulit iseseisvalt kasutada, peate ühendama ainult toiteallikad ja kasutatud kontaktid.

Meie projekti jaoks kasutame LED-riba juhtimiseks ainult tihvti 3.5. Kuid muidugi saate seda PSoC Creatori abil muuta.

Nagu näete trükkplaadi pildil, lisasin kiibi kõikidesse nurkadesse tihvtpead, kuid jätsin VREF -i tihvti vahele.

Nii on moodul korralikult paigaldatud ja moodulit on võimatu valesti ühendada.

3. samm: kuidas luua fonte?

Kuidas luua fonte?
Kuidas luua fonte?

Noh, ma arvan, et see oli üks huvitavamaid probleeme, mille ma selle projekti käigus lahendasin.

Muidugi võiks lihtsalt uue fondi kujundada ja massiivi kirjutada, kuid see on tõesti palju tööd!

Mida ma siis tegin?

Ma teadsin, et vajan mingit ASCII-hex-bitmap teisendust. Ja mul vedas, sest ma polnud selle probleemiga esimene!:-)

Tarkvara "GLCD Font Generator" tegi täpselt õigesti:

Kuna tahtsin LED-pulkast maksimumi võtta, importisin fondi üsna suures suuruses (~ 32 pikslit). Kui kasutate ainult suuri tähti, ei pea te tõusudest hoolima, mis suurendab teie nähtavat fondi suurust veel mõne piksli võrra. Kuid ma otsustasin kasutada nii suuri kui ka väikeseid tähti. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)

Kui olete fondi GLCD fondigeneraatorisse importinud, saate selle eksportida erinevates vormingutes.

Proovisin seda otse päistesse eksportida, mis oli hea, kuid mitte täiuslik. Saadud ekspordiks on lühikeste pükste (16-bitine) massiiv, bait-heks-väärtused veergude jaoks esimese 128-ascii märgi iga tähemärgi jaoks. Mitte päris see, mida ma tahtsin või vajasin…

Nii importisin massiivi avatud kontorikalkulatsiooni töölehele. Seejärel eemaldasin "0x" kolmest neljast väärtusest ja ühendasin need üheks 32 -bitiseks väärtuseks. Parandasin ka üksikute baitide vale lõplikkuse.

Saadud massiiv on 32 -bitiste väärtustega N*M massiiv. M on vastav märk ja N on veerud, mis moodustavad selle tähe kuvamise. Selles esimeses mustandis on kõigil tähemärkidel sama arv veerge, mis tähendab, et kõik tähed on võrdselt laiad, nagu tuntud Courieri kirjas. Väikesed tähemärgid nagu „i” või „t” näevad välja nagu oleksid nad ruumi kadunud.

Seetõttu lisasin iga märgi algusesse uue parameetri, et öelda, kui palju sellel tähemärgil on veerge või kui lai see märk on. See säästab mälu ja muudab teksti paremaks!

Samm: BLE juhtimistarkvara

BLE juhtimistarkvara
BLE juhtimistarkvara

BLE-tarkvara põhimõte on väga lihtne:

  • Alguses ei tee see lihtsalt midagi.
  • BLE kaudu saate määrata erinevate animatsioonide või tekstide kuvamise.
  • Kui vajutate nuppu, kuvatakse animatsiooni või teksti üksikud veerud.
  • Pärast teksti kuvamist ootab see uuesti.

Lihtsalt importige küpressiprojekt oma PSoC-Creatorisse ja muutke seda, kui soovite.

PSoC-4-l pole nii palju RAM-i ja välklampi, et oleks võimalik hoida fontide täielikke RGB-pilte. Seetõttu vajasin viisi, kuidas tekstist dünaamiliselt LED-sisu genereerida. See on üsna lihtne, siiani pole midagi erilist. Paljude tähtedega tekstist võtab algoritm ühe tähe ja teisendab selle must-valge-bitmap-massiiviks. Seejärel võtab see selle ühetähelise bitikaardi iga veeru ja kirjutab valge asemel LED-massiivi praeguse RGB-värvi. Nii saate genereerida ühevärvilisi tekste või täiendava funktsiooni abil muuta värvi iga veeru, tähe või isegi iga piksli järel.

"Tähte" saab salvestada ühe baitmuutujaga, samas kui mustvalge bitikaart tuleb salvestada mingis massiivis.

Andmestruktuur on järgmine:

String: newtext = "Tere";

Font: uint32 tähemärki = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Värv: uint32 rgbcolor = 0xHHBBGGRR; // Heledus, sinine, roheline, punane 8 -bitise väärtusena

Stringi kuvamiseks teisendamiseks teeme järgmist.

getCharacter (): H (8bit)

getColumn (int i): veerg (32bit) (i algab esimesest veerust, jookseb viimaseni.) kui (bit veerus on 1) LED -i riba on seatud värvi. LED-ribade massiivis on 64 LED-i, igaüks 32-bitiseid värve!

Ja kui see veerg kuvatakse, jätkame järgmisega.

See on nii lihtne.

Samm: esimene test

Esimene test
Esimene test
Esimene test
Esimene test
Esimene test
Esimene test

Nüüd, kui tarkvara töötab, oleme esimesteks testideks valmis.

Sisseehitatud funktsiooni on kõige lihtsam testida Bluetoothi madala energiatarbega testirakendusega. Nagu Nordic või Cypress Apps.

Põhjamaade: nRF Connect for Mobile

Küpress: CySmart

Käivitage Pov-Stick ja jälgige, kuidas demostring kuvatakse. Kui see on lõpetatud, on aeg rakendus käivitada. Otsige Povsticki seadmest ja klõpsake nuppu Ühenda.

Kui ühendus on loodud, avab rakendus automaatselt kõik määratletud teenused ja omadused.

Otsige üles esimene teenus (peaks algama 0000ccce…). Selle avamiseks ja esimese omaduse kuvamiseks klõpsake sellel (algab 0000ccc1). Seejärel vajutage kirjutamise (või üleslaadimise) nuppu ja kirjutage sellele omadusele 01.

Kui vajutate saatmist, käivitab POVstick värvide rüütli-ratturi animatsiooni ehk Larsoni skanneri värvide muutmisega.

Täname teid, et saatsite oma esimese väärtuse BLE kaudu!

Samm: valige animatsioonid

Valige animatsioonid
Valige animatsioonid
Valige animatsioonid
Valige animatsioonid
Valige animatsioonid
Valige animatsioonid
Valige animatsioonid
Valige animatsioonid

Tarkvaras määratlesime enum "e_Animation" järgmiste väärtustega:

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

Need väärtused kehtivad karakteristiku ccc1 puhul. Kui soovite näha CandyCane'i animatsiooni, peate sellele omadusele kirjutama 4, 5 või 6. Need erinevad värvide poolest.

Kaks spetsiaalset animatsiooni on RGB_Control ja TextAnimation. Kui valisite nende aktiveerimise, ei näita pulk esialgu ilmselgelt midagi. Kuid see pakub teile täiendavaid võimalusi pulga juhtimiseks teiste teenustega.

Samm: RGB juhtimine

RGB juhtimine
RGB juhtimine
RGB juhtimine
RGB juhtimine
RGB juhtimine
RGB juhtimine
RGB juhtimine
RGB juhtimine

RGB-kontrolli saab väga hõlpsalt testida rakendusega CySmart, kuna kasutasin selle omaduse jaoks sama UUID-d nagu Cypressi demos.

Käivitage rakendus CySmart ja looge ühendus Povstickiga. Esmalt peate ccc1 tunnusele kirjutama "0x0A".

0x0A on hex-väärtus 10-le, mis on RGB-kontrolli animatsioon.

Seejärel saate rakenduses CySmart lülituda RGB-LED juhtpaneelile. Võib -olla peate selle ekraani avamiseks rakenduse taaskäivitama. Seejärel saate selle RGB-diagrammi abil juhtida kõigi LED-ide värvi.

Loomulikult saate väärtused kirjutada ka otse omadusse.

8. toiming: teksti_animatsiooniteenus ja püsitalletusteenus

Teksti_animatsiooniteenus ja püsitalletusteenus
Teksti_animatsiooniteenus ja püsitalletusteenus

Neid teenuseid pole nii lihtne testida.

Tehniliselt saate selleks kasutada ka nordic äppi, kuid peate teadma, millistele väärtustele millisele omadusele kirjutada.

Nii et kui soovite neid testida, peaksite vaatama PSoC projekti, millisel tunnusel on milline UUID.

Oluline on omadus "Seadistatud kiirus". Selle omaduse abil saate kontrollida animatsioonide kiirust.

PersistentStorageService'i omadusega "Set_Animation" saate juhtida fonti ja tekstistringi värve. Kehtivad väärtused on määratletud jaotises "povanimation.h", kaks fonti "mono" ja "serif" ning ühevärvilised ja vikerkaarevärvilised. Väärtused 0 ja 1 näitavad teksti kindla värviga, mida saab juhtida RGB_Control karakteristiku kaudu. Väärtused 2 ja 3 muudavad iga veeru värvi ja annavad stringile ilusa vikerkaare.

"Write_Text_Service" on omamoodi erinev. Saate seadmesse kirjutada uue stringi, kirjutades üksikud märgid omadusele "Set_Character". Iga kirjutamise kohta saate teate stringi praeguse pikkuse kohta.

Uue stringi alustamiseks kirjutage "true" väljale "Clear_String".

See ei ole parim rakendus, kuid see töötab mis tahes kuni 250 tähemärgise stringi puhul ilma MTU suurust muutmata.

Uue stringi kuvamine koos Povsticki nupu vajutamisega algab.

9. samm: käivitage Androidi rakendus

See on oluline samm, kuid kaugemale sellest juhendist. Vabandust selle pärast!

Võib-olla laadin oma testirakenduse Play poodi üles, kuid see pole veel valmis ega vabastatav.

10. samm: kirjutage sõnumid piltidena

Kirjutage sõnumid piltidesse
Kirjutage sõnumid piltidesse
Kirjutage sõnumid piltidesse
Kirjutage sõnumid piltidesse
Kirjutage sõnumid piltidesse
Kirjutage sõnumid piltidesse

Sellepärast ehitan ma selle povsticki esiteks: piltide sõnumite kirjutamiseks.

Teil on vaja statiivi, pika särituse funktsiooniga kaamerat ja mõnda head asukohta.

Seadistage kaamera ja reguleerige esimese testi jaoks säriaeg 10 sekundiks.

Käivitage vabastus ja hakake pildil käima, alustades pulga teksti kuvamist.

Siin me oleme!

Õige LED-heleduse, ava ja säriaja kombinatsiooni abil on võimalik pildistada isegi koidikul.

Selle sammu kolm pilti näitavad võimaluste täielikku spektrit.

Esimesel juhul on LED -id ülevalgustatud ja loovad maagilise sära. Aga sellepärast on peegeldused maapinnal nähtavad ja taust pigem hea.

Teine pilt on valgusdioodide jaoks avatud, kuid see jätab tausta täiesti mustaks.

Ja kolmas näitab üsna hämaraid LED -e varsti pärast päikeseloojangut. LED -id on sama heledad kui teistel piltidel, kuid keskkond oli nii hele, et pidin kasutama madalat välimust ja madalat ISO -d, et LED -id tunduksid üsna tumedad.

Tee sellest särav võistlus 2018
Tee sellest särav võistlus 2018
Tee sellest särav võistlus 2018
Tee sellest särav võistlus 2018

Konkursi Make it Glow 2018 teine auhind

Soovitan: