Taula de continguts:

Control de colors DIY LED RGB mitjançant Bluetooth: 5 passos
Control de colors DIY LED RGB mitjançant Bluetooth: 5 passos

Vídeo: Control de colors DIY LED RGB mitjançant Bluetooth: 5 passos

Vídeo: Control de colors DIY LED RGB mitjançant Bluetooth: 5 passos
Vídeo: Programming DIY on LED Strip Remote 2024, Juliol
Anonim
Control de colors DIY LED RGB mitjançant Bluetooth
Control de colors DIY LED RGB mitjançant Bluetooth

Les bombetes intel·ligents han augmentat en popularitat recentment i s’estan convertint en una peça clau del conjunt d’eines per a la llar intel·ligent. Les bombetes intel·ligents permeten a l’usuari controlar la llum mitjançant una aplicació especial al telèfon intel·ligent de l’usuari; la bombeta es pot encendre i apagar i es pot canviar el color des de la interfície de l'aplicació. En aquest projecte, hem creat un controlador de bombeta intel·ligent que es pot controlar des d’un botó manual o una aplicació mòbil mitjançant Bluetooth. Per afegir un toc a aquest projecte, hem afegit algunes funcions que permeten a l’usuari triar un color d’il·luminació de la llista de colors inclosa a la interfície de l’aplicació. També pot activar una "barreja automàtica" per generar efectes de color i canviar la il·luminació cada mig segon. L'usuari pot crear la seva pròpia barreja de colors mitjançant una funció PWM que també es pot utilitzar com a atenuador dels tres colors bàsics (vermell, verd, blau). També hem afegit botons externs al circuit perquè l'usuari pugui canviar al mode manual i canviar el color de la llum d'un botó extern.

Aquest instructable consta de dues seccions; el disseny GreenPAK ™ i el disseny d'aplicacions per a Android. El disseny de GreenPAK es basa en l’ús d’una interfície UART per a la comunicació. Es tria UART perquè és compatible amb la majoria de mòduls Bluetooth, així com la majoria dels altres perifèrics, com ara mòduls WIFI. En conseqüència, el disseny GreenPAK es pot utilitzar en molts tipus de connexions.

Per construir aquest projecte, farem servir el SLG46620 CMIC, un mòdul Bluetooth i un LED RGB. El GreenPAK IC serà el nucli de control d’aquest projecte; rep dades d'un mòdul Bluetooth i / o botons externs i, a continuació, inicia el procediment necessari per mostrar la il·luminació correcta. També genera el senyal PWM i el transmet al LED. La figura 1 següent mostra el diagrama de blocs.

El dispositiu GreenPAK utilitzat en aquest projecte conté una interfície de connexió SPI, blocs PWM, FSM i molts altres blocs addicionals útils en un IC. També es caracteritza per la seva petita mida i el seu baix consum energètic. Això permetrà als fabricants construir un petit circuit pràctic amb un únic CI, de manera que els costos de producció es minimitzaran en comparació amb sistemes similars.

En aquest projecte, controlem un LED RGB. Per fer el projecte comercialment viable, és probable que un sistema necessiti augmentar el nivell de lluminositat connectant molts LEDs en paral·lel i utilitzant els transistors adequats; també s’ha de tenir en compte el circuit de potència.

Podeu seguir tots els passos per entendre com s’ha programat el xip GreenPAK per controlar el color LED RGB mitjançant Bluetooth. Tot i això, si només voleu programar fàcilment l’IC sense entendre tots els circuits interns, descarregueu-vos el programari GreenPAK per veure el fitxer de disseny GreenPAK ja completat. Connecteu el kit de desenvolupament GreenPAK a l'ordinador i premeu el programa per crear un IC personalitzat per controlar el color LED RGB mitjançant Bluetooth.

El disseny GreenPAK consisteix en el receptor UART, la unitat PWM i la unitat de control que es descriuen als passos següents.

Pas 1: receptor UART

Receptor UART
Receptor UART

En primer lloc, hem de configurar el mòdul Bluetooth. La majoria de circuits integrats Bluetooth admeten el protocol UART per a la comunicació. UART significa Receptor / Transmissor asíncron universal. UART pot convertir dades d'anada i tornada entre formats en paral·lel i en sèrie. Inclou un receptor de sèrie a paral·lel i un convertidor de paral·lel a serial que es rellotgen per separat.

Les dades rebudes al mòdul Bluetooth es transmetran al nostre dispositiu GreenPAK. L'estat d'inactivitat del Pin10 és ALT. Tots els caràcters enviats comencen amb un bit inicial LOW lògic, seguit d'un nombre configurable de bits de dades i un o més bits de parada HIGH lògics.

El transmissor UART envia 1 bit START, 8 bits de dades i un bit STOP. Normalment, la velocitat de transmissió per defecte d’un mòdul Bluetooth UART és de 9600. Enviarem el byte de dades des del Bluetooth IC al bloc SPI del GreenPAK ™ SLG46620.

Com que el bloc GreenPAK SPI no té control de bits START o STOP, farem servir aquests bits per habilitar i desactivar el senyal de rellotge SPI (SCLK). Quan Pin10 baixa, sabem que hem rebut un bit d’INICI, de manera que fem servir el detector de caiguda PDLY per identificar l’inici de la comunicació. Aquest detector de caiguda rellotge DFF0, que permet al senyal SCLK activar el bloc SPI.

La nostra velocitat en bauds és de 9600 bits per segon, de manera que el nostre període SCLK ha de ser 1/9600 = 104 μs. Per tant, vam establir la freqüència OSC a 2 MHz i vam utilitzar CNT0 com a divisor de freqüència.

2 MHz-1 = 0,5 μs

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

Per tant, volem que el valor del comptador CNT0 sigui 207. Per assegurar-nos que no trobem a faltar cap dada, hem de retardar el rellotge SPI mig cicle de rellotge perquè el bloc SPI s’estigui realitzant en el moment adequat. Ho hem aconseguit utilitzant CNT6, LUT1 de 2 bits i el rellotge extern del bloc OSC. La sortida de CNT6 no augmenta fins als 52 μs després de marcar DFF0, que és la meitat del nostre període de 104 μs SCLK. Quan CNT6 és alt, la porta LUT1 AND de 2 bits permet que el senyal OSC de 2 MHz passi a EXT. Entrada CLK0, la sortida de la qual està connectada a CNT0.

Pas 2: Unitat PWM

Unitat PWM
Unitat PWM

El senyal PWM es genera mitjançant PWM0 i un generador de polsos de rellotge associat (CNT8 / DLY8). Com que l’amplada del pols es pot controlar a l’usuari, fem servir FSM0 (que es pot connectar a PWM0) per comptar les dades de l’usuari.

Al SLG46620, es pot utilitzar FSM1 de 8 bits amb PWM1 i PWM2. El mòdul Bluetooth ha d’estar connectat, cosa que significa que s’ha d’utilitzar la sortida paral·lela SPI. Els bits de sortida paral·lels SPI del 0 al 7 es combinen amb DCMP1, DMCP2 i OUT1 i OUT0 del LF OSC CLK. PWM0 obté la seva sortida del FSM0 de 16 bits. Si no es modifica, això provoca una sobrecàrrega de l'amplada del pols. Per limitar el valor del comptador a 8 bits s’afegeix un altre FSM; FSM1 s'utilitza com a punter per saber quan el comptador arriba a 0 o 255. FSM0 s'utilitza per generar el pols PWM. Cal sincronitzar FSM0 i FSM1. Com que ambdós FSM tenen opcions de rellotge predeterminades, CNT1 i CNT3 s’utilitzen com a mediadors per transmetre el CLK als dos FSM. Els dos comptadors tenen el mateix valor, que és 25 per a aquesta instrucció. Podem alterar la velocitat de canvi del valor PWM canviant aquests valors de comptador.

El valor dels FSM augmenta i disminueix amb els senyals '+' i '-', que s'originen a partir de la sortida paral·lela SPI.

Pas 3: Unitat de control

Unitat de control
Unitat de control

Dins de la unitat de control, el byte rebut es pren del mòdul Bluetooth a la sortida paral·lela SPI i es passa a les funcions associades. Al principi, es comprovaran les sortides PWM CS1 i PWM CS2 per veure si el patró PWM està activat o no. Si està activat, determinarà quin canal emetrà el PWM mitjançant LUT4, LUT6 i LUT7.

LUT9, LUT11 i LUT14 s’encarreguen de comprovar l’estat dels altres dos LED. LUT10, LUT12 i LUT13 comproven si el botó Manual està activat o no. Si el mode manual està actiu, les sortides RGB funcionen segons els estats de sortida D0, D1, D2, que es canvien cada vegada que es prem el botó Color. Canvia amb la pujada ascendent provinent de CNT9, que s’utilitza com a capçalera de pujada.

El pin 20 es configura com a entrada i s’utilitza per canviar entre el control manual i el Bluetooth.

Si el mode manual està desactivat i el mode de mesclador automàtic està activat, el color canvia cada 500 ms, amb la vora ascendent provinent de CNT7. S'utilitza un LUT1 de 4 bits per evitar l'estat '000' per a D0 D1 D2, ja que aquest estat fa que la llum s'apagui durant el mode de mesclador automàtic.

Si el mode manual, el mode PWM i el mode de mesclador automàtic no estan activats, les ordres SPI vermelles, verdes i blaves passen als pins 12, 13 i 14, que es configuren com a sortides i estan connectades al LED RGB extern.

DFF1, DFF2 i DFF3 s’utilitzen per construir un comptador binari de 3 bits. El valor del comptador augmenta amb els impulsos CNT7 que passen per P14 en mode mesclador automàtic o des de senyals que provenen del botó Color (PIN3) en mode manual.

Pas 4: aplicació d'Android

Aplicació Android
Aplicació Android
Aplicació Android
Aplicació Android
Aplicació Android
Aplicació Android
Aplicació Android
Aplicació Android

En aquesta secció, crearem una aplicació per a Android que supervisarà i mostrarà les seleccions de control de l’usuari. La interfície consta de dues seccions: la primera secció conté un conjunt de botons que tenen colors predefinits, de manera que quan es prem qualsevol d'aquests botons, s'encén un LED del mateix color corresponent. La segona secció (quadrat MIX) crea un color mixt per a l'usuari.

A la primera secció, l'usuari tria el pin LED pel qual vol que passi el senyal PWM; el senyal PWM només es pot passar a un pin a la vegada. La llista inferior controla els altres dos colors lògicament on / off durant el mode PWM.

El botó del mesclador automàtic s’encarrega d’executar el patró de canvi de llum automàtic on la llum canviarà cada mig segon. La secció MIX conté dues llistes de caselles de selecció perquè l'usuari pugui decidir quins dos colors es barregen.

Hem creat l’aplicació mitjançant el lloc web inventor d’aplicacions MIT. És un lloc que permet crear aplicacions d'Android sense experiència prèvia en programari mitjançant blocs gràfics de programari.

Al principi, vam dissenyar una interfície gràfica afegint un conjunt de botons encarregats de mostrar els colors predefinits, també vam afegir dues llistes de caselles de selecció i cada llista té 3 elements; cada element es mostra a la seva caixa individual, tal com es mostra a la figura 5.

Els botons de la interfície d'usuari estan enllaçats amb ordres de programari: totes les ordres que l'aplicació enviarà mitjançant Bluetooth tindran un format de bytes i cada bit és responsable d'una funció específica. La taula 1 mostra la forma dels marcs d’ordres enviats al GreenPAK.

Els primers tres bits, B0, B1 i B2, mantindran l’estat dels LED RGB en el mode de control directe mitjançant els botons dels colors predefinits. Així, en fer clic a qualsevol d’ells, s’enviarà el valor corresponent del botó, tal com es mostra a la taula 2.

Els bits B3 i B4 mantenen les ordres '+' i '-', que són responsables d'augmentar i disminuir l'amplada del pols. Quan es prem el botó, el valor de bit serà 1 i quan es deixa anar el botó, el valor de bit serà 0.

Els bits B5 i B6 són els responsables d’escollir el pin (color) pel qual passarà el senyal PWM: les designacions de color d’aquests bits es mostren a la taula 3. L’últim bit, B7, és l’encarregat d’activar el mesclador automàtic.

La Figura 6 i la Figura 7 mostren el procés d’enllaç de botons amb blocs de programació que s’encarreguen d’enviar els valors anteriors.

Per veure el disseny complet de l'aplicació, podeu descarregar el fitxer adjunt ".aia" amb els fitxers del projecte i obrir-lo al lloc principal.

La figura 8 següent mostra el diagrama de circuits de nivell superior.

Pas 5: Resultats

El controlador s'ha provat amb èxit i s'ha demostrat que la barreja de colors, juntament amb altres funcions, funciona correctament.

Conclusió

En aquesta instrucció, es va crear un circuit de bombeta intel·ligent per ser controlat sense fils per una aplicació d'Android. El GreenPAK CMIC utilitzat en aquest projecte també va ajudar a escurçar i incrustar diversos components essencials per al control de la llum en un petit CI.

Recomanat: