Kazalo:

NRF24 dvosmerni radio za telemetrijo: 9 korakov (s slikami)
NRF24 dvosmerni radio za telemetrijo: 9 korakov (s slikami)

Video: NRF24 dvosmerni radio za telemetrijo: 9 korakov (s slikami)

Video: NRF24 dvosmerni radio za telemetrijo: 9 korakov (s slikami)
Video: Arducopter на гоночном квадрокоптере. Это вам не INAV! Часть первая. Базовая настройка 2024, Julij
Anonim
NRF24 Dvosmerni radio za telemetrijo
NRF24 Dvosmerni radio za telemetrijo

Živjo fantje, moje ime je Pedro Castelani in prinašam vam svojo prvo navodilo: izdelava dvosmernega radia z arduinom za, karkoli potrebujete.

V tem projektu bomo naredili dva ločena vezja, ki bosta delovala tako kot sprejemnik kot oddajnik. Najpomembnejši komponenti sta dve arduino plošči (vsi delujeta) in dva transciver modula nrf24. V mojem primeru krmilim servo s potenciometrom iz drugega arduina in pošljem napetosti dvocelične lipo baterije nazaj na prvo.

Nameravam ga uporabiti kot dodatek k svojemu brezpilotnemu letalu, ki nima telemetrije niti servo krmiljenja. Lahko pa ga uporabite za druge stvari, na primer za gradnjo lastnega štirikopterja, letala, avtomobila za daljinsko upravljanje itd. Iz priložene kode lahko tudi spremenite kakršne koli spremembe glede na svoje potrebe. Poskusil bom tudi razložiti, kako ga pravilno spremeniti (kar se mi je vzelo nekaj časa, da sem se sam naučil, saj sem bil navajen druge vrste uporabe čipa nrf24).

1. korak: Materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

Za začetek našega projekta moramo poznati vse potrebne dele. Spodaj je seznam potrebnih osnovnih. Večino sem jih kupil v lokalni trgovini z elektroniko, kjer živim, zato vam jih ne bom mogel priporočiti. Lahko poskusite Amazon ali kjer koli drugje. Ne pravim, da bi jih morali naročiti tam, ampak to je le predlog.

  1. Dve plošči Arduino (vsak bi moral delati. Imam dve arduino pro mini, ki sta mi zelo všeč, ker imata 13 digitalnih zatičev in 8 analognih, medtem ko ima Uno le 6 analognih).
  2. Dva modula Nrf24. Nekateri imajo zunanje antene z večjim dosegom prenosa. Izberite tiste, ki so vam najbolj všeč.
  3. Moški-ženski in žensko-moški kabli.
  4. Plošča za izdelavo prototipov.
  5. Arduino programator (za arduino pro mini, če ga imate z USB povezavo, ga ne potrebujete).
  6. Arduino IDE (programska oprema). Prenesite od tukaj.
  7. V mojem primeru sem uporabil tudi:
  • Servo. Kogar koli lahko dobiš. Všeč mi je SG90, majhen, namenjen arduinu.
  • Potenciometer (med 10k in 20k ohmov). Lahko ga kupite v lokalni trgovini z elektroniko ali uporabite krmilno palčko, izdelano za arduino. Nekaj slik tistih, ki jih imam. Enega sem dobil tudi od pokvarjenega krmilnika brezžičnih dronov, samo zato, da vam dam nekaj idej
  • 4 enaki normalni upori. Uporabil sem 10 tisoč, ki sem jih dobil od dedkove hiše. Uporabljam jih kot delilnike napetosti.
  • Majhna bakrena blazinica (ki sem jo dobila tudi od dedka) za spajanje uporov.
  • Zatiči. Uporablja se za enostavno priključitev mostičnih kablov od arduina do uporov.
  • 2s lipo baterija. Uporabljam ga za napajanje enega od mojih arduinov. Upori so priključeni nanj in berejo njegove napetosti. Nameravam svoj arduino priključiti na 2s baterijo mojega drona, saj ne potrebuje zunanjega vira napajanja in mi hkrati pove, koliko baterije še ostane.
  • Spajkalnik in spajkanje. Potrebno je spajati upore, plošče in zatiče skupaj.

2. korak: Funkcija in koda

Funkcija in koda
Funkcija in koda

Ko so omenjeni vsi materiali, se začnemo pogovarjati o funkciji modulov.

Kako deluje: Pokličimo enega arduina "A", drugega pa "B". V mojem primeru sem jih po programiranju obeh povezal z ustreznim radijskim čipom in dodal potenciometer na arduino A, upore in servo na arduino B. Modul A pošilja vrednosti B in premika servo. B odčita napetosti 2s baterije in jih pošlje nazaj v A. Nato se celoten krog začne znova. Ker A prejema vrednosti, ki niso izražene mehansko, je povezan s programerjem, preko katerega jih lahko beremo s serijskim monitorjem (vključen v Arduino IDE)

Koda: Skico za arduino A (povezano s programerjem in potenciometrom) kličem TwoWayRadio_1, skico za arduino B pa TwoWayRadio_2WithServo

TwoWayRadio_1 in TwoWayRadio_2WithServo najdete tik pod tem odstavkom. V vsaki kodi je razlaga, da je vse lažje razumeti.

3. korak: moduli spajkanja: napetostni delilec in potenciometer

Spajkalni moduli: napetostni delilec in potenciometer
Spajkalni moduli: napetostni delilec in potenciometer
Spajkalni moduli: napetostni delilec in potenciometer
Spajkalni moduli: napetostni delilec in potenciometer
Spajkalni moduli: napetostni delilec in potenciometer
Spajkalni moduli: napetostni delilec in potenciometer
Spajkalni moduli: napetostni delilec in potenciometer
Spajkalni moduli: napetostni delilec in potenciometer

Ta korak ni obvezen, saj boste morda želeli uporabiti potenciometer-krmilno palčko, zasnovano posebej za arduino, in namesto razdelilnika napetosti uporabiti drug modul. Vseeno sem načrtoval vse (vključno s kodami) za te module.

Potenciometer:

Ta del je približno najlažji v koraku spajkanja. Na potenciometer boste morali lemiti nekaj mostičnih kablov. Če želite, lahko potenciometer najprej spajkate na ploščo in nato spajkate nekaj zatičev. Ko ga boste morali uporabiti, samo priključite mostične kable na arduino in nato na zatiče na plošči. Ko kablov ne uporabljate, jih lahko odstranite in uporabite za drug projekt. Če pa storite tako, kot sem storil, lahko pustite potenciometer spajkano neposredno na kable

  • Če delate tako kot jaz, si priskrbite tri kable žensko-ženski mostiček, odrežite enega od konic in tam odstranite izolacijo, na vsaki žici pustite majhen kos bakrenega ožičenja.
  • Segrejte svoj spajkalnik in prilepite modificirane skakalce na zatiče potenciometrov. Če lahko, poskusite dobiti različne barve, da se spomnite, katera je vcc, gnd in "signalna" (srednja). Te kable povežite z ustreznimi analognimi zatiči na arduinu. Na začetku koraka je nekaj slik, kako je videti. Potenciometer ni običajen, pravzaprav je majhno kolo s petimi zatiči. Rabil sem nekaj časa, da sem ugotovil, kaj je to. Poskusite to narediti lažje in uporabite običajen potenciometer, kot je prikazano v koraku MATERIALI.
  • Če ga spajkate na ploščo, vzemite potenciometer in ploščo ter jih spajkajte skupaj s spajkalnikom.
  • Vzemite zatiče (tri) in jih postavite na najbolj primeren način. Za spajanje med vsakim zatičem in zatiči potenciometra uporabite spajkanje. Ne vzpostavljajte povezave med več kot dvema zatičema, sicer ne bo delovalo (delovalo bo kot kratek stik).
  • Pridobite nekaj žic za ženske-ženske ali ženske-moške in jih povežite z vašega arduina na svoj novi potenciometrični modul (ne pozabite, kateri je kateri).

2. Napetostni delilec:

  • Ta del je nekoliko bolj zapleten. Potrebovali boste štiri upore, pet zatičev in ploščo. Kodo sem zasnoval za 2s baterijo (dve celici), lahko pa jo uporabite tudi za 1s tako, da nekoliko spremenite skico arduino in strojno opremo. Priložil sem slike dveh delilnikov napetosti, enega s samo 2 uporoma (za baterije 1s) in enega s štirimi (uganili ste: baterije 2s).
  • Začnimo z dvema. Nimam slik gradbenega procesa, odkar sem po tem, ko sem ga končal s spajkanjem, še dolgo čakal na ta navodila. Prilagam slike končnega rezultata, zato bom poskušal biti čim bolj jasen.
  • Začnite tako, da dobite perfboard in 5 zatičev. Spajkajte jih ob strani in ne dovolite, da se dotikajo drug drugega.
  • Spajate upore, kot je prikazano na zadnji sliki na začetku koraka (diagram majhnega vezja). Povezave med vsakim uporom in zatičem so narejene s spajkanjem. Poskusite zasesti čim manj prostora.
  • Ko končate, bi moralo izgledati podobno kot slike končnega delilnika napetosti, ki sem jih objavil zgoraj.
  • Delitelj napetosti 1s je v bistvu enak, z izjemo, da uporabljate le tri zatiče in dva upora. Priložil sem slike, kako izgleda, ko je končano. Samo poglejte diagram za eno 2s in si jo predstavljajte brez signalne žice 1, srednje žice in uporov r2 in r3 in tam jo imate!
  • Torej, če želite 1s delilnik napetosti, je lahko le nekoliko bolj zapleteno kot le uporaba 2s.

4. korak: Programiranje vašega Arduina

Programiranje vašega Arduina
Programiranje vašega Arduina
  1. Skoraj smo končali!
  2. Ko ste prenesli programsko opremo Arduino IDE s spletnega mesta, povezanega v koraku MATERIALS, prenesite skice iz koraka FUNKCIJA IN KODA.
  3. Nato jih odprite v Arduino IDE.
  4. Odprite »Orodja« na katerem koli zavihku in kliknite »Plošče«. S seznama izberite svojo ploščo. Kliknite "Procesor" in nato "Programer" in izberite vsakega glede na vašo ploščo. Nato se vrnite na skico. Precej priročno je poiskati informacije o svoji tabli na internetu. Samo poiščite ime in si oglejte specifikacije.
  5. Kliknite "skica" (zgoraj), nato "vključi knjižnico", nato "upravljajte knjižnice". Na sredini zaslona se mora odpreti majhno okno. V iskalno možnost vnesite "rf24". Prenesite želeno knjižnico. Kodo boste morali naložiti na ploščo arduino.
  6. Če se želite prepričati, kliknite simbol "Tick" (zgoraj levo), da preverite, ali ni napak. Nato nadaljujte z nalaganjem s pritiskom na puščico, ki kaže desno, poleg simbola »Tick«.
  7. Če je vaša plošča Pro Mini, bom čez nekaj časa razložil, kako vse povezati. Če ni, ga samo naložite in ko končate programiranje obeh arduinov, preberite naslednji korak, potem ko ste prebrali spodnje opozorilo.
  8. Ker imate dve plošči, se spomnite, s katero kodo je bila programirana, da se izognete prihodnjim težavam.
  9. Torej, če imate Pro Mini, boste potrebovali programerja. Obstajata dve vrsti programerjev: 5 -polni in 6 -polni. Osredotočil se bom na 5 pin, saj so tisti, ki jih imam. Povezave so naslednje (prvi pin je od programerja, nato arduino): Gnd-Gnd; 5v-Vcc (razen če je vaš Pro Mini 3.3v, v tem primeru je 3.3v-Vcc); Rxd-Txo; Txd-Rxi. Priložil sem sliko plošče in programerja, za vsak slučaj, če morate preveriti.
  10. Arduino povežite s programerjem, programer pa z računalnikom. Odprite IDE in kliknite gumb za nalaganje. Če pogledate na levi spodnji del zaslona, boste videli sporočilo, ki pravi "sestavljanje". V trenutku, ko se to sporočilo spremeni v "nalaganje", pritisnite gumb za ponastavitev na arduino Pro Mini. Čez nekaj časa se bo skica končala in prikazalo se bo sporočilo »Končano nalaganje«. Ko se to zgodi, ste končali in pripravljeni preiti na naslednji korak.

5. korak: Povežite vse

Povezovanje vsega
Povezovanje vsega
Povezovanje vsega
Povezovanje vsega
Povezovanje vsega
Povezovanje vsega
Povezovanje vsega
Povezovanje vsega
  1. Ko smo programirali oba arduina, moramo vse povezati, da bo deloval. Tu bomo potrebovali vse prej omenjeno: arduino, module nrf24, kable, servo, programer, razdelilnik napetosti, potenciometer itd.
  2. Najprej bomo povezali arduino, ki deluje s programerjem. Na začetku koraka so slike povezav nrf24. Pin irq, ki naj bi šel na pin 8 na arduinu, sploh ni povezan. Ostalo je tako kot na sliki za oba arduina (za več informacij si lahko preberete opombe znotraj slik)
  3. Vcc za radio je lahko priključen na 3.3 ali 5v. Včasih deluje le z enim od njih. Poskusite z 3.3 in nato 5, če ne bo delovalo. Za 3.3 uporabite 3.3v pin programatorja. To sem moral narediti, kot boste videli na slikah končnega izdelka.
  4. Povežite programer z arduinom, kot je navedeno v prejšnjem koraku.
  5. "Signalni" kabel potenciometra priključite na analogni pin A0.
  6. Priključite potenciometer "Pozitivno" na Vcc (samo 5v, ne 3.3) in "Negativno" na Gnd.
  7. Pojdite na drugi arduino.
  8. Priključite radio, kot je navedeno zgoraj, glede na slike.
  9. Priključite servo signalni kabel (oranžno-rumeno-bel. Preverite specifikacije za servo) na digitalni pin 2, njegov gnd pa na arduino Gnd, njegov pozitiven pa na arcino Vcc.
  10. Priključite signalni kabel 1 od delilnika napetosti na pin A0 in signalni kabel 2 na pin A1.
  11. Z uporabo protobora povežite negativni kabel delilnika napetosti, arduino gnd in gnd baterije (črni kabel na vtiču jst).
  12. Priključite "srednji kabel" od delilnika napetosti na srednji akumulator, med rdečimi in črnimi kabli vtiča jst (bela barva).
  13. Priključite "pozitivni" kabel od delilnika napetosti na pozitivni priključek akumulatorja in na arduino Raw. Ne priključujte ga neposredno na Vcc, saj je ta zatič posebej za 5V. Surovi zatič uporablja katero koli napetost nad 3,3 ali 5v do 12v in jo regulira. Vcc zatiči nato postanejo izhodi s 5V.

Skoraj ste končali! Vaši končni izdelki morajo izgledati kot zgornje slike. Ponovno preverite vsako povezavo, da se izognete kratkemu stiku.

6. korak: Ojačite svoj projekt

  • Vaš arduino s servo pogonom je bil zadnji korak, ko ste akumulator priključili na celo vezje. Torej, drugi arduino morate povezati z USB priključkom in končali ste!
  • Premaknite potenciometer in videli boste, kako se premika tudi servo. V mojem primeru je servo pritrjen na enoosno kamero, kar je omejilo kot, zato sem moral prilagoditi parametre. To boste vseeno našli v kodi.
  • Če želite videti napetosti, ko priključite programer na računalnik, odprite programsko opremo arduino in pritisnite "Ctrl+Shift+m". Odpre se okno z napisom "Serial Monitor". Na dnu tega okna je možnost, ki se glasi "(številka) baud". Kliknite nanjo in izberite "9600". Zaprite monitor in ga znova odprite s pritiskom na iste tipke in začelo bi se prikazovati veliko vrednosti. Ne boste mogli videti, kakšne so te vrednosti zaradi hitrosti, s katero prihajajo, če pa odklopite programer se bodo ustavili in jih lahko preberete. Poskušam dobiti nekaj, s čimer bi jih samodejno grafično prikazal za ogled napetosti ali jih predstavil z LED diodami, vendar je to še vedno v postopku.
  • Čeprav vrednosti morda ne vidite jasno, saj tako hitro minejo, vedite, da končno deluje in da jih lahko spremenite tako, da ustreza vašim potrebam!

7. korak: Demo

No, to je videoposnetek, kako ga vklopim in ga malo uporabim, da vam pokažem, kako naj deluje.

8. korak: Več idej o uporabi tega projekta

Več idej o tem, kako uporabiti ta projekt
Več idej o tem, kako uporabiti ta projekt
Več idej o tem, kako uporabiti ta projekt
Več idej o tem, kako uporabiti ta projekt
Več idej o uporabi tega projekta
Več idej o uporabi tega projekta

Tukaj je nekaj idej, ki jih lahko zgradite na podlagi tega. Povejte mi, če naredite enega od njih ali če poskusite in ne morete, da vam lahko pomagam!

  • Namesto da berete napetosti, spremenite kodo tako, da pošilja nazaj temperaturo, tlak, višino itd. Zdelo se mi je, da je čip BMP180 za to zelo uporaben.
  • Izmerite razdalje z modulom HC-SR04 in jih pošljite nazaj na prvi arduino. S servo usmerite senzor kamor koli želite.
  • Dodajte še en servo kanal za premikanje kamere navzgor in vstran; na primer na avtomobilu z daljinskim upravljalnikom.
  • Dodajte tri druge servo kanale (ali več!) In naredite lasten oddajnik in sprejemnik za štirikolesnik, letalo, helikopter, avtomobil za daljinsko upravljanje itd.!
  • Zamenjajte servo za reflektor in ga dodajte svojemu brezpilotnemu letalu! Prav tako boste lahko nadzorovali jakost svetlobe (morda boste potrebovali nekaj tranzistorjev in nekaj kode)
  • Namesto da berete napetosti v računalniku, bodite ustvarjalni in dodajte LCD-modul ali pa naredite 6-led ploščo (dve zeleni, dve rumeni in dve rdeči), ki ju bosta izklapljala ena za drugo, ko se baterija spusti in bo začel utripati, ko raven baterije pade pod izbrano napetost. Naredil sem to majhno tablo in na začetku koraka objavil sliko.

Če želite vse razjasniti, če želite narediti enega od teh projektov, ne pozabite, da boste morali spremeniti obe kodi in morda nekatere povezave. Poskusite si zapomniti, da svoje plošče ne ocvrtite in naredite nekaj neumnega.

Če imate več idej ali potrebujete pomoč pri izvedbi enega od teh projektov, objavite v razdelku z vprašanji!

9. korak: Odpravljanje težav

Odpravljanje težav
Odpravljanje težav

Resnici na ljubo je večina težav, s katerimi sem se srečal do zdaj, povezana s skico, ki ste jo že rešili. Poskušal vam bom povedati čim več težav, da vam bom najbolj pomagal.

Najprej, če poskušate naložiti skico in ne morete, poskusite to:

Prenesite potrebne knjižnice (in pravilne!).

Prepričajte se, da ste izbrali pravilno ploščo, procesor in programer.

Preverite, ali je povezava med računalnikom in programerjem ter programerjem in arduinom dobra.

Če uporabljate pro mini, poskusite čim prej pritisniti gumb za ponastavitev, potem ko se prikaže sporočilo "nalaganje".

O vseh teh stvareh je govora v koraku PROGRAMIRANJE VAŠEGA ARDUINA.

Drugič, preverite vse povezave med vsem:

Če se vaš arduino ne vklopi, je to očitno težava z napetostjo. Preverite, ali kabli niso pravilno priključeni in ali je prišlo do kratkega stika.

Če se vklopi, vendar ne deluje, se prepričajte, da so vse povezave tam, kjer bi morale biti, da je arduino, programiran za priključitev na servo in delilnik napetosti, z njimi res povezan (z drugimi besedami, ne mešajte jih dvignite), poskusite pritisniti gumb za ponastavitev na obeh in poglejte, kaj se zgodi. V izjemno redkih primerih je lahko vsa krivda na modulu NRF24. Našel sem enega, ki deluje samo na 5 voltov, drugega pa na 3.3V. Preverite, če to kaj reši. Zgodilo se mi je tudi, da je samo en arduino delal z radijem 3.3v, drugi pa samo s 5v. Presenetljivo, kajne?

Tretjič, če lahko premaknete servo, vendar so napetosti napačne, preverite, ali so povezave z delilnikom napetosti, kot je prikazano na diagramu v koraku 3, in povezava z arduinom. Če na drugi strani dobite napetosti, vendar servomotorja ne morete pravilno premakniti, preverite potenciometer in njegove povezave, povezavo servomotorja z digitalnim zatičem ter na Vcc in Gnd in če je servo zataknjen, pokvarjen ali v kratek stik. Poskusite ga zamenjati z drugim servo. Prepričajte se, da je digitalni pin enak tistemu, ki je naveden v kodi

No, to so skoraj vse stvari, ki bi mi lahko padle na pamet o težavah, na katere bi lahko naleteli. Upam, da se to nikoli ne zgodi in veseli projekti!

Hvala, ker ste prebrali moj Instructable! Prosimo, delite in glasujte za natečaj PRVIČ AUTOR!

Priporočena: