Cuprins:

Sistem de semafor cu 4 căi folosind 5 Arduino și 5 module wireless NRF24L01: 7 pași (cu imagini)
Sistem de semafor cu 4 căi folosind 5 Arduino și 5 module wireless NRF24L01: 7 pași (cu imagini)

Video: Sistem de semafor cu 4 căi folosind 5 Arduino și 5 module wireless NRF24L01: 7 pași (cu imagini)

Video: Sistem de semafor cu 4 căi folosind 5 Arduino și 5 module wireless NRF24L01: 7 pași (cu imagini)
Video: Wemos D1 traffic light 2024, Noiembrie
Anonim
Image
Image
Ambiţios? Poate!
Ambiţios? Poate!

Cu puțin timp în urmă, am creat un Instructable care detaliază o singură pereche de semafoare pe o panou.

De asemenea, am creat un alt Instructable care arată cadrul de bază pentru utilizarea unui modul fără fir NRF24L01.

Asta m-a pus pe gânduri!

Există o mulțime de pasionați din întreaga lume care construiesc modele de orașe și căi ferate și aproape întotdeauna au semafoare de o anumită descriere.

Unele sunt modele de lucru, iar altele au doar scop estetic.

Aș putea crea un model de lucru al unui sistem cu semafor în patru direcții și să le conectez fără fir?

M-am așezat și m-am gândit la lista mea de posibile cerințe. Ceea ce a mers cam așa.

Controlează 4 direcții de trafic, ca o intersecție de răscruce.

Fiecare direcție are două lumini; și fiecare pereche primește instrucțiunile wireless de la un fel de unitate de control.

Să puteți defini și modifica secvența de funcționare a luminilor,

  • 1, 2, 3, 4 - în sensul acelor de ceasornic
  • 1, 3, 4, 2
  • 1, 4, 2, 3
  • 1, 4, 3, 2 - în sens invers acelor de ceasornic
  • 1, 2, 4, 3
  • 1, 3, 2, 4
  • 1 + 3, 2 + 4 - 2 pe 2 oprit
  • 1 + 3, 2, 4
  • 1, 3, 2 + 4

Toate secvențierile trebuie controlate de o singură unitate de control, iar unitățile receptoare aprind și sting doar luminile.

Când am spus să facem un model, am vrut să spun, să facem un model real, nimic prea elegant, dar ceva care ar arăta de fapt ceva asemănător cu adevăratul lucru, probabil, poate ish.

Pasul 1: ambițios? Poate

Principalele cerințe privind piesele:

O unitate de control și patru seturi de lumini = cinci Arduino și cinci module wireless. AliExpress la salvare (din nou).

Opt standuri semafor. Am o imitație slabă a unei imprimante 3D, care tinde să furnizeze mai mult furaje decât produse utilizabile, dar m-am gândit că o să încerc totuși. Am găsit câteva pe Thingiverse, www.thingiverse.com/thing:2157324

Acest model arăta ca cel mai puțin complex pentru imprimanta mea. Am vrut opt, așa că încă îmi împingeam norocul. După cum sa dovedit, am constatat că, după câteva încercări eșuate, dacă am orientat modelul într-o anumită direcție (din față în spate), am obținut rezultate rezonabile. În total, am tipărit treisprezece și am primit opt utilizabile.

Aceasta a fost lista principalelor piese sortate. Celelalte părți le-am avut deja.

Lista completă a pieselor este

  • 5 x Arduino UNO
  • 5 x plăci fără fir NRF24L01
  • 5 x plăci de rupere YL-105 (sau similare) pentru NRF24L0s
  • 8 x LED-uri roșii
  • 8 x LED-uri galbene (nu am LED-uri portocalii)
  • 8 x LED-uri verzi
  • 4 x LED-uri RGB
  • Rezistențe de 28 x 220 Ohm
  • Panouri / PCB-uri ??
  • 8 x semafoare model
  • 6 x 8 anteturi lungi cu pini (al șaselea a fost pentru spațierea pe placa de control, vezi video)
  • Tub retractabil
  • Sârme de jumper
  • Bucată de panou dur sau ceva plat
  • Alte bucati de lemn ??
  • A picta ??
  • Lipici fierbinte
  • Timp, răbdare și alcool la alegere

Pasul 2: Scrierea codului pentru unitatea de control

Acesta este bitul pe care a trebuit să-l fac mai întâi, doar în caz că nu aș putea să-l gestionez, ceea ce ar fi fost un showstopper.

Aceasta a fost de departe cea mai complexă parte a proiectului, dar și cea mai interesantă pentru mine.

A trebuit să mă așez și să definesc toate combinațiile posibile de schimbări de lumină și cum ar funcționa împreună sincron.

Ca orice design bun, a început, pe hârtie, cu o listă foarte lungă de numere și, pentru că am vrut să pot avea mai multe secvențe de operare posibile, lista a devenit și mai lungă.

Dar, odată ce m-am bucurat că am tot ceea ce credeam că este necesar și, după ce m-am uitat o vreme la paginile numerelor, TOC-ul meu a intrat în picioare și am început să văd tiparele.

Organizând tiparele, am reușit să strâng toate secvențierile într-o singură matrice tridimensională și două matrice bidimensionale.

Tot ce trebuia să fac acum este să găsesc o modalitate de a manipula acele matrice pentru a crea secvențierea corectă și pași ușori.

A durat ceva timp, dar am reușit să o realizez în mai puțin de cincizeci de linii de cod, inclusiv comentarii etc.

Codul pentru acest lucru nu este destinat celor cu inima slabă, dar dacă înțelegeți matrici multidimensionale, nu ar trebui să fie prea dificil de urmat. Sau o curbă de învățare pentru restul.

Ideea este că cred că funcționează și oricum nu ar trebui să fie necesară schimbarea. Dar…………

Pasul 3: 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
NRF24L01 Breakout Board Mod

Din păcate, modulul NRF24L01 și placa YL-105 nu sunt foarte prietenoase.

Placa de separare se îndreaptă spre rezolvarea problemei și, mai important, făcând-o tolerantă la 5V, dar încă nu este compatibilă cu panourile.

Așa că am devenit puțin inventiv.

În colecția mea de „chestii”, am un număr de anteturi cu 6 pini cu pini lungi. Tipul necesar pentru realizarea Arduino Shields.

Am luat una dintre acestea și am îndoit pinii la 90 de grade.

Am îndepărtat una dintre șinele de alimentare de pe o placă de prindere și am conectat antetul la marginea plăcii de prindere.

Asta a lăsat pinii de alimentare pe placa de decolare. Acum sunt în cale.

Așa că le-am îndepărtat și le-am așezat pe cealaltă parte a plăcii, astfel încât să iasă acum din spatele plăcii.

În sensul acestei instrucțiuni, am nevoie de cinci module NRF24L01, așa că le-am montat de-a lungul panoului și apoi am fixat șina de alimentare de-a lungul tuturor pinilor de alimentare de pe placa de rupere.

Părea destul de ordonat până când am conectat Arduinos și a devenit cam aglomerat.

În plus, care este bitul important, odată ce șina de alimentare a fost conectată, toate Arduino-urile ar fi conectate la aceeași sursă și asta am încercat să evit, așa că am luat-o din nou pe cea mai mare parte.

Voi păstra placa cu câteva module NRF24L01 pe ea pentru prototipuri în viitor, deci nu o pierdere completă de timp.

Pasul 4: Semafoare

Semafoare
Semafoare
Semafoare
Semafoare
Semafoare
Semafoare

Am găsit câteva plăci mici de 170 de puncte de legătură. Acestea nu au o șină de alimentare, astfel încât placa mea de rupere modificată s-ar potrivi în continuare. Deși pe un unghi ușor din cauza înălțimii plăcii de rupere.

Am construit cele patru comenzi ale semaforului, aceleași fire de aceeași culoare, poziționare etc. Ele sunt acum cu adevărat independente.

Pentru unitatea de control, am pus modulul NRF24L01 pe un PCB cu LED-urile RGB. Am folosit RGB pentru că, deși nu aveam nevoie să văd toate luminile, doar roșu și verde, acestea ocupă mai puțin spațiu.

Am conectat LED-urile la Arduino în mod normal și am adăugat un pic de cod pentru a afișa starea roșie sau verde a fiecărui set de semafoare.

Am încercat să fiu în concordanță cu culorile cablurilor mele, astfel încât să pot vedea cu ușurință dacă am făcut ceva diferit pe una dintre plăci.

Am câteva seturi scurte de cabluri Dupont și, deoarece cablurile sunt lipite între ele, a făcut această parte destul de ușoară.

NRF24L01:

  • CE Orange To Arduino pin 10 (definit în cod)
  • CSN Yellow To Arduino pin 9 (definit în cod)
  • SCK Green To Arduino pin 13 (obligatoriu)
  • MOSI Blue To Arduino pin 11 (obligatoriu)
  • MISO Purple To Arduino pin 12 (obligatoriu)
  • Vcc Red To 5v. Dacă nu utilizați plăcile de rupere, acesta trebuie să fie de 3.3v.
  • GND Brown To Arduino GND

Unități de lumină și pini Arduino la LED-uri:

  • Roșu pentru LED roșu
  • Portocaliu pentru LED-ul galben (nu am LED-uri portocalii)
  • Verde pentru LED-ul verde
  • Negru pentru GND

Singura mea abatere de la aceasta a fost când am conectat Control Arduino la LED-urile RGB. Am folosit fire albe și gri pentru că îmi rămăseseră cele roșii.

Pasul 5: Semafoare și testare

Image
Image
Semafoare și testare
Semafoare și testare
Semafoare și testare
Semafoare și testare

Acesta este codul completat și fiecare control independent este de asemenea finalizat. Tot ce am nevoie acum sunt semafoarele în sine.

După cum am spus mai înainte, am găsit un model necomplicat pe Thingiverse și am reușit să tipăresc opt care nu arătau prea rău.

Am montat LED-urile cu rezistorul necesar de 200 Ohm și cu o conexiune și un fir de împământare.

Shrink a tubat cablurile și le-a lipit fierbinte pe toate.

Am decis să le vopsesc în negru după ce au fost montate toate LED-urile. O idee proastă, ar fi trebuit să fac asta mai întâi.

Am conectat totul la un test înainte de a continua.

Pasul 6: Răscruce

Răscruci de drumuri
Răscruci de drumuri
Răscruci de drumuri
Răscruci de drumuri
Răscruci de drumuri
Răscruci de drumuri
Răscruci de drumuri
Răscruci de drumuri

Am decis să le montez pe toate pe o tablă, așa că acum a trebuit să creez un fel de răscruce asemănătoare.

Locuiesc în Marea Britanie, așa că conducem pe partea greșită a drumului aici și, prin urmare, mi-am făcut răscruce la fel de prietenoasă cu Marea Britanie, pe cât mi-ar permite-o abilitățile mele artistice slabe.

Acest lucru a fost destul de simplu, consumator de timp; și sunt sigur că nu există răscruci de drum care să arate de fapt așa, dar ale mele nu au gropi.

Nu am vrut să-mi sacrific permanent Arduino-urile acestui proiect, așa că am compromis populând fiecare cu standoff-uri de 10 mm și am lipit fierbinte standoff-urile de baza plăcii.

Ceea ce am făcut, totuși, este să lipesc mini placa de pană pe partea laterală a Arduino.

În primul rând, a ținut NRF24L01 și panoul de rupere de la baza răscrucei, și, în al doilea rând, rar folosesc un Arduino fără un fel de panou de difuzare, oricum, așa că vor fi în continuare utile așa.

Pasul 7: Toate gata

Totul este gata
Totul este gata
Totul este gata
Totul este gata

Toate fișierele de cod au fost incluse.

Nu am parcurs codul aici, deoarece acest instructabil este suficient de lung fără el.

Sper că acesta a fost un instructabil util, chiar dacă arată doar cum să controlați fără fir o serie de alte plăci Arduino cu NRF24L01 la un preț rezonabil.

Dacă aveți întrebări, vă rugăm să nu ezitați să faceți un comentariu și voi face tot posibilul pentru a vă ajuta.

Recomandat: