Innehållsförteckning:

NRF24 tvåvägsradio för telemetri: 9 steg (med bilder)
NRF24 tvåvägsradio för telemetri: 9 steg (med bilder)

Video: NRF24 tvåvägsradio för telemetri: 9 steg (med bilder)

Video: NRF24 tvåvägsradio för telemetri: 9 steg (med bilder)
Video: Do you have the frequency? Postbag GMH-034 2024, Juli
Anonim
NRF24 tvåvägs radio för telemetri
NRF24 tvåvägs radio för telemetri

Hej killar, jag heter Pedro Castelani och jag tar med mig min första instruerbara: att bygga en tvåvägsradio med arduino för, ja, vad du än behöver den för.

I detta projekt kommer vi att göra två separata kretsar som fungerar både som mottagare och sändare. De viktigaste komponenterna är två arduino -kort (alla fungerar) och två nrf24 transciever -moduler. I mitt fall styr jag en servo med en potentiometer från den andra arduinoen och skickar spänningarna på ett tvåcells lipobatteri tillbaka till det första.

Jag tänker använda den som ett tillägg för min drönare, som inte har telemetri eller servogimbalkontroll. Du kan dock använda den till andra saker, som att bygga din egen quadcopter, plan, rc -bil, etc. Från den medföljande koden kan du också göra alla ändringar du vill ha efter dina behov. Jag kommer också att försöka förklara hur man ändrar det korrekt (vilket tog mig lite tid att lära mig själv, eftersom jag var van vid en annan typ av användning för nrf24 -chipet).

Steg 1: Material

Material
Material
Material
Material
Material
Material

För att påbörja vårt projekt måste vi veta alla delar som behövs. Nedan följer en lista över de grundläggande som behövs. Jag köpte de flesta av dem på en lokal elektronikbutik där jag bor, så jag kommer inte att kunna rekommendera dig någon plats att köpa dem. Du kan prova Amazon eller någon annan plats. Jag säger inte att du ska beställa dem där, men det är bara ett förslag.

  1. Två Arduino -kort (vem som helst borde arbeta. Jag har två arduino pro mini, vilket jag tycker mycket om eftersom de har 13 digitala stift och 8 analoga, medan Uno bara har 6 analoga).
  2. Två Nrf24 -moduler. Det finns några med externa antenner som har större överföringsområde. Välj de du gillar mest.
  3. Hona-hona och hona-hona-bygelkablar.
  4. Prototypplatta.
  5. Arduino programmerare (för arduino pro mini, om du har en med usb -anslutning behöver du den inte).
  6. Arduino IDE (programvara). Ladda ner härifrån.
  7. I mitt fall använde jag också:
  • Servo. Vem som helst du kan få. Jag gillar SG90, en liten designad för arduino.
  • Potentiometer (mellan 10k och 20k ohm). Kan köpas i en lokal elektronikbutik eller så kan du använda joysticken gjord för arduino. Det finns några bilder på de jag har. Jag fick också en från en trasig drone rc -kontroller, bara för att ge dig några idéer
  • 4 lika normala motstånd. Jag använde 10k sådana jag fick från min farfars hus. Jag använder dem som spänningsdelare.
  • Liten kopparkudde -perfboard (som jag också fick av min farfar) för att löda ihop motstånden.
  • Stift. Används för att enkelt ansluta bygelkablarna från arduino till motstånden.
  • 2s lipo batteri. Jag använder den för att driva en av mina arduinos. Motstånden är anslutna till den och avläser dess spänningar. Jag har för avsikt att min arduino ska anslutas till min drönares 2s -batteri, eftersom den inte behöver en extern strömkälla och samtidigt berätta hur mycket batteri som återstår.
  • Lödkolv och löd. Behövs för att löda motstånden, perfboard och stiften tillsammans.

Steg 2: Funktion och kod

Funktion och kod
Funktion och kod

När allt material har nämnts, låt oss börja prata om modulernas funktion.

Hur det fungerar: Låt oss kalla den ena arduino "A" och den andra "B". I mitt fall, efter programmering av båda, kopplade jag dem till motsvarande radiochip och lade potentiometern till arduino A och motstånden och servon till arduino B. Modul A skickar värden till B och flyttar servon. B läser spänningarna på 2s -batteriet och skickar tillbaka dem till A. Då börjar hela cirkeln igen. Eftersom A tar emot värden som inte uttrycks mekaniskt, är den ansluten till programmeraren, genom vilken vi kan läsa dem med en seriell bildskärm (ingår i Arduino IDE)

Kod: Jag kallar skissen för arduino A (ansluten till programmeraren och potentiometern) TwoWayRadio_1 och skissen för arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 och TwoWayRadio_2WithServo hittar du precis nedanför detta stycke. Det finns en förklaring inuti varje kod bara för att göra allt lättare att förstå.

Steg 3: Lödningsmoduler: Spänningsdelare och potentiometer

Lödmoduler: Spänningsdelare och potentiometer
Lödmoduler: Spänningsdelare och potentiometer
Lödmoduler: Spänningsdelare och potentiometer
Lödmoduler: Spänningsdelare och potentiometer
Lödmoduler: Spänningsdelare och potentiometer
Lödmoduler: Spänningsdelare och potentiometer
Lödmoduler: Spänningsdelare och potentiometer
Lödmoduler: Spänningsdelare och potentiometer

Det här steget är valfritt, eftersom du kanske bara vill använda potentiometer-joysticken utformad speciellt för arduino och använda en annan modul istället för spänningsdelaren. Jag planerade dock allt (inklusive koder) för dessa moduler.

Potentiometer:

Denna del är nästan den enklaste i lödningssteget. Du måste bara löd några bygelkablar till din potentiometer. Om du vill kan du först löda potentiometern till perfboard och sedan löda några av stiften. När du behöver använda den ansluter du bara bygelkablarna till arduino och sedan till stiften på perfboard. När den inte används kan du ta bort kablarna och använda dem för ett annat projekt. Om du däremot gör som jag kan du låta potentiometern lödas direkt till kablarna

  • Om du gör som jag gjorde, skaffa tre hona-hona-bygelkablar, klipp av en av spetsarna och ta bort isoleringen där och lämna en liten kopparkabel på varje tråd.
  • Värm upp ditt lödkolv och löd de modifierade hopparna till dina potentiometrar. Om du kan, försök att få olika färger så att du kan komma ihåg vilken som är vcc, gnd och "signalen" (den mellersta). Anslut dessa kablar till motsvarande analoga stift på arduino. Det finns några bilder i början av steget om hur det slutade se ut. Potentiometern är inte en vanlig, det är faktiskt ett litet hjul som hade fem stift. Tog mig lite tid att ta reda på vilken som var. Försök att göra det enklare och använd en vanlig potentiometer som visas i steget MATERIAL.
  • Om du lödde den till en perfboard, skaffa potentiometern och perfboard och löd dem tillsammans med ditt lödkolv.
  • Få stiften (tre) och placera dem på det mest praktiska sättet. Använd lödning för att ansluta mellan varje stift och potentiometerstiften. Anslut inte mer än två stift annars fungerar det inte (det fungerar som en kortslutning).
  • Skaffa några kvinnliga-kvinnliga eller kvinnliga-hanstrumpor och anslut dem från din arduino till din nya potentiometermodul (kom ihåg vilken som är vilken).

2. Spänningsdelare:

  • Den här delen är lite mer komplicerad. Du måste skaffa de fyra motstånden, fem stiften och perfboard. Jag utformade koden för att användas för ett 2s -batteri (tvåceller), men du kan också använda den för ett 1 -tal genom att ändra arduino -skissen lite och hårdvaran. Jag inkluderade bilder på två spänningsdelare som jag gjorde, en med endast 2 motstånd (för 1s -batterier) och en med fyra (du gissade det: 2s -batterier).
  • Låt oss börja med 2: an. Jag har inga bilder på byggprocessen sedan jag började berätta det här instruerbara ett bra tag efter att ha lödt klart det. Jag inkluderar bilder av det slutliga resultatet, så jag ska försöka vara så tydlig som möjligt.
  • Börja med att skaffa perfboard och 5 stift. Löd dem nära sidan och låt dem inte vidröra varandra.
  • Löd motstånden som visas i den sista bilden i början av steget (det lilla kretsschemat). Anslutningarna mellan varje motstånd och stift görs med lödning. Försök att uppta minsta möjliga plats.
  • När du är klar ska det se ut ungefär som bilderna på den färdiga spänningsdelaren som jag lade upp ovan.
  • Spänningsdelaren 1s är i princip densamma, med undantag för att du bara använder tre stift och två motstånd. Jag inkluderade bilder på hur det ser ut när det är klart. Titta bara på diagrammet för 2: an och föreställ dig den utan signalkabel 1, mittkabel och motstånd r2 och r3 och där har du det!
  • Så om du vill ha en 1s spänningsdelare kan det bara vara lite mer komplicerat än att bara använda en 2s.

Steg 4: Programmering av din Arduino

Programmering av din Arduino
Programmering av din Arduino
  1. Vi är nästan klara!
  2. Efter att du har laddat ner Arduino IDE -programvaran från webbplatsen som är länkad i MATERIALS -steget, ladda ner skisserna från steget FUNKTION OCH KOD.
  3. Öppna sedan dem i Arduino IDE.
  4. Öppna "Verktyg" på någon av båda flikarna och klicka på "Boards". Välj din tavla från listan. Klicka på "Processor" och sedan på "Programmerare", välj var och en enligt ditt kort. Återgå sedan till skissen. Det är ganska bekvämt att titta på informationen om din tavla på Internet. Sök bara upp namnet och se specifikationerna.
  5. Klicka på "skiss" (upptill), sedan "inkludera bibliotek", sedan "hantera bibliotek". Ett litet fönster ska öppnas i mitten av skärmen. Ange i sökalternativet "rf24". Ladda ner det bibliotek du vill ha. Det kommer att vara nödvändigt för att kunna ladda upp koden till arduino -kortet.
  6. Bara för att vara säker, klicka på "Tick" -symbolen (upp till vänster) för att verifiera att det inte har några misstag. Fortsätt sedan med att ladda upp den genom att trycka på pilen som pekar till höger, bredvid "Tick" -symbolen.
  7. Om ditt kort är en Pro Mini, förklarar jag om ett tag hur du ansluter allt. Om det inte är det, bara ladda upp det och, när du har programmerat båda arduinos, gå vidare till nästa steg, efter att ha läst varningen nedan.
  8. Eftersom du har två tavlor, HUSK vilken kod varje var programmerad med, för att undvika framtida problem.
  9. Så om du har en Pro Mini behöver du en programmerare. Det finns två typer av programmerare: 5 -stifts och 6 -stifts. Jag kommer att fokusera på 5 -stifts ettor eftersom det är de jag har. Anslutningarna är som följer (första stiftet är från programmeraren, sedan arduino): Gnd-Gnd; 5v-Vcc (förutom om din Pro Mini är en 3.3v, i så fall är den 3.3v-Vcc); Rxd-Txo; Txd-Rxi. Jag inkluderade en bild av både kort och programmerare, bara om du behöver kontrollera.
  10. Anslut din arduino till programmeraren och programmeraren till din dator. Öppna IDE och klicka på uppladdningsknappen. Om du tittar längst ner till vänster på skärmen ser du ett meddelande som säger "kompilering". I det ögonblick som detta meddelande övergår till "uppladdning", tryck på återställningsknappen på arduino Pro Mini. Efter ett tag kommer skissen att slutföras och ett meddelande visas som säger "Klar överföring". När detta händer är du klar och redo att gå vidare till nästa steg.

Steg 5: Anslut allt

Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt
  1. Efter att ha programmerat båda arduinoerna måste vi ansluta allt för att få det att fungera. Här kommer vi att behöva allt som nämnts tidigare: arduinos, nrf24 -moduler, kablar, servo, programmerare, spänningsdelare, potentiometer, etc.
  2. Vi ska först ansluta arduino som fungerar med programmeraren. I början av steget är bilderna på anslutningarna till nrf24. Irq -stiftet, som sägs gå till stift 8 på arduino, är inte alls anslutet. Resten är precis som på bilden för båda arduinos (du kan läsa anteckningarna inuti bilderna för mer info)
  3. Vcc för radion kan vara ansluten till 3,3 eller 5v. Ibland fungerar det bara med en av dem. Prova med 3.3 och sedan 5 om det inte fungerar. För 3.3, använd 3.3v -stiftet på programmeraren. Jag var tvungen att göra detta, som du kommer att se på bilderna på den färdiga produkten.
  4. Anslut programmeraren till arduino som sagt i föregående steg.
  5. Anslut potentiometerns "signalkabel" till analog stift A0.
  6. Anslut potentiometern "Positiv" till Vcc (endast 5v, inte 3.3) och "Negativ" till Gnd.
  7. Passera till den andra arduinoen.
  8. Anslut radion som sagt tidigare, enligt bilderna.
  9. Anslut servos signalkabel (orange-gul-vit. Kontrollera specifikationerna för servon) till digital pin 2, och dess gnd till arduino's Gnd, och dess positiva till arduino's Vcc.
  10. Anslut signalkabel 1 från spänningsdelaren till stift A0 och signalkabel 2 till stift A1.
  11. Anslut, med protoboardet, spänningsdelarens negativa kabel, arduinos gnd och batteriets gnd (svart kabel på jst -kontakten).
  12. Anslut "mittkabeln" från spänningsdelaren till batteriets mittre, mellan de röda och svarta kablarna på jst -kontakten (vit färg).
  13. Anslut den "positiva" kabeln från spänningsdelaren till batteriets positiva terminal och till arduino's Raw. Anslut inte direkt till Vcc, eftersom denna stift är specifikt för 5v. Rå stift använder spänning över 3,3 eller 5v till 12v och reglerar det. Vcc -stift blir sedan utgångar med 5v.

Du är nästan klar! Dina färdiga produkter ska se ut som bilderna ovan. Kontrollera varje anslutning igen för att undvika kortslutning.

Steg 6: Sätt igång ditt projekt

  • Din arduino med servon fick det sista steget när du kopplade batteriet till hela kretsen. Så du behöver bara ansluta den andra arduino till en usb -port och du är klar!
  • Flytta potentiometern så ska du se hur servon också rör sig. I mitt fall är servon ansluten till en gimbal med 1 axel, vilket begränsade vinkeln, så jag var tvungen att justera parametrarna. Du hittar det i koden i alla fall.
  • För att se spänningarna, när du har anslutit programmeraren till datorn, öppna arduino -programvaran och tryck på "Ctrl+Shift+m". Ett fönster som säger "Serial Monitor" öppnas. Längst ner i det här fönstret finns ett alternativ som läser "(nummer) baud". Klicka på den och välj "9600". Stäng bildskärmen och öppna den igen genom att trycka på samma knappar och du bör börja se många värden komma in. Du kommer inte att kunna se vad dessa värden är på grund av hastigheten med vilken de kommer, men om du kopplar bort programmerare kommer de att sluta och du kan läsa dem. Jag försöker få något att automatiskt rita dem för att se spänningarna eller representera dem med lysdioder, men det pågår fortfarande.
  • Även om du kanske inte ser värdena klart, eftersom de går så snabbt, vet du bara att det äntligen fungerar och att du kan ändra det för att tillgodose dina behov!

Steg 7: Demo

Tja, det här är videon av mig som driver den och använder den bara lite för att visa dig hur det ska fungera.

Steg 8: Fler idéer om hur du använder det här projektet

Fler idéer om hur du använder det här projektet
Fler idéer om hur du använder det här projektet
Fler idéer om hur du använder det här projektet
Fler idéer om hur du använder det här projektet
Fler idéer om hur du använder det här projektet
Fler idéer om hur du använder det här projektet

Här är några idéer som du kan bygga med detta som bas. Berätta för mig om du gör en av dem eller om du försöker och inte kan så kan jag hjälpa dig!

  • Istället för att läsa spänningar, ändra koden så att den skickar tillbaka temperaturen, trycket, höjden, etc. Jag tyckte att BMP180 -chipet var ganska användbart för detta.
  • Mät avstånd med HC-SR04-modulen och skicka tillbaka dem till den första arduinoen. Använd servon för att rikta sensorn vart du vill.
  • Lägg till en annan servokanal för att flytta en kamera upp och åt sidan; till exempel på en rc -bil.
  • Lägg till tre andra servokanaler (eller fler!) Och skapa din egen rc -sändare och mottagare för en quadcopter, flygplan, helikopter, rc -bil, etc!
  • Byt servo för en sökljus och lägg till den i din drönare! Du kommer också att kunna styra ljusets intensitet (kan behöva några transistorer och lite kodbyte)
  • Istället för att läsa spänningarna på en dator, bli kreativ och lägg till en LCD-modul, eller så kan du göra en 6-ledad tavla (två gröna, två gula och två röda) som stänger av dem en efter en när batteriet blir lägre och börjar blinka när batterinivån sjunker under din valda spänning. Jag gjorde denna lilla tavla och lade upp en bild i början av steget.

Bara för att göra allt klart, om du ska göra ett av dessa projekt, tänk på att du kommer att behöva ändra både koder och kanske några anslutningar. Försök att komma ihåg att inte steka ditt bräde med något dumt.

Om du har fler idéer eller behöver hjälp med att genomföra ett av dessa projekt, vänligen posta i frågeavsnittet!

Steg 9: Felsökning

Felsökning
Felsökning

För att säga sanningen var de flesta problemen jag har stött på hittills relaterade till skissdelen, som du redan har löst. Jag ska försöka berätta så många problem som möjligt för att hjälpa dig mest.

Först, om du försöker ladda upp skissen och du inte kan, prova detta:

Se till att du har laddat ner nödvändiga bibliotek (och de rätta!).

Se till att du har valt rätt kort, processor och programmerare.

Se till att anslutningen mellan datorn och programmeraren och programmeraren och arduino är bra.

Om du använder en pro mini, försök trycka på återställningsknappen så snart du kan efter att meddelandet "uppladdning" visas.

Alla dessa saker talas om i PROGRAMMERING AV DITT ARDUINO -steg.

För det andra, kontrollera alla anslutningar mellan allt:

Om din arduino inte startar är det helt klart ett spänningsproblem. Kontrollera om kablarna inte är korrekt anslutna och om det är kortslutning.

Om den startar men inte fungerar, se till att alla anslutningar är där de ska vara, att arduino som är programmerad att anslutas till servo och spänningsdelare verkligen är ansluten till dem (med andra ord, se till att du inte blandade försök att trycka på återställningsknappen på dem båda och se vad som händer. I extremt sällsynta fall kan hela skulden ligga på NRF24 -modulen. Jag hittade en av mina som bara fungerar på 5 volt och en annan som bara fungerar på 3.3v. Kolla om detta löser något. Det hände mig också att bara en arduino arbetade med 3,3v -radion och den andra bara fungerade med 5v. Överraskande, eller hur?

För det tredje, om du kan flytta servon men spänningarna är fel, kontrollera att anslutningarna till spänningsdelaren är som i diagrammet i steg 3 och anslutningen till arduino. Om du å andra sidan får spänningarna men du inte kan flytta servon korrekt, kontrollera potentiometern och dess anslutningar, servos anslutning till den digitala stiftet och till Vcc och Gnd, och om servon har fastnat, är trasig eller in en kortslutning. Prova att byta den med en annan servo. Se till att den digitala stiften är densamma som den som anges i koden

Tja, det är nästan alla saker som kan tänka mig om problemen du kan stöta på. Hoppas att de aldrig händer och lyckliga projekt!

Tack för att du läste min Instructable! Vänligen dela och rösta den för första gången författarens tävling!

Rekommenderad: