Controlul wireless și precis al echilibrului de culoare al diodelor cu emisie de lumină (LED-urilor) poate fi obținut utilizând un microcontroler pe 8 biți și un modul Bluetooth® 4.1 de joasă putere, gestionând spațiul de culoare roșu, verde, albastru, alfa (RGBA).
Placa demonstrativă prezentată în figura 1 are patru LED-uri – având culorile roșu, verde, albastru și galben. Strălucirea fiecăruia dintre aceste LED-uri este controlată prin factorul de umplere al unui semnal PWM (modulație în lățimea pulsului).
Acest lucru poate fi obținut utilizând microcontrolerul PIC16F1579 de la Microchip, care are patru PWM-uri pe 16 biți, utilizate pentru comanda LED-urilor. PWM-urile pe 16 biți permit controlul precis al intensității fiecărui LED și mixarea diferitelor nivele de strălucire RGBA pentru a crea diferite culori.
Utilizând sensibilitatea tactilă capacitivă mTouch®, este activată operarea a două cursoare tactile capacitive. Modulul Bluetooth de pe placă RN4020 este utilizat pentru recepționarea valorilor PWM de la aplicația mobilă Android™ sau de la un program desktop ce utilizează comunicație Bluetooth de joasă putere. Placa este alimentată de o baterie de 1.5V AAA.
Iluminare
Lumina produsă de LED-uri variază datorită câtorva factori. Strălucirea, măsurată în lumeni, diferă atât pentru LED-uri de divese tipuri, cât și pentru LED-uri de același tip.
Pentru LED-uri color, culoarea specifică măsurată prin valori cromatice va diferi de la un LED la altul.
Pentru a dezvolta un profil cromatic și de strălucire, au fost măsurate câteva eșantioane de LED-uri din mărci specifice. Valorile au fost apoi utilizate ca valori tipice în proiectarea hardware și în calculul de cromaticitate al software-ului. Acest proces este numit reglare culoare.
Valorile rezistențelor au fost fixate astfel încât fiecare culoare să producă același număr de lumeni.
Rezistențele în serie cu LED-urile sunt: roșu 820Ω, albastru 400Ω, verde 500Ω și galben 500Ω.
Moduri de operare
Există două moduri de operare: primul mod este cu două cursoare glisante pentru valoarea de saturație de nuanță plus alb (HSVW) și pentru strălucire; al doilea este selectorul de cromaticitate, utilizând Bluetooth de joasă putere.
La alimentare, placa pornește inițial în primul mod. Pe placă există două cursoare glisante tactile, unul pentru stabilirea culorii, iar celălalt pentru controlul nivelelor de strălucire.
Dacă este atins primul cursor în modul 1, culoarea selectată este trimisă către LED-uri. Aceasta este afișată până când este recepționată o altă intrare. Strălucirea unei culori particulare este apoi controlată cu ajutorul celuilalt cursor glisant.
Pentru modul al doilea, valorile de culoare (PWM) sunt selectate utilizând o aplicație mobilă bazată pe Android sau o aplicație desktop bazată pe Windows. Valorile respective PWM sunt apoi trimise către placă printr-o conexiune Bluetooth. Aplicația utilizează diagrama de cromaticitate CIE 1931 XY, vezi figura 2. Valorile exacte ale PWM pentru culoarea selectată și nivelele de strălucire sunt prelucrate și trimise către placa RGBA prin conexiunea Bluetooth. Modulul Bluetooth de pe placă recepționează apoi valorile PWM, care sunt utilizate de firmware-ul de placă RGBA pentru a afișa culoarea selectată.
Aplicația de interfață grafică GUI pentru selecția cromaticii se bazează pe diagrama de cromaticitate xy CIE 1931. Spațiul de culoare CIE 1931 prezintă o gamă largă de culori în termeni de cromaticitate (x) și luminanță (y). Nivelele de culoare și strălucire pentru LED-urile roșu, verde și albastru sunt mapate în spațiul de culoare CIE definind un triunghi care cuprinde toate nuanțele posibile ce pot fi generate de ieșirea celor trei dispozitive; acest lucru este cunoscut ca gamă de culori (color gamut).
Pentru a obține o gamă de culori mai bună, a fost adăugat un LED galben. Datele xy pentru LED-ul galben sunt mapate în spațiul de culoare CIE 1931 xy. Acesta definește un alt triunghi între coordonatele roșu, galben și verde. Mixând roșul, galbenul și verdele în diferite proporții se produce culoarea din cadrul gamei de culori, prezentată în figura 2.
Aplicațiile de GUI pentru PC și Android utilizate în acest mod implementează algoritmul de mixare al culorii pentru a calcula valorile factorilor de umplere PWM necesari pentru a produce culoarea dorită.
Aplicația de selecție a cromaticității trimite valorile PWM printr-o conexiune Bluetooth. Acest modul de conectivitate va fi capabil să comunice cu telefoane mobile și PC-uri care conțin transceivere Bluetooth v4.0 [și mai mult]. Modulul este în primul rând utilizat pentru recepția valorilor factorilor de umplere de la dispozitivele Master care rulează aplicația de selecție a cromaticității. Configurația pin la pin între microcontroler și modulul BLE este prezentată în figura 3.
Comunicația Bluetooth
Există două tipuri de dispozitive Bluetooth: Bluetooth clasic și Bluetooth de joasă putere. Un dispozitiv Bluetooth de joasă putere poate comunica numai cu un alt dispozitiv similar BLE sau cu un dispozitiv Bluetooth de mod dual, care are capabilități de comunicare clasică și de joasă putere. De aici, în mod clar dispozitivul gazdă trebuie să fie BLE sau Bluetooth de mod dual pentru a comunica cu modulul RN4020 de pe placa RGBA. Modulul este conform cu nucleul de specificații Bluetooth v4.1 și este controlat de către utilizator prin linii de intrare și de ieșire și o interfață UART. Aceasta din urmă suportă comenzi ASCII pentru a controla sau configura modulul pentru orice cerință bazată pe aplicație.
Software de aplicație
Atunci când placa operează în modul al doilea, culoarea dorită de la LED-uri este selectată din diagrama de cromaticitate fie din aplicația de mixare a culorii RGBA de pe desktop, fie din aplicația Android. Factorii de umplere PWM pentru roșu, albastru, verde și galben sunt calculate de aplicație. Valorile factorilor de umplere sunt transferate către placă printr-o conexiune Bluetooth de joasă putere. Aplicația desktop utilizată a fost dezvoltată utilizând Visual Studio C#.NET. Aplicația urmărește principiul MVC cu diferite clase.
Clasa de controler de vizualizare RGBA lucrează ca GUI sau manager de vizualizare sau controler de aplicație. Această clasă se află în topul ierarhiei responsabile de realizarea de noi obiecte ale claselor și realizează o relație de dependență între acestea. Ea gestionează, de asemenea, toate evenimentele GUI și apelează metodele potrivite pentru aceasta.
Clasa de calcul RGBA este responsabilă pentru identificarea dacă punctul selectat în interiorul triunghiurilor RGB sau RGA sau în afara acestor triunghiuri și calculează factorii de umplere pe culoare pentru toate LED-urile.
Clasa matricială 3×3 implementează toate operațiile matematice cu matrice 3×3, precum inversă, determinant, transpunere, co-factor și multiplicare. Clasa Vector 3 implementează un vector coloană de dimensiune 3 pentru a fi utilizată în matematica matricială pentru clasa de matrice 3×3. Clasa de date RGBA este de tip date particularizate pentru a stoca valorile factorilor de umplere pentru toate culorile.
În clasa de acoperire pentru comunicația wireless, interfața conține toate metodele necesare pentru ca, prin comunicația fără fir, să se implementeze aplicația RGBA. Această interfață poate fi utilizată de către orice metodă de comunicare fără fir, precum Bluetooth de joasă putere și Bluetooth clasic. Comunicația Bluetooth de joasă putere se face utilizând placa RN4020 PICtail™ prin comunicație RS232, implementând această interfață pentru placa RGBA.
Programatorul poate face o nouă clasă pentru a implementa comunicații wireless prin bibliotecile integrate Bluetooth de joasă putere. Această interfață decuplează implementarea comunicațiilor de la controlerul actual, astfel încât, dacă sunt implementate noi comunicații, controlerul de vizualizare și celelalte clase nu se vor schimba.
Comunicațiile RGBA cu Bluetooth de joasă putere prin RN4020 implementează interfața acoperitoare de comunicație fără fir pentru comunicații prin Bluetooth de joasă putere cu placa RGBA. Placa PICtail este utilizată și conectată la un PC prin port UART sau RS232. Comunicațiile seriale sunt stabilite, iar comenzile sunt trimise pentru comunicațiile prin Bluetooth de joasă putere.
Clasa de informații pentru dispozitivul Bluetooth de joasă putere stochează informația de bază despre dispozitivul de conectivitate de la distanță: numele său, adresa și serviciul de server suportat. Această informație este utilizată pentru a identifica și conecta un dispozitiv aflat la distanță.
În clasa de delegați a rezultatelor căutării, delegatul oferă serviciul evenimentului din clasa Bluetooth de joasă energie atunci când termină căutarea dispozitivelor, iar acestea sunt disponibile ca listă pentru utilizator. Timpul necesar pentru operația de căutare este de zece secunde.
Cu clasa de delegare a schimbării stării conexiunii, delegatul oferă serviciul evenimentului din clasa Bluetooth de joasă energie pentru a determina dacă placa master PICtail este conectată (sau nu) la un dispozitiv de la distanță și afișează starea curentă a conexiunii către utilizator.
Clasa constantelor stochează toate constantele necesare pentru aplicație, precum comenzile și răspunsurile pentru modulul RN4020, servicii și caracteristica UUID și așa mai departe.
Clasa de aplicație Java™ pentru sistemul de operare Android urmărește îndeaproape principiul MVC, după cum, utilizarea claselor de activitate Android este structural similară aplicației desktop. Cu toate acestea, aplicația Android utilizează hardware-ul integrat al Bluetooth de joasă putere de pe telefonul Android. Sistemul de operare Android furnizează toate bibliotecile necesare pentru comunicațiile Bluetooth de joasă putere cu toate evenimentele cerute și apelările înapoi.
Clasa de activitate de vizualizare RGBA este similară cu clasa controlerului vizual de pe un desktop, cu excepția elementelor de control ale GUI, care sunt definite într-un fișier XML, în loc de o clasă.
Concluzie
Acest articol a prezentat modalitatea prin care un PWM pe 16 biți permite controlul precis asupra intensității luminoase a fiecărui LED. Placa de mixare cu LED-uri color RGBA descrisă dispune de butoane tactile capacitive de tip cursor cu funcții de control pentru culoare și strălucire. Modulul Bluetooth 4.1 de joasă putere a fost utilizat pentru comunicații, astfel încât utilizatorul poate trimite valori PWM către placa RGBA pentru a obține culoarea de ieșire dorită. Culoarea a fost selectată dintr-o aplicație de selecție a cromaticității pe un desktop Windows sau pe un telefon bazat pe Android.
Resurse suplimentare: Notă de aplicație originală: http://ww1.microchip.com/downloads/en/AppNotes/00002026A.pdf
Microchip Technology | www.microchip.com