Indholdsfortegnelse:

4 -vejs trafiklys system ved hjælp af 5 Arduinos og 5 NRF24L01 trådløse moduler: 7 trin (med billeder)
4 -vejs trafiklys system ved hjælp af 5 Arduinos og 5 NRF24L01 trådløse moduler: 7 trin (med billeder)

Video: 4 -vejs trafiklys system ved hjælp af 5 Arduinos og 5 NRF24L01 trådløse moduler: 7 trin (med billeder)

Video: 4 -vejs trafiklys system ved hjælp af 5 Arduinos og 5 NRF24L01 trådløse moduler: 7 trin (med billeder)
Video: Build a Smart Traffic Management System with Arduino #shorts 2024, November
Anonim
Image
Image
Ambitiøs? Måske!
Ambitiøs? Måske!

For et stykke tid siden lavede jeg en instruerbar detalje med et par lyskryds på et brødbræt.

Jeg har også oprettet en anden instruerbar, der viser de grundlæggende rammer for brug af et trådløst NRF24L01 -modul.

Det fik mig til at tænke!

Der er ret mange hobbyfolk rundt om i verden, der bygger modelbyer og jernbaner, og næsten altid har lyskryds med en eller anden beskrivelse.

Nogle er arbejdsmodeller, og andre er kun til æstetiske formål.

Kan jeg oprette en fungerende model for et firevejs lyskryds system og forbinde dem trådløst?

Jeg satte mig ned og tænkte på min liste over mulige krav. Hvilket gik lidt sådan.

Styr 4 trafikretninger, som et krydsfelt.

Hver retning har to lys; og hvert par får deres instruktioner trådløst fra en slags styreenhed.

Kunne definere og ændre driftssekvensen for lysene,

  • 1, 2, 3, 4 - med uret
  • 1, 3, 4, 2
  • 1, 4, 2, 3
  • 1, 4, 3, 2-mod uret
  • 1, 2, 4, 3
  • 1, 3, 2, 4
  • 1 + 3, 2 + 4 - 2 on 2 off
  • 1 + 3, 2, 4
  • 1, 3, 2 + 4

Al sekvensering skal styres af en enkelt kontrolenhed, og de modtagende enheder udelukkende tænder og slukker lyset.

Da jeg sagde lav en model, jeg mente, lav en rigtig model, ikke noget for fancy, men noget, der faktisk ville ligne den rigtige ting, muligvis måske ish.

Trin 1: Ambitiøs? Måske

Krav til hoveddele:

En kontrolenhed og fire sæt lys = fem Arduinos og fem trådløse moduler. AliExpress til undsætning (igen).

Otte lyskryds. Jeg har en dårlig efterligning af en 3D -printer, som har tendens til at levere mere affaldsfoder end brugbare produkter, men jeg tænkte, at jeg alligevel ville prøve det. Jeg fandt nogle på Thingiverse, www.thingiverse.com/thing:2157324

Denne model lignede den mindst komplekse for min printer. Jeg ville have otte, så jeg skubbede stadig lykken. Da det viste sig, fandt jeg ud af, at efter et par mislykkede forsøg, hvis jeg orienterede modellen i en bestemt retning (fra forside til bagside), fik jeg rimelige resultater. I alt trykte jeg tretten og fik otte brugbare.

Det var den vigtigste dele liste sorteret. De resterende dele havde jeg allerede.

Den komplette deleliste er

  • 5 x Arduino UNO'er
  • 5 x NRF24L01 trådløse tavler
  • 5 x YL-105 (eller lignende) breakout boards til NRF24L0'erne
  • 8 x røde lysdioder
  • 8 x gule lysdioder (jeg har ingen orange lysdioder)
  • 8 x grønne lysdioder
  • 4 x RGB lysdioder
  • 28 x 220 Ohm modstande
  • Brødbræt / PCB ??
  • 8 x Model trafiklys
  • 6 x 8 lange pinhoveder (den sjette var til mellemrum på kontrolkortet, se video)
  • Krymp rør
  • Jumper ledninger
  • Et stykke hardboard eller noget fladt
  • Andre træstykker ??
  • Male ??
  • Varm lim
  • Valg af tid, tålmodighed og alkohol

Trin 2: Skrivning af koden til kontrolenheden

Dette er den smule, jeg var nødt til at gøre først, bare hvis jeg faktisk ikke kunne klare det, hvilket ville have været et showstopper.

Dette var langt den mest komplekse del eller projektet, men også den mest interessante for mig.

Jeg var nødt til at sidde ned og definere alle de mulige kombinationer af lysændringer og hvordan de ville fungere synkront.

Som alt godt design startede det på papir med en meget lang liste med numre, og fordi jeg ville have flere mulige driftssekvenser, blev listen endnu længere.

Men engang var jeg glad for, at jeg havde alt, hvad jeg troede var påkrævet, og efter at have stirret på siderne i numre et stykke tid, sparkede min OCD ind, og jeg begyndte at se mønstre.

Når jeg organiserede mønstrene, lykkedes det mig at samle hele sekventeringen ned i et enkelt 3-dimensionelt array og to 2-dimensionelle arrays.

Alt jeg skulle gøre nu er at finde en måde at manipulere disse arrays til at skabe den korrekte sekventering og lette trin.

Det tog et stykke tid, men det lykkedes mig at opnå det på mindre end halvtreds kodelinjer, herunder kommentarer osv.

Koden til dette er ikke for svaghjertede, men hvis du forstår multidimensionelle arrays, bør det ikke være for svært at følge. Eller en indlæringskurve for resten.

Pointen er, at jeg tror, det virker, og ikke burde kræve ændring alligevel. Men…………

Trin 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

NRF24L01 modulet og YL-105 breakout board er desværre ikke særlig brødbræt venlige.

Udbrudstavlen går delvis i gang med at løse problemet og endnu vigtigere, hvilket gør det 5v tolerant, men det er stadig ikke brødbrætvenligt.

Så jeg blev lidt opfindsom.

I min samling af ‘ting’ har jeg et antal 6 benhoveder med lange stifter. Den slags, der kræves til fremstilling af Arduino Shields.

Jeg tog en af disse og bøjede stifterne ved 90 grader.

Jeg fjernede en af strømskinnerne fra et brødbræt og tilsluttede overskriften til kanten af brødbrættet.

Det efterlod power pins på breakout board. De er nu i vejen.

Så jeg fjernede dem og placerede dem på den anden side af breakout boardet, så de nu stikker ud fra bagsiden af brættet.

I forbindelse med denne instruktionsbog kræver jeg fem NRF24L01 -moduler, så jeg monterede dem hele langs brødbrættet og fikserede derefter strømskinnen langs alle strømstifterne på breakout -kortet.

Det så ganske ryddeligt ud, indtil jeg forbandt Arduinos, og det blev lidt overfyldt.

Plus, hvilket er den vigtige bit, når strømskinnen var tilsluttet, ville alle Arduinos være forbundet til den samme kilde, og det var det, jeg forsøgte at undgå, så jeg tog det meste fra hinanden igen.

Jeg vil beholde tavlen med et par NRF24L01 -moduler på det til prototyper i fremtiden, så ikke et fuldstændigt spild af tid.

Trin 4: Traffic Light Units

Trafiklys enheder
Trafiklys enheder
Trafiklys enheder
Trafiklys enheder
Trafiklys enheder
Trafiklys enheder

Jeg fandt nogle små 170 tiepoint -brødbrætter. Disse har ikke en power rail, så mit modificerede breakout board ville stadig passe. Omend på en lille vinkel på grund af højden af breakout board.

Jeg byggede de fire lyskrydsstyringer i samme ledninger i samme farve, positionering osv. De er nu virkelig selvstændige.

Til styreenheden satte jeg NRF24L01 -modulet på et printkort med RGB -lysdioderne. Jeg brugte RGB, fordi selvom jeg ikke behøvede at se alle lys, bare det røde og grønne, fylder de mindre.

Tilsluttede lysdioderne til Arduino på normal måde og tilføjede en smule kode for at vise den røde eller grønne status for hvert sæt trafiklys.

Jeg forsøgte at være i overensstemmelse med mine ledningsfarver, så jeg let kunne se, om jeg havde gjort noget anderledes på et af brædderne.

Jeg har nogle korte Dupont -blysæt, og da ledningerne sidder fast, gjorde det denne del ganske let.

NRF24L01:

  • CE Orange til Arduino pin 10 (defineret i koden)
  • CSN Yellow To Arduino pin 9 (defineret i koden)
  • SCK Green To Arduino pin 13 (obligatorisk)
  • MOSI Blue To Arduino pin 11 (obligatorisk)
  • MISO Purple To Arduino pin 12 (obligatorisk)
  • Vcc rød til 5v. Hvis du ikke bruger breakout boards, skal dette være 3,3v.
  • GND Brown Til Arduino GND

Lysenheder og Arduino pins til LED'er:

  • Rød for rød LED
  • Orange til den gule LED (jeg har ikke orange LED)
  • Grøn til den grønne LED
  • Sort til GND

Min eneste afvigelse fra dette var, da jeg sluttede Control Arduino til RGB -lysdioderne. Jeg brugte hvide og grå ledninger, fordi jeg var løbet tør for røde.

Trin 5: Trafiklys og test

Image
Image
Trafiklys og test
Trafiklys og test
Trafiklys og test
Trafiklys og test

Det er koden udført, og hver enkelt selvstændig kontrol er også fuldført. Det eneste jeg har brug for er selve lyskrydsene.

Som jeg sagde før, fandt jeg en ukompliceret model på Thingiverse og formåede at udskrive otte, der ikke så for dårlige ud.

Jeg monterede LED'erne med deres påkrævede 200 Ohm modstand og et link og jordledning.

Krymp slangerne på ledningerne og varmlimede det hele på plads.

Jeg besluttede at male dem sorte, efter at alle lysdioderne var monteret. Dårlig idé, det skulle jeg først have gjort.

Jeg tilsluttede alt til en test, inden jeg gik videre.

Trin 6: Skillevej

Skillevejen
Skillevejen
Skillevejen
Skillevejen
Skillevejen
Skillevejen
Skillevejen
Skillevejen

Jeg besluttede at montere dem alle på et bræt, så nu var jeg nødt til at skabe en form for kryds og tværs.

Jeg bor i Storbritannien, så vi kører på den forkerte side af vejen her, og derfor gjorde jeg mit kryds så venligt i Storbritannien, som mine dårlige kunstneriske evner ville tillade.

Dette var ganske ligetil, bare tidskrævende; og jeg er sikker på, at der ikke er nogen vejkryds, der faktisk ser sådan ud, men mine har ingen huller.

Jeg ville ikke ofre mine Arduinos permanent til dette projekt, så jeg gik på kompromis ved at udfylde hver enkelt med 10 mm afstand og varmlimede afstandene til bunden af brættet.

Hvad jeg dog gjorde, er varm lim mini -brødbrættet til siden af Arduino.

For det første holdt det NRF24L01 og breakout -bordet fra bunden af vejkryds, og for det andet bruger jeg sjældent en Arduino uden en slags brødbræt alligevel, så de vil stadig være nyttige sådan.

Trin 7: Alt udført

Helt færdig
Helt færdig
Helt færdig
Helt færdig

Alle kodefiler er inkluderet.

Jeg gennemgik ikke koden her, da denne Instructable er lang nok uden den.

Jeg håber, at dette har været en nyttig instruks, selvom det kun viser, hvordan man styrer en række andre Arduino -kort trådløst med den meget rimelige NRF24L01.

Hvis du har spørgsmål, er du velkommen til at kommentere, og jeg vil gøre mit bedste for at hjælpe.

Anbefalede: