Satura rādītājs:
- 1. solis: BLE-LED-Stick aparatūra
- 2. solis: elektronikas montāža
- 3. darbība: kā ģenerēt fontus?
- 4. solis: BLE kontroles programmatūra
- 5. solis: pirmais tests
- 6. darbība: atlasiet animācijas
- 7. darbība: RGB kontrole
- 8. darbība: teksta_animācijas pakalpojums un pastāvīgas uzglabāšanas pakalpojums
- 9. darbība: palaidiet Android lietotni
- 10. solis: rakstiet ziņojumus attēlos
Video: LED POVstick ar Bluetooth zemu enerģiju: 10 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šī pamācība parāda, kā izveidot gaismas rakstītāja nūju ar RGB gaismas diodēm, kuru no tālruņa var kontrolēt, izmantojot BLE!
Tagad, kad sākas tumšā sezona un jums jāuzņem attēli ar ilgu ekspozīciju: ar šo nūju jūs varat ierakstīt attēlā savu parakstu vai motivējošu citātu, vai mīlestības apliecinājumu, QR kodu, tīmekļa adresi vai daudzus citus citas lietas…
Tas aptver vairākas attīstības tēmas:
- aparatūras veidošana
- programmēt Cypress BLE mikroshēmojumu ar C
- izveidojiet savu lietotni, lai to kontrolētu.
1. solis: BLE-LED-Stick aparatūra
Nūjai nepieciešams šāds materiāls:
- Kipreses BLE modulis (CY8C4247LQI-BL583)
- WS2812b RGB-LED sloksne (64LED no 144Led uz metru sloksnes)
- litija jonu akumulators ar piemērotu turētāju (18650)
- spiedpoga
- maizes dēļa gabals
Nūjas aparatūra ir diezgan vienkārša.
Cypress BLE modulis ir uzstādīts uz maizes dēļa gabala, un gaismas diodes, poga un barošanas avots ir vienkārši pievienoti šim maizes dēlim.
Viss ir uzstādīts, pielīmēts vai pieskrūvēts pie neliela koka sloksnes gabala, kas pats ir daļēji ievietots caurspīdīgā poliakrilcaurulē. Bet tas nav obligāti. Es gribēju visu uzstādīt caurulē, bet neatradu piemērotu BLE modulim un akumulatoram, kas ir diezgan lieli, salīdzinot ar gaismas diodēm. Pirmajam šāvienam jums nav nepieciešama akrila caurule.
2. solis: elektronikas montāža
Šis solis parāda, kā BLE modulis ir uzstādīts un kuras tapas tiek izmantotas šim nolūkam.
Tāpat kā vairākos savos norādījumos, es izmantoju Cypress BLE izstrādes komplektu. CY8CKIT-042-BLE Īsā lietošanas pamācība
Ja vēlaties darbināt moduli atsevišķi, viss, kas jums jāpievieno, ir barošanas avoti un izmantotās tapas.
Mūsu projektam mēs izmantojam tikai tapu 3.5, lai vadītu LED sloksni. Bet, protams, jūs to varat mainīt, izmantojot PSoC Creator.
Kā redzat PCB attēlā, es pievienoju tapas galviņas visos mikroshēmas stūros, bet es izlaidu VREF tapu.
Tādā veidā modulis ir pareizi uzstādīts, un nav iespējams nepareizi savienot moduli.
3. darbība: kā ģenerēt fontus?
Es domāju, ka šī bija viena no interesantākajām problēmām, ko es atrisināju šī projekta laikā.
Protams, varētu vienkārši noformēt jaunu fontu un ierakstīt to masīvā, bet tas tiešām ir daudz darba!
Ko tad es darīju?
Es zināju, ka man ir nepieciešama kāda veida ASCII pārvēršana hex-bitmap. Un man paveicās, jo es nebiju pirmais ar šo problēmu!:-)
Programmatūra "GLCD fontu ģenerators" rīkojās pareizi:
Tā kā es gribēju maksimāli izmantot LED spraudni, es importēju fontu diezgan lielā izmērā (~ 32 pikseļi). Ja izmantojat tikai lielos burtus, jums nav jārūpējas par kāpējiem, kas palielinās jūsu redzamā fonta lielumu vēl par dažiem pikseļiem. Bet es izvēlējos izmantot gan lielos, gan mazos burtus. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
Kad esat importējis fontu GLCD fontu ģeneratorā, varat izvēlēties to eksportēt dažādos formātos.
Es mēģināju to eksportēt tieši galvenēs, kas bija labi, bet ne perfekti. Iegūtais eksports ir šortu masīvs (16 biti) ar baitu heksadecimālajām vērtībām kolonnām katrai pirmās 128 ascii rakstzīmes rakstzīmei. Ne gluži tas, ko es gribēju vai vajadzēja…
Tāpēc es importēju masīvu atvērtā biroja aprēķina darblapā. Tad es noņēmu "0x" trīs no četrām vērtībām un apvienoju tās vienā 32 bitu vērtībā. Es arī noteicu atsevišķu baitu nepareizo galotni.
Iegūtais masīvs ir N*M masīvs ar 32 bitu vērtībām. M ir attiecīgā rakstzīme, un N ir kolonnas, kas veido šī burta attēlojumu. Šajā pirmajā melnrakstā visām rakstzīmēm ir vienāds kolonnu skaits, kas nozīmē, ka visi burti ir vienādi plaši, piemēram, labi zināmajā Courier fontā. Mazās rakstzīmes, piemēram, "i" vai "t", izskatās kā pazudušas telpā.
Tāpēc katras rakstzīmes sākumā es pievienoju jaunu parametru, lai pateiktu, cik kolonnu ir šai rakstzīmei vai cik šī rakstzīme ir plaša. Tas ietaupa atmiņu un padara tekstu labāku!
4. solis: BLE kontroles programmatūra
BLE programmatūras princips ir ļoti vienkāršs:
- Sākumā tas vienkārši neko nedara.
- Izmantojot BLE, varat iestatīt dažādu animāciju vai tekstu parādīšanu.
- Nospiežot pogu, tiek parādītas atsevišķas animācijas kolonnas vai teksts.
- Pēc teksta parādīšanas tas turpina gaidīt.
Vienkārši importējiet cipreses projektu savā PSoC-Creator un modificējiet to, ja vēlaties.
PSoC-4 nav tik daudz RAM un zibspuldzes, lai varētu turēt pilnus fontu RGB attēlus. Tāpēc man vajadzēja veidu, kā dinamiski ģenerēt LED saturu no teksta. Tas ir diezgan vienkārši, līdz šim nekas īpašs. No teksta ar daudziem burtiem algoritms paņem vienu burtu un pārvērš to melnbaltā bitkartes masīvā. Tad tā paņem katru šīs viena burta bitkartes kolonnu un baltā vietā tā uzraksta LED masīvam pašreizējo RGB krāsu. Tādā veidā jūs varat ģenerēt vienkrāsainus tekstus vai ar papildu funkciju mainīt krāsu pēc katras kolonnas, katra burta vai pat pēc katra pikseļa.
"Burtu" var saglabāt vienā baitu mainīgajā, bet melnbalto bitkarti ir jāglabā sava veida masīvā.
Datu struktūra ir šāda:
String: newtext = "Labdien";
Fonts: uint32 rakstzīmes = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Krāsa: uint32 rgbcolor = 0xHHBBGGRR; // Spilgtums, zils, zaļš, sarkans katrs kā 8 bitu vērtība
Lai pārvērstu virkni attēlošanai, mēs rīkojamies šādi:
getCharacter (): H (8 bitu)
getColumn (int i): kolonna (32 bitu) (i sākas ar pirmo kolonnu, darbojas līdz pēdējai.), ja (bits kolonnā ir 1) LED joslā ir iestatīta krāsa. LED sloksnes masīvs ir 64 gaismas diodes ar 32 bitu krāsām katrā!
Un, ja tiek parādīta šī kolonna, mēs turpinām ar nākamo.
Tas ir tik vienkārši.
5. solis: pirmais tests
Tagad, kad programmatūra darbojas, mēs esam gatavi pirmajiem testiem.
Vienkāršākais veids, kā pārbaudīt iegulto funkciju, ir Bluetooth zema enerģijas patēriņa testa lietotne. Tāpat kā Nordic vai Cypress Apps.
Nordic: nRF Connect mobilajām ierīcēm
Ciprese: CySmart
Palaidiet Pov-Stick un novērojiet, kā tiks parādīta demonstrācijas virkne. Kad tas ir pabeigts, ir pienācis laiks sākt lietotni. Atrodiet Povstick ierīci un noklikšķiniet uz savienojuma.
Kad savienojums ir izveidots, lietotne automātiski atklāj visus definētos pakalpojumus un īpašības.
Meklējiet pirmo pakalpojumu (jāsāk ar 0000ccce…). Noklikšķiniet uz tā, lai to atvērtu un parādītu pirmo raksturlielumu (sākas ar 0000ccc1). Pēc tam nospiediet rakstīšanas (vai augšupielādes) pogu un uzrakstiet 01 šai īpašībai.
Tiklīdz jūs nospiežat sūtīt, POVstick sāks Color-Knight-rider animāciju jeb Larsona skeneri ar mainīgām krāsām.
Pateicība, ka nosūtījāt savu pirmo vērtību, izmantojot BLE!
6. darbība: atlasiet animācijas
Programmatūrā mēs definējām enum "e_Animation" ar šādām vērtībām:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimation; Animācijas animācija;
Šīs ir vērtības, kas ir derīgas ccc1 raksturlielumam. Ja vēlaties redzēt CandyCane animāciju, šai īpašībai ir jāraksta 4, 5 vai 6. Tās atšķiras pēc krāsām.
Divas īpašas animācijas ir RGB_Control un TextAnimation. Ja izvēlējāties tos aktivizēt, sākumā nūja acīmredzot neko nerādīs. Bet tas piedāvā papildu iespējas, lai kontrolētu nūju ar citiem pakalpojumiem.
7. darbība: RGB kontrole
RGB-Control var ļoti viegli pārbaudīt, izmantojot lietotni CySmart, jo šai īpašībai es izmantoju to pašu UUID kā Cypress Demo.
Palaidiet lietotni CySmart un izveidojiet savienojumu ar Povstick. Vispirms ccc1 raksturlielumam ir jāraksta "0x0A".
0x0A ir heksadecimālā vērtība 10, kas ir RGB kontroles animācija.
Pēc tam lietotnē CySmart varat pārslēgties uz RGB-LED vadības paneli. Varbūt jums ir jārestartē lietotne, lai nokļūtu šajā ekrānā. Tad jūs varat kontrolēt visu gaismas diožu krāsu, izmantojot šo RGB diagrammu.
Protams, jūs varat arī ierakstīt vērtības tieši raksturlielumā.
8. darbība: teksta_animācijas pakalpojums un pastāvīgas uzglabāšanas pakalpojums
Šos pakalpojumus nav tik viegli pārbaudīt.
Tehniski šim nolūkam varat izmantot arī nordic lietotni, taču jums jāzina, kādas vērtības kādai īpašībai rakstīt.
Tātad, ja vēlaties tos pārbaudīt, jums vajadzētu apskatīt PSoC projektu, kuram raksturlielumam ir kāds UUID.
Svarīgi ir "Set-Speed" raksturlielums. Izmantojot šo īpašību, jūs varat kontrolēt animāciju ātrumu.
Ar PersistentStorageService raksturlielumu "Set_Animation" jūs varat kontrolēt fontus un teksta virknes krāsas. Derīgās vērtības ir definētas sadaļā "povanimation.h", divi fonti "mono" un "serif" un vienkrāsaini un varavīksnes krāsas. Vērtības 0 un 1 parāda tekstu ar fiksētu krāsu, ko var kontrolēt, izmantojot RGB_Control raksturlielumu. Vērtības 2 un 3 maina katras kolonnas krāsu un piešķir virknei jauku varavīksni.
"Write_Text_Service" ir atšķirīgs. Ierīcē varat ierakstīt jaunu virkni, rakstot atsevišķas rakstzīmes raksturlielumam "Set_Character". Katrā rakstīšanas reizē jūs saņemsit paziņojumu par virknes pašreizējo garumu.
Lai sāktu jaunu virkni, ierakstiet "true" uz "Clear_String".
Šī nav labākā ieviešana, taču tā darbojas jebkurai virknei līdz 250 rakstzīmēm, nemainot MTU lielumu.
Jaunas virknes parādīšana ar sākumu, kad tiek nospiesta poga uz pogas.
9. darbība: palaidiet Android lietotni
Tas ir svarīgs solis, taču tālu no šī pamācības darbības jomas. Atvainojos par to!
Varbūt es varētu augšupielādēt savu testa lietotni Play veikalā, bet tā vēl nav pabeigta vai izlaižama.
10. solis: rakstiet ziņojumus attēlos
Tāpēc es vispirms izveidoju šo povstick: lai rakstītu ziņojumus attēlos.
Jums ir nepieciešams statīvs, kamera ar ilgstošas ekspozīcijas funkciju un laba atrašanās vieta.
Uzstādiet kameru un noregulējiet ekspozīcijas laiku līdz 10 sekundēm pirmajam testam.
Ieslēdziet atbrīvošanu un sāciet staigāt pa attēlu, sākot teksta displeju uz nūjas.
Et Voila, tur mēs esam!
Izmantojot pareizo LED spilgtuma, diafragmas atvēruma un ekspozīcijas laika kombināciju, ir iespējams fotografēt pat rītausmā.
Trīs attēli šajā solī parāda visu iespēju spektru.
Pirmajā gadījumā gaismas diodes ir pārmērīgi eksponētas un rada maģisku mirdzumu. Bet tāpēc atstarojumi uz zemes ir redzami, un fons ir diezgan labs.
Otrais attēls ir eksponēts gaismas diodēm, bet fons paliek pilnīgi melns.
Un trešajā īsi pēc saulrieta ir redzamas diezgan vājas gaismas diodes. Gaismas diodes ir tikpat spilgtas kā citos attēlos, bet vide bija tik spilgta, ka man bija jāizmanto zems izskats un zems ISO, lai gaismas diodes būtu diezgan tumšas.
Otrā balva konkursā Make it Glow 2018
Ieteicams:
Ar saules enerģiju darbināms apgaismojuma terārijs: 15 soļi (ar attēliem)
Ar saules enerģiju darbināms izgaismots terārijs: J: Ko jūs iegūstat, šķērsojot naktsgaismu ar īsu paziņojumu albumu? A: Ar saules enerģiju darbināms apgaismojuma terārijs! Lai izveidotu šo mini terārija ainu, es atkārtoti izmantoju salauztu dārza apgaismojuma komplektu . Tajā ir attēlota kajīte, ko mēs ar savu draugu īrējām
Nodrošiniet enerģiju ar veco USB vadu: 4 soļi (ar attēliem)
Nodrošiniet enerģiju ar veco USB vadu: Grūtības: e a s y .. Stieples griešana un savienošana Ja jums apkārt ir kādi veci USB vadi, kāpēc nedarīt ar tiem kaut ko noderīgu? Man vajadzēja veidu, kā nodrošināt enerģiju savai Arduino platei, neizmantojot komplektācijā iekļauto USB kabeli, jo tas bija pārāk l
Raspberry Pi savvaļā! Pagarināts darbības laiks ar akumulatora enerģiju: 10 soļi (ar attēliem)
Raspberry Pi savvaļā! Pagarināts termiņš ar akumulatora enerģiju: Motivācija: Es gribēju izmantot Raspberry Pi kameru, kas darbina akumulatoru, lai uzņemtu fotoattēlus vienu reizi dienā ārpus telpām, lai izveidotu ilgtermiņa laika intervāla videoklipus. Mans īpašais pielietojums ir reģistrēt zemes seguma augu augšanu šajā pavasarī un vasarā. Izaicinājums: D
Ar saules enerģiju darbināms robots: 17 soļi (ar attēliem)
Ar saules enerģiju darbināms robots: Kādu laiku atpakaļ es izveidoju desmitiem robotu, kurus lielā mērā iedvesmoja BEAM Robotics. Tiem, kas nav pazīstami, BEAM būtībā ir īpaša robotu būvēšanas metode, kurā uzsvars tiek likts uz bioloģiju, elektroniku, estētiku un mehāniku (līdz ar to saīsinājums
Ar saules enerģiju darbināmas mirdzošas LED kulonu rotaslietas: 11 soļi (ar attēliem)
Ar saules enerģiju darbināmas mirdzošas LED kulonu rotaslietas: šī pamācība ir paredzēta ar sirdi darbināmai sirdij ar pulsējošu sarkanu gaismas diodi. Tā izmēri ir aptuveni 2 " par 1,25 ", ieskaitot USB cilni. Tā dēļa augšpusē ir viens caurums, kas atvieglo pakarināšanu. Nēsājiet to kā kaklarotu, auskarus, piestipriniet pie tapas