Sommario:

Colore LED RGB di controllo fai da te tramite Bluetooth: 5 passaggi
Colore LED RGB di controllo fai da te tramite Bluetooth: 5 passaggi

Video: Colore LED RGB di controllo fai da te tramite Bluetooth: 5 passaggi

Video: Colore LED RGB di controllo fai da te tramite Bluetooth: 5 passaggi
Video: Crea i tuoi effetti luminosi con una striscia LED RGB comandata a distanza - controller for RGB LEDs 2024, Luglio
Anonim
Colore LED RGB di controllo fai-da-te tramite Bluetooth
Colore LED RGB di controllo fai-da-te tramite Bluetooth

Le lampadine intelligenti stanno aumentando di popolarità di recente e stanno diventando costantemente una parte fondamentale del kit di strumenti per la casa intelligente. Le lampadine intelligenti consentono all'utente di controllare la propria luce tramite un'applicazione speciale sullo smartphone dell'utente; la lampadina può essere accesa e spenta e il colore può essere cambiato dall'interfaccia dell'applicazione. In questo progetto, abbiamo realizzato un controller intelligente per lampadine che può essere controllato da un pulsante manuale o da un'applicazione mobile tramite Bluetooth. Per aggiungere un tocco di stile a questo progetto abbiamo aggiunto alcune funzionalità che consentono all'utente di scegliere un colore di illuminazione dall'elenco dei colori inclusi nell'interfaccia dell'applicazione. Può anche attivare un "mix automatico" per generare effetti di colore e cambiare l'illuminazione ogni mezzo secondo. L'utente può creare il proprio mix di colori utilizzando una funzione PWM che può essere utilizzata anche come dimmer per i tre colori di base (rosso, verde, blu). Abbiamo anche aggiunto pulsanti esterni al circuito in modo che l'utente possa passare alla modalità manuale e cambiare il colore della luce da un pulsante esterno.

Questo Instructable è composto da due sezioni; il design GreenPAK™ e il design dell'app Android. Il design GreenPAK si basa sull'utilizzo di un'interfaccia UART per la comunicazione. UART è stato scelto perché è supportato dalla maggior parte dei moduli Bluetooth, così come dalla maggior parte delle altre periferiche, come i moduli WIFI. Di conseguenza, il design GreenPAK può essere utilizzato in molti tipi di connessione.

Per realizzare questo progetto, utilizzeremo il CMIC SLG46620, un modulo Bluetooth e un LED RGB. L'IC GreenPAK sarà il nucleo di controllo di questo progetto; riceve i dati da un modulo Bluetooth e/o pulsanti esterni, quindi inizia la procedura necessaria per visualizzare la corretta illuminazione. Genera anche il segnale PWM e lo invia al LED. La Figura 1 di seguito mostra lo schema a blocchi.

Il dispositivo GreenPAK utilizzato in questo progetto contiene un'interfaccia di connessione SPI, blocchi PWM, FSM e molti altri utili blocchi aggiuntivi in un unico circuito integrato. Si caratterizza inoltre per le sue ridotte dimensioni e il basso consumo energetico. Ciò consentirà ai produttori di costruire un piccolo circuito pratico utilizzando un singolo IC, quindi i costi di produzione saranno ridotti al minimo rispetto a sistemi simili.

In questo progetto, controlliamo un LED RGB. Per rendere il progetto commercialmente fattibile, un sistema dovrebbe probabilmente aumentare il livello di luminosità collegando molti LED in parallelo e utilizzando gli opportuni transistor; anche il circuito di alimentazione deve essere preso in considerazione.

Puoi seguire tutti i passaggi per capire come il chip GreenPAK è stato programmato per controllare il colore dei LED RGB tramite Bluetooth. Tuttavia, se desideri semplicemente programmare facilmente l'IC senza comprendere tutti i circuiti interni, scarica il software GreenPAK per visualizzare il file di progettazione GreenPAK già completato. Collega il kit di sviluppo GreenPAK al tuo computer e premi il programma per creare l'IC personalizzato per controllare il colore del LED RGB tramite Bluetooth.

Il design GreenPAK è costituito dal ricevitore UART, dall'unità PWM e dall'unità di controllo descritti nei passaggi seguenti.

Passaggio 1: ricevitore UART

Ricevitore UART
Ricevitore UART

Per prima cosa, dobbiamo configurare il modulo Bluetooth. La maggior parte dei circuiti integrati Bluetooth supporta il protocollo UART per la comunicazione. UART sta per ricevitore/trasmettitore asincrono universale. UART può convertire i dati avanti e indietro tra formati paralleli e seriali. Include un ricevitore da seriale a parallelo e un convertitore da parallelo a seriale che sono entrambi sincronizzati separatamente.

I dati ricevuti nel modulo Bluetooth verranno trasmessi al nostro dispositivo GreenPAK. Lo stato di inattività per Pin10 è ALTO. Ogni carattere inviato inizia con un bit di start logico BASSO, seguito da un numero configurabile di bit di dati e uno o più bit di stop logico ALTO.

Il trasmettitore UART invia 1 bit di START, 8 bit di dati e un bit di STOP. Di solito, la velocità di trasmissione predefinita per un modulo Bluetooth UART è 9600. Invieremo il byte di dati dall'IC Bluetooth al blocco SPI di GreenPAK™ SLG46620.

Poiché il blocco SPI GreenPAK non ha il controllo del bit START o STOP, utilizzeremo invece quei bit per abilitare e disabilitare il segnale di clock SPI (SCLK). Quando Pin10 diventa LOW, sappiamo di aver ricevuto un bit di START, quindi utilizziamo il rilevatore di fronte di discesa PDLY per identificare l'inizio della comunicazione. Quel rilevatore del fronte di discesa esegue il clock DFF0, che consente al segnale SCLK di eseguire il clock del blocco SPI.

La nostra velocità di trasmissione è di 9600 bit al secondo, quindi il nostro periodo SCLK deve essere 1/9600 = 104 μs. Pertanto, abbiamo impostato la frequenza OSC su 2 MHz e utilizzato CNT0 come divisore di frequenza.

2 MHz-1 = 0,5 μs

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

Pertanto, vogliamo che il valore del contatore CNT0 sia 207. Per assicurarci di non perdere alcun dato, dobbiamo ritardare l'orologio SPI di mezzo ciclo di clock in modo che il blocco SPI venga sincronizzato al momento giusto. Abbiamo ottenuto questo risultato utilizzando CNT6, LUT1 a 2 bit e l'orologio esterno del blocco OSC. L'uscita di CNT6 non diventa alta fino a 52 μs dopo il clock di DFF0, che è la metà del nostro periodo SCLK di 104 μs. Quando CNT6 è alto, il gate AND LUT1 a 2 bit consente al segnale OSC a 2 MHz di passare in EXT. Ingresso CLK0, la cui uscita è collegata a CNT0.

Passaggio 2: unità PWM

Unità PWM
Unità PWM

Il segnale PWM viene generato utilizzando PWM0 e un generatore di impulsi di clock associato (CNT8/DLY8). Poiché l'ampiezza dell'impulso è controllabile dall'utente, utilizziamo FSM0 (che può essere collegato a PWM0) per contare i dati dell'utente.

In SLG46620, FSM1 a 8 bit può essere utilizzato con PWM1 e PWM2. Il modulo Bluetooth deve essere collegato, il che significa che deve essere utilizzata l'uscita parallela SPI. I bit di uscita parallela SPI da 0 a 7 sono muxati con DCMP1, DMCP2 e OUT1 e OUT0 di LF OSC CLK. PWM0 ottiene il suo output dall'FSM0 a 16 bit. Se lasciato inalterato, ciò causa il sovraccarico dell'ampiezza dell'impulso. Per limitare il valore del contatore a 8 bit viene aggiunto un altro FSM; FSM1 viene utilizzato come puntatore per sapere quando il contatore raggiunge 0 o 255. FSM0 viene utilizzato per generare l'impulso PWM. FSM0 e FSM1 devono essere sincronizzati. Poiché entrambi gli FSM hanno opzioni di clock preimpostate, CNT1 e CNT3 vengono utilizzati come mediatori per passare il CLK a entrambi gli FSM. I due contatori sono impostati sullo stesso valore, che è 25 per questo Instructable. Possiamo alterare la velocità di variazione del valore PWM modificando questi valori del contatore.

Il valore degli FSM viene aumentato e diminuito dai segnali '+' e '-', che provengono dall'uscita parallela SPI.

Passaggio 3: unità di controllo

Unità di controllo
Unità di controllo

All'interno della centrale il byte ricevuto viene prelevato dal modulo Bluetooth all'uscita parallela SPI e quindi passato alle funzioni associate. Inizialmente, le uscite PWM CS1 e PWM CS2 verranno controllate per vedere se il pattern PWM è attivato o meno. Se è attivato, determinerà quale canale emetterà il PWM tramite LUT4, LUT6 e LUT7.

LUT9, LUT11 e LUT14 sono responsabili del controllo dello stato degli altri due LED. LUT10, LUT12 e LUT13 controllano se il pulsante Manual è attivato o meno. Se la modalità Manuale è attiva, le uscite RGB funzionano secondo gli stati delle uscite D0, D1, D2, che vengono modificati ogni volta che viene premuto il pulsante Colore. Cambia con il fronte di salita proveniente da CNT9, che viene utilizzato come antirimbalzo del fronte di salita.

Il pin 20 è configurato come ingresso e viene utilizzato per passare dal controllo manuale a quello Bluetooth.

Se la modalità manuale è disabilitata e la modalità mixer automatica è attivata, il colore cambia ogni 500 ms con il fronte di salita proveniente da CNT7. Viene utilizzato un LUT1 a 4 bit per prevenire lo stato '000' per D0 D1 D2, poiché questo stato fa sì che la luce si spenga durante la modalità Auto mixer.

Se la modalità manuale, la modalità PWM e la modalità mixer automatico non sono attivate, i comandi SPI rosso, verde e blu passano ai pin 12, 13 e 14, che sono configurati come uscite e sono collegati al LED RGB esterno.

DFF1, DFF2 e DFF3 sono usati per costruire un contatore binario a 3 bit. Il valore del contatore aumenta con impulsi CNT7 che passano attraverso P14 in modalità Auto mixer, o da segnali provenienti dal pulsante Colore (PIN3) in modalità manuale.

Passaggio 4: applicazione Android

Applicazione Android
Applicazione Android
Applicazione Android
Applicazione Android
Applicazione Android
Applicazione Android
Applicazione Android
Applicazione Android

In questa sezione, creeremo un'applicazione Android che monitorerà e visualizzerà le selezioni di controllo dell'utente. L'interfaccia è composta da due sezioni: la prima sezione contiene una serie di pulsanti che hanno colori predefiniti in modo che alla pressione di uno di questi pulsanti si accenda un LED dello stesso colore corrispondente. La seconda sezione (MIX quadrato) crea un colore misto per l'utente.

Nella prima sezione, l'utente sceglie il pin LED attraverso il quale vuole che il segnale PWM passi; il segnale PWM può essere passato solo a un pin alla volta. L'elenco inferiore controlla l'attivazione/disattivazione logica degli altri due colori durante la modalità PWM.

Il pulsante del mixer automatico è responsabile dell'esecuzione del modello di cambio automatico della luce in cui la luce cambierà ogni mezzo secondo. La sezione MIX contiene due elenchi di caselle di controllo in modo che l'utente possa decidere quali due colori mescolare insieme.

Abbiamo creato l'applicazione utilizzando il sito Web dell'inventore dell'app del MIT. È un sito che consente di creare applicazioni Android senza precedente esperienza software utilizzando blocchi software grafici.

All'inizio, abbiamo progettato un'interfaccia grafica aggiungendo una serie di pulsanti responsabili della visualizzazione dei colori predefiniti, abbiamo anche aggiunto due elenchi di caselle di controllo e ogni elenco ha 3 elementi; ogni elemento è delineato nella sua casella individuale, come mostrato nella Figura 5.

I pulsanti all'interno dell'interfaccia utente sono collegati a comandi software: tutti i comandi che l'app invierà tramite Bluetooth saranno in formato byte, e ogni bit è responsabile di una specifica funzione. La tabella 1 mostra la forma dei frame di comando inviati al GreenPAK.

I primi tre bit, B0, B1 e B2, manterranno lo stato dei LED RGB in modalità di controllo diretto tramite i pulsanti dei colori predefiniti. Pertanto, quando si fa clic su uno di essi, verrà inviato il valore corrispondente del pulsante, come mostrato nella Tabella 2.

I bit B3 e B4 contengono i comandi '+' e '-', responsabili dell'aumento e della diminuzione dell'ampiezza dell'impulso. Quando si preme il pulsante, il valore del bit sarà 1 e quando il pulsante viene rilasciato il valore del bit sarà 0.

I bit B5 e B6 sono responsabili della scelta del pin (colore) attraverso il quale passerà il segnale PWM: le designazioni dei colori di questi bit sono mostrate nella tabella 3. L'ultimo bit, B7, è responsabile dell'attivazione del mixer automatico.

La Figura 6 e la Figura 7 mostrano il processo di collegamento dei pulsanti con i blocchi di programmazione che sono responsabili dell'invio dei valori precedenti.

Per vedere il design completo dell'applicazione, è possibile scaricare il file allegato “.aia” con i file del progetto e aprirlo all'interno del sito principale.

La Figura 8 di seguito mostra lo schema del circuito di livello superiore.

Passaggio 5: risultati

Il controller è stato testato con successo e la miscelazione dei colori, insieme ad altre funzionalità, ha dimostrato di funzionare in modo appropriato.

Conclusione

In questo Instructable, è stato costruito un circuito di lampadine intelligenti per essere controllato in modalità wireless da un'applicazione Android. Il GreenPAK CMIC utilizzato in questo progetto ha anche aiutato ad accorciare e incorporare diversi componenti essenziali per il controllo della luce in un piccolo circuito integrato.

Consigliato: