Sadržaj:

NRF24 dvosmjerni radio za telemetriju: 9 koraka (sa slikama)
NRF24 dvosmjerni radio za telemetriju: 9 koraka (sa slikama)

Video: NRF24 dvosmjerni radio za telemetriju: 9 koraka (sa slikama)

Video: NRF24 dvosmjerni radio za telemetriju: 9 koraka (sa slikama)
Video: Arducopter на гоночном квадрокоптере. Это вам не INAV! Часть первая. Базовая настройка 2024, Juli
Anonim
NRF24 Dvosmjerni radio za telemetriju
NRF24 Dvosmjerni radio za telemetriju

Zdravo momci, moje ime je Pedro Castelani i donosim vam svoje prve instrukcije: izgradnja dvosmjernog radija sa arduinom za, pa, sve što vam treba.

U ovom projektu napravit ćemo dva odvojena kola koja će djelovati i kao prijemnik i kao odašiljač. Najvažnije komponente su dvije arduino ploče (sve rade) i dva nrf24 primopredajnička modula. U mom slučaju, servo upravljam potenciometrom s drugog arduina i šaljem napone dvoćelijske lipo baterije natrag na prvu.

Namjeravam ga koristiti kao dodatak svom bespilotnom letjelici, koje nema telemetriju niti kontrolu servo gimbala. Možete ga, međutim, koristiti za druge stvari, kao što je izgradnja vlastitog quadcoptera, aviona, daljinskog upravljača itd. Iz isporučenog koda možete napraviti i bilo kakve izmjene koje želite prema svojim potrebama. Također ću pokušati objasniti kako ga ispravno izmijeniti (za što mi je trebalo neko vrijeme da naučim, jer sam navikao na drugu vrstu korištenja čipa nrf24).

Korak 1: Materijali

Materijali
Materijali
Materijali
Materijali
Materijali
Materijali

Za početak našeg projekta moramo znati sve potrebne dijelove. Ispod je lista osnovnih potrebnih. Većinu sam kupio u lokalnoj trgovini elektronike u kojoj živim, pa vam neću moći preporučiti bilo koje mjesto za kupovinu. Možete probati Amazon ili bilo koje drugo mjesto. Ne kažem da ih trebate naručiti tamo, ali to je samo prijedlog.

  1. Dvije Arduino ploče (svako bi trebao raditi. Imam dvije arduino pro mini, koje mi se jako sviđaju jer imaju 13 digitalnih pinova i 8 analognih, dok Uno ima samo 6 analognih).
  2. Dva Nrf24 modula. Postoje neki s vanjskim antenama koje imaju veći domet prijenosa. Odaberite one koje vam se najviše sviđaju.
  3. Ženski-ženski i ženski-muški kratkospojni kablovi.
  4. Ploča za izradu prototipa.
  5. Arduino programer (za arduino pro mini, ako ga imate s USB vezom, neće vam trebati).
  6. Arduino IDE (softver). Preuzmite odavde.
  7. U mom slučaju sam takođe koristio:
  • Servo. Bilo koga koga možete dobiti. Sviđa mi se SG90, mali dizajniran za arduino.
  • Potenciometar (između 10k i 20k ohma). Može se kupiti u lokalnoj trgovini elektronike ili možete koristiti joystick napravljen za arduino. Postoji nekoliko slika onih koje imam. Dobio sam ga i od pokvarenog daljinskog upravljača za dronove, samo da vam dam nekoliko ideja
  • 4 jednaka normalna otpornika. Koristio sam 10 hiljada koje sam dobio od djedove kuće. Koristim ih kao razdjelnike napona.
  • Mali bakreni jastučić (koji sam također dobio od djeda) za zajedničko lemljenje otpornika.
  • Igle. Koristi se za jednostavno spajanje kratkospojnih kabela s arduina na otpornike.
  • Lipo baterija 2s. Koristim ga za napajanje jednog od mojih arduina. Otpornici su spojeni na njega i očitavaju njegove napone. Namjeravam da moj arduino bude spojen na 2s bateriju mog drona, jer mu neće trebati vanjski izvor napajanja, a istovremeno mi reci koliko je baterije preostalo.
  • Lemilica i lemljenje. Potrebno je lemiti otpornike, ploču i pinove zajedno.

Korak 2: Funkcija i kôd

Funkcija i kod
Funkcija i kod

Nakon što su svi materijali spomenuti, počnimo govoriti o funkciji modula.

Kako to funkcionira: Nazovimo jedan arduino "A", a drugi "B". U mom slučaju, nakon programiranja oboje, spojio sam ih na odgovarajući radio čip i dodao potenciometar na arduino A, a otpornike i servo na arduino B. Modul A šalje vrijednosti u B i pomiče servo. B očitava napone 2s baterije i šalje ih nazad u A. Tada cijeli krug počinje iznova. Budući da A prima vrijednosti koje nisu izražene mehanički, povezan je s programatorom preko kojeg ih možemo čitati serijskim monitorom (uključen u Arduino IDE)

Kod: Skicu zovem za arduino A (povezano sa programatorom i potenciometrom) TwoWayRadio_1, a skicu za arduino B TwoWayRadio_2 sa Servom

TwoWayRadio_1 i TwoWayRadio_2WithServo mogu se pronaći odmah ispod ovog odlomka. Unutar svakog koda postoji objašnjenje samo da bi sve bilo lakše razumjeti.

Korak 3: Moduli za lemljenje: djelitelj napona i potenciometar

Moduli za lemljenje: djelitelj napona i potenciometar
Moduli za lemljenje: djelitelj napona i potenciometar
Moduli za lemljenje: djelitelj napona i potenciometar
Moduli za lemljenje: djelitelj napona i potenciometar
Moduli za lemljenje: djelitelj napona i potenciometar
Moduli za lemljenje: djelitelj napona i potenciometar
Moduli za lemljenje: djelitelj napona i potenciometar
Moduli za lemljenje: djelitelj napona i potenciometar

Ovaj korak je neobavezan jer biste možda samo htjeli koristiti potenciometar-joystick dizajniran posebno za arduino i upotrijebiti drugi modul umjesto razdjelnika napona. Ja sam, međutim, planirao sve (uključujući kodove) za ove module.

Potenciometar:

Ovaj dio je otprilike najlakši u koraku lemljenja. Morat ćete samo lemiti neke kratkospojne kabele na svoj potenciometar. Ako želite, prvo možete lemiti potenciometar na ploču, a zatim lemiti neke igle. Kad ga trebate koristiti, samo spojite kratkospojne kabele na arduino, a zatim na pinove na ploči. Kad se ne koriste, možete ukloniti kabele i upotrijebiti ih za neki drugi projekt. Ako ipak učinite isto što i ja, potenciometar možete ostaviti lemljen direktno na kabelima

  • Ako radite kao ja, nabavite tri žensko-ženska kratkospojna kabela, odrežite jedan od vrhova i uklonite izolaciju, ostavljajući mali komad bakrenog ožičenja na svakoj žici.
  • Zagrijte lemilicu i lemite modifikovane kratkospojnike na igle potenciometra. Ako možete, pokušajte nabaviti različite boje kako biste se sjetili koja je vcc, gnd i ona "signalna" (srednja). Spojite ove kabele na odgovarajuće analogne pinove na arduinu. Na početku koraka postoje neke slike o tome kako je to izgledalo. Potenciometar nije običan, to je zapravo mali kotačić koji je imao pet pinova. Trebalo mi je vremena da saznam šta je to. Pokušajte to učiniti lakše i upotrijebite običan potenciometar kao što je prikazano u koraku MATERIJALI.
  • Ako ga lemite na ploču, nabavite potenciometar i ploču i lemite ih zajedno sa svojim lemilicom.
  • Uzmite igle (tri) i postavite ih na najprikladniji način. Pomoću lema uspostavite vezu između svakog pina i pinova potenciometra. Nemojte povezivati više od dva pina ili neće uspjeti (djelovat će kao kratki spoj).
  • Nabavite kratkospojnike ženka-žena ili ženka-muškarac i spojite ih sa svog arduina na novi modul potenciometra (sjetite se koji je koji).

2. Razdjelnik napona:

  • Ovaj dio je malo složeniji. Morat ćete nabaviti četiri otpornika, pet pinova i ploču. Dizajnirao sam kôd za 2s bateriju (dvije ćelije), ali možete ga koristiti i za 1s promjenom arduino skice malo i hardvera. Uključio sam slike dva djelitelja napona koje sam napravio, jedan sa samo 2 otpornika (za 1s baterije) i jedan sa četiri (pogađate: 2s baterije).
  • Počnimo s 2s. Nemam slike procesa izgradnje otkad sam počeo čekati ovu instrukciju neko vrijeme nakon što sam je završio lemiti. Uključujem slike konačnog rezultata, pa ću pokušati biti što jasniji.
  • Počnite tako što ćete nabaviti perfboard i 5 pinova. Lemite ih blizu sa strane i ne dopustite im da se dodiruju.
  • Lemite otpornike kao što je prikazano na posljednjoj slici na početku koraka (mali dijagram kola). Veze između svakog otpornika i pina izvedene su lemljenjem. Pokušajte zauzeti što je moguće manje prostora.
  • Kad završite, trebalo bi izgledati nešto poput slika gotovog razdjelnika napona koje sam objavio gore.
  • Razdjelnik napona od 1s je u osnovi isti, s izuzetkom da koristite samo tri pina i dva otpornika. Uključio sam slike kako izgleda kada završite. Samo pogledajte dijagram za 2s i zamislite ga bez signalne žice 1, srednje žice i otpornika r2 i r3 i eto, imate ga!
  • Dakle, ako želite 1s razdjelnik napona, to bi moglo biti samo malo složenije nego samo korištenje 2s.

Korak 4: Programiranje vašeg Arduina

Programiranje vašeg Arduina
Programiranje vašeg Arduina
  1. Skoro smo završili!
  2. Nakon što ste preuzeli Arduino IDE softver sa stranice povezane u koraku MATERIJALI, preuzmite skice iz koraka FUNKCIJA I KOD.
  3. Zatim ih otvorite u Arduino IDE -u.
  4. Otvorite "Alati" na bilo kojoj od kartica i kliknite "Ploče". Odaberite svoju ploču s popisa. Pritisnite "Procesor", a zatim "Programer", odabirom svakog prema vašoj ploči. Zatim se vratite na skicu. Prilično je zgodno pogledati informacije vašeg odbora na Internetu. Samo potražite naziv i pogledajte specifikacije.
  5. Kliknite na "skica" (gore), zatim "uključi biblioteku", pa "upravljaj bibliotekama". Mali prozor bi se trebao otvoriti u sredini ekrana. Unesite u opciju pretraživanja "rf24". Preuzmite biblioteku koju želite. Bit će potrebno biti u mogućnosti učitati kôd na arduino ploču.
  6. Samo da biste bili sigurni, kliknite simbol "Označi" (gore lijevo) kako biste provjerili da nema grešaka. Zatim nastavite s učitavanjem pritiskom na strelicu koja pokazuje desno, pored simbola "Označite".
  7. Ako je vaša ploča Pro Mini, malo ću vam objasniti kako sve povezati. Ako nije, samo ga učitajte i, kad završite s programiranjem oba arduina, prijeđite na sljedeći korak, nakon što pročitate donje upozorenje.
  8. Budući da imate dvije ploče, ZAPAMTITE s kojim je kodom svaki programiran, kako biste izbjegli buduće probleme.
  9. Dakle, ako imate Pro Mini, trebat će vam programer. Postoje dvije vrste programatora: 5 -pinski i 6 -pinski. Fokusirat ću se na 5 pin -ova jer oni su oni koje imam. Veze su sljedeće (prvi pin je od programera, zatim arduino): Gnd-Gnd; 5v-Vcc (osim ako je vaš Pro Mini 3.3v, u tom slučaju je 3.3v-Vcc); Rxd-Txo; Txd-Rxi. Uključio sam sliku ploče i programera, za svaki slučaj ako trebate provjeriti.
  10. Povežite svoj arduino sa programatorom, a programer sa računarom. Otvorite IDE i kliknite gumb za prijenos. Ako pogledate lijevi donji dio ekrana, vidjet ćete poruku koja kaže "kompajliranje". U trenutku kada se ova poruka pretvori u "upload", pritisnite tipku za resetiranje na arduino Pro Mini. Nakon nekog vremena skica će se završiti i pojavit će se poruka koja kaže "Gotovo učitavanje". Kada se to dogodi, gotovi ste i spremni za prelazak na sljedeći korak.

Korak 5: Povežite sve

Povezivanje svega
Povezivanje svega
Povezivanje svega
Povezivanje svega
Povezivanje svega
Povezivanje svega
Povezivanje svega
Povezivanje svega
  1. Nakon što smo programirali oba arduina, moramo sve povezati da bi radio. Ovdje će nam trebati sve gore spomenuto: arduini, nrf24 moduli, kabeli, servo, programator, razdjelnik napona, potenciometar itd.
  2. Prvo ćemo povezati arduino koji radi s programatorom. Na početku koraka su slike veza nrf24. Irq pin, za koji se kaže da ide na pin 8 na arduinu, uopće nije povezan. Ostatak je isti kao na slici za oba arduina (za više informacija možete pročitati bilješke unutar slika)
  3. Vcc za radio može biti povezan na 3.3 ili 5v. Ponekad radi samo s jednim od njih. Pokušajte sa 3.3, a zatim 5 ako neće uspjeti. Za 3.3, upotrijebite pin 3.3v programatora. Morao sam to učiniti, kao što ćete vidjeti na slikama gotovog proizvoda.
  4. Spojite programator na arduino kao što je rečeno u prethodnom koraku.
  5. Spojite "signalni" kabel potenciometra na analogni pin A0.
  6. Spojite potenciometar "Pozitivno" na Vcc (samo 5v, ne 3.3) i "Negativno" na Gnd.
  7. Pređite na drugi arduino.
  8. Povežite radio kao što je već rečeno, prema slikama.
  9. Spojite signalni kabel servo-a (narančasto-žuto-bijelo. Provjerite specifikacije za servo) na digitalni pin 2, a njegov gnd na arduino Gnd, a njegov pozitivan na arduino Vcc.
  10. Spojite signalni kabel 1 s razdjelnika napona na pin A0 i signalnu žicu 2 na pin A1.
  11. Spojite, koristeći protoboard, negativni kabel razdjelnika napona, arduino gnd i gnd baterije (crni kabel na jst utikaču).
  12. Spojite "srednji kabel" od razdjelnika napona na srednji akumulator, između crvenog i crnog kabela jst utikača (bijele boje).
  13. Spojite "pozitivni" kabel od razdjelnika napona na pozitivni priključak baterije i na arduino Raw. Nemojte spajati izravno na Vcc, jer je ovaj pin posebno za 5v. Sirovi pin koristi bilo koji napon iznad 3,3 ili 5v do 12v i regulira ga. Vcc pinovi tada postaju izlazi s 5v.

Skoro ste gotovi! Vaši gotovi proizvodi trebali bi izgledati kao gornje slike. Ponovno provjerite svaku vezu kako biste izbjegli kratke spojeve.

Korak 6: Pojačajte svoj projekat

  • Vaš arduino sa servo pogonom bio je posljednji korak kada ste bateriju priključili na cijelo kolo. Dakle, samo trebate povezati drugi arduino na USB priključak i gotovi ste!
  • Pomaknite potenciometar i trebali biste vidjeti kako se servo također kreće. U mom slučaju, servo je pričvršćen na 1 -osni nosač kamere, što je ograničavalo kut, pa sam morao prilagoditi parametre. To ćete ionako pronaći u kodu.
  • Da biste vidjeli napone, nakon što povežete programator s računarom, otvorite arduino softver i pritisnite "Ctrl+Shift+m". Otvorit će se prozor sa porukom "Serial Monitor". Pri dnu ovog prozora nalazi se opcija koja glasi "(broj) boud". Kliknite na nju i odaberite "9600". Zatvorite monitor i otvorite ga ponovo pritiskom na iste tipke i trebali biste početi vidjeti mnogo vrijednosti koje dolaze. Nećete moći vidjeti koje su to vrijednosti zbog brzine kojom dolaze, ali ako isključite programer će prestati i možete ih pročitati. Pokušavam nabaviti nešto pomoću čega bi ih automatski grafički prikazali za prikaz napona ili ih prikazali LED diodama, ali to je još uvijek u procesu.
  • Iako možda ne vidite jasno vrijednosti, jer prolaze tako brzo, samo znajte da napokon funkcionira i da ga možete izmijeniti prema svojim potrebama!

Korak 7: Demo

Pa, ovo je videozapis na kojem ga pokrećem i koristim ga samo malo da vam pokažem kako bi trebao funkcionirati.

Korak 8: Više ideja o tome kako koristiti ovaj projekt

Više ideja o tome kako koristiti ovaj projekt
Više ideja o tome kako koristiti ovaj projekt
Više ideja o tome kako koristiti ovaj projekt
Više ideja o tome kako koristiti ovaj projekt
Više ideja o tome kako koristiti ovaj projekt
Više ideja o tome kako koristiti ovaj projekt

Evo nekoliko ideja koje možete izgraditi koristeći ovo kao osnovu. Recite mi ako napravite jedan od njih ili ako pokušate, a ne možete pa mogu pomoći!

  • Umjesto čitanja napona, izmijenite kôd tako da šalje natrag temperaturu, pritisak, visinu itd. Smatrao sam da je čip BMP180 vrlo koristan za ovo.
  • Izmjerite udaljenosti pomoću HC-SR04 modula i pošaljite ih natrag do prvog arduina. Pomoću servo upravljača usmjerite senzor kamo god želite.
  • Dodajte još jedan servo kanal za pomicanje kamere gore i bočno; na primjer, na automobilu s daljinskim upravljačem.
  • Dodajte još tri servo kanala (ili više!) I napravite svoj vlastiti daljinski upravljač i prijemnik za četvorokopter, avion, helikopter, auto za daljinsko upravljanje itd!
  • Promijenite servo za reflektor i dodajte ga svom dronu! Također ćete moći kontrolirati intenzitet svjetla (možda će vam trebati neki tranzistori i neki kôd promijeniti)
  • Umjesto čitanja napona na računaru, budite kreativni i dodajte LCD modul ili možete napraviti ploču sa 6 vodilica (dvije zelene, dvije žute i dvije crvene) koje će ih isključivati jedna po jedna kad se baterija spusti i će početi da treperi kada nivo baterije padne ispod vašeg izabranog napona. Napravio sam ovu malu ploču i postavio sliku na početku koraka.

Samo da sve bude jasno, ako ćete napraviti jedan od ovih projekata, imajte na umu da ćete morati izmijeniti oba koda, a možda i neke veze. Pokušajte zapamtiti da ne pržite svoju dasku radeći nešto glupo.

Ako imate više ideja ili vam je potrebna pomoć pri izvođenju jednog od ovih projekata, postavite ih u odjeljak s pitanjima!

Korak 9: Rješavanje problema

Rješavanje problema
Rješavanje problema

Istini za volju, većina problema s kojima sam se do sada susreo odnosila se na dio skice, koji ste već riješili. Pokušat ću vam reći što više mogu problema kako bih vam najviše pomogao.

Prvo, ako pokušavate prenijeti skicu, a ne možete, pokušajte ovo:

Obavezno preuzmite potrebne biblioteke (i ispravne!).

Provjerite jeste li odabrali ispravnu ploču, procesor i programator.

Provjerite je li veza između računala i programera te programera i arduina dobra.

Ako koristite pro mini, pokušajte pritisnuti dugme za resetiranje što je prije moguće nakon što se pojavi poruka "uploading".

O svim ovim stvarima govori se u koraku PROGRAMIRANJE VAŠEG ARDUINA.

Drugo, provjerite sve veze između svega:

Ako se vaš arduino ne napaja, to je očito problem s naponom. Provjerite jesu li kabeli pravilno spojeni i postoji li kratak spoj.

Ako se napaja, ali ne radi, provjerite jesu li sve veze tamo gdje bi trebale biti, da li je arduino programiran za spajanje na servo i razdjelnik napona zaista spojen na njih (drugim riječima, pazite da niste miješali), pokušajte pritisnuti gumb za poništavanje na obje strane i vidjeti što će se dogoditi. U iznimno rijetkim slučajevima sva krivica može biti na modulu NRF24. Pronašao sam jedan koji radi samo na 5 volti i drugi koji radi samo na 3.3v. Provjerite rješava li ovo nešto. Takođe mi se dogodilo da je samo jedan arduino radio sa 3.3v radiom, a drugi samo sa 5v. Iznenađujuće, zar ne?

Treće, ako možete premjestiti servo, ali su naponi pogrešni, provjerite jesu li spojevi na razdjelnik napona isti kao na dijagramu u koraku 3 i veza s arduinom. S druge strane, ako dobijete napone, ali ne možete pravilno pomaknuti servo, provjerite potenciometar i njegove veze, vezu servoa na digitalni pin i na Vcc i Gnd te je li servo zaglavljen, slomljen ili u kratkog spoja. Pokušajte ga promijeniti s drugim servo uređajem. Uvjerite se da je digitalni pin isti kao onaj koji je naveden u kodu

Pa, to su skoro sve stvari koje bi mi mogle pasti na pamet o problemima na koje biste mogli naići. Nadam se da se nikada neće dogoditi i sretni projekti!

Hvala vam što ste pročitali moj Instructable! Podijelite i glasajte za takmičenje PRVI PUT AUTORA!

Preporučuje se: