Turinys:

„Pasidaryk pats“valdymas RGB LED spalva per „Bluetooth“: 5 žingsniai
„Pasidaryk pats“valdymas RGB LED spalva per „Bluetooth“: 5 žingsniai

Video: „Pasidaryk pats“valdymas RGB LED spalva per „Bluetooth“: 5 žingsniai

Video: „Pasidaryk pats“valdymas RGB LED spalva per „Bluetooth“: 5 žingsniai
Video: Умный WiFi проектор звездных галактик с лазером и светомузыкой TUYA SMART 2024, Liepa
Anonim
„Pasidaryk pats“valdymas RGB LED spalva per „Bluetooth“
„Pasidaryk pats“valdymas RGB LED spalva per „Bluetooth“

Išmaniosios lemputės pastaruoju metu populiarėja ir nuolat tampa pagrindine išmaniųjų namų įrankių rinkinio dalimi. Išmaniosios lemputės leidžia vartotojui valdyti savo šviesą per specialią vartotojo išmaniojo telefono programą; lemputę galima įjungti ir išjungti, o spalvą galima pakeisti naudojant programos sąsają. Šiame projekte mes sukūrėme išmanųjį lemputės valdiklį, kurį galima valdyti rankiniu mygtuku arba mobiliąja programa per „Bluetooth“. Norėdami pridėti šiek tiek nuojautos šiam projektui, pridėjome keletą funkcijų, leidžiančių vartotojui pasirinkti apšvietimo spalvą iš spalvų, esančių programos sąsajoje, sąrašo. Jis taip pat gali suaktyvinti „automatinį maišymą“, kad sukurtų spalvų efektus ir pakeistų apšvietimą kas pusę sekundės. Vartotojas gali sukurti savo spalvų derinį naudodamas PWM funkciją, kuri taip pat gali būti naudojama kaip trijų pagrindinių spalvų (raudona, žalia, mėlyna) reguliatorius. Mes taip pat pridėjome išorinius mygtukus prie grandinės, kad vartotojas galėtų pereiti į rankinį režimą ir pakeisti šviesos spalvą iš išorinio mygtuko.

Ši instrukcija susideda iš dviejų skyrių; „GreenPAK ™“ir „Android“programų dizainas. „GreenPAK“dizainas pagrįstas UART sąsajos naudojimu bendravimui. UART pasirinktas todėl, kad jį palaiko dauguma „Bluetooth“modulių, taip pat dauguma kitų išorinių įrenginių, pvz., WIFI modulių. Todėl „GreenPAK“dizainas gali būti naudojamas daugeliui jungčių tipų.

Norėdami sukurti šį projektą, mes naudosime SLG46620 CMIC, „Bluetooth“modulį ir RGB šviesos diodą. „GreenPAK IC“bus šio projekto valdymo pagrindas; jis gauna duomenis iš „Bluetooth“modulio ir (arba) išorinių mygtukų, tada pradeda reikiamą procedūrą, kad būtų rodomas tinkamas apšvietimas. Jis taip pat generuoja PWM signalą ir perduoda jį šviesos diodui. Žemiau esančiame 1 paveiksle parodyta blokinė schema.

Šiame projekte naudojamame „GreenPAK“įrenginyje yra SPI ryšio sąsaja, PWM blokai, FSM ir daug kitų naudingų papildomų blokų viename IC. Jis taip pat pasižymi mažu dydžiu ir mažomis energijos sąnaudomis. Tai leis gamintojams sukurti nedidelę praktinę grandinę naudojant vieną IC, todėl gamybos sąnaudos bus sumažintos, palyginti su panašiomis sistemomis.

Šiame projekte mes valdome vieną RGB šviesos diodą. Kad projektas būtų komerciškai perspektyvus, sistemai greičiausiai reikėtų padidinti šviesumo lygį, lygiagrečiai prijungiant daugybę šviesos diodų ir naudojant atitinkamus tranzistorius; taip pat reikia atsižvelgti į maitinimo grandinę.

Galite atlikti visus veiksmus, kad suprastumėte, kaip „GreenPAK“lustas buvo užprogramuotas valdyti RGB LED spalvą per „Bluetooth“. Tačiau, jei norite tiesiog lengvai užprogramuoti IC nesuprasdami visos vidinės grandinės, atsisiųskite „GreenPAK“programinę įrangą, kad peržiūrėtumėte jau užpildytą „GreenPAK“dizaino failą. Prijunkite „GreenPAK Development Kit“prie kompiuterio ir paspauskite programą, kad sukurtumėte pasirinktinį IC, skirtą valdyti „RGB LED Color“per „Bluetooth“.

„GreenPAK“dizainą sudaro UART imtuvas, PWM blokas ir valdymo blokas, aprašytas toliau nurodytuose veiksmuose.

1 žingsnis: UART imtuvas

UART imtuvas
UART imtuvas

Pirmiausia turime nustatyti „Bluetooth“modulį. Dauguma „Bluetooth“IC palaiko UART protokolą bendravimui. UART reiškia universalų asinchroninį imtuvą / siųstuvą. UART gali konvertuoti duomenis pirmyn ir atgal tarp lygiagrečių ir nuoseklių formatų. Jame yra nuoseklusis lygiagretus imtuvas ir lygiagretus keitiklis, kurie abu laikrodžiai rodomi atskirai.

Duomenys, gauti „Bluetooth“modulyje, bus persiųsti į mūsų „GreenPAK“įrenginį. Pin10 laukimo būsena yra HIGH. Kiekvienas siunčiamas simbolis prasideda loginiu LOW pradžios bitu, po kurio eina konfigūruojamas duomenų bitų skaičius ir vienas ar keli loginiai HIGH stop bitai.

UART siųstuvas siunčia 1 START bitą, 8 duomenų bitus ir vieną STOP bitą. Paprastai numatytasis UART „Bluetooth“modulio perdavimo greitis yra 9600. Duomenų baitą iš „Bluetooth“IC siunčiame į „GreenPAK ™ SLG46620“SPI bloką.

Kadangi „GreenPAK SPI“bloke nėra START arba STOP bitų valdymo, mes naudosime tuos bitus, kad įjungtume ir išjungtume SPI laikrodžio signalą (SCLK). Kai Pin10 nusileidžia žemai, mes žinome, kad gavome START bitą, todėl mes naudojame PDLY kritimo krašto detektorių, kad nustatytume ryšio pradžią. Šis krintančio krašto detektorius sukasi DFF0, o tai leidžia SCLK signalui stebėti SPI bloką.

Mūsų duomenų perdavimo sparta yra 9600 bitų per sekundę, todėl mūsų SCLK periodas turi būti 1/9600 = 104 μs. Todėl OSC dažnį nustatėme į 2MHz ir kaip dažnio daliklį naudojome CNT0.

2 MHz-1 = 0,5 μs

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

Todėl norime, kad CNT0 skaitiklio vertė būtų 207. Kad nepraleistume jokių duomenų, turime atidėti SPI laikrodį puse laikrodžio ciklo, kad SPI blokas būtų rodomas tinkamu laiku. Tai pasiekėme naudodami CNT6, 2 bitų LUT1 ir OSC bloko išorinį laikrodį. CNT6 išėjimas neviršija 52 sekundžių po DFF0 laikrodžio, tai yra pusė mūsų 104 μs SCLK laikotarpio. Kai CNT6 yra aukštas, 2 bitų LUT1 AND vartai leidžia 2MHz OSC signalą perduoti į EXT. CLK0 įvestis, kurios išvestis prijungta prie CNT0.

2 žingsnis: PWM įrenginys

PWM vienetas
PWM vienetas

PWM signalas generuojamas naudojant PWM0 ir susijusį laikrodžio impulsų generatorių (CNT8/DLY8). Kadangi pulso plotis yra valdomas vartotojo, mes naudojame FSM0 (kurį galima prijungti prie PWM0), kad skaičiuotume vartotojo duomenis.

SLG46620 8 bitų FSM1 galima naudoti su PWM1 ir PWM2. „Bluetooth“modulis turi būti prijungtas, o tai reiškia, kad reikia naudoti lygiagrečią SPI išvestį. SPI lygiagretūs išvesties bitai nuo 0 iki 7 yra sumaišyti su DCMP1, DMCP2 ir LF OSC CLK OUT1 ir OUT0. PWM0 išvestį gauna iš 16 bitų FSM0. Jei nepakeisite, impulsų plotis bus perkrautas. Norėdami apriboti skaitiklio vertę 8 bitais, pridedama kita FSM; FSM1 naudojamas kaip rodyklė žinoti, kada skaitiklis pasiekia 0 arba 255. FSM0 naudojamas PWM impulsui generuoti. FSM0 ir FSM1 turi būti sinchronizuoti. Kadangi abu FSM turi iš anksto nustatytas laikrodžio parinktis, CNT1 ir CNT3 naudojami kaip tarpininkai perduoti CLK abiem FSM. Abiejų skaitiklių vertė yra ta pati, kuri yra 25 šiai instrukcijai. Mes galime pakeisti PWM vertės pasikeitimo greitį, pakeisdami šias skaitiklio vertes.

MFS vertę didina ir mažina signalai „+“ir „-“, gaunami iš lygiagrečios SPI išvesties.

3 žingsnis: valdymo blokas

Valdymo blokas
Valdymo blokas

Valdymo bloke gautas baitas perimamas iš „Bluetooth“modulio į lygiagrečią SPI išvestį ir perduodamas susijusioms funkcijoms. Iš pradžių PWM CS1 ir PWM CS2 išėjimai bus patikrinti, ar PWM modelis yra aktyvuotas. Jei jis įjungtas, jis nustatys, kuris kanalas išves PWM per LUT4, LUT6 ir LUT7.

LUT9, LUT11 ir LUT14 yra atsakingi už kitų dviejų šviesos diodų būsenos tikrinimą. LUT10, LUT12 ir LUT13 patikrina, ar rankinis mygtukas yra įjungtas, ar ne. Jei įjungtas rankinis režimas, RGB išėjimai veikia pagal D0, D1, D2 išvesties būsenas, kurios keičiamos kiekvieną kartą paspaudus spalvų mygtuką. Jis keičiasi kylančiu kraštu, gaunamu iš CNT9, kuris naudojamas kaip kylančio krašto atjungiklis.

20 kaištis sukonfigūruotas kaip įvestis ir naudojamas rankiniam ir „Bluetooth“valdymui perjungti.

Jei rankinis režimas yra išjungtas ir automatinis maišytuvo režimas yra įjungtas, spalva keičiasi kas 500 ms, o kylantysis kraštas ateina iš CNT7. 4 bitų LUT1 naudojamas siekiant užkirsti kelią „000“būsenai D0 D1 D2, nes dėl šios būsenos šviesa išsijungia automatinio maišytuvo režimu.

Jei rankinis režimas, PWM režimas ir automatinio maišytuvo režimas nėra įjungti, raudonos, žalios ir mėlynos SPI komandos eina į 12, 13 ir 14 kaiščius, kurie yra sukonfigūruoti kaip išėjimai ir yra prijungti prie išorinio RGB šviesos diodo.

DFF1, DFF2 ir DFF3 naudojami 3 bitų dvejetainiam skaitikliui sukurti. Skaitiklio reikšmė didėja naudojant CNT7 impulsus, kurie praeina per P14 automatinio maišytuvo režimu, arba signalus, gaunamus iš spalvos mygtuko (PIN3) rankiniu režimu.

4 žingsnis: „Android“programa

„Android“programa
„Android“programa
„Android“programa
„Android“programa
„Android“programa
„Android“programa
„Android“programa
„Android“programa

Šiame skyriuje mes sukursime „Android“programą, kuri stebės ir rodys vartotojo valdymo pasirinkimus. Sąsaja susideda iš dviejų skyrių: pirmoje dalyje yra mygtukų rinkinys, turintis iš anksto nustatytas spalvas, todėl paspaudus kurį nors iš šių mygtukų, užsidega tos pačios spalvos šviesos diodas. Antrasis skyrius (MIX kvadratas) sukuria naudotojui skirtingą spalvą.

Pirmajame skyriuje vartotojas pasirenka šviesos diodo kaištį, kuriuo nori perduoti PWM signalą; PWM signalas vienu metu gali būti perduodamas tik vienam kaiščiui. Apatiniame sąraše logiškai įjungiamos/išjungiamos kitos dvi spalvos PWM režimu.

Automatinio maišytuvo mygtukas yra atsakingas už automatinio šviesos keitimo modelio vykdymą, kai šviesa keičiasi kas pusę sekundės. Skyriuje MIX yra du žymės langelių sąrašai, kad vartotojas galėtų nuspręsti, kurias dvi spalvas maišyti.

Mes sukūrėme programą naudodami MIT programų išradėjų svetainę. Tai svetainė, leidžianti kurti „Android“programas be išankstinės programinės įrangos patirties naudojant grafinius programinės įrangos blokus.

Iš pradžių suprojektavome grafinę sąsają, pridėdami mygtukų rinkinį, atsakingą už iš anksto nustatytų spalvų rodymą, taip pat pridėjome du žymės langelių sąrašus ir kiekviename sąraše yra 3 elementai; kiekvienas elementas yra išdėstytas atskirame langelyje, kaip parodyta 5 paveiksle.

Vartotojo sąsajos mygtukai yra susieti su programinės įrangos komandomis: visos komandos, kurias programa siųs per „Bluetooth“, bus baitų formatu, o kiekvienas bitas yra atsakingas už tam tikrą funkciją. 1 lentelėje parodyta komandų rėmelių, išsiųstų į GreenPAK, forma.

Pirmieji trys bitai, B0, B1 ir B2, palaikys RGB šviesos diodų būseną tiesioginio valdymo režimu iš anksto nustatytų spalvų mygtukais. Taigi, spustelėjus bet kurį iš jų, bus išsiųsta atitinkama mygtuko vertė, kaip parodyta 2 lentelėje.

Bitai B3 ir B4 turi komandas „+“ir „-“, kurios yra atsakingos už impulsų pločio didinimą ir mažinimą. Paspaudus mygtuką, bitų vertė bus 1, o kai mygtukas bus atleistas, bitų vertė bus 0.

B5 ir B6 bitai yra atsakingi už kaiščio (spalvos), per kurį praeis PWM signalas, pasirinkimą: šių bitų spalvų žymėjimai pateikti 3 lentelėje. Paskutinis bitas, B7, yra atsakingas už automatinio maišytuvo įjungimą.

6 ir 7 paveikslai parodo mygtukų susiejimo su programavimo blokais, atsakingų už ankstesnių reikšmių siuntimą, procesą.

Norėdami peržiūrėti visą programos dizainą, galite atsisiųsti pridėtą failą „.aia“su projekto failais ir atidaryti jį pagrindinėje svetainėje.

8 paveiksle parodyta aukščiausio lygio grandinės schema.

5 žingsnis: Rezultatai

Valdiklis buvo sėkmingai išbandytas ir buvo įrodyta, kad spalvų maišymas kartu su kitomis funkcijomis veikia tinkamai.

Išvada

Šioje instrukcijoje buvo sukurta išmanioji lemputės grandinė, kurią belaidžiu būdu valdė „Android“programa. Šiame projekte naudojamas „GreenPAK CMIC“taip pat padėjo sutrumpinti ir į vieną mažą IC įterpti kelis svarbius šviesos valdymo komponentus.

Rekomenduojamas: