Tabla de contenido:

Mesa de centro LED Arduino controlada por Bluetooth: 10 pasos (con imágenes)
Mesa de centro LED Arduino controlada por Bluetooth: 10 pasos (con imágenes)

Video: Mesa de centro LED Arduino controlada por Bluetooth: 10 pasos (con imágenes)

Video: Mesa de centro LED Arduino controlada por Bluetooth: 10 pasos (con imágenes)
Video: Proyecto en Arduino: Casa Domótica controlada por Bluetooth, con App Inventor, Control Manual y Voz 2024, Mes de julio
Anonim
Mesa de centro LED Arduino controlada por Bluetooth
Mesa de centro LED Arduino controlada por Bluetooth
Mesa de centro LED Arduino controlada por Bluetooth
Mesa de centro LED Arduino controlada por Bluetooth
Mesa de centro LED Arduino controlada por Bluetooth
Mesa de centro LED Arduino controlada por Bluetooth
Mesa de centro LED Arduino controlada por Bluetooth
Mesa de centro LED Arduino controlada por Bluetooth

Este fue mi primer proyecto real de Arduino y también es mi primer instructable, así que sea amable en los comentarios:) Quería intentar responder las preguntas que me tomó un tiempo resolver y proporcionar instrucciones detalladas, así que si está muy familiarizado con el aficionado. electrónica, entonces probablemente pueda hojear cada paso, pero si es nuevo en esto, debería proporcionarle todo lo que necesita.

El objetivo del proyecto era crear una pantalla de 12 x 12 píxeles en una mesa de café que se puede controlar a través de bluetooth y utilizar como una luz de habitación fresca / juegos en ella.

Para esta compilación, necesitará estas piezas:

  1. Arudino Mega (o clon) -
  2. Escudo de tarjeta micro SD Arduino (utilicé este y soldé los encabezados) -
  3. Tarjeta Micro SD: cualquier tamaño es suficiente, pero debe formatearse en FAT32
  4. Tira de LED direccionable WS2812B de 5 m -
  5. Módulo Bluetooth HC05 -
  6. Fuente de alimentación de 5 V y 6 amperios - (Usé esta, pero hay otras cien en eBay)
  7. Mesa Ikea LACK (el clásico de los aficionados) -
  8. Acceso a un cortador láser para contrachapado de 3 mm (o una mano muy firme). Puede solicitar piezas cortadas con láser en línea en varios lugares (https://www.hobbytronics.co.uk/laser-cutting, por ejemplo)
  9. Pintura en aerosol blanca
  10. Sección en T de aluminio de 2 m (1 1/2 x 1 1/2 x 1/8) -
  11. Tapa de vidrio de 450 mm x 450 mm x 6 mm (la mayoría de los vidrieros locales pueden cortar piezas personalizadas para usted, pero yo usé estos tipos
  12. 1 x condensador de 100 micro Faradios
  13. Resistencia 2 x 1k
  14. 1 x resistencia de 2k
  15. 1 x potenciómetro rotativo lineal
  16. Varios puentes (probablemente una docena durante la creación de prototipos)
  17. Al menos tres colores de cables relativamente gruesos para soldar (esto puede generar grandes corrientes, por lo que no recomendaría cables de puente para la alimentación)
  18. Stripboard para el circuito interno (no te preocupes, es muy sencillo)

Herramientas necesarias:

  1. Un soldador + soldadura
  2. Un par de tijeras
  3. Pelacables
  4. Una Dremel o una especie de rompecabezas para destrozar la mesa. Usé esto https://www.amazon.co.uk/gp/product/B0078LENZC/ref… con brocas de corte en espiral

Paso 1: Prueba inicial y diseño

Prueba inicial y diseño
Prueba inicial y diseño
Prueba inicial y diseño
Prueba inicial y diseño
Prueba inicial y diseño
Prueba inicial y diseño

El primer puerto de escala es cortar la tira de LED en las longitudes que necesite. Esta tira de LED es realmente fácil de usar porque solo tiene 3 pines y hace que Arduino haga el trabajo real. Corté el carrete en 12 secciones, cada una de 12 LED de longitud, como se muestra en la figura, y las coloqué en la parte posterior de la mesa para ayudarme a visualizar hacia dónde iba con esto.

Luego me sobraron algunos LED, así que los conecté a un Arduino UNO y tuve que probar si funcionaban (también puede usar el Mega mencionado en el esquema del proyecto). Para hacer esto, corté y quité algunos encabezados macho a macho y los soldé a las almohadillas en el extremo de la tira de LED. En la tira WS2812 que utilicé, el cable de 5 V es rojo, la tierra es blanca y los datos son verdes. Asegúrese de prestar atención a la flecha direccional impresa en la tira WS2812B para no intentar enviar datos en la dirección incorrecta. Conecté la línea de 5V a 5V en el Arduino, Ground a GND y Data al pin 6 con una resistencia de 1k en serie. Tenga en cuenta que el esquema de Fritzing de los LED WS2812B es ligeramente diferente a los que había entregado; basta con decir que solo asegúrese de que los datos estén conectados al pin 6, Gnd esté conectado a tierra y 5 esté conectado a 5V.

Con tan pocos LED (5 o más), el Arduino debería estar bien para proporcionar la energía; sin embargo, no puede alimentar muchos, ya que cuando están en blanco, los LED consumen hasta 60 mA cada uno y pueden abrumar rápidamente al Arduino.

Suponiendo que tiene el IDE de Arduino (si no lo descarga e instálalo), configure el tipo de conjunto de chips en el Arduino que tiene y configure el puerto COM en el que muestra un Arduino en las opciones. Ahora descargue la biblioteca FastLED e instálela (https://fastled.io/). Abra el ejemplo de striptest.hy establezca la cantidad de LED en el boceto a la cantidad que tenga (me quedaban 5). Presione verificar y (suponiendo que todo vaya bien) cárguelo en el Arduino y debería ver que las luces en la pequeña tira se encienden y cambian de color.

Paso 2: Soldar la matriz y el tablero

Soldar Matrix y Stripboard
Soldar Matrix y Stripboard
Soldar Matrix y Stripboard
Soldar Matrix y Stripboard
Soldar Matrix y Stripboard
Soldar Matrix y Stripboard

Ahora es el momento de empezar a crear la matriz de LED.

Corta 11 trozos cortos de cada uno de los tres colores de alambre que tienes. Asegúrese de que sean lo suficientemente largos para ir desde el final de una tira hasta el comienzo de la siguiente. Al colocar las tiras de LED, debe asegurarse de que la flecha del flujo de datos siga a una serpiente. Una vez que esto esté establecido, suelde con cuidado cada fila de LED a la siguiente como se muestra en la figura. Esto es significativamente más fácil si usa el mismo color para cada tipo de conexión.

Ahora, más soldadura, necesitamos crear la placa que manejará la energía de la fuente de alimentación principal. Soldé dos columnas en el stripboard juntas para 5V y GND para que maneje mejor la corriente. Vea el esquema adjunto para el circuito que necesita crear. Al soldar el condensador, asegúrese de que el extremo negativo esté conectado al riel GND, no al de 5V. Una vez que el stripboard está terminado, necesitamos conectar el + VE y GND a la tira de LED y también usar la otra mitad de los puentes que cortamos anteriormente para conectar el Arduino a la fuente de alimentación y al stripboard. Ahora sería un buen momento para agregar la placa de conexión SD al Arduino para que podamos guardar archivos y leerlos más tarde. Una vez que la placa de conexión SD esté en su lugar, podemos conectar el riel de 5V al pin Vin y el GND a cualquier pin GND del Arduino.

Por último, podemos conectar un potenciómetro a la entrada analógica A0 como se muestra para que tengamos una forma de controlar el brillo de los LED.

Una vez hecho todo esto, podemos cargar el boceto de striptest nuevamente cambiando el número de LED a 144. Asegúrese de tener la fuente de alimentación activa antes de cargar este boceto. Con suerte, todos los LED deberían iluminarse en los patrones del boceto de prueba para que sepamos que todo está funcionando.

Paso 3: Integración del módulo Bluetooth

Integración del módulo Bluetooth
Integración del módulo Bluetooth

Última pieza de cableado ahora, la unidad HC05 se conecta al Arduino Mega como se muestra en el esquema. Asegúrese de que la unidad HC05 se conecte a los puertos Rx1 y Tx1 en el mega - esto hace que sea mucho más fácil de programar y evita el uso de la biblioteca "softwareserial".

NÓTESE BIEN. La unidad HC05 tomará 5V o 3.3V y generalmente opera con una lógica de 3.3V, así que la conecté al riel de 3.3V. Algunos otros instructables han mostrado el Tx (en Arduino) a Rx (en la unidad HC05) con un circuito divisor de potencial para cambiar la lógica de 5 V del Arduino al nivel nativo para el módulo HC05. Esta es la razón por la que tenía las resistencias de 1k y 2k en la lista de piezas; sin embargo, no me molesté y parece perfectamente feliz en mi mesa:)

Paso 4: piratería de mesa

Hackeo de mesa
Hackeo de mesa
Hackeo de mesa
Hackeo de mesa
Hackeo de mesa
Hackeo de mesa

Ahora tenemos que empezar a cortar la mesa para darles un nuevo hogar a nuestros LED y electrónicos.

Primero, marque un cuadrado de 450 mm x 450 mm en el medio de la parte superior de la mesa LACK. Con la Dremel (o una sierra de vaivén), corte el cuadrado lo mejor que pueda para mantenerlo recto. Ahora podemos quitar la parte superior y las piezas internas de cartón dejándote con una mesa ahuecada como se muestra en la imagen. Usando la Dremel de nuevo, podemos perforar un agujero en la esquina de la parte inferior de la mesa para que tengamos un lugar por donde pasar el cable de red.

Una vez que la mesa está preparada, podemos pegar los LED con cinta adhesiva aproximadamente en las posiciones correctas antes de pasar a los siguientes pasos. Encontré útil asegurarme de que los componentes electrónicos estuvieran bien después de cada paso, así que pruebe el boceto de prueba de nuevo.

Una vez que se sienta cómodo, todo está en su lugar correcto, puede perforar un par de pequeños orificios para montar la fuente de alimentación dentro del borde de la mesa con pernos pequeños. Elegí montar el Arduino fuera de la mesa para poder reprogramar fácilmente si quiero, pero está montado al revés en la parte inferior de la mesa y no es fácilmente visible. También monté el potenciómetro en la parte inferior de la mesa para que el control de brillo se vea agradable y profesional.

Paso 5: piezas cortadas con láser

Piezas cortadas con láser
Piezas cortadas con láser
Piezas cortadas con láser
Piezas cortadas con láser
Piezas cortadas con láser
Piezas cortadas con láser

Ahora necesitamos introducir las partes cortadas con láser que forman la matriz de cuadrados para que tengamos píxeles definidos. He incluido los archivos dxf para las piezas cortadas con láser que forman la matriz de madera y también imágenes de ellas para que sepas cómo deberían verse. Están formados por dos piezas independientes, una va por cada fila de LED y la otra los cruza. Las partes que se cruzan tienen un espacio de 10 mm de alto cortado en la parte inferior para permitir que pase el cableado. Este espacio podría reducirse a 5 mm ya que parece tener un poco de fuga de luz de un píxel al siguiente.

11 de las copias de ambas partes deben cortarse con láser de madera contrachapada de 3 mm y luego ensamblarlas para asegurarse de que encajen correctamente. Una vez que estés satisfecho, vuelve a desarmar la matriz y rocíala de blanco para mejorar las características reflectantes de la mesa. Cuando estén secos, vuelva a juntarlos y colóquelos sobre los LED. Puede ser un poco más difícil unirlos después de rociarlos, ya que ahora son un poco más gruesos, pero no se preocupe, simplemente golpéelos suavemente para colocarlos en su lugar antes de colocar la matriz en la mesa.

Paso 6: Glediator

Glediator
Glediator
Glediator
Glediator

Ahora que tenemos todo el hardware implementado, podemos empezar a buscar software. Descargué e instalé un software llamado Glediator para crear animaciones para los LED (https://www.solderlab.de/index.php/software/glediat…). Las instrucciones de instalación pueden ser un poco complicadas, pero siga el sitio web de cerca y estará bien. También necesitamos descargar el boceto del sitio web de Glediator para cargarlo en Arduino (https://www.solderlab.de/index.php/downloads/catego…). Estamos utilizando LED WS2812B, así que asegúrese de descargar el correcto (interfaz WS2812 Glediator). Una vez que abra este boceto, cambie NUMBER_OF_PIXELS a 144 y cárguelo en Arduino.

Una vez instalado Glediator podemos empezar a reproducir animaciones en la mesa. En primer lugar, debemos establecer el tamaño de la matriz en 12 x 12 en el software Glediator y también establecer el tipo de salida en HSBL - Horizontal Snake (comenzando) Abajo a la izquierda, ya que esta es la forma en que conectamos los LED y cambiamos el orden de los colores a GRB (esto es para lo que los LED toman datos). En la pestaña de salida, abra el puerto COM y la matriz de LED debería comenzar a mostrar el patrón de LED en la pantalla central del software Glediator.

Puede crear animaciones y grabarlas en un archivo.dat que podemos cargar en la tarjeta SD, lo que significa que sus animaciones favoritas se pueden mostrar en la mesa sin necesidad de conectar una PC. Hay algunos tutoriales en línea sobre esto (https://hackaday.io/project/5714-glediator-from-sd… por ejemplo). He modificado algunas fuentes de código diferentes para que funcionen para esto, por lo que mi código debería estar bien.

Cuando guarde sus animaciones, asegúrese de guardarlas como "animX.dat" donde X es cualquier número del 1 al 15. Podría implementar más cambiando un par de líneas en mi código.

NB: al grabar archivos Glediator, el software tiene un error que significa que no recuerda cómo conectó la tira de LED. En mi código, he implementado una función simple para invertir el orden de las filas pares, lo que significa que todo se muestra correctamente

Paso 7: Control en serie de Bluetooth

Control de serie de Bluetooth
Control de serie de Bluetooth
Control de serie de Bluetooth
Control de serie de Bluetooth

Configurar la comunicación bluetooth entre un teléfono inteligente y el Arduino resultó sorprendentemente complicado, pero hay algunos pasos simples que lo harán mucho más fácil. En primer lugar, deberá descargar una aplicación para su teléfono inteligente. Usé https://play.google.com/store/apps/details?id=com…. pero probablemente exista un equivalente de iphone (por el que tienes que pagar; p)

Es posible que haya notado que el módulo HC05 tiene un pequeño interruptor. Si lo enciende con este interruptor presionado, ingresa al modo AT, lo que significa que puede interrogar los parámetros y cambiarlos si lo desea.

Cargue el boceto adjunto al Mega y configure la velocidad de serie en su PC en 9600. Desconecte la alimentación de la unidad HC05 y luego presione el botón hacia abajo cuando la vuelva a conectar. El parpadeo debería ser ahora aproximadamente una vez cada dos segundos; ahora el HC05 está en modo AT.

Ahora en el monitor serial podemos enviar comandos al HC05 y ver su respuesta. Escriba "AT" y presione enviar y debería ver "OK" volver en el monitor serial - ahora sabemos que está escuchando. El nombre de bluetooth del dispositivo se puede cambiar escribiendo "AT + NAME = XYZPQR" donde XYZPQR es lo que desea que se llame al módulo. Llamé al mío LightWave. El código de acceso predeterminado para el módulo bluetooth es 1234 (o 0000), pero también se puede cambiar enviando "AT + PSWD = 9876", por ejemplo. Finalmente, podemos cambiar la velocidad de comunicación del HC05 enviando "AT + UART = 38400". Esta es la tasa predeterminada para la mayoría de los módulos HC05, pero la mía se configuró de manera diferente, por lo que es una buena práctica configurarla para estar seguro. Hay muchos más detalles sobre estos comandos aquí: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… y también hay instrucciones sobre este paso que tienen muchos más detalles https://www.instructables.com/id/Modify -El-HC-05-…

Ahora podemos intentar enviar comandos al módulo a través de un dispositivo bluetooth. En primer lugar, desconecte la alimentación del módulo HC05 y luego vuelva a conectarlo. Debería ver que la velocidad de parpadeo del LED es mucho más rápida; esto significa que ahora está esperando para emparejarse. En su teléfono inteligente, abra la aplicación Arduino Bluetooth Controller y busque el módulo HC05. Si no ha cambiado el nombre, probablemente se llamará HC05 o similar. Cuando se le den las opciones de cómo le gustaría conectarse, seleccione el modo Terminal. Ahora intente enviar algunos números y texto y ver si el monitor serial en la PC informa que se han recibido. Con suerte, lo han hecho para que podamos seguir adelante, si no, hay muchos instructivos que podrían darle algunas pistas (https://www.instructables.com/id/Bluetooth-Hc-05-W… por ejemplo).

Lo último que debe hacer aquí es asignar las entradas del controlador a los números con los que Arduino puede hacer algo. Usé los siguientes valores:

Arriba = 1, Abajo = 2, Izquierda = 3, Derecha = 4, Inicio = 5, Seleccione = 6.

Paso 8: Juegos

Juegos
Juegos

No me atribuyo el código del juego. Usé el código fuente que se encuentra aquí https://github.com/davidhrbaty/IKEA-LED-Table escrito por davidhrbaty. Sin embargo, lo he modificado de diferentes formas:

  1. Agregué una función de restricción de brillo basada en el valor del potenciómetro para que podamos cambiar el brillo
  2. Eliminé el juego de ladrillos porque no pude compilarlo
  3. Cambié la codificación de colores de los bloques de tetris para que fueran todos de diferentes colores.
  4. Reordené el menú
  5. Implementé una opción para reproducir animaciones desde la tarjeta SD.
  6. Agregué seguimiento de puntaje alto y una opción de visualización de puntaje alto en el menú

El código adjunto debería funcionar de inmediato, pero si no, mi sugerencia sería eliminar los juegos que parecen estar causando mensajes de error y verificar el código nuevamente hasta que descubra dónde está el problema. Luego, agregue gradualmente más complejidad.

El autor original de este código hizo un trabajo fantástico construyendo algo que es realmente modular y fácil de agregar. No es tan difícil agregar casos adicionales para agregar más funciones a la tabla.

Las opciones del menú son:

  1. Tarjeta SD: reproduce animaciones almacenadas en la tarjeta SD
  2. Tetris
  3. Serpiente
  4. Apestar
  5. Dice - Generador de nuber aleatorio entre 1 y 6
  6. Animación: una colección de animaciones de la biblioteca FastLED
  7. Stars Animation - EDITAR - Ahora he implementado Game of Life de Conway en lugar de esta animación
  8. Animación de arco iris
  9. Puntuaciones altas: muestra puntuaciones altas para tetris y serpiente

Antes de comenzar a jugar, debe crear dos archivos txt en la tarjeta SD, uno llamado "teths.txt" y el otro llamado "snkhs.txt". En ambos archivos ponga el número 0 y luego guárdelos en la carpeta raíz de la tarjeta SD. Estos son los archivos de seguimiento de la puntuación más alta y se actualizarán cada vez que se supere la puntuación más alta. Si desea restablecerlo, simplemente cambie los valores a 0 en una PC.

Una vez que cargue el programa LED_table en Arduino, puede abrir el monitor en serie y debería poder ver los comandos bluetooth a medida que los envía; de esta manera, sabrá que todo está funcionando bien.

Paso 9: disfruta

Disfrutar
Disfrutar
Disfrutar
Disfrutar
Disfrutar
Disfrutar

¡Todo lo que queda por hacer es cargar el código de la mesa LED principal en el Mega y luego disfrutar jugando y dejarme saber sus puntajes más altos!

Todavía estoy esperando que lleguen las piezas para el tablero de la mesa (sección de aluminio en T y vidrio), pero la mesa ahora funciona bien y puedo jugar juegos en ella.

Hágame saber si tiene algún comentario, edición o si detecta algún error que cometí.

Paso 10: actualización

Image
Image
Actualizar
Actualizar
Actualizar
Actualizar

¡Ahora está completamente terminado!:)

Finalmente recibí la sección en T de aluminio para el borde e hice mi mejor trabajo en ingletear la junta (resulta que 45 grados es uno de los ángulos más duros) pero es casi completamente cuadrado. Para la parte superior, decidí obtener una hoja de vidrio más gruesa (425 x 425 x 8 mm) y esmeré la parte inferior con el aerosol para glaseado de vidrio Rustoleum. Usé masilla regular (sellador de silicona) para unir la parte superior y las piezas angulares para que haya un poco de flexión en las juntas si es necesario.

Actualización actualizada. Ahora agregué Game of Life de Conway como opción 7 en el menú en lugar de la animación de estrellas, ya que nunca la usé. Si no sabes qué es este juego, búscalo en Google, pero básicamente es un juego de cero jugadores que muestra la evolución basada en tres reglas simples. El juego de la vida de Conway

Actualizar ^ 3. Hice algunas modificaciones en el código para que ahora incluya una corrección de errores con respecto a la atenuación de los LED rojos y también incluye una animación de árbol de Navidad como Opción 11 en el Menú. Disfrutar.

Recomendado: