Tabla de contenido:

LED RGB controlados por acelerómetro inalámbrico: 4 pasos
LED RGB controlados por acelerómetro inalámbrico: 4 pasos

Video: LED RGB controlados por acelerómetro inalámbrico: 4 pasos

Video: LED RGB controlados por acelerómetro inalámbrico: 4 pasos
Video: crear tu propio sistema LED RGB DIRECCIONABLE, CONTROLADO POR w-fi esp32 esp8266 -F 2024, Mes de julio
Anonim
LED RGB controlados por acelerómetro inalámbrico
LED RGB controlados por acelerómetro inalámbrico
LED RGB controlados por acelerómetro inalámbrico
LED RGB controlados por acelerómetro inalámbrico

Los acelerómetros MEMS (sistemas microelectromecánicos) se utilizan ampliamente como sensores de inclinación en teléfonos móviles y cámaras. Los acelerómetros sencillos están disponibles tanto en forma de chip IC como en placas de circuito impreso de desarrollo económicas.

Los chips inalámbricos también son asequibles y están disponibles en circuitos ensamblados, con una red de antenas combinada y tapas de desacoplamiento a bordo. Conecta la placa inalámbrica y el acelerómetro a un microcontrolador a través de una interfaz en serie y tendrás un control inalámbrico con funciones de nintendo-wii. Luego, construya un receptor con el mismo tipo de chip inalámbrico y LED rgb controlados por pwm, listo, tiene una iluminación inalámbrica en la habitación con control de inclinación. Mantenga la placa del transmisor nivelada con la placa de pruebas hacia arriba y el LED es azul frío, solo el LED azul está activo. Luego, incline el transmisor en una dirección y mezcle en rojo o verde según la dirección en la que lo incline. Inclínelo completamente a 90 grados y recorra todas las mezclas de rojo y azul o verde y azul hasta que solo el rojo o el verde estén activos con una inclinación de 90 grados. Inclina un poco en las direcciones xey y obtendrás una mezcla de todos los colores. A 45 grados en todas las direcciones, la luz es una mezcla igual de rojo, verde y azul, en otras palabras, luz blanca. Las piezas utilizadas están disponibles en tiendas de electrónica de hobby de Internet. Debe ser identificable por algunas de las imágenes.

Paso 1: transmisor con acelerómetro

Transmisor con acelerómetro
Transmisor con acelerómetro
Transmisor con acelerómetro
Transmisor con acelerómetro
Transmisor con acelerómetro
Transmisor con acelerómetro
Transmisor con acelerómetro
Transmisor con acelerómetro

El transmisor se basa en el microcontrolador Atmel avr168. La conveniente placa roja con el 168 es una placa arduino con regulador de voltaje y circuito de reinicio. El acelerómetro está conectado al avr con bus i2c bit-banged, y la placa inalámbrica está conectada con hardware SPI, (interfaz de periféricos en serie).

La placa de pruebas es completamente inalámbrica con el paquete de baterías de 4, 8V sujeto debajo. La placa inalámbrica y el arduino wee aceptan hasta 9 V y tienen un regulador de voltaje lineal integrado, pero el acelerómetro necesita 3, 3 V del riel regulado en el wee.

Paso 2: Receptor con LED RGB

Receptor con LED RGB
Receptor con LED RGB
Receptor con LED RGB
Receptor con LED RGB
Receptor con LED RGB
Receptor con LED RGB

El receptor se basa en la placa de demostración atmel avr169 llamada butterfly. El tablero tiene muchas características que no se utilizan en este proyecto. El transceptor inalámbrico está conectado a PortB y el led controlado por pwm está conectado a PortD. La energía se suministra en el encabezado del ISP, 4.5V es suficiente. La placa inalámbrica puede tolerar 5V en los pines de E / S, pero necesita un suministro de 3.3V que es suministrado por el regulador integrado.

El cable de cabecera modificado para el transceptor de rf es realmente conveniente y conecta la placa inalámbrica con el controlador spi de potencia y hardware en la mariposa. El shiftbright es un controlador de modulación de ancho de pulso de led rgb que acepta un comando de 4 bytes que se engancha y luego se enclava en los pines de salida. Realmente fácil de conectar en serie. Simplemente mueva muchas palabras de comando, y la primera que se elimine terminará en el último LED conectado en la cadena tipo margarita.

Paso 3: programación en C

El código está escrito en C ya que no me importaba aprender el lenguaje de procesamiento "más fácil" en el que se basa arduino. Yo mismo escribí la interfaz SPI y rf tranceiver para la experiencia de aprendizaje, pero tomé prestado el código ensamblador i2c de avrfreaks.net. La interfaz shiftbright está bitbandada en código C. Un problema que encontré fueron pequeñas variaciones irradicas en la salida del acelerómetro, esto hizo que el led parpadeara mucho. Resolví esto con un filtro de paso bajo de software. Un promedio ponderado móvil en los valores del acelerómetro. El rf-tranceiver soporta hardware crc y ack con retransmisión automática, pero para este proyecto la actualización suave en tiempo real de los leds fue más importante. No es necesario que todos los paquetes con valores de acelerómetro lleguen intactos al receptor, siempre que se descarten los paquetes corruptos. No tuve problemas con los paquetes de RF perdidos dentro de la línea de visión de 20 metros. Pero más lejos, el enlace se volvió inestable y los leds no se actualizaban continuamente. El bucle principal del transmisor en pseudocódigo: initialize (); while (true) {Values = abs (get x, y, z acelerometer values ()); RF_send (valores); delay (20ms);} El bucle principal del receptor en pseudocódigo: initialize (); while (true) {newValues = block_receiveRF ()); rgbValues = rgbValues + 0.2 * (newValues-rgbValues); escribe rgbValues en shiftbrigth;}

Paso 4: el resultado

El resultado
El resultado
El resultado
El resultado
El resultado
El resultado
El resultado
El resultado

Me sorprendió lo suave y preciso que era el control. Realmente tienes un control de precisión del color con la punta de los dedos. El controlador pwm-LED tiene una resolución de 10 bits para cada color, lo que genera millones de colores posibles. Desafortunadamente, el acelerómetro tiene una resolución de solo 8 bits, lo que reduce el número de colores teóricos a miles. Pero todavía no es posible percibir ningún paso en el cambio de color. Puse el receptor en una lámpara IKEA y tomé una foto de diferentes colores a continuación. También hay un video (aunque la calidad es horrible)

Recomendado: