Indholdsfortegnelse:

NRF24 tovejsradio til telemetri: 9 trin (med billeder)
NRF24 tovejsradio til telemetri: 9 trin (med billeder)

Video: NRF24 tovejsradio til telemetri: 9 trin (med billeder)

Video: NRF24 tovejsradio til telemetri: 9 trin (med billeder)
Video: Making a 2400 meters LONG RANGE 8-Channel & Digital Trim Radio Control For RC Models. PART-2 2024, Juli
Anonim
NRF24 To-vejs radio til telemetri
NRF24 To-vejs radio til telemetri

Hej fyre, mit navn er Pedro Castelani, og jeg bringer dig min første instruerbare: at bygge en tovejsradio med arduino til, ja, hvad du end har brug for det til.

I dette projekt vil vi lave to separate kredsløb, der fungerer både som modtager og sender. De vigtigste komponenter er to arduino -tavler (alle fungerer) og to nrf24 transciever -moduler. I mit tilfælde styrer jeg en servo med et potentiometer fra den anden arduino og sender spændingerne på et tocellet lipo -batteri tilbage til det første.

Jeg har til hensigt at bruge den som en tilføjelse til min drone, som ikke besidder telemetri eller servogimbalkontrol. Du kan dog bruge den til andre ting, såsom at bygge din egen quadcopter, fly, rc -bil osv. Fra den medfølgende kode kan du også foretage de ændringer, du ønsker efter dine behov. Jeg vil også prøve at forklare, hvordan jeg ændrer det korrekt (hvilket tog mig noget tid at lære selv, da jeg var vant til en anden form for brug til nrf24 -chippen).

Trin 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

For at starte vores projekt skal vi kende alle de nødvendige dele. Nedenfor er en liste over de nødvendige. Jeg købte de fleste af dem i en lokal elektronikbutik, hvor jeg bor, så jeg kan ikke anbefale dig noget sted at købe dem. Du kan prøve Amazon eller et andet sted. Jeg siger ikke, at du skal bestille dem der, men det er bare et forslag.

  1. To Arduino -tavler (alle burde arbejde. Jeg har to arduino pro mini, som jeg kan lide meget, fordi de har 13 digitale ben og 8 analoge, mens Uno kun har 6 analoge).
  2. To Nrf24 moduler. Der er nogle med eksterne antenner, der har større transmissionsområde. Vælg dem, du bedst kan lide.
  3. Kvinde-hun og hun-hun-jumperkabler.
  4. Prototypebord.
  5. Arduino Programmer (til arduino pro mini, hvis du har en med usb -forbindelse, behøver du ikke det).
  6. Arduino IDE (software). Download herfra.
  7. I mit tilfælde brugte jeg også:
  • Servo. Enhver du kan få. Jeg kan godt lide SG90, en lille designet til arduino.
  • Potentiometer (mellem 10k og 20k ohm). Kan købes i en lokal elektronikbutik, eller du kan bruge joysticket lavet til arduino. Der er et par billeder af dem jeg har. Jeg fik også en fra en ødelagt drone rc -controller, bare for at give dig et par ideer
  • 4 lige normale modstande. Jeg brugte 10k dem, jeg fik fra min bedstefars hus. Jeg bruger dem som spændingsdelere.
  • Lille kobberplade (som jeg også fik af min bedstefar) til lodning af modstandene sammen.
  • Stifter. Bruges til let at forbinde jumperkablerne fra arduinoen til modstandene.
  • 2s lipo batteri. Jeg bruger den til at drive en af mine arduinoer. Modstandene er forbundet til det og læser dets spændinger. Jeg har til hensigt at min arduino skal tilsluttes min drones 2s batteri, da den ikke behøver en ekstern strømkilde og samtidig fortælle mig, hvor meget batteri der er tilbage.
  • Loddejern og loddetin. Behov for at lodde modstandene, perfboardet og stifterne sammen.

Trin 2: Funktion og kode

Funktion og kode
Funktion og kode

Når alle materialer er blevet nævnt, lad os begynde at tale om modulernes funktion.

Sådan fungerer det: Lad os kalde den ene arduino "A" og den anden "B". I mit tilfælde, efter programmering af begge, tilsluttede jeg dem til deres tilsvarende radiochip og tilføjede potentiometeret til arduino A og modstandene og servoen til arduino B. Modul A sender værdier til B og flytter servoen. B læser spændingerne på 2s batteriet og sender dem tilbage til A. Så begynder hele cirklen igen. Da A modtager værdier, der ikke udtrykkes mekanisk, er den forbundet til programmøren, hvorigennem vi kan læse dem med en seriel skærm (inkluderet i Arduino IDE)

Kode: Jeg kalder skitsen for arduino A (forbundet med programmøren og potentiometeret) TwoWayRadio_1, og skitsen til arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 og TwoWayRadio_2WithServo findes lige under dette afsnit. Der er en forklaring inde i hver kode bare for at gøre alt lettere at forstå.

Trin 3: Loddemoduler: Spændingsdeler og potentiometer

Loddemoduler: Spændingsdeler og potentiometer
Loddemoduler: Spændingsdeler og potentiometer
Loddemoduler: Spændingsdeler og potentiometer
Loddemoduler: Spændingsdeler og potentiometer
Loddemoduler: Spændingsdeler og potentiometer
Loddemoduler: Spændingsdeler og potentiometer
Loddemoduler: Spændingsdeler og potentiometer
Loddemoduler: Spændingsdeler og potentiometer

Dette trin er valgfrit, da du måske bare vil bruge potentiometer-joysticket designet specielt til arduino og bruge et andet modul i stedet for spændingsdeleren. Jeg planlagde imidlertid alt (koder inkluderet) for disse moduler.

Potentiometer:

Denne del er næsten den nemmeste i lodningstrinnet. Du skal bare lodde nogle jumperkabler til dit potentiometer. Hvis du vil, kan du først lodde potentiometeret til perfboardet og derefter lodde nogle af stifterne. Når du skal bruge det, skal du bare slutte jumperkablerne til arduinoen og derefter til stifterne på perfboardet. Når den ikke er i brug, kan du fjerne kablerne og bruge dem til et andet projekt. Hvis du imidlertid gør som jeg gjorde, kan du lade potentiometeret lodde direkte til kablerne

  • Hvis du gør, som jeg gjorde, skal du få tre hun-hun-jumperkabler, skære af en af spidserne og fjerne isoleringen der og efterlade et lille stykke kobberledninger på hver ledning.
  • Varm dit loddejern op, og lod de modificerede jumpere til dine potentiometers pins. Hvis du kan, så prøv at få forskellige farver, så du kan huske, hvilken der er vcc, gnd og den "signal" (den midterste). Tilslut disse kabler til de tilsvarende analoge ben på arduinoen. Der er nogle billeder i begyndelsen af trinnet om, hvordan det endte med at se ud. Potentiometeret er ikke et almindeligt, det er faktisk et lille hjul, der havde fem ben. Det tog mig lidt tid at finde ud af hvilken. Prøv at gøre det lettere, og brug et almindeligt potentiometer som vist i MATERIALTrin.
  • Hvis du lodder det til et perfboard, skal du skaffe potentiometeret og perfboardet og lodde dem sammen med dit loddejern.
  • Få stifterne (tre) og placer dem på den mest bekvemme måde. Brug loddetin til at oprette forbindelse mellem hver stift og potentiometerstifterne. Foretag ikke en forbindelse mellem mere end to stifter, ellers fungerer det ikke (det fungerer som en kortslutning).
  • Få nogle hun-hun- eller hun-hun-jumper-ledninger og tilslut dem fra din arduino til dit nye potentiometer-modul (husk hvilken som er hvilken).

2. Spændingsdeler:

  • Denne del er lidt mere kompliceret. Du skal få de fire modstande, fem ben og perfboardet. Jeg designede koden til at blive brugt til et 2s batteri (to celler), men du kan også bruge den til en 1s ved at ændre arduino -skitsen lidt og hardware. Jeg inkluderede billeder af to spændingsdelere, jeg lavede, en med kun 2 modstande (til 1s batterier) og en med fire (du gættede det: 2s batterier).
  • Lad os starte med 2'erne. Jeg har ikke billeder af byggeprocessen, siden jeg begyndte at skrive denne instruerbare et godt stykke tid efter at have loddet den færdig. Jeg inkluderer billeder af det endelige resultat, så jeg vil forsøge at være så tydelig som muligt.
  • Start med at få perfboardet og 5 pins. Lod dem tæt på siden, og lad dem ikke røre hinanden.
  • Lod lod modstandene som vist på det sidste billede i starten af trinnet (det lille kredsløbsdiagram). Forbindelserne mellem hver modstand og stift er lavet med loddetin. Prøv at indtage mindst mulig plads.
  • Når du er færdig, skal det ligne billederne på den færdige spændingsdeler, jeg lagde ovenfor.
  • 1s spændingsdeleren er stort set den samme, med den undtagelse, at du kun bruger tre ben og to modstande. Jeg inkluderede billeder af, hvordan det ser ud, når det er færdigt. Se bare på diagrammet for 2'erne og forestil dig det uden signaltråden 1, den midterste ledning og modstande r2 og r3 og der har du det!
  • Så hvis du vil have en 1s spændingsdeler, kan det bare være lidt mere kompliceret end bare at bruge en 2'er.

Trin 4: Programmering af din Arduino

Programmering af din Arduino
Programmering af din Arduino
  1. Vi er næsten færdige!
  2. Efter at have downloadet Arduino IDE -softwaren fra det websted, der er linket i MATERIALER -trinnet, skal du downloade skitserne fra FUNKTION OG KODE -trinnet.
  3. Åbn derefter dem i Arduino IDE.
  4. Åbn "Værktøjer" i en af begge faner, og klik på "Tavler". Vælg dit bord fra listen. Klik på "Processor" og derefter på "Programmerer", og vælg hver efter din tavle. Vend derefter tilbage til skitsen. Det er ganske praktisk at se oplysningerne om dit bord på Internettet. Bare søg navnet og se specifikationerne.
  5. Klik på "skitse" (øverst), derefter "inkluder bibliotek", derefter "administrer biblioteker". Et lille vindue skal åbne i midten af skærmen. Indtast i søgefunktionen "rf24". Download det bibliotek, du ønsker. Det vil være nødvendigt for at kunne uploade koden til arduino -kortet.
  6. Bare for at være sikker, skal du klikke på "Tick" -symbolet (oppe til venstre) for at kontrollere, at det ikke har nogen fejl. Fortsæt derefter med at uploade den ved at trykke på pilen, der peger til højre, ved siden af "Tick" -symbolet.
  7. Hvis dit bord er en Pro Mini, forklarer jeg om lidt, hvordan du tilslutter alt. Hvis det ikke er tilfældet, skal du bare uploade det, og når du er færdig med at programmere begge arduinoer, skal du gå videre til det næste trin efter at have læst advarslen herunder.
  8. Da du har to tavler, HUSK hvilken kode hver var programmeret med, for at undgå fremtidige problemer.
  9. Så hvis du har en Pro Mini, skal du bruge en programmør. Der er to slags programmerere: 5 -pins og 6 -pins. Jeg vil fokusere på 5 -pins, da det er dem, jeg har. Forbindelserne er som følger (første pin er fra programmerer, derefter arduino): Gnd-Gnd; 5v-Vcc (undtagen hvis din Pro Mini er en 3.3v, i så fald er den 3.3v-Vcc); Rxd-Txo; Txd-Rxi. Jeg inkluderede et billede af både kort og programmør, bare hvis du skal kontrollere.
  10. Tilslut din arduino til programmøren og programmøren til din computer. Åbn IDE, og klik på upload -knappen. Hvis du ser på venstre bund af skærmen, vil du se en meddelelse, der siger "kompilering". I det øjeblik denne meddelelse bliver til "upload", skal du trykke på reset -knappen på arduino Pro Mini. Efter et stykke tid afsluttes skitsen, og der vises en meddelelse, der siger "Udført upload". Når dette sker, er du færdig og klar til at gå videre til det næste trin.

Trin 5: Tilslutning af alt

Tilslutter alt
Tilslutter alt
Tilslutter alt
Tilslutter alt
Tilslutter alt
Tilslutter alt
Tilslutter alt
Tilslutter alt
  1. Efter at have programmeret begge arduinos, skal vi forbinde alt for at få det til at fungere. Her får vi brug for alt, der er nævnt før: arduinos, nrf24 -moduler, kabler, servo, programmør, spændingsdeler, potentiometer osv.
  2. Vi skal først forbinde arduinoen, der fungerer med programmereren. I begyndelsen af trin er billederne af forbindelserne til nrf24. Irq -stiften, der siges at gå til pin 8 på arduinoen, er slet ikke forbundet. Resten er ligesom på billedet for begge arduinos (du kan læse noterne inde i billederne for mere info)
  3. Vcc til radioen kan tilsluttes 3,3 eller 5v. Nogle gange virker det kun med en af dem. Prøv med 3.3 og derefter 5, hvis det ikke virker. Til 3.3, brug 3.3v pin o programmereren. Jeg var nødt til at gøre dette, som du vil se på billederne af det færdige produkt.
  4. Tilslut programmereren til arduinoen som sagt i det foregående trin.
  5. Tilslut potentiometerets "signal" -kabel til analog pin A0.
  6. Tilslut potentiometerets "Positive" til Vcc (kun 5v, ikke 3.3) og "Negativ" til Gnd.
  7. Gå videre til den anden arduino.
  8. Tilslut radioen som før, ifølge billederne.
  9. Tilslut servos signalkabel (orange-gul-hvid. Kontroller specifikationerne for servoen) til digital pin 2, og dens gnd til arduino's Gnd, og dens positive til arduino's Vcc.
  10. Tilslut signalkabel 1 fra spændingsdeleren til pin A0 og signalkabel 2 til pin A1.
  11. Tilslut, ved hjælp af protoboardet, spændingsdelerens negative kabel, arduino's gnd og batteriets gnd (sort kabel på jst -stikket).
  12. Tilslut "midterkablet" fra spændingsdeleren til batteriets midterste mellem de røde og sorte kabler på jst -stikket (hvid farve).
  13. Tilslut det "positive" kabel fra spændingsdeleren til batteriets positive terminal og til arduino's Raw. Tilslut ikke direkte til Vcc, da denne pin specifikt er til 5v. Rå pin bruger enhver spænding over 3,3 eller 5v til 12v og regulerer den. Vcc pins bliver derefter output med 5v.

Du er næsten færdig! Dine færdige produkter skal se ud som billederne ovenfor. Kontroller hver forbindelse igen for at undgå kortslutninger.

Trin 6: Start dit projekt

  • Din arduino med servoen fik strøm det sidste trin, da du sluttede batteriet til hele kredsløbet. Så du skal bare forbinde den anden arduino til en usb -port, og du er færdig!
  • Flyt potentiometeret, og du skal se, hvordan servoen også bevæger sig. I mit tilfælde er servoen fastgjort til en 1 -akset kamera gimbal, hvilket begrænsede vinklen, så jeg var nødt til at justere parametrene. Du finder det alligevel i koden.
  • For at se spændingerne, når du har forbundet programmereren til computeren, skal du åbne arduino -softwaren og trykke på "Ctrl+Shift+m". Et vindue, der siger "Serial Monitor" åbnes. Nederst i dette vindue er en indstilling, der læser "(tal) baud". Klik på den og vælg "9600". Luk skærmen, og åbn den igen ved at trykke på de samme taster, og du skal begynde at se mange værdier komme ind. Du vil ikke kunne se, hvad disse værdier er på grund af den hastighed, hvormed de kommer, men hvis du afbryder programmør, de stopper, og du kan læse dem. Jeg forsøger at få noget til automatisk at tegne dem for at se spændingerne eller repræsentere dem med lysdioder, men det er stadig i gang.
  • Selvom du måske ikke ser værdierne tydeligt, da de går så hurtigt, skal du bare vide, at det endelig virker, og at du kan ændre det for at imødekomme dine behov!

Trin 7: Demo

Nå, det er videoen af mig, der tænder det og bruger det bare lidt til at vise dig, hvordan det skal fungere.

Trin 8: Flere ideer til, hvordan du bruger dette projekt

Flere ideer til, hvordan du bruger dette projekt
Flere ideer til, hvordan du bruger dette projekt
Flere ideer til, hvordan du bruger dette projekt
Flere ideer til, hvordan du bruger dette projekt
Flere ideer til, hvordan du bruger dette projekt
Flere ideer til, hvordan du bruger dette projekt

Her er nogle ideer, som du kan bygge ved hjælp af dette som basen. Fortæl mig, hvis du laver en af dem, eller hvis du prøver og ikke kan, så jeg kan hjælpe!

  • I stedet for at aflæse spændinger skal du ændre koden, så den sender temperatur, tryk, højde osv. Tilbage. Jeg fandt BMP180 -chippen ganske nyttig til dette.
  • Mål afstande med HC-SR04-modulet og send dem tilbage til den første arduino. Brug servoen til at rette sensoren hvor som helst du vil.
  • Tilføj en anden servokanal for at flytte et kamera op og sidelæns; for eksempel på en rc -bil.
  • Tilføj tre andre servokanaler (eller flere!) Og lav din egen rc -sender og modtager til en quadcopter, fly, helikopter, rc -bil osv.!
  • Skift servoen til en søgelys, og tilføj den til din drone! Du vil også være i stand til at kontrollere lysets intensitet (kan have brug for nogle transistorer og nogle kodeændringer)
  • I stedet for at læse spændingerne på en computer, skal du være kreativ og tilføje et lcd-modul, eller du kan lave et 6-ledet bord (to grønne, to gule og to røde), som slukker dem en efter en, når batteriet bliver lavere og begynder at blinke, når batteriniveauet falder til under din valgte spænding. Jeg lavede dette lille bræt og lagde et billede op i begyndelsen af trinnet.

Bare for at gøre alt klart, hvis du skal lave et af disse projekter, skal du huske på, at du bliver nødt til at ændre både koder og måske nogle forbindelser. Prøv venligst at huske ikke at stege dit bræt ved at gøre noget dumt.

Hvis du har flere ideer eller har brug for hjælp til at gennemføre et af disse projekter, kan du skrive i spørgsmålssektionen!

Trin 9: Fejlfinding

Fejlfinding
Fejlfinding

For at sige sandheden var de fleste af de problemer, jeg har stødt på indtil nu, relateret til skitsedelen, som du allerede har løst. Jeg vil forsøge at fortælle dig så mange problemer som jeg kan for at hjælpe dig mest.

For det første, hvis du prøver at uploade skitsen, og du ikke kan, prøv dette:

Sørg for at have downloadet de nødvendige biblioteker (og de korrekte!).

Sørg for, at du har valgt det korrekte kort, processor og programmør.

Sørg for, at forbindelsen mellem pc'en og programmøren og programmøren og arduinoen er god.

Hvis du bruger en pro mini, skal du prøve at trykke på nulstillingsknappen så hurtigt som muligt efter meddelelsen "upload" vises.

Alle disse ting tales om i PROGRAMMERING AF DIN ARDUINO trin.

For det andet skal du kontrollere alle forbindelser mellem alt:

Hvis din arduino ikke tændes, er det klart et spændingsproblem. Kontroller, om kablerne ikke er korrekt tilsluttet, og om der er kortslutning.

Hvis den tændes, men ikke fungerer, skal du sørge for, at alle forbindelser er, hvor de skal være, at den arduino, der er programmeret til at blive tilsluttet servoen og spændingsdeleren, virkelig er forbundet til dem (med andre ord, sørg for at du ikke har blandet dem), prøv at trykke på nulstillingsknappen på dem begge og se, hvad der sker. I ekstremt sjældne tilfælde kan hele skylden være på NRF24 -modulet. Jeg fandt en af mine, der kun virker på 5 volt og en anden, der kun fungerer på 3.3v. Tjek om dette løser noget. Det skete også for mig, at kun en arduino arbejdede med 3.3v radioen og den anden kun arbejdede med 5v. Overraskende, ikke sandt?

For det tredje, hvis du kan flytte servoen, men spændingerne er forkerte, skal du kontrollere, at forbindelserne til spændingsdeleren er som i diagrammet i trin 3, og forbindelsen til arduinoen. Hvis du på den anden side får spændingerne, men du ikke kan flytte servoen korrekt, skal du kontrollere potentiometeret og dets forbindelser, servoens forbindelse til den digitale pin og til Vcc og Gnd, og hvis servoen sidder fast, er gået i stykker eller er i en kortslutning. Prøv at ændre det med en anden servo. Sørg for, at den digitale pin er den samme som den, der er angivet i koden

Nå, det er næsten alle de ting, der kan komme til at tænke mig om de problemer, du måske støder på. Håber de aldrig sker og Happy Projects!

Tak fordi du læste min Instructable! Del og stem den til FØRSTE GANG FORFATTERENS konkurrence!

Anbefalede: