Sadržaj:

DIY kontrola RGB LED boja putem Bluetootha: 5 koraka
DIY kontrola RGB LED boja putem Bluetootha: 5 koraka

Video: DIY kontrola RGB LED boja putem Bluetootha: 5 koraka

Video: DIY kontrola RGB LED boja putem Bluetootha: 5 koraka
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Juli
Anonim
DIY kontrola RGB LED boja putem Bluetootha
DIY kontrola RGB LED boja putem Bluetootha

Pametne sijalice u posljednje vrijeme sve više postaju popularne i stalno postaju ključni dio kompleta alata za pametnu kuću. Pametne sijalice omogućuju korisniku upravljanje svjetlom putem posebne aplikacije na korisnikovom pametnom telefonu; sijalica se može uključiti i isključiti, a boja se može promijeniti iz sučelja aplikacije. U ovom projektu izgradili smo pametni kontroler sijalice kojim se može upravljati pomoću ručnog dugmeta ili mobilne aplikacije putem Bluetootha. Kako bismo ovom projektu dodali neki štih, dodali smo neke značajke koje omogućuju korisniku da odabere boju osvjetljenja sa liste boja uključenih u sučelje aplikacije. Također može aktivirati „automatsko miješanje“za stvaranje efekata u boji i promjenu osvjetljenja svakih pola sekunde. Korisnik može stvoriti vlastitu mješavinu boja pomoću PWM funkcije koja se također može koristiti kao prigušivač za tri osnovne boje (crvenu, zelenu, plavu). U kolo smo dodali i vanjske tipke tako da korisnik može preći u ručni način rada i promijeniti boju svjetla s vanjskog gumba.

Ovaj Instructable se sastoji od dva odjeljka; dizajn GreenPAK ™ i dizajn aplikacije za Android. GreenPAK dizajn zasnovan je na korišćenju UART interfejsa za komunikaciju. UART je odabran jer ga podržava većina Bluetooth modula, kao i većina drugih perifernih uređaja, poput WIFI modula. Zbog toga se dizajn GreenPAK -a može koristiti u mnogim vrstama veza.

Za izradu ovog projekta koristit ćemo SLG46620 CMIC, Bluetooth modul i RGB LED. IC GreenPAK će biti kontrolno jezgro ovog projekta; prima podatke iz Bluetooth modula i/ili vanjskih tipki, zatim započinje potrebnu proceduru za prikaz ispravnog osvjetljenja. On također generira PWM signal i šalje ga na LED. Slika 1 ispod prikazuje blok dijagram.

Uređaj GreenPAK koji se koristi u ovom projektu sadrži sučelje za SPI vezu, PWM blokove, FSM i puno drugih korisnih dodatnih blokova u jednoj IC. Odlikuje ga i mala veličina i niska potrošnja energije. Ovo će omogućiti proizvođačima da izgrade mali praktični krug koristeći jedan IC, pa će troškovi proizvodnje biti svedeni na minimum u poređenju sa sličnim sistemima.

U ovom projektu kontroliramo jednu RGB LED diodu. Da bi projekat bio komercijalno održiv, sistem bi vjerovatno morao povećati nivo svjetline povezivanjem mnogih LED paralelno i upotrebom odgovarajućih tranzistora; strujni krug također treba uzeti u obzir.

Možete proći sve korake da biste razumjeli kako je GreenPAK čip programiran za kontrolu RGB LED boje preko Bluetooth -a. Međutim, ako samo želite jednostavno programirati IC bez razumijevanja svih unutrašnjih kola, preuzmite GreenPAK softver da biste vidjeli već završenu GreenPAK datoteku za dizajn. Priključite GreenPAK Development Kit na svoje računalo i pritisnite program za kreiranje prilagođenog IC -a za kontrolu RGB LED boje putem Bluetootha.

GreenPAK dizajn sastoji se od UART prijemnika, PWM jedinice i upravljačke jedinice opisane u koracima u nastavku.

Korak 1: UART prijemnik

UART prijemnik
UART prijemnik

Prvo moramo postaviti Bluetooth modul. Većina Bluetooth IC -ova podržava UART protokol za komunikaciju. UART označava univerzalni asinhroni prijemnik / odašiljač. UART može pretvoriti podatke naprijed -natrag između paralelnog i serijskog formata. Uključuje serijski / paralelni prijemnik i paralelni serijski pretvarač, koji se rade odvojeno.

Podaci primljeni u Bluetooth modulu bit će preneseni na naš GreenPAK uređaj. Stanje mirovanja za Pin10 je VISOKO. Svaki poslani znak započinje logičkim LOW početnim bitom, nakon čega slijedi konfigurirani broj bitova podataka i jedan ili više logičkih HIGH stop bitova.

UART odašiljač šalje 1 START bit, 8 bitova podataka i jedan STOP bit. Obično je zadana brzina prijenosa za UART Bluetooth modul 9600. Poslat ćemo bajt podataka s Bluetooth IC -a u SPI blok GreenPAK ™ SLG46620.

Budući da GreenPAK SPI blok nema kontrolu bitova START ili STOP, umjesto njih ćemo koristiti te bitove za omogućavanje i onemogućavanje signala takta SPI (SCLK). Kad Pin10 padne, znamo da smo primili START bit, pa koristimo PDLY detektor padajuće ivice za identifikaciju početka komunikacije. Taj padajući ivični detektor radi na frekvenciji DFF0, koja omogućava signalu SCLK da taktira SPI blok.

Naša brzina prijenosa je 9600 bita u sekundi, pa naš SCLK period mora biti 1/9600 = 104 μs. Stoga smo postavili OSC frekvenciju na 2MHz i koristili CNT0 kao razdjelnik frekvencije.

2 MHz-1 = 0,5 μs

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

Stoga želimo da vrijednost brojača CNT0 bude 207. Kako bismo osigurali da ne propuštamo nikakve podatke, moramo odgoditi SPI sat za pola sata, tako da se SPI blok taktira u odgovarajuće vrijeme. To smo postigli pomoću CNT6, 2-bitnog LUT1 i vanjskog sata OSC bloka. Izlaz CNT6 ne raste visoko do 52 μs nakon taktiranja DFF0, što je polovica našeg SCLK perioda od 104 μs. Kada je CNT6 visok, 2-bitni LUT1 AND gate dozvoljava 2MHz OSC signalu da prođe u EXT. CLK0 ulaz, čiji je izlaz povezan s CNT0.

Korak 2: PWM jedinica

PWM jedinica
PWM jedinica

PWM signal se generira pomoću PWM0 i pridruženog generatora takta impulsa (CNT8/DLY8). Budući da širinu impulsa može kontrolirati korisnik, koristimo FSM0 (koji se može spojiti na PWM0) za brojanje korisničkih podataka.

U SLG46620, 8-bitni FSM1 se može koristiti sa PWM1 i PWM2. Bluetooth modul mora biti povezan, što znači da se mora koristiti SPI paralelni izlaz. SPI paralelni izlazni bitovi od 0 do 7 su muksirani sa DCMP1, DMCP2 i LF OSC CLK -ovim OUT1 i OUT0. PWM0 prima izlaz iz 16-bitnog FSM0. Ako se ne promijeni, ovo uzrokuje preopterećenje širine impulsa. Za ograničenje vrijednosti brojača na 8 bita dodaje se još jedan FSM; FSM1 se koristi kao pokazivač da se zna kada brojač dosegne 0 ili 255. FSM0 se koristi za generiranje PWM impulsa. FSM0 i FSM1 moraju biti sinhronizirani. Budući da oba FSM -a imaju unaprijed postavljene opcije sata, CNT1 i CNT3 se koriste kao posrednici za prosljeđivanje CLK -a na oba FSM -a. Dva brojača su postavljena na istu vrijednost, što je 25 za ovaj Instructable. Brzinu promjene PWM vrijednosti možemo promijeniti promjenom ovih brojača.

Vrijednost FSM-a se povećava i smanjuje signalima '+' i '-', koji potječu iz SPI paralelnog izlaza.

Korak 3: Upravljačka jedinica

Kontrolna jedinica
Kontrolna jedinica

Unutar upravljačke jedinice primljeni bajt se prenosi iz Bluetooth modula na SPI paralelni izlaz i zatim se prosljeđuje povezanim funkcijama. Najprije će se provjeriti izlazi PWM CS1 i PWM CS2 kako bi se vidjelo je li PWM uzorak aktiviran ili nije. Ako je aktiviran, on će odrediti koji kanal će izlaziti PWM preko LUT4, LUT6 i LUT7.

LUT9, LUT11 i LUT14 odgovorni su za provjeru stanja druge dvije LED diode. LUT10, LUT12 i LUT13 proveravaju da li je dugme za ručno aktiviranje ili ne. Ako je ručni način rada aktivan, tada RGB izlazi rade prema izlaznim stanjima D0, D1, D2, koja se mijenjaju svaki put kada se pritisne tipka Boja. Mijenja se s rastućom ivicom koja dolazi iz CNT9, koji se koristi kao debouncer rastuće ivice.

Pin 20 je konfiguriran kao ulaz i koristi se za prebacivanje između ručne i Bluetooth kontrole.

Ako je ručni način onemogućen i aktiviran je način automatskog miksera, tada se boja mijenja svakih 500 ms, a rastuća ivica dolazi iz CNT7. 4-bitni LUT1 koristi se za sprječavanje stanja '000' za D0 D1 D2, jer ovo stanje uzrokuje gašenje svjetla u načinu rada automatskog miksera.

Ako se ručni način rada, način rada PWM i način rada automatskog miksera ne aktiviraju, tada crvene, zelene i plave SPI naredbe teku do pinova 12, 13 i 14, koje su konfigurirane kao izlazi i spojene su na vanjsku RGB LED.

DFF1, DFF2 i DFF3 se koriste za izgradnju 3-bitnog binarnog brojača. Vrijednost brojača se povećava sa CNT7 impulsima koji prolaze kroz P14 u načinu rada automatskog miksera ili od signala koji dolaze s tipke u boji (PIN3) u ručnom načinu rada.

Korak 4: Android aplikacija

Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija

U ovom ćemo odjeljku izgraditi Android aplikaciju koja će nadzirati i prikazivati korisničke kontrole. Interfejs se sastoji od dva odjeljka: prvi odjeljak sadrži niz tipki koje imaju unaprijed definirane boje, tako da kada se pritisne bilo koji od ovih gumba, svijetli LED odgovarajuće boje. Drugi odjeljak (MIX kvadrat) stvara mješovitu boju za korisnika.

U prvom odjeljku korisnik bira LED pin kroz koji želi da PWM signal prođe; PWM signal se može prosljeđivati samo na jedan pin u isto vrijeme. Donja lista logički uključuje/isključuje druge dvije boje tokom PWM moda.

Dugme za automatski mikser je odgovorno za pokretanje obrasca automatske promjene svjetla pri kojem će se svjetlo mijenjati svakih pola sekunde. Odeljak MIX sadrži dve liste polja za potvrdu tako da korisnik može odlučiti koje dve boje će kombinovati.

Napravili smo aplikaciju koristeći web stranicu izumitelja aplikacija MIT. To je web mjesto koje omogućava izradu Android aplikacija bez prethodnog softverskog iskustva pomoću grafičkih softverskih blokova.

Prvo smo dizajnirali grafičko sučelje dodavanjem skupa dugmadi odgovornih za prikaz unaprijed definiranih boja, dodali smo i dvije liste potvrdnih okvira, a svaka lista ima 3 elementa; svaki element je ocrtan u svom zasebnom okviru, kao što je prikazano na slici 5.

Gumbi unutar korisničkog sučelja povezani su sa softverskim naredbama: sve naredbe koje će aplikacija poslati putem Bluetootha bit će u formatu bajta, a svaki bit odgovoran je za određenu funkciju. Tablica 1 prikazuje oblik naredbenih okvira poslanih GreenPAK -u.

Prva tri bita, B0, B1 i B2, držat će stanje RGB LED dioda u načinu direktne kontrole pomoću tipki unaprijed definiranih boja. Stoga će se klikom na bilo koji od njih poslati odgovarajuća vrijednost gumba, kako je prikazano u tablici 2.

Bitovi B3 i B4 drže naredbe '+' i '-' koje su odgovorne za povećanje i smanjenje širine impulsa. Kada se pritisne dugme, vrijednost bita će biti 1, a kada se dugme otpusti, vrijednost bita će biti 0.

Bitovi B5 i B6 odgovorni su za odabir pina (boje) kroz koji će PWM signal proći: oznake boja ovih bitova prikazane su u tablici 3. Posljednji bit, B7, odgovoran je za aktiviranje automatskog miksera.

Slike 6 i 7 prikazuju proces povezivanja tipki s programskim blokovima koji su odgovorni za slanje prethodnih vrijednosti.

Da biste vidjeli potpuni dizajn aplikacije, možete preuzeti priloženu datoteku “.aia” s datotekama projekta i otvoriti je na glavnoj web stranici.

Slika 8 ispod prikazuje dijagram kruga najvišeg nivoa.

Korak 5: Rezultati

Kontroler je uspješno testiran i pokazalo se da miješanje boja, zajedno s drugim karakteristikama, radi na odgovarajući način.

Zaključak

U ovom Instructable, sklop pametne žarulje je napravljen za bežično upravljanje Android aplikacijom. GreenPAK CMIC korišten u ovom projektu također je pomogao da se skrati i ugradi nekoliko bitnih komponenti za kontrolu svjetla u jednu malu IC.

Preporučuje se: