Índice:

Controle DIY RGB LED de cor via Bluetooth: 5 etapas
Controle DIY RGB LED de cor via Bluetooth: 5 etapas

Vídeo: Controle DIY RGB LED de cor via Bluetooth: 5 etapas

Vídeo: Controle DIY RGB LED de cor via Bluetooth: 5 etapas
Vídeo: LED Strip Light-Flexible color changing with 44 Key ir remote, Easy to install and look great 2024, Julho
Anonim
DIY Control RGB LED Color Via Bluetooth
DIY Control RGB LED Color Via Bluetooth

As lâmpadas inteligentes têm crescido em popularidade recentemente e estão se tornando continuamente uma parte importante do kit de ferramentas para casa inteligente. As lâmpadas inteligentes permitem que o usuário controle sua luz por meio de um aplicativo especial no smartphone do usuário; a lâmpada pode ser ligada e desligada e a cor pode ser alterada na interface do aplicativo. Neste projeto, construímos um controlador de lâmpada inteligente que pode ser controlado por um botão manual ou por um aplicativo móvel via Bluetooth. Para adicionar um toque a este projeto, adicionamos alguns recursos que permitem ao usuário escolher uma cor de iluminação na lista de cores incluída na interface do aplicativo. Ele também pode ativar uma “mistura automática” para gerar efeitos de cor e alterar a iluminação a cada meio segundo. O usuário pode criar sua própria mistura de cores usando um recurso PWM que também pode ser usado como um dimmer para as três cores básicas (vermelho, verde, azul). Também adicionamos botões externos ao circuito para que o usuário possa alternar para o modo manual e alterar a cor da luz de um botão externo.

Este Instructable é composto por duas seções; o design GreenPAK ™ e o design do aplicativo Android. O design do GreenPAK é baseado no uso de uma interface UART para comunicação. UART foi escolhido porque é compatível com a maioria dos módulos Bluetooth, bem como com a maioria dos outros periféricos, como módulos WIFI. Consequentemente, o design GreenPAK pode ser usado em muitos tipos de conexão.

Para construir este projeto, vamos usar o SLG46620 CMIC, um módulo Bluetooth e um LED RGB. O GreenPAK IC será o núcleo de controle deste projeto; ele recebe dados de um módulo Bluetooth e / ou botões externos e, a seguir, inicia o procedimento necessário para exibir a iluminação correta. Ele também gera o sinal PWM e o envia para o LED. A Figura 1 abaixo mostra o diagrama de blocos.

O dispositivo GreenPAK usado neste projeto contém uma interface de conexão SPI, blocos PWM, FSM e muitos outros blocos adicionais úteis em um IC. Também se caracteriza pelo seu pequeno tamanho e baixo consumo de energia. Isso permitirá que os fabricantes construam um pequeno circuito prático usando um único IC, portanto, os custos de produção serão minimizados quando comparados a sistemas semelhantes.

Neste projeto, controlamos um LED RGB. Para tornar o projeto comercialmente viável, um sistema provavelmente precisaria aumentar o nível de luminosidade conectando muitos LEDs em paralelo e usando os transistores apropriados; o circuito de alimentação também deve ser levado em consideração.

Você pode seguir todas as etapas para entender como o chip GreenPAK foi programado para controlar a cor do LED RGB via Bluetooth. No entanto, se você deseja programar facilmente o IC sem compreender todos os circuitos internos, baixe o software GreenPAK para visualizar o arquivo de projeto GreenPAK já concluído. Conecte o GreenPAK Development Kit ao seu computador e acesse o programa para criar o IC personalizado para controlar a cor do LED RGB via Bluetooth.

O design do GreenPAK consiste no receptor UART, unidade PWM e unidade de controle descrita nas etapas abaixo.

Etapa 1: Receptor UART

Receptor UART
Receptor UART

Primeiro, precisamos configurar o módulo Bluetooth. A maioria dos ICs Bluetooth suporta o protocolo UART para comunicação. UART significa Receptor / Transmissor Assíncrono Universal. O UART pode converter dados para frente e para trás entre formatos paralelos e seriais. Inclui um receptor serial para paralelo e um conversor paralelo para serial, ambos com clock separadamente.

Os dados recebidos no módulo Bluetooth serão transmitidos ao nosso dispositivo GreenPAK. O estado inativo para Pin10 é HIGH. Cada caractere enviado começa com um bit de partida LOW lógico, seguido por um número configurável de bits de dados e um ou mais bits de parada HIGH de lógica.

O transmissor UART envia 1 bit START, 8 bits de dados e um bit STOP. Normalmente, a taxa de transmissão padrão para um módulo UART Bluetooth é 9600. Enviaremos o byte de dados do IC do Bluetooth para o bloco SPI do GreenPAK ™ SLG46620.

Como o bloco GreenPAK SPI não tem controle de bit START ou STOP, usaremos esses bits para habilitar e desabilitar o sinal de clock SPI (SCLK). Quando o Pin10 fica BAIXO, sabemos que recebemos um bit START, então usamos o detector de borda descendente PDLY para identificar o início da comunicação. Esse detector de borda descendente clica em DFF0, que permite que o sinal SCLK sincronize o bloco SPI.

Nossa taxa de transmissão é de 9600 bits por segundo, então nosso período SCLK precisa ser 1/9600 = 104 μs. Portanto, definimos a frequência OSC para 2 MHz e usamos CNT0 como um divisor de frequência.

2 MHz-1 = 0,5 μs

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

Portanto, queremos que o valor do contador CNT0 seja 207. Para garantir que não percamos nenhum dado, precisamos atrasar o relógio SPI em meio ciclo de relógio para que o bloco SPI seja cronometrado no tempo adequado. Conseguimos isso usando CNT6, LUT1 de 2 bits e o relógio externo do bloco OSC. A saída do CNT6 não aumenta até 52 μs após o DFF0 ser sincronizado, o que é metade do nosso período SCLK de 104 μs. Quando CNT6 está alto, a porta LUT1 AND de 2 bits permite que o sinal OSC de 2 MHz passe para o EXT. Entrada CLK0, cuja saída está conectada ao CNT0.

Etapa 2: Unidade PWM

Unidade PWM
Unidade PWM

O sinal PWM é gerado usando PWM0 e um gerador de pulso de relógio associado (CNT8 / DLY8). Como a largura de pulso é controlável pelo usuário, usamos FSM0 (que pode ser conectado a PWM0) para contar os dados do usuário.

No SLG46620, FSM1 de 8 bits pode ser usado com PWM1 e PWM2. O módulo Bluetooth deve ser conectado, o que significa que a saída paralela SPI deve ser usada. Os bits de saída paralela SPI de 0 a 7 são combinados com DCMP1, DMCP2 e OUT1 e OUT0 do LF OSC CLK. PWM0 obtém sua saída do FSM0 de 16 bits. Se não for alterado, isso causa uma sobrecarga na largura de pulso. Para limitar o valor do contador em 8 bits, outro FSM é adicionado; FSM1 é usado como um ponteiro para saber quando o contador atinge 0 ou 255. FSM0 é usado para gerar o pulso PWM. FSM0 e FSM1 devem ser sincronizados. Uma vez que ambos os FSMs têm opções de relógio predefinidas, CNT1 e CNT3 são usados como mediadores para passar o CLK para ambos os FSMs. Os dois contadores são definidos com o mesmo valor, que é 25 para este Instructable. Podemos alterar a taxa de alteração do valor PWM alterando esses valores do contador.

Os valores dos FSMs são aumentados e diminuídos pelos sinais '+' e '-', que se originam da Saída Paralela SPI.

Etapa 3: Unidade de Controle

Unidade de controle
Unidade de controle

Na unidade de controle, o byte recebido é levado do módulo Bluetooth para a saída paralela SPI e, em seguida, passado para as funções associadas. A princípio, as saídas PWM CS1 e PWM CS2 serão verificadas para ver se o padrão PWM está ativado ou não. Se estiver ativado, ele determinará qual canal produzirá o PWM por meio de LUT4, LUT6 e LUT7.

LUT9, LUT11 e LUT14 são responsáveis por verificar o estado dos outros dois LEDs. LUT10, LUT12 e LUT13 verificam se o botão Manual está ativado ou não. Se o modo Manual estiver ativo, as saídas RGB operam de acordo com os estados de saída D0, D1, D2, que são alterados toda vez que o botão Colorido é pressionado. Ele muda com a borda ascendente proveniente do CNT9, que é usado como um debouncer de borda ascendente.

O pino 20 é configurado como uma entrada e é usado para alternar entre o controle manual e Bluetooth.

Se o modo Manual estiver desabilitado e o modo Auto mixer estiver ativado, a cor muda a cada 500ms com a borda ascendente proveniente do CNT7. Um LUT1 de 4 bits é usado para evitar o estado '000' para D0 D1 D2, uma vez que este estado faz com que a luz se apague durante o modo de mixer automático.

Se os modos Manual, PWM e Auto mixer não estiverem ativados, os comandos SPI vermelho, verde e azul fluem para os pinos 12, 13 e 14, que são configurados como saídas e conectados ao LED RGB externo.

DFF1, DFF2 e DFF3 são usados para construir um contador binário de 3 bits. O valor do contador aumenta com os pulsos CNT7 que passam por P14 no modo de mixer automático ou de sinais vindos do botão de cor (PIN3) no modo manual.

Etapa 4: Aplicativo Android

Aplicativo Android
Aplicativo Android
Aplicativo Android
Aplicativo Android
Aplicativo Android
Aplicativo Android
Aplicativo Android
Aplicativo Android

Nesta seção, vamos construir um aplicativo Android que irá monitorar e exibir as seleções de controle do usuário. A interface consiste em duas seções: a primeira seção contém um conjunto de botões com cores predefinidas para que, quando qualquer um desses botões for pressionado, um LED da mesma cor correspondente acenda. A segunda seção (quadrado MIX) cria uma cor mista para o usuário.

Na primeira seção, o usuário escolhe o pino do LED pelo qual deseja que o sinal PWM passe; o sinal PWM só pode ser passado para um pino de cada vez. A lista inferior controla as outras duas cores ativadas / desativadas logicamente durante o modo PWM.

O botão do mixer automático é responsável por executar o padrão de mudança automática de luz, onde a luz muda a cada meio segundo. A seção MIX contém duas listas de caixas de seleção para que o usuário possa decidir quais duas cores misturar.

Construímos o aplicativo usando o site do inventor de aplicativos do MIT. É um site que permite a construção de aplicativos Android sem experiência anterior em software usando blocos de software gráficos.

Inicialmente, projetamos uma interface gráfica adicionando um conjunto de botões responsáveis por exibir as cores predefinidas, também adicionamos duas listas de check box, e cada lista possui 3 elementos; cada elemento é delineado em sua caixa individual, conforme mostrado na Figura 5.

Os botões da interface do usuário estão vinculados a comandos de software: todos os comandos que o aplicativo enviará via Bluetooth estarão em formato de byte, e cada bit é responsável por uma função específica. A Tabela 1 mostra a forma dos quadros de comando enviados ao GreenPAK.

Os primeiros três bits, B0, B1 e B2, manterão o estado dos LEDs RGB no modo de controle direto pelos botões das cores predefinidas. Assim, ao clicar em qualquer um deles, será enviado o valor correspondente do botão, conforme mostra a Tabela 2.

Os bits B3 e B4 contêm os comandos '+' e '-', que são responsáveis por aumentar e diminuir a largura de pulso. Quando o botão é pressionado, o valor do bit será 1, e quando o botão for liberado, o valor do bit será 0.

Os bits B5 e B6 são os responsáveis pela escolha do pino (cor) pelo qual o sinal PWM passará: as designações das cores desses bits são mostradas na tabela 3. O último bit, B7, é responsável pelo acionamento do misturador automático.

A Figura 6 e a Figura 7 demonstram o processo de vinculação dos botões aos blocos de programação responsáveis pelo envio dos valores anteriores.

Para acompanhar o design completo do aplicativo, você pode baixar o arquivo anexo “.aia” com os arquivos do projeto e abri-lo no site principal.

A Figura 8 abaixo mostra o diagrama do circuito de nível superior.

Etapa 5: Resultados

O controlador foi testado com sucesso e a mistura de cores, junto com outros recursos, mostrou funcionar de forma adequada.

Conclusão

Neste Instructable, um circuito de lâmpada inteligente foi construído para ser controlado sem fio por um aplicativo Android. O GreenPAK CMIC usado neste projeto também ajudou a encurtar e incorporar vários componentes essenciais para o controle de luz em um pequeno CI.

Recomendado: