Tabla de contenido:

Control de bricolaje Color de LED RGB a través de Bluetooth: 5 pasos
Control de bricolaje Color de LED RGB a través de Bluetooth: 5 pasos

Video: Control de bricolaje Color de LED RGB a través de Bluetooth: 5 pasos

Video: Control de bricolaje Color de LED RGB a través de Bluetooth: 5 pasos
Video: CONTROLAR Luces Led RGB desde el CELULAR | CONVERTIR Cualquier TIRA LED en INTELIGENTE 📱 2024, Mes de julio
Anonim
Control de bricolaje Color de LED RGB a través de Bluetooth
Control de bricolaje Color de LED RGB a través de Bluetooth

Las bombillas inteligentes han ganado popularidad recientemente y se están convirtiendo en una parte clave del conjunto de herramientas del hogar inteligente. Las bombillas inteligentes permiten al usuario controlar su luz a través de una aplicación especial en el teléfono inteligente del usuario; la bombilla se puede encender y apagar y el color se puede cambiar desde la interfaz de la aplicación. En este proyecto, construimos un controlador de bombilla inteligente que se puede controlar desde un botón manual o una aplicación móvil a través de Bluetooth. Para agregar algo de estilo a este proyecto, hemos agregado algunas características que permiten al usuario elegir un color de iluminación de la lista de colores incluidos en la interfaz de la aplicación. También puede activar una "mezcla automática" para generar efectos de color y cambiar la iluminación cada medio segundo. El usuario puede crear su propia mezcla de colores utilizando una función PWM que también se puede utilizar como atenuador para los tres colores básicos (rojo, verde, azul). También agregamos botones externos al circuito para que el usuario pueda cambiar al modo manual y cambiar el color de la luz desde un botón externo.

Este Instructable se compone de dos secciones; el diseño GreenPAK ™ y el diseño de la aplicación Android. El diseño de GreenPAK se basa en el uso de una interfaz UART para la comunicación. Se elige UART porque es compatible con la mayoría de los módulos Bluetooth, así como con la mayoría de los demás periféricos, como los módulos WIFI. En consecuencia, el diseño GreenPAK se puede utilizar en muchos tipos de conexión.

Para construir este proyecto, usaremos la CMIC SLG46620, un módulo Bluetooth y un LED RGB. El GreenPAK IC será el núcleo de control de este proyecto; recibe datos de un módulo Bluetooth y / o botones externos, luego comienza el procedimiento requerido para mostrar la iluminación correcta. También genera la señal PWM y la envía al LED. La Figura 1 a continuación muestra el diagrama de bloques.

El dispositivo GreenPAK utilizado en este proyecto contiene una interfaz de conexión SPI, bloques PWM, FSM y muchos otros bloques adicionales útiles en un IC. También se caracteriza por su reducido tamaño y bajo consumo energético. Esto permitirá a los fabricantes construir un pequeño circuito práctico utilizando un solo IC, por lo que los costos de producción se minimizarán en comparación con sistemas similares.

En este proyecto, controlamos un LED RGB. Para que el proyecto sea comercialmente viable, es probable que un sistema deba aumentar el nivel de luminosidad conectando muchos LED en paralelo y utilizando los transistores adecuados; el circuito de alimentación también debe tenerse en cuenta.

Puede seguir todos los pasos para comprender cómo se ha programado el chip GreenPAK para controlar el color del LED RGB a través de Bluetooth. Sin embargo, si solo desea programar fácilmente el IC sin comprender todos los circuitos internos, descargue el software GreenPAK para ver el archivo de diseño GreenPAK ya completado. Conecte el kit de desarrollo GreenPAK a su computadora y presione el programa para crear el IC personalizado para controlar el color del LED RGB a través de Bluetooth.

El diseño de GreenPAK consta del receptor UART, la unidad PWM y la unidad de control que se describen en los pasos a continuación.

Paso 1: Receptor UART

Receptor UART
Receptor UART

Primero, necesitamos configurar el módulo Bluetooth. La mayoría de los circuitos integrados de Bluetooth admiten el protocolo UART para la comunicación. UART son las siglas de Universal Asynchronous Receiver / Transmitter. UART puede convertir datos de un lado a otro entre formatos paralelos y seriales. Incluye un receptor de serie a paralelo y un convertidor de paralelo a serie que se sincronizan por separado.

Los datos recibidos en el módulo Bluetooth se transmitirán a nuestro dispositivo GreenPAK. El estado inactivo del Pin10 es ALTO. Cada carácter enviado comienza con un bit lógico de inicio BAJO, seguido de un número configurable de bits de datos y uno o más bits lógicos de parada ALTA.

El transmisor UART envía 1 bit de INICIO, 8 bits de datos y un bit de PARADA. Por lo general, la velocidad en baudios predeterminada para un módulo Bluetooth UART es 9600. Enviaremos el byte de datos desde el IC Bluetooth al bloque SPI del GreenPAK ™ SLG46620.

Dado que el bloque GreenPAK SPI no tiene control de bits de INICIO o DETENCIÓN, usaremos esos bits en su lugar para habilitar y deshabilitar la señal de reloj SPI (SCLK). Cuando el Pin10 pasa a BAJO, sabemos que hemos recibido un bit de INICIO, por lo que usamos el detector de flanco descendente PDLY para identificar el inicio de la comunicación. Ese detector de flanco descendente sincroniza DFF0, lo que permite que la señal SCLK sincronice el bloque SPI.

Nuestra velocidad en baudios es de 9600 bits por segundo, por lo que nuestro período SCLK debe ser 1/9600 = 104 μs. Por lo tanto, configuramos la frecuencia OSC en 2MHz y usamos CNT0 como divisor de frecuencia.

2 MHz-1 = 0,5 μs

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

Por lo tanto, queremos que el valor del contador CNT0 sea 207. Para asegurarnos de no perder ningún dato, necesitamos retrasar el reloj SPI medio ciclo de reloj para que el bloque SPI se sincronice en el momento adecuado. Logramos esto usando CNT6, LUT1 de 2 bits y el reloj externo del bloque OSC. La salida de CNT6 no aumenta hasta 52 μs después de que se sincroniza DFF0, que es la mitad de nuestro período SCLK de 104 μs. Cuando CNT6 es alto, la puerta AND LUT1 de 2 bits permite que la señal OSC de 2 MHz pase a EXT. Entrada CLK0, cuya salida está conectada a CNT0.

Paso 2: Unidad PWM

Unidad PWM
Unidad PWM

La señal PWM se genera utilizando PWM0 y un generador de pulsos de reloj asociado (CNT8 / DLY8). Dado que el ancho de pulso es controlable por el usuario, utilizamos FSM0 (que se puede conectar a PWM0) para contar los datos del usuario.

En el SLG46620, FSM1 de 8 bits se puede utilizar con PWM1 y PWM2. El módulo Bluetooth debe estar conectado, lo que significa que debe usarse la salida paralela SPI. Los bits de salida paralela SPI 0 a 7 se mezclan con DCMP1, DMCP2 y OUT1 y OUT0 del LF OSC CLK. PWM0 obtiene su salida del FSM0 de 16 bits. Si no se modifica, esto provoca una sobrecarga del ancho del pulso. Para limitar el valor del contador a 8 bits, se agrega otro FSM; FSM1 se utiliza como puntero para saber cuándo el contador llega a 0 o 255. FSM0 se utiliza para generar el pulso PWM. FSM0 y FSM1 deben estar sincronizados. Dado que ambos FSM tienen opciones de reloj preestablecidas, CNT1 y CNT3 se utilizan como mediadores para pasar el CLK a ambos FSM. Los dos contadores se establecen en el mismo valor, que es 25 para este Instructable. Podemos alterar la tasa de cambio del valor de PWM cambiando estos valores de contador.

El valor de los FSM aumenta y disminuye mediante las señales '+' y '-', que se originan en la salida paralela SPI.

Paso 3: Unidad de control

Unidad de control
Unidad de control

Dentro de la unidad de control, el byte recibido se toma del módulo Bluetooth a la salida paralela SPI y luego se pasa a las funciones asociadas. Al principio, se comprobarán las salidas PWM CS1 y PWM CS2 para ver si el patrón PWM está activado o no. Si está activado, determinará qué canal generará el PWM a través de LUT4, LUT6 y LUT7.

LUT9, LUT11 y LUT14 son responsables de verificar el estado de los otros dos LED. LUT10, LUT12 y LUT13 comprueban si el botón Manual está activado o no. Si el modo Manual está activo, las salidas RGB funcionan de acuerdo con los estados de salida D0, D1, D2, que se cambian cada vez que se presiona el botón Color. Cambia con el flanco ascendente procedente de CNT9, que se utiliza como antirrebote del flanco ascendente.

El pin 20 está configurado como entrada y se utiliza para cambiar entre control manual y Bluetooth.

Si el modo Manual está deshabilitado y el modo Mezclador automático está activado, entonces el color cambia cada 500 ms con el borde ascendente proveniente de CNT7. Se utiliza un LUT1 de 4 bits para evitar el estado '000' para D0 D1 D2, ya que este estado hace que la luz se apague durante el modo de mezclador automático.

Si el modo Manual, el modo PWM y el modo Mezclador automático no están activados, los comandos SPI rojo, verde y azul fluyen a los pines 12, 13 y 14, que están configurados como salidas y están conectados al LED RGB externo.

DFF1, DFF2 y DFF3 se utilizan para construir un contador binario de 3 bits. El valor del contador aumenta con los pulsos CNT7 que pasan por P14 en modo Mezclador automático, o de señales provenientes del botón Color (PIN3) en modo manual.

Paso 4: Aplicación de Android

Aplicación para Android
Aplicación para Android
Aplicación para Android
Aplicación para Android
Aplicación para Android
Aplicación para Android
Aplicación para Android
Aplicación para Android

En esta sección, vamos a crear una aplicación de Android que supervisará y mostrará las selecciones de control del usuario. La interfaz consta de dos secciones: la primera sección contiene un conjunto de botones que tienen colores predefinidos de modo que cuando se presiona alguno de estos botones, se enciende un LED del mismo color correspondiente. La segunda sección (cuadrado MIX) crea un color mezclado para el usuario.

En la primera sección, el usuario elige el pin LED por el que quiere que pase la señal PWM; la señal PWM solo se puede pasar a un pin a la vez. La lista inferior controla lógicamente el encendido / apagado de los otros dos colores durante el modo PWM.

El botón de mezclador automático es responsable de ejecutar el patrón de cambio de luz automático donde la luz cambiará cada medio segundo. La sección MIX contiene dos listas de casillas de verificación para que el usuario pueda decidir qué dos colores mezclar.

Creamos la aplicación utilizando el sitio web del inventor de aplicaciones del MIT. Es un sitio que permite crear aplicaciones de Android sin experiencia previa en software utilizando bloques de software gráfico.

Al principio, diseñamos una interfaz gráfica agregando un conjunto de botones responsables de mostrar los colores predefinidos, también agregamos dos listas de casillas de verificación, y cada lista tiene 3 elementos; cada elemento se describe en su cuadro individual, como se muestra en la Figura 5.

Los botones dentro de la interfaz de usuario están vinculados a comandos de software: todos los comandos que la aplicación enviará a través de Bluetooth estarán en formato de byte y cada bit es responsable de una función específica. La Tabla 1 muestra la forma de las tramas de comando enviadas al GreenPAK.

Los primeros tres bits, B0, B1 y B2, mantendrán el estado de los LED RGB en el modo de control directo mediante los botones de los colores predefinidos. Así, al hacer clic en cualquiera de ellos, se enviará el valor correspondiente del botón, como se muestra en la Tabla 2.

Los bits B3 y B4 contienen los comandos '+' y '-', que son responsables de aumentar y disminuir el ancho de pulso. Cuando se presiona el botón, el valor del bit será 1, y cuando se suelta el botón, el valor del bit será 0.

Los bits B5 y B6 son responsables de elegir el pin (color) por el que pasará la señal PWM: las designaciones de color de estos bits se muestran en la tabla 3. El último bit, B7, es responsable de activar el mezclador automático.

La Figura 6 y la Figura 7 muestran el proceso de vinculación de botones con bloques de programación que se encargan de enviar los valores anteriores.

Para ver el diseño completo de la aplicación, puede descargar el archivo adjunto “.aia” con los archivos del proyecto y abrirlo dentro del sitio principal.

La Figura 8 a continuación muestra el diagrama del circuito de nivel superior.

Paso 5: resultados

El controlador se probó con éxito y se demostró que la mezcla de colores, junto con otras características, funcionaba correctamente.

Conclusión

En este Instructable, se construyó un circuito de bombilla inteligente para ser controlado de forma inalámbrica por una aplicación de Android. El GreenPAK CMIC utilizado en este proyecto también ayudó a acortar e integrar varios componentes esenciales para el control de la luz en un pequeño IC.

Recomendado: