Kazalo:

DIY Control RGB LED barva prek Bluetootha: 5 korakov
DIY Control RGB LED barva prek Bluetootha: 5 korakov

Video: DIY Control RGB LED barva prek Bluetootha: 5 korakov

Video: DIY Control RGB LED barva prek Bluetootha: 5 korakov
Video: ESP32 Tutorial 6 - Using RGB LED Project 2.3 -SunFounder's ESP32 IoT Learnig kit 2024, Julij
Anonim
DIY Control RGB LED barva prek Bluetooth
DIY Control RGB LED barva prek Bluetooth

Priljubljenost pametnih žarnic v zadnjem času postaja ključni del zbirke orodij za pametne domove. Pametne žarnice uporabniku omogočajo nadzor svetlobe prek posebne aplikacije na uporabnikovem pametnem telefonu; žarnico lahko vklopite in izklopite ter barvo spremenite v vmesniku aplikacije. V tem projektu smo zgradili pametni krmilnik žarnice, ki ga je mogoče upravljati z ročnim gumbom ali mobilno aplikacijo prek Bluetootha. Za dodaten pridih temu projektu smo dodali nekaj funkcij, ki uporabniku omogočajo, da izbere barvo osvetlitve s seznama barv, vključenih v vmesnik aplikacije. Prav tako lahko aktivira »samodejno mešanje« za ustvarjanje barvnih učinkov in spreminjanje osvetlitve vsake pol sekunde. Uporabnik lahko ustvari svojo barvno mešanico s funkcijo PWM, ki jo lahko uporabite tudi kot zatemnilnik za tri osnovne barve (rdečo, zeleno, modro). V vezje smo dodali tudi zunanje gumbe, tako da lahko uporabnik preklopi v ročni način in spremeni barvo svetlobe z zunanjega gumba.

Ta navodila so sestavljena iz dveh delov; design GreenPAK ™ in aplikacija za Android. Zasnova GreenPAK temelji na uporabi vmesnika UART za komunikacijo. UART je izbran, ker ga podpira večina modulov Bluetooth, pa tudi večina drugih zunanjih naprav, kot so moduli WIFI. Zato se lahko zasnova GreenPAK uporablja pri številnih vrstah povezav.

Za izdelavo tega projekta bomo uporabili SLG46620 CMIC, modul Bluetooth in LED RGB. Kontrolno jedro tega projekta bo IC GreenPAK; prejme podatke iz modula Bluetooth in/ali zunanjih gumbov, nato pa začne zahtevani postopek za prikaz pravilne osvetlitve. Prav tako generira signal PWM in ga odda na LED. Slika 1 spodaj prikazuje blokovni diagram.

Naprava GreenPAK, uporabljena v tem projektu, vsebuje vmesnik za povezavo SPI, PWM bloke, FSM in veliko drugih uporabnih dodatnih blokov v enem IC. Zanj je značilna tudi majhnost in nizka poraba energije. To bo proizvajalcem omogočilo, da zgradijo majhno praktično vezje z eno samo IC, zato bodo stroški proizvodnje v primerjavi s podobnimi sistemi minimalni.

V tem projektu upravljamo eno RGB LED. Da bi bil projekt komercialno izvedljiv, bi sistem verjetno moral povečati raven svetilnosti tako, da bi vzporedno povezal veliko LED in uporabil ustrezne tranzistorje; Upoštevati je treba tudi napajalni tokokrog.

Če želite razumeti, kako je čip GreenPAK programiran za nadzor barve RGB LED prek Bluetootha, lahko opravite vse korake. Če pa želite preprosto programirati IC, ne da bi razumeli vsa notranja vezja, prenesite programsko opremo GreenPAK, če si želite ogledati že dokončano oblikovalsko datoteko GreenPAK. Priključite razvojni komplet GreenPAK v računalnik in pritisnite hitri program, da ustvarite IC po meri za nadzor barve RGB LED prek Bluetootha.

Zasnova GreenPAK je sestavljena iz sprejemnika UART, enote PWM in krmilne enote, opisane v spodnjih korakih.

Korak: UART sprejemnik

UART sprejemnik
UART sprejemnik

Najprej moramo nastaviti modul Bluetooth. Večina IC -jev Bluetooth podpira komunikacijski protokol UART. UART pomeni univerzalni asinhroni sprejemnik / oddajnik. UART lahko pretvarja podatke naprej in nazaj med vzporednimi in serijskimi formati. Vključuje zaporedni do vzporedni sprejemnik in vzporedni do serijski pretvornik, ki delujeta ločeno.

Podatki, prejeti v modulu Bluetooth, bodo poslani v našo napravo GreenPAK. Stanje mirovanja za Pin10 je VISOKO. Vsak poslani znak se začne z logičnim nizkim začetnim bitom, ki mu sledi nastavljivo število podatkovnih bitov in eden ali več logičnih HIGH stop bitov.

Oddajnik UART pošilja 1 START bit, 8 podatkovnih bitov in en STOP bit. Običajno je privzeta hitrost prenosa za modul Bluetooth UART 9600. Podatkovni bajt bomo poslali iz IC IC v blok SPI GreenPAK ™ SLG46620.

Ker blok GreenPAK SPI nima nadzora bitov START ali STOP, jih bomo namesto tega uporabili za omogočanje in onemogočanje signala ure SPI (SCLK). Ko Pin10 pade NIZO, vemo, da smo prejeli bit START, zato za zaznavanje začetka komunikacije uporabimo detektor padca PDLY. Ta detektor padajočih robov ureja DFF0, ki omogoča signalu SCLK, da nastavi blok SPI.

Naša hitrost prenosa je 9600 bitov na sekundo, zato mora biti naše obdobje SCLK 1/9600 = 104 μs. Zato smo frekvenco OSC nastavili na 2MHz in kot frekvenčni delilec uporabili CNT0.

2 MHz-1 = 0,5 μs

(104 μs / 0,5 μs) - 1 = 207

Zato želimo, da je vrednost števca CNT0 207. Za zagotovitev, da ne zamudimo nobenih podatkov, moramo uro SPI zakasniti za pol ure, da se blok SPI zaklene ob pravem času. To smo dosegli z uporabo CNT6, 2-bitnega LUT1 in zunanje ure bloka OSC. Izhod CNT6 se ne dvigne visoko do 52 μs po delovanju DFF0, kar je polovica našega 104 μs SCLK obdobja. Ko je CNT6 visok, 2-bitna vrata LUT1 AND omogočajo, da 2MHz OSC signal preide v EXT. Vhod CLK0, katerega izhod je priključen na CNT0.

Korak: Enota PWM

Enota PWM
Enota PWM

Signal PWM se generira s pomočjo PWM0 in pripadajočega generatorja taktnih impulzov (CNT8/DLY8). Ker lahko širino impulza nadzoruje uporabnik, za štetje uporabniških podatkov uporabljamo FSM0 (ki ga je mogoče priključiti na PWM0).

V SLG46620 se lahko 8-bitni FSM1 uporablja s PWM1 in PWM2. Modul Bluetooth mora biti priključen, kar pomeni, da je treba uporabiti vzporedni izhod SPI. Vzporedna izhodna bita SPI od 0 do 7 sta vmesnika z DCMP1, DMCP2 in izhodi OUT1 in OUT0 LK OSC CLK. PWM0 pridobiva svoj izhod iz 16-bitnega FSM0. Če se to ne spremeni, bo širina impulza preobremenjena. Za omejitev vrednosti števca na 8 bitov je dodan drug FSM; FSM1 se uporablja kot kazalec za ugotavljanje, kdaj števec doseže 0 ali 255. FSM0 se uporablja za generiranje impulza PWM. FSM0 in FSM1 morata biti sinhronizirana. Ker imata oba FSM vnaprej nastavljene možnosti ure, se CNT1 in CNT3 uporabljata kot posrednika za prenos CLK na oba FSM. Dva števca sta nastavljena na isto vrednost, kar je 25 za ta Instructable. Hitrost spreminjanja vrednosti PWM lahko spremenimo s spreminjanjem teh vrednosti števca.

Vrednost FSM se povečuje in zmanjšuje s signali '+' in '-', ki izvirajo iz paralelnega izhoda SPI.

3. korak: Krmilna enota

Kontrolna enota
Kontrolna enota

Znotraj krmilne enote se prejeti bajt prenese iz modula Bluetooth na paralelni izhod SPI in nato posreduje povezanim funkcijam. Najprej se preverijo izhodi PWM CS1 in PWM CS2, da se preveri, ali je vzorec PWM aktiviran ali ne. Če je aktiviran, bo določil, kateri kanal bo oddajal PWM prek LUT4, LUT6 in LUT7.

LUT9, LUT11 in LUT14 so odgovorni za preverjanje stanja drugih dveh LED. LUT10, LUT12 in LUT13 preverijo, ali je ročni gumb aktiviran ali ne. Če je aktiven ročni način, izhodi RGB delujejo v skladu z izhodnimi stanji D0, D1, D2, ki se spremenijo vsakič, ko pritisnete gumb Barva. Spreminja se z naraščajočim robom, ki prihaja iz CNT9, ki se uporablja kot odbijač naraščajočega roba.

Pin 20 je konfiguriran kot vhod in se uporablja za preklapljanje med ročnim in Bluetooth krmiljenjem.

Če je ročni način onemogočen in je aktiviran način samodejnega mešalnika, se barva spremeni vsakih 500 ms z naraščajočim robom, ki prihaja iz CNT7. 4-bitni LUT1 se uporablja za preprečitev stanja '000' za D0 D1 D2, ker to stanje povzroči, da se lučka ugasne v načinu samodejnega mešalnika.

Če ročni način, način PWM in način samodejnega mešalnika niso aktivirani, potem rdeči, zeleni in modri ukazi SPI tečejo na nožice 12, 13 in 14, ki so konfigurirani kot izhodi in so povezani z zunanjo LED RGB.

DFF1, DFF2 in DFF3 se uporabljajo za izdelavo 3-bitnega binarnega števca. Vrednost števca se poveča z impulzi CNT7, ki prehajajo skozi P14 v načinu samodejnega mešalnika, ali iz signalov, ki prihajajo iz barvnega gumba (PIN3) v ročnem načinu.

4. korak: aplikacija za Android

Aplikacija za Android
Aplikacija za Android
Aplikacija za Android
Aplikacija za Android
Aplikacija za Android
Aplikacija za Android
Aplikacija za Android
Aplikacija za Android

V tem razdelku bomo izdelali aplikacijo za Android, ki bo spremljala in prikazovala izbire uporabnikovega nadzora. Vmesnik je sestavljen iz dveh razdelkov: prvi del vsebuje niz gumbov, ki imajo vnaprej določene barve, tako da ob pritisku katerega koli od teh gumbov zasveti LED enake ustrezne barve. Drugi razdelek (kvadrat MIX) ustvari mešano barvo za uporabnika.

V prvem razdelku uporabnik izbere LED zatič, skozi katerega želi preiti signal PWM; signal PWM se lahko prenese samo na en pin naenkrat. Spodnji seznam logično vklopi/izklopi drugi dve barvi v načinu PWM.

Gumb za samodejni mešalnik je odgovoren za zagon vzorca samodejne menjave luči, kjer se bo svetloba spreminjala vsake pol sekunde. Razdelek MIX vsebuje dva seznama potrditvenih polj, tako da se lahko uporabnik odloči, kateri dve barvi bo mešal skupaj.

Aplikacijo smo zgradili na spletnem mestu izumitelja aplikacij MIT. To je spletno mesto, ki omogoča izdelavo aplikacij za Android brez predhodnih izkušenj s programsko opremo z uporabo grafičnih programskih blokov.

Sprva smo oblikovali grafični vmesnik z dodajanjem nabora gumbov, ki so odgovorni za prikaz vnaprej določenih barv, dodali smo tudi dva seznama potrditvenih polj in vsak seznam ima 3 elemente; vsak element je opisan v svojem posameznem polju, kot je prikazano na sliki 5.

Gumbi v uporabniškem vmesniku so povezani z ukazi programske opreme: vsi ukazi, ki jih bo aplikacija poslala prek Bluetootha, bodo v bajtni obliki, vsak bit pa je odgovoren za določeno funkcijo. Tabela 1 prikazuje obliko ukaznih okvirjev, poslanih GreenPAK -u.

Prvi trije bitovi, B0, B1 in B2, bodo držali stanje LED RGB v načinu neposrednega krmiljenja s pomočjo gumbov vnaprej določenih barv. Tako bo ob kliku na katero koli od njih poslana ustrezna vrednost gumba, kot je prikazano v tabeli 2.

Bita B3 in B4 imajo ukaze '+' in '-', ki sta odgovorna za povečanje in zmanjšanje širine impulza. Ko pritisnete gumb, bo vrednost bita 1, in ko gumb sprostite, bo vrednost bita 0.

Bita B5 in B6 sta odgovorna za izbiro pina (barve), skozi katerega bo prešel signal PWM: barvne oznake teh bitov so prikazane v tabeli 3. Zadnji bit, B7, je odgovoren za aktiviranje samodejnega mešalnika.

Slika 6 in 7 prikazujeta postopek povezovanja gumbov s programskimi bloki, ki so odgovorni za pošiljanje prejšnjih vrednosti.

Če si želite ogledati celotno zasnovo aplikacije, lahko prenesete priloženo datoteko ».aia« z datotekami projekta in jo odprete na glavnem spletnem mestu.

Slika 8 spodaj prikazuje shemo vezja na najvišji ravni.

5. korak: Rezultati

Krmilnik je bil uspešno preizkušen in pokazalo se je, da mešanje barv skupaj z drugimi funkcijami deluje ustrezno.

Zaključek

V tem navodilu je bilo zgrajeno vezje pametne žarnice za brezžično upravljanje z aplikacijo Android. GreenPAK CMIC, uporabljen v tem projektu, je prav tako pomagal skrajšati in vgraditi več bistvenih komponent za nadzor svetlobe v eno majhno IC.

Priporočena: