Taula de continguts:

Sistema de semàfors de 4 vies que fa servir 5 Arduinos i 5 mòduls sense fils NRF24L01: 7 passos (amb imatges)
Sistema de semàfors de 4 vies que fa servir 5 Arduinos i 5 mòduls sense fils NRF24L01: 7 passos (amb imatges)

Vídeo: Sistema de semàfors de 4 vies que fa servir 5 Arduinos i 5 mòduls sense fils NRF24L01: 7 passos (amb imatges)

Vídeo: Sistema de semàfors de 4 vies que fa servir 5 Arduinos i 5 mòduls sense fils NRF24L01: 7 passos (amb imatges)
Vídeo: Установка приложения ArduBlock 2024, Juliol
Anonim
Image
Image
Ambiciós? Pot ser!
Ambiciós? Pot ser!

Fa una estona vaig crear un Instructable que detallava un sol parell de semàfors en una taula de treball.

També he creat un altre Instructable que mostra el marc bàsic per utilitzar un mòdul sense fils NRF24L01.

Això em va fer pensar!

Hi ha molts aficionats a tot el món que construeixen ciutats i ferrocarrils models i gairebé sempre tenen semàfors d’alguna descripció.

Alguns són models de treball i d’altres només amb finalitats estètiques.

Puc crear un model de treball d'un sistema de semàfors de quatre vies i connectar-los sense fils?

Em vaig asseure i vaig pensar en la llista de possibles requisits. La qual cosa va anar una mica així.

Controleu 4 direccions de trànsit, com una cruïlla de cruïlles.

Cada direcció té dos llums; i cada parell rep les seves instruccions sense fils des d'algun tipus de control.

Ser capaç de definir i modificar la seqüència de funcionament de les llums,

  • 1, 2, 3, 4 - en sentit horari
  • 1, 3, 4, 2
  • 1, 4, 2, 3
  • 1, 4, 3, 2: en sentit antihorari
  • 1, 2, 4, 3
  • 1, 3, 2, 4
  • 1 + 3, 2 + 4 - 2 en 2 de descompte
  • 1 + 3, 2, 4
  • 1, 3, 2 + 4

Totes les seqüències seran controlades per una única unitat de control i les unitats receptores només encenen i apaguen els llums.

Quan vaig dir fer un model, volia dir, fer un model real, res massa elegant, però quelcom que en realitat s’assemblaria a l’autèntic, possiblement, potser és a dir.

Pas 1: ambiciós? Pot ser

Requisits principals de les peces:

Una unitat de control i quatre jocs de llums = cinc Arduinos i cinc mòduls sense fils. AliExpress al rescat (de nou).

Vuit semàfors. Tinc una imitació deficient d’una impressora 3D, que tendeix a subministrar més farratge de contenidors que productes utilitzables, però vaig pensar que ho provaria igualment. N'he trobat a Thingiverse, www.thingiverse.com/thing:2157324

Aquest model semblava el menys complex per a la meva impressora. En volia vuit, de manera que seguia empenyent la sort. Va resultar que vaig trobar que després d’un parell d’intents fallits, si orientava el model en una determinada direcció (de davant a darrere), obtenia resultats raonables. En total, en vaig imprimir tretze i en vaig obtenir vuit d’utilitzables.

Aquesta era la llista de peces principals ordenada. La resta de parts, ja les tenia.

La llista completa de peces són

  • 5 x Arduino UNO
  • 5 x plaques sense fils NRF24L01
  • 5 x taules YL-105 (o similars) per als NRF24L0
  • 8 x LEDs vermells
  • 8 x LEDs grocs (no tinc cap LED taronja)
  • 8 x LEDs verds
  • 4 LEDs RGB
  • Resistències de 28 x 220 Ohm
  • Taules de pa / PCB ??
  • 8 semàfors model
  • Capçaleres de pin llarg de 6 x 8 (la sisena era per espaiar al tauler de control, vegeu el vídeo)
  • Tub retràctil
  • Filferros de pont
  • Peça de tauler dur o alguna cosa plana
  • Altres trossos de fusta ??
  • Pintura ??
  • Cola calenta
  • Temps, paciència i alcohol a escollir

Pas 2: escriure el codi per a la unitat de control

Aquesta és la mica que vaig haver de fer primer, per si de cas no ho podia gestionar, que hauria estat un showstopper.

Aquesta va ser, amb diferència, la part més complexa o el projecte, però també la més interessant per a mi.

Vaig haver de seure i definir totes les possibles combinacions de canvis de llum i com funcionarien junts de manera sincronitzada.

Com tot bon disseny, va començar, en paper, amb una llista de números molt llarga, i com que volia poder tenir diverses seqüències operatives possibles, la llista es va allargar encara més.

Però, un cop em vaig alegrar que tenia tot el que pensava que era necessari i, després de mirar les pàgines dels números durant un temps, el meu TOC va començar i vaig començar a veure patrons.

Organitzant els patrons, vaig aconseguir classificar tota la seqüenciació en una única matriu tridimensional i dues matrius bidimensionals.

Tot el que havia de fer ara és trobar una manera de manipular aquestes matrius per crear la seqüenciació correcta i els passos lleugers.

Va trigar una estona, però ho vaig aconseguir en menys de cinquanta línies de codi, inclosos comentaris, etc.

El codi per a això no és per als dèbils, però si enteneu matrius multidimensionals, no hauria de ser massa difícil de seguir. O una corba d’aprenentatge per a la resta.

La qüestió és que crec que funciona i no hauria de canviar de cap manera. Però …

Pas 3: Mod

NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod

Malauradament, el mòdul NRF24L01 i el tauler de ruptura YL-105 no són gaire adequats.

El tauler de ruptura s’aconsegueix solucionar el problema i el que és més important, el que fa que sigui tolerant a 5 V, però encara no és adequat per a les taules de suport.

Així que em vaig inventar una mica.

A la meva col·lecció de "coses", tinc un nombre de capçaleres de 6 pins amb pins llargs. El tipus que es requereix per fer Arduino Shields.

Vaig agafar un d’aquests i vaig doblegar els passadors a 90 graus.

Vaig treure un dels rails d’alimentació d’una placa de connexions i vaig connectar la capçalera a la vora de la placa de control.

Això va deixar els pins d'alimentació al tauler de ruptura. Ara estan en el camí.

Així que els vaig retirar i els vaig col·locar a l’altre costat del tauler de ruptura de manera que ara sortissin de la part posterior del tauler.

Als efectes d'aquest instructiu, necessito cinc mòduls NRF24L01, de manera que els he muntat al llarg de la placa de configuració i després he fixat el carril d'alimentació al llarg de tots els pins d'alimentació del tauler de ruptura.

Va quedar força ordenat fins que vaig connectar els Arduinos i es va fer una mica massificat.

A més, que és l’aspecte més important, un cop connectat el rail d’alimentació, tots els Arduinos es connectarien a la mateixa font i això era el que intentava evitar, així que vaig tornar a desmuntar-ne la majoria.

Conservaré la placa amb un parell de mòduls NRF24L01 per prototipar-la en el futur, de manera que no perdrà completament el temps.

Pas 4: unitats de semàfors

Unitats de semàfors
Unitats de semàfors
Unitats de semàfors
Unitats de semàfors
Unitats de semàfors
Unitats de semàfors

Vaig trobar unes petites taules de reforç de 170 punts. Aquests no tenen un rail d'alimentació, de manera que el meu tauler de ruptura modificat encara hi cabria. Tot i que amb un angle lleuger a causa de l’alçada del tauler d’escapament.

Vaig construir els quatre controls del semàfor amb els mateixos cables de color, posicionament, etc. Ara són realment independents.

Per a la unitat de control, he posat el mòdul NRF24L01 en un PCB amb els LED RGB. Vaig utilitzar RGB perquè, tot i que no necessitava veure totes les llums, només el vermell i el verd, ocupen menys espai.

Es van connectar els LED a l'Arduino de la manera normal i es va afegir una mica de codi per mostrar l'estat vermell o verd de cada conjunt de semàfors.

Vaig intentar ser coherent amb els meus colors de cablejat per poder veure fàcilment si havia fet alguna cosa diferent en una de les taules.

Tinc alguns conjunts de cables de Dupont curts i, com que els cables estan enganxats, va facilitar aquesta part.

NRF24L01:

  • PIN 10 de taronja CE a Arduino (definit al codi)
  • CSN Yellow To Arduino pin 9 (definit al codi)
  • SCK Green To Arduino pin 13 (obligatori)
  • MOSI Blue To Arduino pin 11 (obligatori)
  • Pin 12 de MISO Purple To Arduino (obligatori)
  • Vcc vermell a 5v. Si no utilitzeu els taulers de ruptura, ha de ser de 3,3 v.
  • GND Brown a Arduino GND

Unitats de llum i pins Arduino a LED:

  • Vermell per LED vermell
  • Taronja per al LED groc (no tinc LED taronja)
  • Verd per al LED verd
  • Negre per a GND

La meva única desviació va ser quan vaig connectar el Control Arduino als LED RGB. Vaig utilitzar cables blancs i grisos perquè se m'havien quedat sense vermells.

Pas 5: semàfors i proves

Image
Image
Semàfors i proves
Semàfors i proves
Semàfors i proves
Semàfors i proves

Aquest és el codi completat i també s’ha completat cada control independent. Ara només necessito els semàfors.

Com he dit abans, vaig trobar un model senzill a Thingiverse i vaig aconseguir imprimir vuit que no semblaven massa dolents.

Vaig equipar els LEDS amb la seva resistència requerida de 200 Ohm i un enllaç i cable de terra.

Shrink va entomar els cables i el va enganxar en calent tot al seu lloc.

Vaig decidir pintar-los de negre després de col·locar tots els LED. Mala idea, primer ho hauria d’haver fet.

Ho vaig connectar tot per fer una prova abans de continuar.

Pas 6: La cruïlla

La cruïlla
La cruïlla
La cruïlla
La cruïlla
La cruïlla
La cruïlla
La cruïlla
La cruïlla

Vaig decidir muntar-los tots en un tauler, de manera que ara havia de crear una mena de cruïlla semblant.

Visc al Regne Unit, de manera que anem per la banda equivocada de la carretera i, per tant, vaig fer la meva cruïlla tan amigable amb el Regne Unit com les meves pobres habilitats artístiques ho permetrien.

Això era bastant senzill, només requeria temps; i estic segur que no hi ha cap cruïlla de camins que en realitat sembli així, però la meva no té clots.

No volia sacrificar permanentment els meus Arduinos a aquest projecte, de manera que vaig comprometre’m amb cadascun d’ells amb separadors de 10 mm i vaig enganxar en calent els separadors a la base del tauler.

El que sí que vaig fer és que vaig enganxar en calent la mini placa de paret al costat de l'Arduino.

En primer lloc, mantenia el NRF24L01 i el tauler de sortida a la base de la cruïlla, i, en segon lloc, rarament faig servir un Arduino sense cap mena de taula, de manera que encara seran útils així.

Pas 7: tot fet

Tot fet
Tot fet
Tot fet
Tot fet

S'han inclòs tots els fitxers de codi.

No he revisat el codi aquí, ja que aquest instructable és prou llarg sense ell.

Espero que això hagi estat útil, encara que només mostri com controlar una sèrie d'altres plaques Arduino sense fils amb el preu molt raonable NRF24L01.

Si teniu cap pregunta, no dubteu a fer cap comentari i faré tot el possible per ajudar-vos.

Recomanat: