Innholdsfortegnelse:

NRF24 toveis radio for telemetri: 9 trinn (med bilder)
NRF24 toveis radio for telemetri: 9 trinn (med bilder)

Video: NRF24 toveis radio for telemetri: 9 trinn (med bilder)

Video: NRF24 toveis radio for telemetri: 9 trinn (med bilder)
Video: Arduino nRF24L01+ Соединяем несколько Arduino по радиоканалу multi Connect Transmitter Receiver 2024, Juli
Anonim
NRF24 toveis radio for telemetri
NRF24 toveis radio for telemetri

Hei folkens, jeg heter Pedro Castelani, og jeg bringer deg min første instruks: bygge en toveis radio med arduino for, vel, hva du trenger den til.

I dette prosjektet vil vi lage to separate kretser som vil fungere som både mottaker og sender. De viktigste komponentene er to arduino -tavler (alle fungerer) og to nrf24 transciever -moduler. I mitt tilfelle styrer jeg en servo med et potensiometer fra den andre arduinoen og sender spenningene til et tocellet lipo -batteri tilbake til det første.

Jeg har tenkt å bruke den som et tillegg til dronen min, som ikke har telemetri eller servogimbalkontroll. Du kan imidlertid bruke den til andre ting, for eksempel å bygge ditt eget quadcopter, fly, rc -bil, etc. Fra koden som følger med kan du også gjøre eventuelle endringer du ønsker i henhold til dine behov. Jeg vil også prøve å forklare hvordan jeg endrer det riktig (som tok meg litt tid å lære selv, ettersom jeg var vant til en annen type bruk for nrf24 -brikken).

Trinn 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

For å starte prosjektet vårt må vi vite alle delene som trengs. Nedenfor er en liste over de grunnleggende som trengs. Jeg kjøpte de fleste av dem på en lokal elektronikkbutikk der jeg bor, så jeg kan ikke anbefale deg noe sted å kjøpe dem. Du kan prøve Amazon, eller et annet sted. Jeg sier ikke at du bør bestille dem der, men det er bare et forslag.

  1. To Arduino -tavler (hvem som helst burde jobbe. Jeg har to arduino pro mini, som jeg liker godt fordi de har 13 digitale pins og 8 analoge, mens Uno bare har 6 analoge).
  2. To Nrf24 -moduler. Det er noen med eksterne antenner som har større overføringsområde. Velg de du liker best.
  3. Kvinnelige-kvinnelige og kvinnelige-mannlige jumperkabler.
  4. Prototypebrett.
  5. Arduino Programmer (for arduino pro mini, hvis du har en med usb -tilkobling trenger du ikke det).
  6. Arduino IDE (programvare). Last ned herfra.
  7. I mitt tilfelle brukte jeg også:
  • Servo. Hvem som helst du kan få. Jeg liker SG90, en liten designet for arduino.
  • Potensiometer (mellom 10k og 20k ohm). Kan kjøpes i en lokal elektronikkbutikk, eller du kan bruke styrespaken laget for arduino. Det er noen få bilder av de jeg har. Jeg fikk også en fra en ødelagt drone rc -kontroller, bare for å gi deg noen ideer
  • 4 like normale motstander. Jeg brukte 10k som jeg fikk fra bestefarens hus. Jeg bruker dem som spenningsdelere.
  • Liten perfboard av kobberpute (som jeg også fikk av bestefaren min) for å lodde motstandene sammen.
  • Pinner. Brukes til å koble hoppekablene fra arduinoen til motstandene enkelt.
  • 2s lipo batteri. Jeg bruker den til å drive en av mine arduinoer. Motstandene er koblet til den og leser dens spenninger. Jeg har tenkt at min arduino skal kobles til dronens 2s batteri, siden den ikke trenger en ekstern strømkilde og samtidig fortelle meg hvor mye batteri som gjenstår.
  • Loddejern og loddetinn. Nødvendig for å lodde motstandene, perfboardet og pinnene sammen.

Trinn 2: Funksjon og kode

Funksjon og kode
Funksjon og kode

Når alt materialet er nevnt, la oss begynne å snakke om modulenes funksjon.

Slik fungerer det: La oss kalle den ene arduinoen "A" og den andre "B". I mitt tilfelle, etter å ha programmert begge, koblet jeg dem til den tilsvarende radiobrikken og la potensiometeret til arduino A og motstandene og servoen til arduino B. Modul A sender verdier til B og flytter Servoen. B leser spenningene til 2s -batteriet og sender dem tilbake til A. Så begynner hele sirkelen igjen. Siden A mottar verdier som ikke er uttrykt mekanisk, er den koblet til programmereren, gjennom hvilken vi kan lese dem med en seriell skjerm (inkludert i Arduino IDE)

Kode: Jeg kaller skissen for arduino A (koblet til programmereren og potensiometeret) TwoWayRadio_1, og skissen for arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 og TwoWayRadio_2WithServo finner du like under dette avsnittet. Det er en forklaring inne i hver kode bare for å gjøre alt lettere å forstå.

Trinn 3: Loddemoduler: Spenningsdeler og potensiometer

Loddemoduler: Spenningsdeler og potensiometer
Loddemoduler: Spenningsdeler og potensiometer
Loddemoduler: Spenningsdeler og potensiometer
Loddemoduler: Spenningsdeler og potensiometer
Loddemoduler: Spenningsdeler og potensiometer
Loddemoduler: Spenningsdeler og potensiometer
Loddemoduler: Spenningsdeler og potensiometer
Loddemoduler: Spenningsdeler og potensiometer

Dette trinnet er valgfritt, siden du kanskje bare vil bruke potensiometer-joysticken designet spesielt for arduino og bruke en annen modul i stedet for spenningsdeleren. Jeg planla imidlertid alt (inkludert koder) for disse modulene.

Potensiometer:

Denne delen er omtrent den enkleste i loddetrinnet. Du må bare lodde noen startkabler til potensiometeret ditt. Hvis du vil, kan du først lodde potensiometeret til perfboardet og deretter lodde noen av pinnene. Når du trenger å bruke den, er det bare å koble hoppekablene til arduinoen og deretter til pinnene på perfboardet. Når den ikke er i bruk, kan du fjerne kablene og bruke dem til et annet prosjekt. Hvis du imidlertid gjør som jeg gjorde, kan du la potensiometeret loddet direkte til kablene

  • Hvis du gjør som jeg gjorde, får du tre hun-hun-hoppekabler, kuttet av en av spissene og fjern isolasjonen der, og etterlater et lite kobberledninger på hver ledning.
  • Varm opp loddejernet og lodd de modifiserte hopperne til potensiometertappene. Hvis du kan, kan du prøve å få forskjellige farger slik at du kan huske hvilken som er vcc, gnd og "signal" -en (den midterste). Koble disse kablene til de tilsvarende analoge pinnene på arduinoen. Det er noen bilder i begynnelsen av trinnet om hvordan det endte med å se ut. Potensiometeret er ikke vanlig, det er faktisk et lite hjul som hadde fem pinner. Tok meg tid å finne ut hvilken som var. Prøv å gjøre det enklere og bruk et vanlig potensiometer som vist i MATERIAL -trinnet.
  • Hvis du lodder det til et perfboard, får du potensiometeret og perfboardet og lodder dem sammen med loddejernet ditt.
  • Få pinnene (tre) og legg dem på den mest praktiske måten. Bruk loddetinn for å opprette en forbindelse mellom hver pinne og potensiometerpinnene. Ikke koble til mer enn to pinner, ellers fungerer det ikke (det vil fungere som en kortslutning).
  • Skaff deg noen hun-hun eller hunn-hun jumper ledninger og koble dem fra din arduino til din nye potensiometer modul (husk hvilken som er hvilken).

2. Spenningsdeler:

  • Denne delen er litt mer komplisert. Du må få de fire motstandene, fem pinnene og perfboardet. Jeg designet koden for å brukes til et 2s batteri (to celler), men du kan også bruke den i en 1s ved å endre arduino -skissen litt og maskinvaren. Jeg inkluderte bilder av to spenningsdelere jeg laget, en med bare 2 motstander (for 1s batterier) og en med fire (du gjettet det: 2s batterier).
  • La oss starte med 2 -tallet. Jeg har ikke bilder av byggeprosessen siden jeg begynte å lese denne instruerbare en god stund etter at jeg var ferdig med å lodde den. Jeg inkluderer bilder av det endelige resultatet, så jeg skal prøve å være så tydelig som mulig.
  • Start med å få perfboardet og 5 pins. Lodde dem nær siden og ikke la dem berøre hverandre.
  • Lodd motstandene som vist på det siste bildet i begynnelsen av trinnet (diagrammet for små kretser). Tilkoblingene mellom hver motstand og tapp er laget med loddetinn. Prøv å ta minst mulig plass.
  • Når du er ferdig, skal det se ut som bildene av den ferdige spenningsdeleren jeg la ut ovenfor.
  • 1s spenningsdeleren er i utgangspunktet den samme, med unntak av at du bare bruker tre pinner og to motstander. Jeg tok med bilder av hvordan det ser ut når det er ferdig. Bare se på diagrammet for 2 -tallet og forestill deg det uten signalkabelen 1, den midterste ledningen og motstandene r2 og r3 og der har du det!
  • Så hvis du vil ha en 1s spenningsdeler, kan det bare være litt mer komplisert enn å bare bruke en 2s.

Trinn 4: Programmering av Arduino

Programmering av Arduino
Programmering av Arduino
  1. Vi er nesten ferdige!
  2. Etter å ha lastet ned Arduino IDE -programvaren fra nettstedet som er koblet i MATERIALS -trinnet, kan du laste ned skissene fra FUNKSJON OG KODE -trinnet.
  3. Deretter åpner du dem i Arduino IDE.
  4. Åpne "Verktøy" i en av begge kategoriene og klikk på "Tavler". Velg brettet ditt fra listen. Klikk på "Prosessor" og deretter "Programmerer", og velg dem i henhold til brettet ditt. Gå deretter tilbake til skissen. Det er ganske praktisk å se informasjonen om brettet ditt på Internett. Bare slå opp navnet og se spesifikasjonene.
  5. Klikk på "skisse" (øverst), deretter "inkludere bibliotek", deretter "administrer biblioteker". Et lite vindu skal åpnes i midten av skjermen. Skriv inn søkealternativet "rf24". Last ned biblioteket du ønsker. Det vil være nødvendig for å kunne laste opp koden til arduino -kortet.
  6. Bare for å være sikker, klikk på "Kryss" -symbolet (opp til venstre) for å bekrefte at det ikke har noen feil. Fortsett deretter med å laste den opp ved å trykke på pilen som peker til høyre, ved siden av "Kryss" -symbolet.
  7. Hvis brettet ditt er en Pro Mini, skal jeg om en stund forklare hvordan du kobler til alt. Hvis det ikke er det, kan du bare laste det opp og, når du er ferdig med å programmere begge arduinoene, gå videre til neste trinn etter å ha lest advarselen nedenfor.
  8. Siden du har to tavler, HUSK hvilken kode hver var programmert med, for å unngå fremtidige problemer.
  9. Så hvis du har en Pro Mini, trenger du en programmerer. Det er to typer programmerere: 5 -pins og 6 -pins. Jeg vil fokusere på 5 -pins siden de er de jeg har. Tilkoblingene er som følger (første pin er fra programmerer, deretter arduino): Gnd-Gnd; 5v-Vcc (unntatt hvis Pro Mini er en 3.3v, i så fall er den 3.3v-Vcc); Rxd-Txo; Txd-Rxi. Jeg tok med et bilde av både brett og programmerer, bare i tilfelle du må sjekke.
  10. Koble arduinoen til programmereren og programmereren til datamaskinen din. Åpne IDE og klikk på opplastingsknappen. Hvis du ser nederst til venstre på skjermen, ser du en melding som sier "kompilering". I det øyeblikket denne meldingen blir til "opplasting", trykker du på tilbakestillingsknappen på arduino Pro Mini. Etter en stund vil skissen fullføres, og det vises en melding som sier "Fullført opplasting". Når dette skjer, er du ferdig og klar til å gå videre til neste trinn.

Trinn 5: Koble til alt

Koble til alt
Koble til alt
Koble til alt
Koble til alt
Koble til alt
Koble til alt
Koble til alt
Koble til alt
  1. Etter å ha programmert begge arduinoene, må vi koble til alt for å få det til å fungere. Her kommer vi til å trenge alt som er nevnt før: arduinoene, nrf24 -modulene, kabler, servo, programmerer, spenningsdeler, potensiometer, etc.
  2. Vi skal først koble arduinoen som fungerer med programmereren. I begynnelsen av trinnet er bildene av tilkoblingene til nrf24. Irq -pinnen, som sies å gå til pin 8 på arduinoen, er ikke koblet i det hele tatt. Resten er akkurat som på bildet for begge arduinoene (du kan lese notatene inne i bildene for mer info)
  3. Vcc for radioen kan kobles til 3,3 eller 5v. Noen ganger fungerer det bare med en av dem. Prøv med 3.3 og deretter 5 hvis det ikke fungerer. For 3.3, bruk 3.3v -pinnen på programmereren. Jeg måtte gjøre dette, som du vil se på bildene av det ferdige produktet.
  4. Koble programmereren til arduinoen som sagt i forrige trinn.
  5. Koble potensiometerets "signalkabel" til analog pin A0.
  6. Koble potensiometerets "Positive" til Vcc (bare 5v, ikke 3.3) og "Negative" til Gnd.
  7. Pass til den andre arduinoen.
  8. Koble til radioen som sagt før, i henhold til bildene.
  9. Koble servoens signalkabel (oransje-gul-hvit. Sjekk spesifikasjonene for servoen) til digital pin 2, og dens gnd til arduino's Gnd, og dens positive til arduinoens Vcc.
  10. Koble signalkabel 1 fra spenningsdeleren til pinne A0 og signalkabel 2 til pinne A1.
  11. Koble til, ved hjelp av protoboardet, spenningsdelerens negative kabel, arduino's gnd og batteriets gnd (svart kabel på jst -pluggen).
  12. Koble "midtkabelen" fra spenningsdeleren til batteriets midtre, mellom de røde og svarte kablene på jst -pluggen (hvit farge).
  13. Koble den "positive" kabelen fra spenningsdeleren til batteriets positive terminal og til arduino's Raw. Ikke koble direkte til Vcc, siden denne pinnen er spesielt for 5v. Rå pinne bruker spenning over 3,3 eller 5v til 12v og regulerer den. Vcc -pinner blir deretter utganger med 5v.

Du er nesten ferdig! De ferdige produktene dine skal se ut som bildene ovenfor. Kontroller hver tilkobling på nytt for å unngå kortslutning.

Trinn 6: Slå på prosjektet ditt

  • Arduinoen din med servoen fikk strøm det siste trinnet da du koblet batteriet til hele kretsen. Så du trenger bare å koble den andre arduinoen til en usb -port, og du er ferdig!
  • Flytt potensiometeret, og du bør se hvordan servoen også beveger seg. I mitt tilfelle er servoen festet til en 1 -akset kamera gimbal, som begrenset vinkelen, så jeg måtte justere parametrene. Du finner det uansett i koden.
  • For å se spenningene, når du har koblet programmereren til datamaskinen, åpner du arduino -programvaren og trykker på "Ctrl+Shift+m". Et vindu som sier "Serial Monitor" åpnes. Nederst i dette vinduet er et alternativ som leser "(tall) baud". Klikk på den og velg "9600". Lukk skjermen og åpne den igjen ved å trykke på de samme tastene. Du bør begynne å se mange verdier som kommer inn. Du vil ikke kunne se hva disse verdiene er på grunn av hastigheten de kommer, men hvis du kobler fra programmerer de vil stoppe, og du kan lese dem. Jeg prøver å få noe som jeg automatisk kan tegne dem for å se spenningene eller representere dem med lysdioder, men det er fremdeles i gang.
  • Selv om du kanskje ikke ser verdiene tydelig, siden de går så raskt, bare vet at det endelig fungerer og at du kan endre det for å imøtekomme dine behov!

Trinn 7: Demo

Vel, dette er videoen av meg som slår den på og bruker den bare litt for å vise deg hvordan den skal fungere.

Trinn 8: Flere ideer om hvordan du bruker dette prosjektet

Flere ideer om hvordan du bruker dette prosjektet
Flere ideer om hvordan du bruker dette prosjektet
Flere ideer om hvordan du bruker dette prosjektet
Flere ideer om hvordan du bruker dette prosjektet
Flere ideer om hvordan du bruker dette prosjektet
Flere ideer om hvordan du bruker dette prosjektet

Her er noen ideer som du kan bygge ved å bruke dette som basen. Fortell meg om du lager en av dem, eller hvis du prøver og ikke kan, så kan jeg hjelpe!

  • I stedet for å lese spenninger, endre koden slik at den sender tilbake temperatur, trykk, høyde, etc. Jeg fant BMP180 -brikken ganske nyttig for dette.
  • Mål avstander med HC-SR04-modulen og send dem tilbake til den første arduinoen. Bruk servoen til å rette sensoren hvor du vil.
  • Legg til en annen servokanal for å flytte et kamera opp og sidelengs; for eksempel på en rc -bil.
  • Legg til tre andre servokanaler (eller flere!) Og lag din egen rc -sender og mottaker for et quadcopter, fly, helikopter, rc car, etc!
  • Bytt servoen for en søkelys og legg den til dronen din! Du vil også kunne kontrollere lysets intensitet (kan trenge noen transistorer og noen kodeendringer)
  • I stedet for å lese spenningene på en datamaskin, bli kreativ og legg til en LCD-modul, eller du kan lage et 6-ledet brett (to grønne, to gule og to røde) som slår dem av en etter en etter hvert som batteriet blir lavere og begynner å blinke når batterinivået synker under den valgte spenningen. Jeg lagde dette lille brettet og la ut et bilde i begynnelsen av trinnet.

Bare for å gjøre alt klart, hvis du skal gjøre et av disse prosjektene, må du huske på at du må endre både koder og kanskje noen tilkoblinger. Prøv å husk å ikke steke brettet ditt med noe dumt.

Hvis du har flere ideer eller trenger hjelp til å gjennomføre et av disse prosjektene, vennligst legg ut i spørsmålsseksjonen!

Trinn 9: Feilsøking

Feilsøking
Feilsøking

For å si sannheten, var de fleste problemene jeg har møtt så langt knyttet til skissedelen, som du allerede har løst. Jeg skal prøve å fortelle deg så mange problemer jeg kan for å hjelpe deg mest mulig.

Først, hvis du prøver å laste opp skissen og du ikke kan, kan du prøve dette:

Sørg for at du har lastet ned de nødvendige bibliotekene (og de riktige!).

Sørg for at du har valgt riktig kort, prosessor og programmerer.

Sørg for at tilkoblingen mellom pc -en og programmereren og programmereren og arduinoen er god.

Hvis du bruker en pro mini, kan du prøve å trykke på tilbakestillingsknappen så snart du kan etter at "opplasting" -meldingen vises.

Alle disse tingene blir snakket om i PROGRAMMERING AV ARDUINO -trinnet ditt.

For det andre, sjekk alle forbindelsene mellom alt:

Hvis arduinoen din ikke slår seg på, er det helt klart et spenningsproblem. Kontroller om kablene ikke er riktig tilkoblet og om det er kortslutning.

Hvis den slår seg på, men ikke fungerer, må du kontrollere at alle tilkoblingene er der de skal være, at arduinoen som er programmert for å være koblet til servoen og spenningsdeleren, virkelig er koblet til dem (med andre ord, pass på at du ikke blandet opp), prøv å trykke på tilbakestillingsknappen på dem begge og se hva som skjer. I ekstremt sjeldne tilfeller kan hele skylden ligge på NRF24 -modulen. Jeg fant en av mine som bare fungerer på 5 volt og en annen som bare fungerer på 3.3v. Sjekk om dette løser noe. Det skjedde også med meg at bare en arduino jobbet med 3.3v radioen og den andre bare jobbet med 5v. Overraskende, ikke sant?

For det tredje, hvis du kan flytte servoen, men spenningene er feil, må du kontrollere at tilkoblingene til spenningsdeleren er som i diagrammet i trinn 3, og tilkoblingen til arduinoen. Hvis du derimot får spenningene, men du ikke kan bevege servoen riktig, må du kontrollere potensiometeret og dets tilkoblinger, servoens tilkobling til den digitale pinnen og til Vcc og Gnd, og hvis servoen sitter fast, er ødelagt eller er i en kortslutning. Prøv å bytte den med en annen servo. Sørg for at den digitale pinnen er den samme som den som er angitt i koden

Det er omtrent alle tingene jeg kan tenke på om problemene du kan støte på. Håper de aldri skjer og Happy Projects!

Takk for at du leser instruksjonsboken min! Vennligst del og stem den for FØRSTE GANG FORFATTER Konkurranse!

Anbefalt: