Cuprins:

DIY Control RGB LED Color via Bluetooth: 5 pași
DIY Control RGB LED Color via Bluetooth: 5 pași

Video: DIY Control RGB LED Color via Bluetooth: 5 pași

Video: DIY Control RGB LED Color via Bluetooth: 5 pași
Video: Amazing Idea Using RGB LED 2024, Iulie
Anonim
DIY Control RGB LED Color via Bluetooth
DIY Control RGB LED Color via Bluetooth

Becurile inteligente au crescut în popularitate recent și devin în mod constant o parte cheie a setului de instrumente pentru casă inteligentă. Becurile inteligente permit utilizatorului să-și controleze lumina printr-o aplicație specială de pe telefonul inteligent al utilizatorului; becul poate fi pornit și oprit, iar culoarea poate fi schimbată din interfața aplicației. În acest proiect, am construit un controler de bec inteligent care poate fi controlat de la un buton manual sau o aplicație mobilă prin Bluetooth. Pentru a adăuga un anumit stil acestui proiect, am adăugat câteva caracteristici care permit utilizatorului să aleagă o culoare de iluminat din lista de culori inclusă în interfața aplicației. De asemenea, poate activa un „mix automat” pentru a genera efecte de culoare și a schimba iluminarea la fiecare jumătate de secundă. Utilizatorul își poate crea propriul amestec de culori folosind o caracteristică PWM care poate fi folosită și ca un dimmer pentru cele trei culori de bază (roșu, verde, albastru). De asemenea, am adăugat butoane externe la circuit, astfel încât utilizatorul să poată trece în modul manual și să schimbe culoarea luminii dintr-un buton extern.

Acest instructabil este alcătuit din două secțiuni; designul GreenPAK ™ și designul aplicației Android. Designul GreenPAK se bazează pe utilizarea unei interfețe UART pentru comunicare. UART este ales deoarece este acceptat de majoritatea modulelor Bluetooth, precum și de majoritatea celorlalte periferice, cum ar fi modulele WIFI. În consecință, designul GreenPAK poate fi utilizat în multe tipuri de conexiuni.

Pentru a construi acest proiect, vom folosi SLG46620 CMIC, un modul Bluetooth și un LED RGB. IC GreenPAK va fi nucleul de control al acestui proiect; primește date de la un modul Bluetooth și / sau butoane externe, apoi începe procedura necesară pentru a afișa iluminarea corectă. De asemenea, generează semnalul PWM și îl transmite la LED. Figura 1 de mai jos prezintă diagrama bloc.

Dispozitivul GreenPAK utilizat în acest proiect conține o interfață de conexiune SPI, blocuri PWM, FSM și o mulțime de alte blocuri suplimentare utile într-un singur IC. De asemenea, se caracterizează prin dimensiunile reduse și consumul redus de energie. Acest lucru va permite producătorilor să construiască un mic circuit practic folosind un singur IC, astfel costurile de producție vor fi reduse la minimum în comparație cu sisteme similare.

În acest proiect, controlăm un LED RGB. Pentru a face proiectul viabil din punct de vedere comercial, un sistem ar trebui probabil să mărească nivelul de luminozitate prin conectarea multor LED-uri în paralel și folosirea tranzistoarelor corespunzătoare; trebuie luat în considerare și circuitul de alimentare.

Puteți parcurge toți pașii pentru a înțelege cum a fost programat cipul GreenPAK pentru a controla culoarea LED RGB prin Bluetooth. Cu toate acestea, dacă doriți doar să programați cu ușurință IC-ul fără a înțelege toate circuitele interioare, descărcați software-ul GreenPAK pentru a vizualiza fișierul de proiectare GreenPAK deja finalizat. Conectați kitul de dezvoltare GreenPAK la computer și apăsați programul pentru a crea un IC personalizat pentru a controla culoarea LED RGB prin Bluetooth.

Designul GreenPAK constă din receptorul UART, unitatea PWM și unitatea de control descrise în pașii de mai jos.

Pasul 1: receptor UART

Receptor UART
Receptor UART

Mai întâi, trebuie să configurăm modulul Bluetooth. Majoritatea IC-urilor Bluetooth acceptă protocolul UART pentru comunicare. UART înseamnă Receptor / Transmițător Universal Asincron. UART poate converti datele înainte și înapoi între formate paralele și seriale. Include un receptor de la serial la paralel și un convertor de la paralel la serial, ambele fiind tactate separat.

Datele primite în modulul Bluetooth vor fi transmise dispozitivului nostru GreenPAK. Starea de repaus pentru Pin10 este HIGH. Fiecare caracter trimis începe cu un bit de pornire LOW logic, urmat de un număr configurabil de biți de date și unul sau mai mulți biți de stop logici HIGH.

Transmițătorul UART trimite 1 bit de START, 8 biți de date și un bit STOP. De obicei, rata de transmisie implicită pentru un modul Bluetooth UART este 9600. Vom trimite octetul de date de la IC Bluetooth la blocul SPI al GreenPAK ™ SLG46620.

Deoarece blocul GreenPAK SPI nu are control de biți START sau STOP, vom folosi acești biți în loc pentru a activa și a dezactiva semnalul de ceas SPI (SCLK). Când Pin10 scade, știm că am primit un bit START, așa că folosim detectorul PDLY pentru a identifica începutul comunicării. Detectorul de margine căzătoare ceasează DFF0, care permite semnalului SCLK să acționeze blocul SPI.

Rata noastră în baud este de 9600 biți pe secundă, deci perioada noastră SCLK trebuie să fie 1/9600 = 104 μs. Prin urmare, am setat frecvența OSC la 2 MHz și am folosit CNT0 ca divizor de frecvență.

2 MHz-1 = 0,5 μs

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

Prin urmare, dorim ca valoarea contorului CNT0 să fie 207. Pentru a ne asigura că nu pierdem niciun fel de date, trebuie să amânăm ceasul SPI cu o jumătate de ciclu de ceas, astfel încât blocul SPI să fie tactat la momentul potrivit. Am realizat acest lucru folosind CNT6, LUT1 pe 2 biți și ceasul extern al blocului OSC. Ieșirea CNT6 nu crește până la 52 μs după ce DFF0 este tactat, ceea ce reprezintă jumătate din perioada noastră de 104 μs SCLK. Când CNT6 este ridicat, poarta LUT1 AND pe 2 biți permite semnalului OSC de 2 MHz să treacă în EXT. Intrare CLK0, a cărei ieșire este conectată la CNT0.

Pasul 2: Unitatea PWM

Unitatea PWM
Unitatea PWM

Semnalul PWM este generat folosind PWM0 și un generator de impuls de ceas asociat (CNT8 / DLY8). Deoarece lățimea impulsului este controlată de utilizator, folosim FSM0 (care poate fi conectat la PWM0) pentru a număra datele utilizatorului.

În SLG46620, FSM1 pe 8 biți poate fi utilizat cu PWM1 și PWM2. Modulul Bluetooth trebuie să fie conectat, ceea ce înseamnă că trebuie utilizată ieșirea paralelă SPI. Biții de ieșire paraleli SPI de la 0 la 7 sunt muxed cu DCMP1, DMCP2 și LF OSC CLK’s OUT1 și OUT0. PWM0 își obține ieșirea din FSM0 pe 16 biți. Lăsat nealterat, acest lucru determină supraîncărcarea lățimii impulsului. Pentru a limita valoarea contorului la 8 biți se adaugă un alt FSM; FSM1 este folosit ca indicator pentru a ști când contorul atinge fie 0, fie 255. FSM0 este utilizat pentru a genera impulsul PWM. FSM0 și FSM1 trebuie sincronizate. Deoarece ambele FSM-uri au opțiuni de ceas presetate, CNT1 și CNT3 sunt utilizate ca mediatori pentru a transmite CLK ambelor FSM-uri. Cele două contoare sunt setate la aceeași valoare, care este 25 pentru acest instructabil. Putem modifica rata de modificare a valorii PWM modificând aceste valori ale contorului.

Valoarea FSM-urilor este mărită și scăzută de semnalele „+” și „-”, care provin din ieșirea paralelă SPI.

Pasul 3: Unitate de control

Unitatea de comandă
Unitatea de comandă

În cadrul unității de control octetul primit este preluat de la modulul Bluetooth la ieșirea paralelă SPI și apoi este trecut la funcțiile asociate. La început, ieșirile PWM CS1 și PWM CS2 vor fi verificate pentru a vedea dacă modelul PWM este activat sau nu. Dacă este activat, atunci va determina care canal va transmite PWM prin LUT4, LUT6 și LUT7.

LUT9, LUT11 și LUT14 sunt responsabile pentru verificarea stării celorlalte două LED-uri. LUT10, LUT12 și LUT13 verifică dacă butonul Manual este activat sau nu. Dacă modul Manual este activ, atunci ieșirile RGB funcționează în conformitate cu stările de ieșire D0, D1, D2, care se schimbă de fiecare dată când este apăsat butonul Color. Se schimbă odată cu creșterea ascendentă provenind de la CNT9, care este utilizată ca un descrescător ascendent.

Pinul 20 este configurat ca o intrare și este utilizat pentru a comuta între controlul manual și Bluetooth.

Dacă modul Manual este dezactivat și modul Auto mixer este activat, atunci culoarea se schimbă la fiecare 500 ms, cu marginea ascendentă provenind de la CNT7. Un LUT1 pe 4 biți este utilizat pentru a preveni starea '000' pentru D0 D1 D2, deoarece această stare face ca lumina să se stingă în modul mixer automat.

Dacă modul manual, modul PWM și modul mixer automat nu sunt activate, comenzile SPI roșii, verzi și albastre trec la pinii 12, 13 și 14, care sunt configurate ca ieșiri și sunt conectate la LED-ul RGB extern.

DFF1, DFF2 și DFF3 sunt utilizate pentru a construi un contor binar pe 3 biți. Valoarea contorului crește odată cu impulsurile CNT7 care trec prin P14 în modul mixer automat sau de la semnale provenite de la butonul Culoare (PIN3) în modul manual.

Pasul 4: Aplicație Android

Aplicație Android
Aplicație Android
Aplicație Android
Aplicație Android
Aplicație Android
Aplicație Android
Aplicație Android
Aplicație Android

În această secțiune, vom construi o aplicație Android care va monitoriza și afișa selecțiile de control ale utilizatorului. Interfața este alcătuită din două secțiuni: prima secțiune conține un set de butoane care au culori predefinite, astfel încât atunci când oricare dintre aceste butoane este apăsat, se aprinde un LED cu aceeași culoare corespunzătoare. A doua secțiune (pătrat MIX) creează o culoare mixtă pentru utilizator.

În prima secțiune, utilizatorul alege pinul LED prin care dorește să treacă semnalul PWM; semnalul PWM poate fi transmis doar la un singur pin la un moment dat. Lista inferioară controlează celelalte două culori în mod logic pornit / oprit în timpul modului PWM.

Butonul mixerului automat este responsabil pentru rularea modelului automat de schimbare a luminii, unde lumina se va schimba la fiecare jumătate de secundă. Secțiunea MIX conține două liste de casete de selectare, astfel încât utilizatorul să poată decide ce două culori se amestecă împreună.

Am construit aplicația folosind site-ul web al inventatorului de aplicații MIT. Este un site care permite crearea de aplicații Android fără experiență software prealabilă folosind blocuri software grafice.

La început, am proiectat o interfață grafică prin adăugarea unui set de butoane responsabile de afișarea culorilor predefinite, am adăugat, de asemenea, două liste de casete de selectare și fiecare listă are 3 elemente; fiecare element este conturat în caseta sa individuală, așa cum se arată în Figura 5.

Butoanele din interfața utilizatorului sunt legate de comenzile software: toate comenzile pe care aplicația le va trimite prin Bluetooth vor fi în format de octeți și fiecare bit este responsabil pentru o funcție specifică. Tabelul 1 prezintă forma cadrelor de comandă trimise către GreenPAK.

Primii trei biți, B0, B1 și B2, vor menține starea LED-urilor RGB în modul de control direct prin butoanele culorilor predefinite. Astfel, când faceți clic pe oricare dintre ele, va fi trimisă valoarea corespunzătoare a butonului, așa cum se arată în Tabelul 2.

Biții B3 și B4 dețin comenzile '+' și '-', care sunt responsabile pentru creșterea și scăderea lățimii impulsului. Când butonul este apăsat, valoarea bitului va fi 1, iar când butonul este eliberat, valoarea bitului va fi 0.

Biții B5 și B6 sunt responsabili pentru alegerea pinului (culorii) prin care va trece semnalul PWM: denumirile de culoare ale acestor biți sunt prezentate în tabelul 3. Ultimul bit, B7, este responsabil pentru activarea mixerului automat.

Figura 6 și Figura 7 demonstrează procesul de legare a butoanelor cu blocuri de programare care sunt responsabile pentru transmiterea valorilor anterioare.

Pentru a urmări designul complet al aplicației, puteți descărca fișierul atașat „.aia” cu fișierele proiectului și îl puteți deschide pe site-ul principal.

Figura 8 de mai jos prezintă schema circuitului de nivel superior.

Pasul 5: Rezultate

Controlerul a fost testat cu succes și s-a demonstrat că amestecul de culori, împreună cu alte caracteristici, funcționează corespunzător.

Concluzie

În acest Instructable, un circuit cu bec inteligent a fost construit pentru a fi controlat fără fir de o aplicație Android. GreenPAK CMIC utilizat în acest proiect a contribuit, de asemenea, la scurtarea și încorporarea mai multor componente esențiale pentru controlul luminii într-un singur IC mic.

Recomandat: