Sisukord:
- Samm: riistvara BLE-LED-pulga jaoks
- 2. samm: elektroonika kokkupanek
- 3. samm: kuidas luua fonte?
- Samm: BLE juhtimistarkvara
- Samm: esimene test
- Samm: valige animatsioonid
- Samm: RGB juhtimine
- 8. toiming: teksti_animatsiooniteenus ja püsitalletusteenus
- 9. samm: käivitage Androidi rakendus
- 10. samm: kirjutage sõnumid piltidena
Video: LED POVstick Bluetoothi vähese energiatarbega: 10 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
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
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
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?
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-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
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
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-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
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
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.
Konkursi Make it Glow 2018 teine auhind
Soovitan:
Väga väikese energiatarbega WiFi koduautomaatikasüsteem: 6 sammu (piltidega)
Väga väikese võimsusega WiFi koduautomaatikasüsteem: selles projektis näitame, kuidas saate mõne sammuga luua kohaliku kohaliku koduautomaatika põhisüsteemi. Kasutame Raspberry Pi, mis toimib keskse WiFi -seadmena. Lõppsõlmede puhul kasutame akutoite valmistamiseks IOT kriketit
ESP32 Bluetoothi õpetus - ESP32 sisseehitatud Bluetoothi kasutamine: 5 sammu
ESP32 Bluetoothi õpetus | ESP32 sisseehitatud Bluetoothi kasutamine: Tere poisid Kuna ESP32 pardal on WiFi ja amp; Nii Bluetooth kui ka meie enamasti projektide puhul kasutame tavaliselt ainult Wifi -d, me ei kasuta Bluetoothi. Nii et selles juhendis näitan, kui lihtne on kasutada ESP32 Bluetoothi & Teie põhiprojektide jaoks
LEIDS - madala energiatarbega IOT -ukseandur: 8 sammu (piltidega)
LEIDS - madala energiatarbega IOT -uksesensor: mis on LEIDS? LEIDS on IOT -andur, mis põhineb ESP8266 -l. See andur kasutab seda tahvlit, pehmet lukustusahelat, pilliroo lülitit ja mõnda magnetit, et luua uksesensor, mis saadab teile teate, kui teie uks avaneb ja sulgub
Multimeediaarvuti / vähese energiatarbega failiserver, taaskasutatud: 6 sammu
Multimeediumarvuti / vähese energiatarbega failiserver, ümbertöödeldud: kasutage väikest formfactori emaplaati, mis võib teie garaažis tolmu koguda, käputäis muid komponente arvuti rämpspostist ning lihtsat HTML- ja skriptikoodi, pange kokku "Midnite Boy" (Mb). Minu Mb istub minu teleri kõrval, seda juhib
Multimeediumarvuti / vähese energiatarbega failiserver, taaskasutatud, #2: 8 sammu
Multimeediumarvuti / vähese energiatarbega failiserver, taaskasutatud, nr 2: kasutage MidniteBoy kokku väikest vormindaja emaplaati, mis võib teie garaažis tolmu koguda, käputäis muid komponente arvuti rämpspostist ja mõnda lihtsat HTML- ja skriptikoodi … Jälle! See on veel üks versioon minu postitatud projektist