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, Srpanj
Anonim
DIY kontrola RGB LED boja putem Bluetootha
DIY kontrola RGB LED boja putem Bluetootha

Pametne žarulje u posljednje vrijeme sve su popularnije i stalno postaju ključni dio pribora alata za pametnu kuću. Pametne žarulje omogućuju korisniku upravljanje svjetlom putem posebne aplikacije na korisnikovom pametnom telefonu; žarulja se može uključiti i isključiti, a boja se može promijeniti s sučelja aplikacije. U ovom smo projektu izgradili pametni kontroler žarulje kojim se može upravljati pomoću ručnog gumba ili mobilne aplikacije putem Bluetootha. Kako bismo ovom projektu dodali neki štih, dodali smo neke značajke koje korisniku omogućuju odabir boje osvjetljenja s popisa 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 značajke koja se također može koristiti kao prigušivač za tri osnovne boje (crvenu, zelenu, plavu). U krug smo dodali i vanjske gumbe kako bi se korisnik mogao prebaciti u ručni način rada i promijeniti boju svjetla s vanjskog gumba.

Ovaj Instructable sastoji se od dva odjeljka; dizajn GreenPAK ™ i dizajn aplikacije za Android. Dizajn GreenPAK temelji se na korištenju UART sučelja za komunikaciju. UART je odabran jer ga podržava većina Bluetooth modula, kao i većina drugih perifernih uređaja, poput WIFI modula. Slijedom toga, dizajn GreenPAK može se koristiti u mnogim vrstama veza.

Za izradu ovog projekta koristit ćemo SLG46620 CMIC, Bluetooth modul i RGB LED. IC GreenPAK bit će kontrolna jezgra ovog projekta; prima podatke s Bluetooth modula i/ili vanjskih gumba, zatim započinje potreban postupak za prikaz ispravnog osvjetljenja. 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 jednom IC -u. Također se odlikuje svojom malom veličinom i niskom potrošnjom energije. To će omogućiti proizvođačima da izgrade mali praktični krug pomoću jednog IC -a, pa će se troškovi proizvodnje smanjiti u usporedbi sa sličnim sustavima.

U ovom projektu kontroliramo jednu RGB LED diodu. Kako bi projekt bio komercijalno održiv, sustav bi vjerojatno trebao povećati razinu svjetline povezivanjem paralelno mnogih LED dioda i korištenjem odgovarajućih tranzistora; potrebno je uzeti u obzir i strujni krug.

Možete proći sve korake da biste razumjeli kako je GreenPAK čip programiran za kontrolu RGB LED boje putem Bluetootha. Međutim, ako samo želite jednostavno programirati IC bez razumijevanja svih unutarnjih sklopova, preuzmite softver GreenPAK da biste vidjeli već dovršenu datoteku dizajna GreenPAK. Priključite GreenPAK Development Kit na svoje računalo i hit program za stvaranje 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 asinkroni prijamnik / odašiljač. UART može pretvoriti podatke naprijed -natrag između paralelnog i serijskog formata. Uključuje serijski do 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 počinje logičkim LOW početnim bitom, nakon čega slijedi konfigurirani broj podatkovnih bitova 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 podatkovni bajt 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 sata SPI (SCLK). Kad Pin10 padne, znamo da smo primili START bit, pa koristimo PDLY detektor padajuće ivice za identifikaciju početka komunikacije. Taj detektor padajućih rubova radi na frekvenciji DFF0, koja omogućuje signalu SCLK da taktira SPI blok.

Naša brzina prijenosa iznosi 9600 bita u sekundi, pa naše razdoblje SCLK 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 korištenjem CNT6, 2-bitnog LUT1 i vanjskog sata OSC bloka. Izlaz CNT6 ne raste visoko sve do 52 μs nakon taktiranja DFF0, što je polovica našeg SCLK razdoblja od 104 μs. Kad je CNT6 visok, 2-bitni LUT1 AND gate omogućuje 2MHz OSC signalu prolaz u EXT. CLK0 ulaz, čiji je izlaz spojen na CNT0.

Korak 2: PWM jedinica

PWM jedinica
PWM jedinica

PWM signal generira se 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 s PWM1 i PWM2. Bluetooth modul mora biti spojen, što znači da se mora koristiti paralelni izlaz SPI. SPI paralelni izlazni bitovi od 0 do 7 su muksirani s DCMP1, DMCP2 i LF OSC CLK -ovim OUT1 i OUT0. PWM0 dobiva svoj izlaz iz 16-bitnog FSM0. Ako se ne promijeni, to dovodi do preopterećenja širine impulsa. Za ograničenje vrijednosti brojača na 8 bita dodaje se još jedan FSM; FSM1 se koristi kao pokazivač za saznanje kada brojač dosegne 0 ili 255. FSM0 se koristi za generiranje PWM impulsa. FSM0 i FSM1 moraju biti sinkronizirani. 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 vrijednosti 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 s Bluetooth modula na SPI paralelni izlaz i zatim se prosljeđuje povezanim funkcijama. Isprva ć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 ostale dvije LED diode. LUT10, LUT12 i LUT13 provjeravaju je li gumb Ručno aktiviran. 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ćim rubom koji dolazi iz CNT9, koji se koristi kao debouncer rastućeg ruba.

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 način automatskog miksera, tada se boja mijenja svakih 500 ms, a rastući rub dolazi iz CNT7. 4-bitni LUT1 koristi se za sprječavanje stanja '000' za D0 D1 D2, jer to stanje uzrokuje gašenje svjetla tijekom načina 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 naredbe SPI teku na pinove 12, 13 i 14, koje su konfigurirane kao izlazi i spojene su na vanjsku RGB LED.

DFF1, DFF2 i DFF3 koriste se za izgradnju 3-bitnog binarnog brojača. Vrijednost brojača povećava se s CNT7 impulsima koji prolaze kroz P14 u načinu rada automatskog miksera ili od signala koji dolaze s gumba 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 odabire korisničke kontrole. Sučelje se sastoji od dva odjeljka: prvi odjeljak sadrži niz gumba koji 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 proći PWM signal; PWM signal se može prosljeđivati samo na jedan pin u isto vrijeme. Donji popis logički uključuje/isključuje druge dvije boje tijekom PWM moda.

Gumb za automatsku miješalicu odgovoran je za pokretanje obrasca za automatsku promjenu svjetla pri kojem će se svjetlo mijenjati svakih pola sekunde. Odjeljak MIX sadrži dva popisa potvrdnih okvira tako da korisnik može odlučiti koje će dvije boje miješati zajedno.

Izradili smo aplikaciju pomoću web stranice izumitelja aplikacija MIT. To je web mjesto koje omogućuje izradu Android aplikacija bez prethodnog softverskog iskustva pomoću grafičkih softverskih blokova.

Isprva smo osmislili grafičko sučelje dodavanjem skupa gumba odgovornih za prikaz unaprijed definiranih boja, dodali smo i dva popisa potvrdnih okvira, a svaki popis 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 je bit odgovoran 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 izravnog upravljanja pomoću gumba unaprijed definiranih boja. Tako ć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. Kad se pritisne tipka, vrijednost bita bit će 1, a kada se gumb otpusti, bitna vrijednost bit će 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 gumba 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 glavnom web mjestu.

Slika 8 ispod prikazuje dijagram kruga najviše razine.

Korak 5: Rezultati

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

Zaključak

U ovom Instructableu sklopljen je sklop pametne žarulje 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čeni: