INHOUDSOPGAWE:

NRF24 tweerigtingradio vir telemetrie: 9 stappe (met foto's)
NRF24 tweerigtingradio vir telemetrie: 9 stappe (met foto's)

Video: NRF24 tweerigtingradio vir telemetrie: 9 stappe (met foto's)

Video: NRF24 tweerigtingradio vir telemetrie: 9 stappe (met foto's)
Video: Seu nRF24L01 não funciona? Veja esse vídeo! - Navarro Eletrônica 2024, Julie
Anonim
NRF24 Tweerigtingradio vir telemetrie
NRF24 Tweerigtingradio vir telemetrie

Hallo ouens, my naam is Pedro Castelani en ek bring vir jou my eerste instruksies: die bou van 'n tweerigtingradio met arduino, vir alles waarvoor jy dit nodig het.

In hierdie projek maak ons twee afsonderlike stroombane wat as ontvanger en sender dien. Die belangrikste komponente is twee arduino -borde (almal werk) en twee nrf24 transciever -modules. In my geval beheer ek 'n servo met 'n potensiometer van die ander arduino en stuur die spanning van 'n tweesellige lipobattery terug na die eerste.

Ek is van plan om dit as 'n add-on vir my drone te gebruik, wat nie oor telemetrie of servogimbalbeheer beskik nie. U kan dit egter vir ander dinge gebruik, soos die bou van u eie quadcopter, vliegtuig, rc -motor, ens. Met die kode wat u verskaf, kan u ook die nodige wysigings aanpas volgens u behoeftes. Ek sal ook probeer verduidelik hoe ek dit korrek kan aanpas (wat my 'n geruime tyd geneem het om self te leer, aangesien ek gewoond was aan 'n ander soort gebruik vir die nrf24 -chip).

Stap 1: materiaal

Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal

Om ons projek te begin, moet ons al die nodige dele ken. Hieronder is 'n lys van die basiese benodigdhede. Ek het die meeste daarvan by 'n plaaslike elektroniese winkel waar ek woon gekoop, en ek sal u dus nie 'n plek kan aanbeveel nie. U kan Amazon of enige ander plek probeer. Ek sê nie dat u dit daar moet bestel nie, maar dit is net 'n voorstel.

  1. Twee Arduino -borde (almal behoort te werk. Ek het twee arduino pro mini, waarvan ek baie hou, want hulle het 13 digitale penne en 8 analoog, terwyl die Uno slegs 6 analoë het).
  2. Twee Nrf24 -modules. Daar is sommige met eksterne antennas wat 'n groter oordragreeks het. Kies diegene waarvan u die meeste hou.
  3. Springkabels vroulik-vroulik en vroulik-manlik.
  4. Prototipe bord.
  5. Arduino programmeerder (vir arduino pro mini, as u een het met usb -verbinding, benodig u dit nie).
  6. Arduino IDE (sagteware). Laai hier af.
  7. In my geval het ek ook gebruik gemaak van:
  • Servo. Enigiemand wat jy kan kry. Ek hou van die SG90, 'n klein een wat ontwerp is vir arduino.
  • Potensiometer (tussen 10k en 20k ohm). Kan by 'n plaaslike elektroniese winkel gekoop word, of u kan die joystick gebruik wat vir arduino gemaak is. Daar is 'n paar beelde van die wat ek het. Ek het ook een van 'n gebreekte drone rc -kontroleerder gekry, net om u 'n paar idees te gee
  • 4 gelyke normale weerstande. Ek het 10k wat ek by my oupa se huis gekry het, gebruik. Ek gebruik dit as spanningsverdelers.
  • Klein koperblokkie (wat ek ook by my oupa gekry het) om die weerstande saam te soldeer.
  • Spelde. Word gebruik om die trukkabels van die arduino maklik aan die weerstande te koppel.
  • 2s lipo battery. Ek gebruik dit om een van my arduino's aan te dryf. Die weerstande word daaraan gekoppel en lees die spannings daarvan. Ek is van plan om my arduino aan te sluit op die 2s -battery van my drone, aangesien dit nie 'n eksterne kragbron nodig het nie en terselfdertyd vir my sê hoeveel battery daar oor is.
  • Soldeerbout en soldeer. Dit is nodig om die weerstande, die bord en die penne saam te soldeer.

Stap 2: Funksie en kode

Funksie en kode
Funksie en kode

Nadat al die materiaal genoem is, begin ons praat oor die funksie van die modules.

Hoe dit werk: laat ons die een arduino 'A' noem en die ander 'B'. In my geval, nadat ek albei geprogrammeer het, het ek dit gekoppel aan hul ooreenstemmende radioskyfie en die potensiometer by arduino A gevoeg en die weerstande en servo na arduino B. Module A stuur waardes na B en beweeg die Servo. B lees die spanning van die 2s battery en stuur dit terug na A. Dan begin die hele sirkel weer. Aangesien A waardes ontvang wat nie meganies uitgedruk word nie, is dit gekoppel aan die programmeerder, waardeur ons dit kan lees met 'n seriële monitor (ingesluit in die Arduino IDE)

Kode: Ek noem die skets vir arduino A (gekoppel aan die programmeerder en die potensiometer) TwoWayRadio_1, en die skets vir arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 en TwoWayRadio_2WithServo kan net onder hierdie paragraaf gevind word. Daar is 'n verduideliking in elke kode net om alles makliker te verstaan.

Stap 3: Soldeermodules: Spanningsverdeler en potensiometer

Soldeermodules: Spanningsverdeler en potensiometer
Soldeermodules: Spanningsverdeler en potensiometer
Soldeermodules: Spanningsverdeler en potensiometer
Soldeermodules: Spanningsverdeler en potensiometer
Soldeermodules: Spanningsverdeler en potensiometer
Soldeermodules: Spanningsverdeler en potensiometer
Soldeermodules: Spanningsverdeler en potensiometer
Soldeermodules: Spanningsverdeler en potensiometer

Hierdie stap is opsioneel, aangesien u moontlik die potensiometer-joystick wil gebruik wat spesifiek vir arduino ontwerp is en 'n ander module in plaas van die spanningsverdeler gebruik. Ek het egter alles (kodes ingesluit) vir hierdie modules beplan.

Potensiometer:

Hierdie deel is omtrent die maklikste in die soldeerstap. U hoef net 'n paar kabels aan u potensiometer te soldeer. As u wil, kan u eers die potensiometer aan die perfboard plak en dan 'n paar penne soldeer. As u dit moet gebruik, koppel u die jumperkabels aan die arduino en dan aan die penne op die perfboard. As u dit nie gebruik nie, kan u die kabels verwyder en dit vir 'n ander projek gebruik. As u egter doen soos ek, kan u die potensiometer direk aan die kabels laat soldeer

  • As u doen soos ek, kry u drie vroulike-vroulike springkabels, sny een van die punte af en verwyder die isolasie daar, en laat 'n klein stuk koper bedrading op elke draad.
  • Verhit u soldeerbout en soldeer die aangepaste springers aan u penne van die potensiometers. As u kan, probeer om verskillende kleure te kry, sodat u kan onthou watter een vcc, gnd en die "sein" (die middelste) is. Koppel hierdie kabels aan die ooreenstemmende analoog penne op die arduino. Daar is 'n paar beelde aan die begin van die stap oor hoe dit lyk. Die potensiometer is nie 'n gewone nie; dit is eintlik 'n klein wiel met vyf penne. Ek het 'n rukkie geneem om uit te vind watter een is. Probeer om dit makliker te maak en gebruik 'n gewone potensiometer soos aangedui in die MATERIAAL -stap.
  • As u dit aan 'n perfboardbord soldeer, kry die potensiometer en die perfboard en soldeer dit saam met u soldeerbout.
  • Kry die penne (drie) en plaas dit op die maklikste manier. Gebruik soldeersel om 'n verbinding tussen elke pen en die potensiometerpenne te maak. Moenie 'n verbinding tussen meer as twee penne maak nie, anders werk dit nie (dit sal as 'n kortsluiting dien).
  • Kry 'n paar vroulike-vroulike of vroulike manlike draaddrade en koppel dit van u arduino aan u nuwe potensiometer-module (onthou watter een is).

2. Spanningsverdeler:

  • Hierdie deel is 'n bietjie meer ingewikkeld. U moet die vier weerstande, vyf penne en die perfboard kry. Ek het die kode ontwerp vir 'n 2s -battery (tweesel), maar u kan dit ook vir 'n 1s gebruik deur die arduino -skets en die hardeware 'n bietjie te verander. Ek het foto's van twee spanningsverdelers wat ek gemaak het, ingesluit, een met slegs 2 weerstande (vir 1s batterye) en een met vier (jy raai dit: 2s batterye).
  • Kom ons begin met die 2s een. Ek het geen beelde van die bouproses sedert ek hierdie instruksies 'n rukkie begin wag het nadat ek klaar was met soldeer nie. Ek bevat wel beelde van die finale uitslag, so ek sal probeer om so duidelik as moontlik te wees.
  • Begin deur die perfboard en 5 penne te kry. Soldeer hulle naby die kant en laat hulle nie aan mekaar raak nie.
  • Soldeer die weerstande soos aangedui in die laaste prent aan die begin van die stap (die klein stroombaan diagram). Die verbindings tussen elke weerstand en pen word met soldeersel gemaak. Probeer om die minste moontlike ruimte in beslag te neem.
  • As u klaar is, lyk dit soos die foto's van die voltooide spanningsverdeler wat ek hierbo geplaas het.
  • Die 1s -spanningsverdeler is basies dieselfde, met die uitsondering dat u slegs drie penne en twee weerstande gebruik. Ek het beelde ingesluit van hoe dit lyk as dit klaar is. Kyk net na die diagram vir die 2's en stel dit voor sonder die seindraad 1, die middelste draad en weerstande r2 en r3 en daar is dit!
  • Dus, as u 'n 1s -spanningsverdeler wil hê, is dit dalk net 'n bietjie ingewikkelder as om net 'n 2s -een te gebruik.

Stap 4: Programmering van u Arduino

Die programmering van u Arduino
Die programmering van u Arduino
  1. Ons is amper klaar!
  2. Nadat u die Arduino IDE -sagteware afgelaai het vanaf die webwerf wat in die MATERIAAL -stap gekoppel is, laai die sketse af van die FUNKSIE EN KODE stap.
  3. Maak dit dan oop in die Arduino IDE.
  4. Open "Tools" op enige van die twee oortjies en klik op "Boards". Kies u bord uit die lys. Klik op "verwerker" en dan op "programmeerder" en kies elkeen volgens u bord. Keer dan terug na die skets. Dit is baie gerieflik om die inligting van u bord op die internet te kyk. Soek net die naam en sien die spesifikasies.
  5. Klik op "skets" (bo -aan), dan "sluit biblioteek in", dan "bestuur biblioteke". In die middel van die skerm moet 'n klein venster oopmaak. Voer die soekopsie "rf24" in. Laai die biblioteek af wat u wil hê. Dit sal nodig wees om die kode na die arduino -bord te laai.
  6. Net om seker te maak, klik op die "Tick" -simbool (links bo) om te verifieer dat dit geen foute bevat nie. Laai dit dan op deur op die pyltjie na regs te druk, langs die "Tick" -simbool.
  7. As u bord 'n Pro Mini is, sal ek eers 'n rukkie verduidelik hoe om alles aan te sluit. As dit nie die geval is nie, laai dit net op en gaan na die programmering van albei arduino's deur na die volgende stap nadat u die onderstaande waarskuwing gelees het.
  8. Aangesien u twee borde het, ONTHOU met watter kode elkeen geprogrammeer is om toekomstige probleme te voorkom.
  9. Dus, as u 'n Pro Mini het, benodig u 'n programmeerder. Daar is twee soorte programmeerders: 5 -pins en 6 -pins. Ek sal fokus op 5 -penne, aangesien dit die een is wat ek het. Die verbindings is soos volg (eerste pen is van programmeerder, dan arduino): Gnd-Gnd; 5v-Vcc (behalwe as u Pro Mini 'n 3.3v is, in welke geval dit 3.3v-Vcc is); Rxd-Txo; Txd-Rxi. Ek het 'n beeld van die bord en die programmeerder ingesluit, net as u dit moet nagaan.
  10. Koppel u arduino aan die programmeerder en die programmeerder aan u rekenaar. Maak die IDE oop en klik op die oplaai -knoppie. As u links onder op die skerm kyk, sal u 'n boodskap sien wat sê "saamstel". Op die oomblik dat hierdie boodskap verander na 'oplaai', druk die reset -knoppie op die arduino Pro Mini. Na 'n rukkie sal die skets klaar wees en 'n boodskap verskyn wat lui "Oplaai klaar". As dit eers gebeur, is u klaar en kan u na die volgende stap gaan.

Stap 5: Verbind alles

Verbind alles
Verbind alles
Verbind alles
Verbind alles
Verbind alles
Verbind alles
Verbind alles
Verbind alles
  1. Nadat ons beide arduino's geprogrammeer het, moet ons alles verbind om dit te laat werk. Hier benodig ons alles wat voorheen genoem is: die arduino's, nrf24 -modules, kabels, servo, programmeerder, spanningsverdeler, potensiometer, ens.
  2. Ons gaan eers die arduino verbind wat met die programmeerder werk. Aan die begin van die stap is die beelde van die verbindings van die nrf24. Die irq -pen, wat na pen 8 op die arduino gaan, is glad nie verbind nie. Die res is net soos in die prentjie vir beide arduino's (u kan die aantekeninge in die beelde lees vir meer inligting)
  3. Die Vcc vir die radio kan gekoppel word aan 3.3 of 5v. Soms werk dit net met een daarvan. Probeer met 3.3 en dan 5 as dit nie werk nie. Gebruik 3.3 vir die 3.3v -pen van die programmeerder. Ek moes dit doen, soos u sal sien op die beelde van die finale produk.
  4. Koppel die programmeerder aan die arduino soos in die vorige stap gesê.
  5. Koppel die potensiaalmeter se "sein" -kabel aan die analoog pen A0.
  6. Koppel die "Positief" van die potensiometer aan Vcc (slegs 5v, nie 3.3) en "Negatief" aan Gnd.
  7. Gaan na die ander arduino.
  8. Sluit die radio aan soos voorheen, volgens die beelde.
  9. Koppel die seerkabel van die servo (oranje-geel-wit. Kontroleer die spesifikasies vir die servo) met die digitale pen 2 en die gnd met die arduino's Gnd, en die positiewe van die arduino se Vcc.
  10. Koppel seinkabel 1 van die spanningsverdeler aan pen A0 en seindraad 2 aan pen A1.
  11. Koppel die negatiewe kabel van die spanningsverdeler, die arduino se gnd en die battery se gnd (swart kabel op die eerste plug) met behulp van die protobord.
  12. Koppel die "middelste kabel" van die spanningsverdeler aan die middelste van die battery, tussen die rooi en swart kabels van die jst -prop (wit kleur).
  13. Koppel die 'positiewe' kabel van die spanningsverdeler aan die positiewe aansluiting van die battery en aan die arduino's Raw. Moenie direk met Vcc koppel nie, aangesien hierdie pen spesifiek vir 5v is. Rou pen gebruik enige spanning bo 3,3 of 5v tot 12v en reguleer dit Vcc -penne word dan uitsette met 5v.

Jy is amper klaar! U voltooide produkte moet soos die foto's hierbo lyk. Kontroleer elke verbinding weer om kortsluitings te vermy.

Stap 6: Skakel u projek aan

  • Jou arduino met die servo het die laaste stap gekry toe jy die battery aan die hele kring gekoppel het. U hoef dus net die ander arduino aan te sluit op 'n usb -poort en u is klaar!
  • Beweeg die potensiometer en u moet sien hoe die servo ook beweeg. In my geval is die servo gekoppel aan 'n 1 -as -kamera -gimbal, wat die hoek beperk het, so ek moes die parameters aanpas. U vind dit in elk geval in die kode.
  • Om die spanning te sien, maak die arduino -sagteware oop en druk "Ctrl+Shift+m" sodra u die programmeerder aan die rekenaar gekoppel het. 'N Venster wat sê "Serial Monitor" sal oopmaak. Onderaan hierdie venster is 'n opsie wat lui "(getal) baud". Klik daarop en kies "9600". Sluit die monitor en maak dit weer oop deur op dieselfde sleutels te druk, en u moet baie waardes sien binnekom. programmeerder sal hulle stop en jy kan dit lees. Ek probeer iets kry waarmee ek dit outomaties kan teken om die spannings te sien of dit met LED's voor te stel, maar dit is nog steeds in proses.
  • Alhoewel u die waardes miskien nie duidelik sien nie, maar omdat dit so vinnig verbygaan, moet u weet dat dit uiteindelik werk en dat u dit kan aanpas om aan u behoeftes te voldoen!

Stap 7: Demo

Dit is die video van my wat dit aanskakel en dit net 'n bietjie gebruik om u te wys hoe dit moet werk.

Stap 8: Meer idees oor hoe u hierdie projek kan gebruik

Meer idees oor hoe u hierdie projek kan gebruik
Meer idees oor hoe u hierdie projek kan gebruik
Meer idees oor hoe u hierdie projek kan gebruik
Meer idees oor hoe u hierdie projek kan gebruik
Meer idees oor hoe u hierdie projek kan gebruik
Meer idees oor hoe u hierdie projek kan gebruik

Hier is 'n paar idees wat u kan bou deur dit as die basis te gebruik. Vertel my as u een daarvan maak of as u dit nie probeer nie, sodat ek kan help!

  • In plaas van die lees van spannings, verander die kode sodat dit die temperatuur, druk, hoogte, ens terugstuur. Ek het die BMP180 -chip baie nuttig gevind hiervoor.
  • Meet afstande met die HC-SR04-module en stuur dit terug na die eerste arduino. Gebruik die servo om die sensor te wys waarheen u ook al wil.
  • Voeg nog 'n servokanaal by om 'n kamera op en sywaarts te skuif; byvoorbeeld op 'n rc -motor.
  • Voeg drie ander servokanale (of meer!) By en maak u eie rc -sender en -ontvanger vir 'n quadcopter, vliegtuig, helikopter, rc -motor, ens!
  • Verander die servo vir 'n soeklig en voeg dit by u drone! U sal ook die intensiteit van die lig kan beheer (benodig moontlik transistors en kode verander)
  • In plaas daarvan om die spannings op 'n rekenaar te lees, moet u kreatief wees en 'n lcd-module byvoeg, of u kan 'n 6-led bord (twee groen, twee geel en twee rooi) maak, wat hulle een vir een sal uitskakel namate die battery laer word en sal begin flits as die batteryniveau onder die gekose spanning daal. Ek het hierdie klein bordjie gemaak en 'n prentjie aan die begin van die stap geplaas.

Net om alles duidelik te maak, as u een van hierdie projekte gaan maak, moet u in gedagte hou dat u beide kodes en miskien 'n paar verbindings moet verander. Probeer om te onthou om nie u bord te braai as u iets dom doen nie.

As u meer idees het of hulp nodig het om een van hierdie projekte uit te voer, plaas dit dan in die afdeling met vrae!

Stap 9: Probleemoplossing

Probleemoplossing
Probleemoplossing

Om die waarheid te sê, die meeste van die probleme wat ek tot dusver ondervind het, hou verband met die sketsgedeelte wat u reeds opgelos het. Ek sal probeer om soveel moontlik probleme vir u te vertel om u die meeste te help.

Eerstens, as u die skets probeer oplaai en dit nie kan nie, probeer dit:

Maak seker dat u die nodige biblioteke (en die korrekte biblioteke) afgelaai het.

Maak seker dat u die regte bord, verwerker en programmeerder gekies het.

Maak seker dat die verbinding tussen die rekenaar en die programmeerder en die programmeerder en die arduino goed is.

As u 'n pro mini gebruik, probeer om die reset -knoppie so gou as moontlik te druk nadat die 'oplaai' -boodskap verskyn het.

Daar word van al hierdie dinge gepraat in die programmering van u ARDUINO -stap.

Kontroleer tweedens alle verbindings tussen alles:

As u arduino nie aanskakel nie, is dit duidelik 'n spanningsprobleem. Kyk of die kabels nie behoorlik verbind is nie en of daar 'n kortsluiting is.

As dit aanskakel, maar nie funksioneer nie, moet u seker maak dat alle verbindings is waar dit moet wees, dat die arduino wat geprogrammeer is om aan die servo en spanningsverdeler gekoppel te word, werklik verbind is (met ander woorde, maak seker dat u nie gemeng het nie) druk op die reset -knoppie op albei en kyk wat gebeur. In uiters seldsame gevalle kan die hele skuld op die NRF24 -module wees. Ek het een van my gevind wat net op 5 volt werk en 'n ander een wat slegs op 3.3v werk. Kyk of dit iets oplos. Dit het ook met my gebeur dat slegs een arduino met die 3.3v radio werk en die ander een net met die 5v. Verrassend, is dit nie?

Derdens, as u die servo kan beweeg, maar die spanning verkeerd is, kyk of die verbindings met die spanningsverdeler is soos in die diagram in stap 3 en die verbinding met die arduino. As u aan die ander kant die spannings kry, maar u kan nie die servo korrek beweeg nie, kyk dan na die potensiometer en sy verbindings, die servo se verbinding met die digitale pen en die Vcc en Gnd, en as die servo vas, gebreek of ingebreek is 'n kortsluiting. Probeer dit met 'n ander servo verander. Maak seker dat die digitale pen dieselfde is as die in die kode gespesifiseer

Dit is omtrent al die dinge wat in my gedagtes kan ontstaan oor die probleme wat u mag ondervind. Hoop dit gebeur nooit en Happy Projects!

Dankie dat u my Instructable gelees het! Deel dit en stem dit vir die EERSTE KEUR SKRYWER -kompetisie!

Aanbeveel: