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, Srpanj
Anonim
NRF24 dvosmjerni radio za telemetriju
NRF24 dvosmjerni radio za telemetriju

Bok dečki, moje ime je Pedro Castelani i donosim vam svoje prve upute: izgradnja dvosmjernog radija s arduinom za, pa, sve što vam treba.

U ovom projektu napravit ćemo dva odvojena kruga koji će djelovati i kao prijemnik i kao odašiljač. Najvažnije komponente su dvije arduino ploče (sve rade) i dva transcever modula nrf24. U mom slučaju, upravljam servo -uređajem s 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 sve izmjene koje želite prema svojim potrebama. Također ću pokušati objasniti kako ga ispravno izmijeniti (za što mi je trebalo neko vrijeme da sam naučim, jer sam navikao na drugu vrstu uporabe čipa nrf24).

Korak 1: Materijali

Materijali
Materijali
Materijali
Materijali
Materijali
Materijali

Za početak našeg projekta moramo znati sve potrebne dijelove. Ispod je popis 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 kupnju. Možete probati Amazon ili bilo koje drugo mjesto. Ne kažem da biste ih trebali naručiti tamo, ali to je samo prijedlog.

  1. Dvije Arduino ploče (svatko 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. Žensko-ženski i žensko-muški kabeli za spajanje.
  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 također sam 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. Nekoliko je slika onih koje imam. Dobio sam ga i od pokvarenog daljinskog upravljača, samo da vam dam nekoliko ideja
  • 4 jednaka normalna otpornika. Koristio sam 10 tisuća 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 svojih 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 i istovremeno mi reći 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 natrag u A. Tada cijeli krug počinje iznova. Budući da A prima vrijednosti koje nisu izražene mehanički, spojen je s programatorom putem kojeg ih možemo čitati serijskim monitorom (uključen u Arduino IDE)

Kôd: Skicu nazivam arduino A (povezano s programatorom i potenciometrom) TwoWayRadio_1, a skicu arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 i TwoWayRadio_2WithServo mogu se pronaći odmah ispod ovog odlomka. Unutar svakog koda postoji objašnjenje samo kako 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 nije obavezan, jer biste možda samo htjeli koristiti potenciometar-joystick dizajniran posebno za arduino i upotrijebiti drugi modul umjesto razdjelnika napona. Ja sam, međutim, sve planirao (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, međutim, učinite isto što i ja, potenciometar možete ostaviti lemljen izravno na kabelima

  • Ako radite kao ja, nabavite tri žensko-ženska kratkospojna kabela, odrežite jedan od vrhova i tamo uklonite izolaciju, ostavljajući mali komad bakrenog ožičenja na svakoj žici.
  • Zagrijte lemilicu i lemite izmijenjene 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 neko vrijeme da saznam što je koje. Pokušajte to učiniti lakše i upotrijebite običan potenciometar kao što je prikazano u koraku MATERIJALI.
  • Spajate li ga 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. Lemljenjem spojite svaki pin i pinove potenciometra. Nemojte povezivati više od dva pina ili neće uspjeti (djelovat će kao kratki spoj).
  • Nabavite neke žice kratkospojnika žensko-žensko ili žensko-muško i povežite ih sa svog arduina na novi modul potenciometra (sjetite se koji je koji).

2. Razdjelnik napona:

  • Ovaj dio je malo kompliciraniji. 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).
  • Krenimo od one 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 kruga). Spojevi između svakog otpornika i pina izvedeni su lemljenjem. Pokušajte zauzeti što je moguće manje prostora.
  • Kad završite, trebao bi izgledati nešto poput slika gotovog razdjelnika napona koje sam gore postavio.
  • Razdjelnik napona od 1s u osnovi je 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 gotovi!
  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 o vašoj ploči na Internetu. Samo potražite naziv i pogledajte specifikacije.
  5. Kliknite na "skica" (gore), zatim "uključi biblioteku", a zatim "upravljanje knjižnicama". U sredini zaslona trebao bi se otvoriti mali prozor. Unesite u opciju pretraživanja "rf24". Preuzmite željenu biblioteku. Bit će potrebno moći 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 "Kvačica".
  7. Ako je vaša ploča Pro Mini, objasnit ću za neko vrijeme 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, Sjetite se 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. Usredotočit ć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, u slučaju da trebate provjeriti.
  10. Povežite svoj arduino s programatorom, a programer s računalom. Otvorite IDE i kliknite gumb za prijenos. Ako pogledate lijevi donji dio zaslona, vidjet ćete poruku koja kaže "sastavljanje". U trenutku kada se ova poruka pretvori u "upload", pritisnite gumb za resetiranje na arduino Pro Mini. Nakon nekog vremena skica će se završiti i pojavit će se poruka s porukom "Gotovo učitavanje". Kad 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 prije 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 spojen. 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 spojen na 3.3 ili 5v. Ponekad radi samo s jednim od njih. Pokušajte s 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. Spojite radio kao što je već rečeno, prema slikama.
  9. Spojite servo signalni kabel (narančasto-žuto-bijeli. 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, gnd arduina 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 s razdjelnika napona na pozitivni pol 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 projekt

  • Vaš arduino sa servo pogonom bio je posljednji korak kada ste bateriju priključili na cijeli krug. Dakle, samo trebate povezati drugi arduino na USB priključak i gotovi ste!
  • Pomaknite potenciometar i trebali biste vidjeti kako se i servo pomič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čunalom, otvorite arduino softver i pritisnite "Ctrl+Shift+m". Otvorit će se prozor s porukom "Serial Monitor". Pri dnu ovog prozora nalazi se opcija koja glasi "(broj) boud". Kliknite na nju i odaberite "9600". Zatvorite monitor i ponovo ga otvorite pritiskom na iste tipke i trebali biste vidjeti da dolazi mnogo vrijednosti. 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 se automatski prikazali grafikoni za prikaz napona ili prikazali LED diodama, ali to je još uvijek u procesu.
  • Iako možda ne vidite jasno vrijednosti, budući da 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 samo ga malo koristim 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. Reci mi ako napraviš jedan od njih ili ako pokušaš i ne možeš pa mogu pomoći!

  • Umjesto čitanja napona, izmijenite kôd tako da šalje natrag temperaturu, tlak, visinu itd. Smatrao sam da je čip BMP180 vrlo koristan za to.
  • Izmjerite udaljenosti s modulom HC-SR04 i pošaljite ih natrag na prvi arduino. 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 vlastiti daljinski upravljač i prijemnik za četverokopter, 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čunalu, budite kreativni i dodajte LCD modul ili možete izraditi 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 počet će treperiti kada razina baterije padne ispod vašeg odabranog napona. Napravio sam ovu malu ploču i objavio 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 svoju ploču ne pržite radeći nešto glupo.

Ako imate više ideja ili vam je potrebna pomoć pri izvođenju jednog od ovih projekata, molimo vas da objavite u odjeljku pitanja!

Korak 9: Rješavanje problema

Rješavanje problema
Rješavanje problema

Istini za volju, većina problema s kojima sam se dosad 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:

Provjerite jeste li preuzeli potrebne knjižnice (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 gumb za resetiranje što je prije moguće nakon što se pojavi poruka "upload".

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

Drugo, provjerite sve veze između svega:

Ako se vaš arduino ne uključi, to je očito problem s naponom. Provjerite jesu li kabeli pravilno spojeni i postoji li kratki 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 stvarno spojen na njih (drugim riječima, pazite da niste miješali ih gore), 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đer mi se dogodilo da je samo jedan arduino radio s radijem od 3.3v, a drugi samo s 5v. Iznenađujuće, zar ne?

Treće, ako možete pomaknuti servo, ali naponi nisu ispravni, 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 kratki spoj. Pokušajte ga promijeniti drugim servo uređajem. Provjerite je li digitalni pin isti onaj koji je naveden u kodu

Pa, to su gotovo sve stvari koje bi mi mogle pasti na pamet u vezi s 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 PRVI PUT AUTORA!

Preporučeni: