Tabla de contenido:

Sistema de semáforo de 4 vías con 5 Arduinos y 5 módulos inalámbricos NRF24L01: 7 pasos (con imágenes)
Sistema de semáforo de 4 vías con 5 Arduinos y 5 módulos inalámbricos NRF24L01: 7 pasos (con imágenes)

Video: Sistema de semáforo de 4 vías con 5 Arduinos y 5 módulos inalámbricos NRF24L01: 7 pasos (con imágenes)

Video: Sistema de semáforo de 4 vías con 5 Arduinos y 5 módulos inalámbricos NRF24L01: 7 pasos (con imágenes)
Video: Teclado de pc inalámbrico con arduino por bluetooth. 2024, Noviembre
Anonim
Image
Image
¿Ambicioso? ¡Quizás!
¿Ambicioso? ¡Quizás!

Hace un tiempo creé un Instructable que detallaba un solo par de semáforos en una placa de pruebas.

También creé otro Instructable que muestra el marco básico para usar un módulo inalámbrico NRF24L01.

¡Esto me hizo pensar!

Hay bastantes aficionados en todo el mundo que construyen ciudades modelo y ferrocarriles, y casi siempre tienen semáforos de alguna descripción.

Algunos son modelos funcionales y otros son solo con fines estéticos.

¿Puedo crear un modelo funcional de un sistema de semáforo de cuatro vías y conectarlos de forma inalámbrica?

Me senté y pensé en mi lista de posibles requisitos. Que fue un poco así.

Controle 4 direcciones de tráfico, como un cruce de caminos.

Cada dirección tiene dos luces; y cada par recibe sus instrucciones de forma inalámbrica desde algún tipo de unidad de control.

Ser capaz de definir y modificar la secuencia de funcionamiento de las luces,

  • 1, 2, 3, 4 - en sentido horario
  • 1, 3, 4, 2
  • 1, 4, 2, 3
  • 1, 4, 3, 2 - en sentido antihorario
  • 1, 2, 4, 3
  • 1, 3, 2, 4
  • 1 + 3, 2 + 4-2 en 2 fuera
  • 1 + 3, 2, 4
  • 1, 3, 2 + 4

Toda la secuenciación debe ser controlada por una sola unidad de control, y las unidades receptoras solo encienden y apagan las luces.

Cuando dije hacer un modelo, quise decir, hacer un modelo real, nada demasiado sofisticado, pero algo que realmente se vería como algo real, posiblemente, tal vez ish.

Paso 1: ¿ambicioso? ¡Quizás

Requisitos de las piezas principales:

Una unidad de control y cuatro juegos de luces = cinco Arduinos y cinco módulos inalámbricos. AliExpress al rescate (de nuevo).

Ocho puestos de semáforo. Tengo una mala imitación de una impresora 3D, que tiende a proporcionar más material para contenedores que los productos utilizables, pero pensé que lo probaría de todos modos. Encontré algunos en Thingiverse, www.thingiverse.com/thing:2157324

Este modelo parecía el menos complejo para mi impresora. Quería ocho, así que todavía estaba presionando mi suerte. Al final resultó que, descubrí que después de un par de intentos fallidos, si orientaba el modelo en una determinada dirección (de adelante hacia atrás), obtenía resultados razonables. En total imprimí trece y obtuve ocho útiles.

Esa fue la lista de piezas principales ordenada. Las partes restantes, ya las tenía.

La lista completa de piezas es

  • 5 x Arduino UNO
  • 5 x placas inalámbricas NRF24L01
  • 5 tableros de conexiones YL-105 (o similar) para los NRF24L0s
  • 8 x LED rojos
  • 8 x LED amarillos (no tengo LED naranjas)
  • 8 x LED verdes
  • 4 x LED RGB
  • 28 resistencias de 220 ohmios
  • Protoboards / PCB
  • 8 x semáforos modelo
  • Encabezados de clavija larga de 6 x 8 (el sexto era para el espaciado en el tablero de control, ver video)
  • Tubo de reducción
  • Cables de puente
  • Pedazo de madera prensada o algo plano
  • ¿Otras piezas de madera?
  • Pintura ??
  • Pegamento caliente
  • Tiempo, paciencia y alcohol a elección.

Paso 2: escribir el código de la unidad de control

Esta es la parte que tenía que hacer primero, en caso de que no pudiera manejarlo, lo que habría sido un éxito.

Esta fue, con mucho, la parte más compleja del proyecto, pero también la más interesante para mí.

Tuve que sentarme y definir todas las posibles combinaciones de cambios de luz y cómo trabajarían juntas sincrónicamente.

Como todo buen diseño, comenzó, en papel, con una lista muy larga de números, y como quería poder tener múltiples secuencias operativas posibles, la lista se hizo aún más larga.

Pero, una vez que estaba feliz de tener todo lo que pensaba que se necesitaba y, después de mirar las páginas de números por un tiempo, mi TOC se activó y comencé a ver patrones.

Organizando los patrones, me las arreglé para recopilar toda la secuencia en una única matriz tridimensional y dos matrices bidimensionales.

Todo lo que tenía que hacer ahora era encontrar una manera de manipular esas matrices para crear la secuenciación correcta y los pasos de luz.

Me tomó un tiempo, pero logré lograrlo en menos de cincuenta líneas de código, incluidos comentarios, etc.

El código para esto no es para los pusilánimes, pero si comprende las matrices multidimensionales, no debería ser demasiado difícil de seguir. O una curva de aprendizaje para el resto.

El punto es que creo que funciona, y de todos modos no debería ser necesario cambiarlo. Pero…………

Paso 3: Mod de placa de conexión NRF24L01

Modificación de placa de conexión NRF24L01
Modificación de placa de conexión NRF24L01
Modificación de placa de conexión NRF24L01
Modificación de placa de conexión NRF24L01
Modificación de placa de conexión NRF24L01
Modificación de placa de conexión NRF24L01
Mod de placa de conexión NRF24L01
Mod de placa de conexión NRF24L01

El módulo NRF24L01 y la placa de conexión YL-105, desafortunadamente, no son muy compatibles con la placa de pruebas.

La placa de ruptura va en parte para solucionar el problema y, lo que es más importante, lo hace tolerante a 5v, pero todavía no es compatible con la placa de pruebas.

Así que me puse un poco inventivo.

En mi colección de "cosas", tengo varios encabezados de 6 pines con pines largos. Del tipo que se requieren para hacer Arduino Shields.

Tomé uno de estos y doblé los pasadores a 90 grados.

Quité uno de los rieles eléctricos de una placa de pruebas y enchufé el cabezal en el borde de la placa de pruebas.

Eso dejó los pines de alimentación en la placa de conexión. Ahora están en el camino.

Así que los quité y los coloqué en el otro lado del tablero de separación para que ahora sobresalgan de la parte posterior del tablero.

Para los propósitos de este Instructable, necesito cinco módulos NRF24L01, así que los monté a lo largo de la placa de prueba y luego fijé el riel de alimentación a lo largo de todos los pines de alimentación en la placa de conexión.

Se veía bastante ordenado hasta que conecté los Arduinos y se llenó un poco.

Además, que es lo importante, una vez que se conectó el riel de alimentación, todos los Arduinos se conectarían a la misma fuente y eso era lo que estaba tratando de evitar, así que desmonté la mayor parte de nuevo.

Mantendré la placa con un par de módulos NRF24L01 para crear prototipos en el futuro, por lo que no es una completa pérdida de tiempo.

Paso 4: Unidades de semáforo

Unidades de semáforo
Unidades de semáforo
Unidades de semáforo
Unidades de semáforo
Unidades de semáforo
Unidades de semáforo

Encontré algunas pequeñas placas de prueba de 170 puntos de amarre. Estos no tienen un riel de alimentación, por lo que mi placa de ruptura modificada aún encajaría. Aunque en un ligero ángulo debido a la altura de la tabla de separación.

Construí los cuatro controles de semáforo del mismo color, cables del mismo color, posicionamiento, etc. Ahora son realmente independientes.

Para la unidad de control, coloqué el módulo NRF24L01 en un PCB con los LED RGB. Usé RGB porque, aunque no necesitaba ver todas las luces, solo la roja y la verde, ocupan menos espacio.

Conectó los LED al Arduino de la manera normal y agregó un poco de código para mostrar el estado rojo o verde de cada conjunto de semáforos.

Traté de ser coherente con los colores de mis cables para poder ver fácilmente si había hecho algo diferente en una de las placas.

Tengo algunos juegos de cables de Dupont cortos y, como los cables están pegados, hizo que esta parte fuera bastante fácil.

NRF24L01:

  • CE naranja al pin 10 de Arduino (definido en el código)
  • CSN amarillo al pin 9 de Arduino (definido en el código)
  • SCK verde al pin 13 de Arduino (obligatorio)
  • MOSI Blue To Arduino pin 11 (obligatorio)
  • MISO Purple To Arduino pin 12 (obligatorio)
  • Vcc Rojo a 5v. Si no está utilizando las placas de conexión, debe ser de 3.3v.
  • GND Marrón a Arduino GND

Unidades de luz y pines Arduino a LED:

  • Rojo para LED rojo
  • Naranja para el LED amarillo (no tengo LED naranjas)
  • Verde para el LED verde
  • Negro para GND

Mi única desviación de esto fue cuando conecté el Control Arduino a los LED RGB. Usé cables blancos y grises porque se me habían acabado los rojos.

Paso 5: Semáforos y pruebas

Image
Image
Semáforos y pruebas
Semáforos y pruebas
Semáforos y pruebas
Semáforos y pruebas

Ese es el código completado y cada control independiente también completado. Todo lo que necesito ahora son los mismos semáforos.

Como dije antes, encontré un modelo sencillo en Thingiverse y logré imprimir ocho que no se veían tan mal.

Instalé los LEDS con su resistencia requerida de 200 ohmios y un enlace y un cable de tierra.

Encoger los cables y los pegó en caliente en su lugar.

Decidí pintarlos de negro después de instalar todos los LED. Mala idea, debería haberlo hecho primero.

Conecté todo para una prueba antes de seguir avanzando.

Paso 6: La encrucijada

El cruce
El cruce
El cruce
El cruce
El cruce
El cruce
El cruce
El cruce

Decidí montarlos todos en una tabla, así que ahora tenía que crear una especie de cruce de caminos similar.

Vivo en el Reino Unido, así que conducimos por el lado equivocado de la carretera aquí, y por lo tanto hice mi encrucijada tan amigable para el Reino Unido como lo permitían mis pobres habilidades artísticas.

Esto fue bastante sencillo, solo llevó mucho tiempo; y estoy seguro de que no hay cruces de caminos que se vean así, pero los míos no tienen baches.

No quería sacrificar permanentemente mis Arduinos a este proyecto, así que me comprometí al poblar cada uno con separadores de 10 mm y pegarlos en caliente a la base de la placa.

Sin embargo, lo que hice fue pegar en caliente la mini placa de pruebas al costado del Arduino.

En primer lugar, sostuvo el NRF24L01 y la placa de ruptura fuera de la base del cruce de caminos, y en segundo lugar, rara vez uso un Arduino sin una placa de pruebas de algún tipo, por lo que seguirán siendo útiles así.

Paso 7: todo listo

Todo listo
Todo listo
Todo listo
Todo listo

Se han incluido todos los archivos de código.

No revisé el código aquí ya que este Instructable es lo suficientemente largo sin él.

Espero que este haya sido un Instructable útil, incluso si solo muestra cómo controlar varias otras placas Arduino de forma inalámbrica con el precio muy razonable NRF24L01.

Si tiene alguna pregunta, no dude en hacer un comentario y haré todo lo posible para ayudarlo.

Recomendado: