Sisukord:

NRF24 kahesuunaline raadio telemeetria jaoks: 9 sammu (piltidega)
NRF24 kahesuunaline raadio telemeetria jaoks: 9 sammu (piltidega)

Video: NRF24 kahesuunaline raadio telemeetria jaoks: 9 sammu (piltidega)

Video: NRF24 kahesuunaline raadio telemeetria jaoks: 9 sammu (piltidega)
Video: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, Juuli
Anonim
NRF24 kahesuunaline raadio telemeetria jaoks
NRF24 kahesuunaline raadio telemeetria jaoks

Tere poisid, minu nimi on Pedro Castelani ja ma toon teile oma esimese juhendatava: ehitada arduinoga kahesuunaline raadio, noh, igaks otstarbeks.

Selles projektis valmistame kaks eraldi ahelat, mis toimivad nii vastuvõtja kui ka saatjana. Kõige olulisemad komponendid on kaks arduino plaati (kõik töötavad) ja kaks nrf24 transciever moodulit. Minu puhul juhtin teise arduino potentsiomeetriga servot ja saadan kaheelemendilise lipoaku pinged tagasi esimesele.

Kavatsen seda kasutada oma drooni lisana, millel pole telemeetriat ega servo kardaanjuhtimist. Saate seda aga kasutada ka muudeks asjadeks, näiteks oma nelikopteri, lennuki, rc -auto jms ehitamiseks. Kaasasolevast koodist saate teha ka soovitud muudatusi vastavalt oma vajadustele. Üritan ka selgitada, kuidas seda õigesti muuta (mille õppimine võttis mul natuke aega, kuna olin harjunud nrf24 kiibi teistlaadi kasutamisega).

Samm: materjalid

Materjalid
Materjalid
Materjalid
Materjalid
Materjalid
Materjalid

Projekti alustamiseks peame teadma kõiki vajalikke osi. Allpool on loetelu vajalikest põhilistest. Ostsin enamiku neist kohalikust elektroonikapoest, kus ma elan, nii et ma ei saa teile soovitada ühtegi kohta, kus neid osta. Võite proovida Amazoni või mõnda muud kohta. Ma ei ütle, et peaksite need sealt tellima, kuid see on vaid soovitus.

  1. Kaks Arduino plaati (igaüks peaks töötama. Mul on kaks arduino pro mini, mis mulle väga meeldib, kuna neil on 13 digitaalset tihvti ja 8 analoogi, samas kui Unol on ainult 6 analoogi).
  2. Kaks Nrf24 moodulit. Mõnel on väliste antennidega suurem edastusulatus. Valige need, mis teile kõige rohkem meeldivad.
  3. Naine-naine ja naine-mees džemprikaablid.
  4. Prototüüpimislaud.
  5. Arduino programmeerija (arduino pro mini jaoks, kui teil on see USB -ühendusega, ei vaja te seda).
  6. Arduino IDE (tarkvara). Laadige alla siit.
  7. Minu puhul kasutasin ka:
  • Servo. Igaüks, kelle saate. Mulle meeldib SG90, väike, mis on mõeldud arduino jaoks.
  • Potentsiomeeter (vahemikus 10k kuni 20k oomi). Seda saab osta kohalikust elektroonikapoest või kasutada arduino jaoks valmistatud juhtkangi. Seal on mõned pildid nendest, mis mul on. Sain ka ühe purunenud drooni rc kontrollerilt, et anda teile mõned ideed
  • 4 võrdset tavalist takistit. Kasutasin 10 000 vanaisa majast. Ma kasutan neid pingejaoturitena.
  • Väike vasest padjaplaat (mille sain ka oma vanaisalt) takistite kokkujootmiseks.
  • Nööpnõelad. Kasutatakse arduino hüppakaablite hõlpsaks ühendamiseks takistitega.
  • 2s lipo aku. Ma kasutan seda ühe oma arduino toiteks. Takistid on sellega ühendatud ja loevad selle pingeid. Kavatsen oma arduino ühendada oma drooni 2s akuga, kuna see ei vaja välist toiteallikat ja samal ajal ütle mulle, kui palju aku on alles.
  • Jootekolb ja jootekolb. Vajalik takistite, perfboardi ja tihvtide jootmiseks.

2. samm: funktsioon ja kood

Funktsioon ja kood
Funktsioon ja kood

Kui kõik materjalid on mainitud, hakkame rääkima moodulite funktsioonist.

Kuidas see toimib: nimetage üks arduino "A" ja teine "B". Minu puhul ühendasin need pärast mõlema programmeerimist nende vastava raadiokiibiga ja lisasin potentsiomeetri arduino A -le ning takistid ja servo arduino B -le. Moodul A saadab väärtused B -le ja liigutab servot. B loeb 2s aku pingeid ja saadab need tagasi A. Siis algab kogu ring uuesti. Kuna A võtab vastu väärtused, mida mehaaniliselt ei väljendata, ühendatakse see programmeerijaga, mille kaudu saame neid jadamonitoriga (Arduino IDE -s sisalduv) lugeda

Kood: ma kutsun arduino A visandit (ühendatud programmeerija ja potentsiomeetriga) TwoWayRadio_1 ja eskiisi arduino B TwoWayRadio_2WithServo jaoks

TwoWayRadio_1 ja TwoWayRadio_2WithServo leiate selle lõigu alt. Iga koodi sees on selgitus, et kõike oleks lihtsam mõista.

3. samm: jootmismoodulid: pingejagur ja potentsiomeeter

Jootmismoodulid: pingejagur ja potentsiomeeter
Jootmismoodulid: pingejagur ja potentsiomeeter
Jootmismoodulid: pingejagur ja potentsiomeeter
Jootmismoodulid: pingejagur ja potentsiomeeter
Jootmismoodulid: pingejagur ja potentsiomeeter
Jootmismoodulid: pingejagur ja potentsiomeeter
Jootmismoodulid: pingejagur ja potentsiomeeter
Jootmismoodulid: pingejagur ja potentsiomeeter

See samm on valikuline, kuna võiksite kasutada spetsiaalselt arduino jaoks mõeldud potentsiomeetri juhtkangi ja kasutada pingejaguri asemel mõnda muud moodulit. Planeerisin aga nende moodulite jaoks kõik (koodid kaasa arvatud).

Potentsiomeeter:

See osa on jootmise etapis peaaegu kõige lihtsam. Peate lihtsalt potentsiomeetrile jootma mõned hüppajakaablid. Soovi korral võite esmalt joota potentsiomeetri parfüümi külge ja seejärel joota mõned tihvtid. Kui peate seda kasutama, ühendage lihtsalt hüppajakaablid arduinoga ja seejärel perfboardi tihvtidega. Kui kaableid ei kasutata, võite need eemaldada ja kasutada mõne muu projekti jaoks. Kui aga teete nii nagu mina, võite jätta potentsiomeetri joodetud otse kaablite juurde

  • Kui teete nii nagu mina, hankige kolm emase-emase hüppajakaablit, lõigake üks otsast ära ja eemaldage seal isolatsioon, jättes igale juhtmele väikese vasktraadistiku.
  • Kuumutage jootekolvi ja jootke muudetud džemprid potentsiomeetrite tihvtide külge. Kui saate, proovige saada erinevaid värve, et saaksite meenutada, milline neist on vcc, gnd ja "signaal" (keskmine). Ühendage need kaablid arduino vastavate analoogpistikutega. Sammu alguses on mõned pildid selle kohta, kuidas see lõppes. Potentsiomeeter ei ole tavaline, see on tegelikult väike ratas, millel oli viis tihvti. Mul läks natuke aega, et teada saada, kumb on kumb. Proovige seda lihtsamini teha ja kasutage tavalist potentsiomeetrit, nagu on näidatud MATERJALIDE etapis.
  • Kui joote selle parfüüriplaadile, hankige potentsiomeeter ja perfboard ning jootke need koos jootekolbiga kokku.
  • Hankige tihvtid (kolm) ja asetage need kõige mugavamal viisil. Kasutage jootet, et luua ühendus iga tihvti ja potentsiomeetri tihvtide vahel. Ärge looge ühendust rohkem kui kahe tihvti vahel või see ei tööta (see toimib lühisena).
  • Hankige mõni naissoost või naissoost ja isase hüppaja juhtmed ning ühendage need oma arduinost oma uue potentsiomeetrimooduliga (pidage meeles, kumb on).

2. Pingejagur:

  • See osa on natuke keerulisem. Peate hankima neli takistit, viis tihvti ja perfboardi. Kavandasin koodi kasutamiseks 2 -sekundilise aku jaoks (kaks elementi), kuid saate seda kasutada ka 1 -ks, muutes arduino visandit ja riistvara natuke. Lisasin pildid kahest enda tehtud pingejagurist, millest ühes oli ainult 2 takisti (1s patareide jaoks) ja teises nelja (arvasite: 2s patareid).
  • Alustame 2 -ga. Mul pole pilte ehitusprotsessist, kuna hakkasin seda juhendit tükk aega pärast jootmise lõpetamist kirjutama. Lisan pilte lõpptulemusest, nii et püüan olla võimalikult selge.
  • Alustage perfboardi ja 5 tihvti hankimisega. Jootke need külje lähedale ja ärge laske neil üksteist puudutada.
  • Jootke takistid, nagu on näidatud etapi alguses viimasel pildil (väike vooluahela skeem). Ühendused iga takisti ja tihvti vahel on valmistatud joodisega. Püüdke hõivata võimalikult vähe ruumi.
  • Kui olete lõpetanud, peaks see välja nägema umbes nagu minu ülalpool postitatud valmis pingejaguri pildid.
  • 1s pingejagur on põhimõtteliselt sama, välja arvatud see, et kasutate ainult kolme tihvti ja kahte takistit. Lisasin pildid selle kohta, kuidas see pärast lõpetamist välja näeb. Vaadake lihtsalt 2 -de skeemi ja kujutage seda ette ilma signaalikaabli 1, keskmise juhtme ja takistiteta r2 ja r3 ning seal on see olemas!
  • Niisiis, kui soovite 1 -sekundilist pingejaoturit, võib see olla natuke keerulisem kui lihtsalt 2 -sekundi kasutamine.

Samm: Arduino programmeerimine

Arduino programmeerimine
Arduino programmeerimine
  1. Oleme peaaegu lõpetanud!
  2. Pärast Arduino IDE tarkvara allalaadimist saidilt, mis on lingitud sammuga MATERJALID, laadige eskiis FUNKTSIOON JA KOOD alla.
  3. Seejärel avage need Arduino IDE -s.
  4. Avage mõlemal vahekaardil "Tööriistad" ja klõpsake "Lauad". Valige loendist oma tahvel. Klõpsake "Protsessor" ja seejärel "Programmeerija", valides igaüks vastavalt oma plaadile. Seejärel naaske visandi juurde. On üsna mugav vaadata oma tahvli teavet Internetist. Lihtsalt otsige nimi ja vaadake spetsifikatsioone.
  5. Klõpsake "eskiis" (üleval), seejärel "kaasake raamatukogu", seejärel "hallake teeke". Ekraani keskel peaks avanema väike aken. Sisestage otsinguvõimalus "rf24". Laadige alla soovitud kogu. Peate saama koodi arduino tahvlile üles laadida.
  6. Lihtsalt veenduge, et klõpsata sümbolil "Puuk" (vasakul üleval) veendumaks, et sellel pole vigu. Seejärel jätkake selle üleslaadimist, vajutades sümboli "Tick" kõrval paremale suunatud noolt.
  7. Kui teie plaat on Pro Mini, selgitan mõne aja pärast, kuidas kõike ühendada. Kui ei, siis laadige see lihtsalt üles ja kui olete mõlema arduino programmeerimise lõpetanud, jätkake pärast alloleva hoiatuse lugemist järgmise sammuga.
  8. Kuna teil on kaks tahvlit, MÄLGE tulevaste probleemide vältimiseks MÄTKE, millise koodiga igaüks oli programmeeritud.
  9. Seega, kui teil on Pro Mini, vajate programmeerijat. Programmeerijaid on kahte tüüpi: 5 -pin ja 6 -pin. Keskendun 5 tihvtiga, kuna need on need, mis mul on. Ühendused on järgmised (esimene pin on programmeerijalt, seejärel arduino): Gnd-Gnd; 5v-Vcc (välja arvatud juhul, kui teie Pro Mini on 3,3 V, sel juhul on see 3,3 V-Vcc); Rxd-Txo; Txd-Rxi. Lisasin pildi nii tahvlist kui ka programmeerijast, igaks juhuks peate kontrollima.
  10. Ühendage arduino programmeerijaga ja programmeerija arvutiga. Avage IDE ja klõpsake üleslaadimisnuppu. Kui vaatate ekraani vasakut alaosa, näete teadet "kompileerimine". Kui see teade muutub "üleslaadimiseks", vajutage arduino Pro Mini lähtestamisnuppu. Mõne aja pärast visand lõpeb ja ilmub teade "Üleslaadimine lõpetatud". Kui see juhtub, olete lõpetanud ja olete valmis järgmise sammu juurde minema.

Samm: ühendage kõik

Kõigi ühendamine
Kõigi ühendamine
Kõigi ühendamine
Kõigi ühendamine
Kõigi ühendamine
Kõigi ühendamine
Kõigi ühendamine
Kõigi ühendamine
  1. Pärast mõlema arduino programmeerimist peame selle toimimiseks kõik ühendama. Siin vajame kõike, mida eespool mainitud: arduinosid, nrf24 mooduleid, kaableid, servot, programmeerijat, pingejaoturit, potentsiomeetrit jne.
  2. Esmalt ühendame programmeerijaga töötava arduino. Etapi alguses on pildid nrf24 ühendustest. Irq tihvt, mis väidetavalt läheb arduino 8. tihvti juurde, pole üldse ühendatud. Ülejäänud on mõlema arduino puhul täpselt nagu pildil (lisateabe saamiseks võite lugeda piltide sees olevaid märkmeid)
  3. Raadio Vcc võib olla ühendatud 3,3 või 5 V pingega. Mõnikord töötab see ainult ühega neist. Proovige 3.3 ja seejärel 5, kui see ei tööta. 3.3 jaoks kasutage programmeerija 3,3 V kontakti. Ma pidin seda tegema, nagu näete valmistoote piltidel.
  4. Ühendage programmeerija arduinoga, nagu eelmises etapis öeldud.
  5. Ühendage potentsiomeetri "signaali" kaabel analoogpistikuga A0.
  6. Ühendage potentsiomeeter "Positiivne" Vcc -ga (ainult 5 V, mitte 3.3) ja "Negatiivne" Gnd -ga.
  7. Mine teisele arduinole.
  8. Ühendage raadio vastavalt piltidele, nagu eespool öeldud.
  9. Ühendage servo signaalikaabel (oranžkollane-valge. Kontrollige servo spetsifikatsioone) digitaalse tihvtiga 2 ja selle gnd arduino Gnd-ga ning positiivne arduino Vcc-ga.
  10. Ühendage pingejaguri signaalikaabel 1 tihvtiga A0 ja signaaltraat 2 tihvtiga A1.
  11. Ühendage protoboardi abil pingejaguri negatiivne kaabel, arduino gnd ja aku gnd (must kaabel jst -pistikul).
  12. Ühendage pingejaoturi "keskmine kaabel" aku keskmisega, jst -pistiku punase ja musta kaabli vahel (valge värv).
  13. Ühendage pingejaoturi positiivne kaabel aku positiivse klemmiga ja arduino Rawiga. Ärge ühendage otse Vcc -ga, kuna see tihvt on spetsiaalselt 5 V jaoks. Toores tihvt kasutab pinget üle 3,3 või 5–12 V ja reguleerib seda Seejärel muutuvad Vcc -nööpnõelad 5 V väljunditeks.

Sa oled peaaegu valmis! Teie valmistooted peaksid välja nägema ülaltoodud piltidel. Lühiste vältimiseks kontrollige iga ühendust uuesti.

6. samm: lülitage oma projekt sisse

  • Teie arduino koos servoga sai viimase etapi toite, kui ühendasite aku kogu vooluringiga. Niisiis, peate lihtsalt ühendama teise arduino USB -pordiga ja olete valmis!
  • Liigutage potentsiomeetrit ja peaksite nägema, kuidas ka servo liigub. Minu puhul on servo kinnitatud 1 -teljelise kaamera kardaani külge, mis piiras nurka, nii et pidin parameetreid reguleerima. Selle leiate koodist igal juhul.
  • Pingete nägemiseks avage programmeerija arvutiga ühendades arduino tarkvara ja vajutage "Ctrl+Shift+m". Avaneb aken, mis ütleb "Serial Monitor". Selle akna allosas on suvand "(arv) baud". Klõpsake seda ja valige "9600". Sulgege monitor ja avage see uuesti, vajutades samu klahve ja te peaksite nägema palju väärtusi. Te ei näe nende väärtuste suurust nende tuleku kiiruse tõttu, kuid kui ühendate seadme lahti programmeerija nad peatuvad ja saate neid lugeda. Proovin saada midagi, mille abil neid automaatselt graafikusse kuvada, et vaadata pingeid või kujutada neid LED -idega, kuid see on veel pooleli.
  • Kuigi te ei pruugi väärtusi selgelt näha, kuna need mööduvad nii kiiresti, lihtsalt teadke, et see lõpuks töötab ja et saate seda oma vajadustele vastavaks muuta!

Samm 7: demo

See on video sellest, kuidas ma selle sisse lülitan ja natuke kasutan, et näidata teile, kuidas see peaks toimima.

Samm: rohkem ideid selle projekti kasutamiseks

Veel ideid selle projekti kasutamiseks
Veel ideid selle projekti kasutamiseks
Veel ideid selle projekti kasutamiseks
Veel ideid selle projekti kasutamiseks
Veel ideid selle projekti kasutamiseks
Veel ideid selle projekti kasutamiseks

Siin on mõned ideed, mida saate selle baasina üles ehitada. Öelge mulle, kas teete ühe neist või proovite ja ei saa, et saaksin aidata!

  • Pingete lugemise asemel muutke koodi nii, et see saadab tagasi temperatuuri, rõhu, kõrguse jne. Leidsin, et BMP180 kiip on selle jaoks üsna kasulik.
  • Mõõtke kaugusi HC-SR04 mooduliga ja saatke need tagasi esimesele arduinole. Kasutage servot, et suunata andur ükskõik kuhu.
  • Lisa teine servokanal kaamera üles ja küljele liigutamiseks; näiteks rc -autol.
  • Lisage veel kolm servokanalit (või rohkem!) Ja tehke oma rc -saatja ja vastuvõtja nelikopteri, lennuki, helikopteri, rc -auto jne jaoks!
  • Vahetage prožektori servo ja lisage see oma droonile! Samuti saate juhtida valguse intensiivsust (võib olla vaja mõningaid transistore ja koodi muutmist)
  • Selle asemel, et arvutist pingeid lugeda, olge loominguline ja lisage LCD-moodul, või võite teha 6-juhilise tahvli (kaks rohelist, kaks kollast ja kaks punast), mis lülitab need ükshaaval välja, kui aku tühjeneb ja hakkab vilkuma, kui aku tase langeb alla teie valitud pinge. Tegin selle väikese tahvli ja postitasin sammu alguses pildi.

Lihtsalt kõik selgeks tegemiseks, kui kavatsete mõnda neist projektidest teha, pidage meeles, et peate muutma mõlemat koodi ja võib -olla ka mõnda ühendust. Palun proovige meeles pidada, et ärge praege oma lauda midagi rumalat tehes.

Kui teil on rohkem ideid või vajate abi ühe sellise projekti elluviimisel, postitage see küsimuste sektsiooni!

9. samm: tõrkeotsing

Tõrkeotsing
Tõrkeotsing

Tõtt -öelda oli enamik probleeme, millega ma siiani kokku puutunud, seotud eskiisosaga, mille olete juba lahendanud. Püüan teile võimalikult palju probleeme rääkida, et teid kõige rohkem aidata.

Esiteks, kui proovite visandit üles laadida ja te ei saa seda teha, proovige järgmist

Veenduge, et oleksite alla laadinud vajalikud teegid (ja õiged!).

Veenduge, et olete valinud õige plaadi, protsessori ja programmeerija.

Veenduge, et ühendus arvuti ja programmeerija ning programmeerija ja arduino vahel on hea.

Kui kasutate pro mini, proovige pärast üleslaadimise teate ilmumist võimalikult kiiresti vajutada lähtestamisnuppu.

Kõigist neist asjadest räägitakse teie ARDUINO PROGRAMMIMISE etapis.

Teiseks kontrollige kõiki ühendusi kõige vahel:

Kui teie arduino ei lülitu sisse, on see selgelt pingeprobleem. Kontrollige, kas kaablid pole korralikult ühendatud ja kas seal on lühis.

Kui see lülitub sisse, kuid ei tööta, veenduge, et kõik ühendused oleksid seal, kus nad peaksid olema, et arduino, mis on programmeeritud ühendamiseks servo- ja pingejaguriga, oleks tõesti nendega ühendatud (teisisõnu, veenduge, et te ei oleks segunenud) neid üles), proovige mõlemal vajutada lähtestusnuppu ja vaadake, mis juhtub. Äärmiselt harvadel juhtudel võib kogu süü olla NRF24 moodulil. Leidsin ühe oma, mis töötab ainult 5 volti ja teise, mis töötab ainult 3.3v. Kontrollige, kas see lahendab midagi. Mul juhtus ka nii, et ainult üks arduino töötas raadioga 3.3v ja teine ainult 5v -ga. Üllatav, kas pole?

Kolmandaks, kui saate servot liigutada, kuid pinged on valed, kontrollige, kas ühendused pingejaguriga on samad, mis skeemil 3, ja ühendus arduinoga. Kui aga te saate pingeid, kuid te ei saa servot õigesti liigutada, kontrollige potentsiomeetrit ja selle ühendusi, servo ühendust digitaalse tihvtiga ning Vcc ja Gnd -ga ning kui servo on kinni jäänud, katki või sisse lülitatud lühis. Proovige seda teise servoga muuta. Veenduge, et digitaalne tihvt on sama, mis koodis

Noh, need on peaaegu kõik asjad, mis võivad mulle meelde tulla probleemide kohta, mis võivad tekkida. Loodan, et neid kunagi ei juhtu ja õnnelikke projekte!

Aitäh, et lugesite minu juhendit! Palun jagage seda ja hääletage ESIMENE KORD AUTORI konkursil!

Soovitan: