Taula de continguts:

Ràdio bidireccional NRF24 per a telemetria: 9 passos (amb imatges)
Ràdio bidireccional NRF24 per a telemetria: 9 passos (amb imatges)

Vídeo: Ràdio bidireccional NRF24 per a telemetria: 9 passos (amb imatges)

Vídeo: Ràdio bidireccional NRF24 per a telemetria: 9 passos (amb imatges)
Vídeo: DJI Mavic Mini Fly More Combo with Hard Shell Travel Case Black BH # DJMAVICMCK 2020 2024, Juliol
Anonim
Ràdio bidireccional NRF24 per a telemetria
Ràdio bidireccional NRF24 per a telemetria

Hola nois, em dic Pedro Castelani i us presento el meu primer instructiu: construir una ràdio bidireccional amb arduino per, bé, per al que la necessiteu.

En aquest projecte, farem dos circuits separats que actuaran com a receptor i transmissor. Els components més importants són dues plaques arduino (totes funcionen) i dos mòduls de transciever nrf24. En el meu cas, controlo un servo amb un potenciòmetre des de l’altre arduino i envio les tensions d’una bateria lipo de dues cel·les a la primera.

Tinc la intenció d’utilitzar-lo com a complement per al meu dron, que no posseeix telemetria ni control de servo cardan. Tanmateix, podeu utilitzar-lo per a altres coses, com ara construir el vostre propi quadcopter, avió, cotxe rc, etc. Des del codi subministrat també podeu fer les modificacions que vulgueu segons les vostres necessitats. També intentaré explicar com modificar-lo correctament (cosa que vaig trigar una mica a aprendre jo sola, ja que estava acostumat a un altre tipus d’ús del xip nrf24).

Pas 1: materials

Materials
Materials
Materials
Materials
Materials
Materials

Per començar el nostre projecte, hem de conèixer totes les parts necessàries. A continuació es mostra una llista dels bàsics necessaris. La majoria les vaig comprar a una botiga d’electrònica local on visc, de manera que no us podré recomanar cap lloc per comprar-les. Podeu provar Amazon o qualsevol altre lloc. No dic que els haureu de demanar allà, però és només un suggeriment.

  1. Dues plaques Arduino (qualsevol hauria de funcionar. Tinc dues arduino pro mini, que m’agraden molt perquè tenen 13 pins digitals i 8 analògics, mentre que l’Uno només en té 6 analògics).
  2. Dos mòduls Nrf24. N'hi ha amb antenes externes que tenen un abast de transmissió més gran. Trieu els que més us agradin.
  3. Cables de pont femella-femella i femella-home.
  4. Tauler de prototipatge.
  5. Programador Arduino (per a arduino pro mini, si en teniu un amb connexió usb, no el necessitareu).
  6. IDE Arduino (programari). Descàrrega des d'aquí.
  7. En el meu cas, també he utilitzat:
  • Servo. Qualsevol que pugueu aconseguir. M'agrada el SG90, un petit dissenyat per a arduino.
  • Potenciòmetre (entre 10k i 20k ohms). Es pot comprar a una botiga d’electrònica local o es pot utilitzar el joystick per a arduino. Hi ha algunes imatges de les que tinc. També en tinc un d’un controlador de rc de drons trencat, només per donar-vos algunes idees
  • 4 resistències normals iguals. N’he utilitzat 10.000 que he obtingut de casa del meu avi. Els estic fent servir com a divisors de tensió.
  • Un petit panell de coure (que també vaig obtenir del meu avi) per soldar les resistències.
  • Pins. S’utilitza per connectar fàcilment els cables de pont des de l’arduino a les resistències.
  • 2s bateria lipo. L’utilitzo per alimentar un dels meus arduinos. Les resistències hi estan connectades i llegeixen les seves tensions. Tinc la intenció que el meu arduino estigui connectat a la bateria 2s del meu dron, ja que no necessitarà una font d'alimentació externa i, al mateix temps, dir-me quanta bateria queda.
  • Soldador i soldador. Cal soldar les resistències, el perfboard i els passadors junts.

Pas 2: funció i codi

Funció i codi
Funció i codi

Un cop esmentats tots els materials, comencem a parlar de la funció dels mòduls.

Com funciona: Anomenem un arduino "A" i l'altre "B". En el meu cas, després de programar tots dos, els vaig connectar al xip de ràdio corresponent i vaig afegir el potenciòmetre a l’arduino A i les resistències i el servo a l’arduino B. El mòdul A envia valors a B i mou el Servo. B llegeix els voltatges de la bateria 2s i els torna a enviar a A. Després, torna a començar tot el cercle. Atès que A rep valors que no s’expressen mecànicament, es connecta al programador, mitjançant el qual els podem llegir amb un monitor sèrie (inclòs a l’IDE Arduino)

Codi: anomeno l’esbós de l’arduino A (connectat amb el programador i el potenciòmetre) TwoWayRadio_1 i l’esbós de l’arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 i TwoWayRadio_2WithServo es poden trobar just a sota d’aquest paràgraf. Hi ha una explicació dins de cada codi per facilitar-ne la comprensió.

Pas 3: Mòduls de soldadura: divisor de tensió i potenciòmetre

Mòduls de soldadura: divisor de tensió i potenciòmetre
Mòduls de soldadura: divisor de tensió i potenciòmetre
Mòduls de soldadura: divisor de tensió i potenciòmetre
Mòduls de soldadura: divisor de tensió i potenciòmetre
Mòduls de soldadura: divisor de tensió i potenciòmetre
Mòduls de soldadura: divisor de tensió i potenciòmetre
Mòduls de soldadura: divisor de tensió i potenciòmetre
Mòduls de soldadura: divisor de tensió i potenciòmetre

Aquest pas és opcional, ja que és possible que vulgueu utilitzar el potenciómetre-joystick dissenyat específicament per a arduino i utilitzar un altre mòdul en lloc del divisor de tensió. Tanmateix, jo ho vaig planificar tot (codis inclosos) per a aquests mòduls.

Potenciòmetre:

Aquesta part és gairebé la més senzilla del pas de soldadura. Només haurà de soldar alguns cables de pont al vostre potenciòmetre. Si voleu, primer podeu soldar el potenciòmetre al perfboard i després soldar alguns dels pins. Quan el necessiteu, només cal que connecteu els cables del jumper a l’arduino i després als pins del perfboard. Quan no s’utilitzi, podeu treure els cables i utilitzar-los per a un altre projecte. No obstant això, si feu el que he fet jo, podeu deixar el potenciòmetre soldat directament als cables

  • Si feu el que he fet jo, obteniu tres cables de pont femella-femella, talleu una de les puntes i traieu-ne l’aïllament, deixant un petit tros de cablejat de coure a cada fil.
  • Escalfeu el soldador i soldeu els ponts modificats als pins dels potenciòmetres. Si podeu, intenteu obtenir colors diferents per poder recordar quin és vcc, gnd i el "senyal" (el mig). Connecteu aquests cables als pins analògics corresponents de l’arduino. Hi ha algunes imatges al principi del pas sobre com va acabar mirant. El potenciòmetre no és normal, en realitat és una roda petita que tenia cinc passadors. Em va trigar una mica a descobrir quina era quina. Intenteu fer-ho més fàcilment i utilitzeu un potenciòmetre normal tal com es mostra al pas MATERIALS.
  • Si el soldeu a un perfboard, obteniu el potenciòmetre i el perfboard i soldeu-los juntament amb el soldador.
  • Obteniu els passadors (tres) i col·loqueu-los de la manera més convenient. Utilitzeu la soldadura per establir una connexió entre els pins i els pins del potenciòmetre. No feu una connexió entre més de dos pins o no funcionarà (actuarà com a curtcircuit).
  • Aconseguiu alguns cables de pont femella-femella o femella-home i connecteu-los des del vostre arduino al nou mòdul de potenciòmetre (recordeu quin és).

2. Divisor de tensió:

  • Aquesta part és una mica més complicada. Haureu d’aconseguir les quatre resistències, cinc pins i el perfboard. Vaig dissenyar el codi per utilitzar-lo per a una bateria de 2 s (dues cel·les), però també podríeu utilitzar-lo per 1 s canviant una mica l’esbós arduino i el maquinari. Vaig incloure imatges de dos divisors de voltatge que vaig fabricar, un de només 2 resistències (per a bateries de 1 s) i un de quatre (ja ho heu endevinat: bateries de 2 s).
  • Comencem pel 2s one. No tinc imatges del procés de construcció des que vaig començar a escoltar aquest instructable una bona estona després d'haver acabat de soldar-lo. Inclou imatges del resultat final, així que intentaré ser el més clar possible.
  • Comenceu per aconseguir el perfboard i els 5 pins. Soldeu-los al costat i no deixeu que es toquin.
  • Soldeu les resistències tal com es mostra a la darrera imatge al començament del pas (el petit diagrama del circuit). Les connexions entre cada resistència i pin es fan amb soldadura. Intenteu ocupar el mínim espai possible.
  • Quan hàgiu acabat, hauria de semblar a les imatges del divisor de tensió acabat que he publicat més amunt.
  • El divisor de tensió 1s és bàsicament el mateix, amb l'excepció que només utilitzeu tres pins i dues resistències. Vaig incloure imatges de com es veu en acabar. Només cal mirar el diagrama del segon i imaginar-lo sense el fil de senyal 1, el fil del mig i les resistències r2 i r3, i ja ho teniu!
  • Per tant, si voleu un divisor de tensió d’1 s, pot ser que sigui una mica més complicat que només utilitzar un de 2 s.

Pas 4: Programació del vostre Arduino

Programació del vostre Arduino
Programació del vostre Arduino
  1. Estem a punt d’acabar!
  2. Després d’haver descarregat el programari Arduino IDE del lloc enllaçat al pas MATERIALS, descarregueu els esbossos del pas FUNCIÓ I CODI.
  3. A continuació, obriu-los a l'IDE Arduino.
  4. Obriu "Eines" a qualsevol de les dues pestanyes i feu clic a "Taulers". Trieu el tauler de la llista. Feu clic a "Processador" i després a "Programador", seleccionant cadascun segons el vostre tauler. A continuació, torneu a l'esbós. És bastant convenient mirar la informació del vostre tauler a Internet. Només cal buscar el nom i veure les especificacions.
  5. Feu clic a "esbós" (dalt), després a "inclou biblioteca" i, a continuació, a "gestionar biblioteques". S'hauria d'obrir una finestra petita al centre de la pantalla. Introduïu a l'opció de cerca "rf24". Baixeu-vos la biblioteca que vulgueu. Caldrà poder penjar el codi a la placa arduino.
  6. Només per assegurar-se, feu clic al símbol "Marqueu" (a l'esquerra) per verificar que no tingui cap error. A continuació, procediu a penjar-lo prement la fletxa que apunta a la dreta, al costat del símbol "Marca".
  7. Si el vostre tauler és un Pro Mini, en un moment explicaré com connectar-ho tot. Si no és així, només cal que el pengeu i, quan hàgiu acabat de programar els dos arduinos, passeu al següent pas, després de llegir l’advertència següent.
  8. Com que teniu dues taules, RECORDEU amb quin codi es va programar cadascuna per evitar problemes futurs.
  9. Per tant, si teniu un Pro Mini, necessitareu un programador. Hi ha dos tipus de programadors: els de 5 pins i els de 6 pins. Em centraré en els de 5 pins, ja que són els que tinc. Les connexions són les següents (primer pin és del programador, després arduino): Gnd - Gnd; 5v-Vcc (excepte si el vostre Pro Mini és un 3.3v, en aquest cas és 3.3v - Vcc); Rxd - Txo; Txd - Rxi. He inclòs una imatge tant de la placa com del programador, per si de cas ho necessiteu.
  10. Connecteu el vostre arduino al programador i el programador al vostre ordinador. Obriu l’IDE i feu clic al botó de càrrega. Si mireu la part inferior esquerra de la pantalla, veureu un missatge que diu "compilant". En el moment que aquest missatge es converteix en "càrrega", premeu el botó de restabliment de l'arduino Pro Mini. Al cap d’un temps, l’esbós finalitzarà i apareixerà un missatge que diu "Fet la càrrega". Un cop això passi, heu acabat i llest per passar al següent pas.

Pas 5: connectar-ho tot

Connectant-ho tot
Connectant-ho tot
Connectant-ho tot
Connectant-ho tot
Connectant-ho tot
Connectant-ho tot
Connectant-ho tot
Connectant-ho tot
  1. Després d’haver programat els dos arduinos, hem de connectar-ho tot perquè funcioni. Aquí necessitarem tot el que hem esmentat anteriorment: els arduinos, els mòduls nrf24, els cables, el servo, el programador, el divisor de tensió, el potenciòmetre, etc.
  2. Primer connectarem l’arduino que funciona amb el programador. Al principi del pas hi ha les imatges de les connexions del nrf24. El pin irq, que es diu que va al pin 8 de l’arduino, no està connectat en absolut. La resta és igual que a la imatge per a tots dos arduinos (podeu llegir les notes de les imatges per obtenir més informació)
  3. El Vcc de la ràdio es pot connectar a 3,3 o 5v. De vegades, només funciona amb un d’ells. Proveu amb 3.3 i després amb 5 si no funciona. Per a 3.3, utilitzeu el pin de 3.3v del programador. Ho vaig haver de fer, com veureu a les imatges del producte acabat.
  4. Connecteu el programador a l'arduino tal com es va dir al pas anterior.
  5. Connecteu el cable de "senyal" del potenciòmetre al pin analògic A0.
  6. Connecteu el potenciòmetre "Positiu" a Vcc (només 5v, no 3.3) i "Negatiu" a Gnd.
  7. Passeu a l’altre arduino.
  8. Connecteu la ràdio com s’ha dit abans, segons les imatges.
  9. Connecteu el cable de senyal del servo (taronja-groc-blanc. Comproveu les especificacions del servo) al pin digital 2, i el seu gnd al Gnd de l'arduino i el seu positiu al Vcc de l'arduino.
  10. Connecteu el cable de senyal 1 des del divisor de tensió al pin A0 i el cable de senyal 2 al pin A1.
  11. Connecteu, mitjançant la protoborda, el cable negatiu del divisor de tensió, el gnd de l’arduino i el gnd de la bateria (cable negre a l’endoll jst).
  12. Connecteu el "cable central" del divisor de tensió al central de la bateria, entre els cables negre i vermell de l'endoll jst (color blanc).
  13. Connecteu el cable "positiu" del divisor de tensió al terminal positiu de la bateria i al Raw de l'arduino. No us connecteu directament a Vcc, ja que aquest pin és específic per a 5v. El pin Raw utilitza qualsevol voltatge superior a 3,3 o 5v a 12v i el regula Els pins Vcc es converteixen en sortides amb 5v.

Ja està gairebé acabat! Els vostres productes acabats haurien de semblar a les imatges anteriors. Torneu a comprovar totes les connexions per evitar curtcircuits.

Pas 6: engegueu el vostre projecte

  • El vostre arduino amb el servo va accionar el darrer pas quan vau connectar la bateria a tot el circuit. Per tant, només heu de connectar l’altre arduino a un port USB i ja heu acabat.
  • Mou el potenciòmetre i hauries de veure com es mou també el servo. En el meu cas, el servo està connectat a un cardà de càmera a 1 eix, que limitava l’angle, de manera que vaig haver d’ajustar els paràmetres. De tota manera, ho trobareu al codi.
  • Per veure els voltatges, un cop hàgiu connectat el programador a l'ordinador, obriu el programari arduino i premeu "Ctrl + Maj + m". S'obrirà una finestra que diu "Monitor de sèrie". A la part inferior d'aquesta finestra hi ha una opció que diu "(número) baud". Feu-hi clic i seleccioneu "9600". Tanqueu el monitor i torneu a obrir-lo prement les mateixes tecles i hauríeu de començar a veure molts valors. No podreu veure quins són aquests valors a causa de la velocitat a la qual arriben, però si desconnecteu el programador s’aturaran i els podreu llegir. Estic intentant obtenir alguna cosa amb la qual graficar-los automàticament per veure els voltatges o representar-los amb leds, però això encara està en procés.
  • Tot i que és possible que no vegeu els valors amb claredat, ja que passen tan ràpidament, només heu de saber que finalment funciona i que podeu modificar-lo per satisfer les vostres necessitats.

Pas 7: demostració

Bé, aquest és el vídeo de la meva alimentació i l’utilitzo una mica per mostrar-vos com hauria de funcionar.

Pas 8: Més idees sobre com utilitzar aquest projecte

Més idees sobre com utilitzar aquest projecte
Més idees sobre com utilitzar aquest projecte
Més idees sobre com utilitzar aquest projecte
Més idees sobre com utilitzar aquest projecte
Més idees sobre com utilitzar aquest projecte
Més idees sobre com utilitzar aquest projecte

Aquí hi ha algunes idees que podeu construir utilitzant aquesta com a base. Digueu-me si en feu un o si ho intenteu i no ho podeu fer perquè pugui ajudar-vos!

  • En lloc de llegir tensions, modifiqueu el codi perquè enviï la temperatura, la pressió, l'alçada, etc. Vaig trobar el xip BMP180 bastant útil per a això.
  • Mesureu distàncies amb el mòdul HC-SR04 i envieu-les de nou al primer arduino. Feu servir el servo per apuntar el sensor cap a qualsevol lloc que vulgueu.
  • Afegiu un altre canal servo per moure una càmera cap amunt i cap als costats; per exemple, en un cotxe rc.
  • Afegiu altres tres canals servo (o més!) I creeu el vostre propi transmissor i receptor de rc per a un quadcòpter, un avió, un helicòpter, un cotxe de rc, etc.
  • Canvieu el servo per un reflector i afegiu-lo al dron. També podreu controlar la intensitat de la llum (pot ser que necessiteu alguns transistors i algun canvi de codi)
  • En lloc de llegir les tensions en un ordinador, feu-vos creatiu i afegiu un mòdul LCD, o podeu fer una placa de 6 leds (dos de color verd, dos de color groc i dos de vermell) que els apagarà un a un a mesura que la bateria es redueixi i començarà a parpellejar quan el nivell de la bateria caigui per sota del voltatge escollit. Vaig fer aquest petit tauler i vaig publicar una imatge al principi del pas.

Només per deixar-ho clar, si voleu fer un d'aquests projectes, tingueu en compte que haureu de modificar els dos codis i potser algunes connexions. Si us plau, intenteu recordar de no fregir el vostre tauler fent alguna cosa estúpid.

Si ja teniu idees o necessiteu ajuda per dur a terme algun d'aquests projectes, envieu-los a la secció de preguntes.

Pas 9: resolució de problemes

Resolució de problemes
Resolució de problemes

A dir la veritat, la majoria dels problemes que he trobat fins ara estaven relacionats amb la part de l’esbós, que ja heu resolt. Intentaré explicar-vos tants problemes com puc per ajudar-vos al màxim.

En primer lloc, si proveu de penjar l’esbós i no podeu, proveu-ho:

Assegureu-vos de descarregar les biblioteques necessàries (i les correctes!).

Assegureu-vos que heu triat la placa, el processador i el programador correctes.

Assegureu-vos que la connexió entre l’ordinador i el programador, el programador i l’arduino sigui bona.

Si utilitzeu un pro mini, proveu de prémer el botó de restabliment tan aviat com pugueu després que aparegui el missatge de "càrrega".

De totes aquestes coses es parla al PROGRAMAR EL PAS ARDUINO.

En segon lloc, comproveu totes les connexions entre tot:

Si el vostre arduino no s’encén, és clar que és un problema de tensió. Comproveu si els cables no estan connectats correctament i si hi ha un curtcircuit.

Si s’encén però no funciona, assegureu-vos que totes les connexions estiguin on haurien d’estar, que l’arduino programat per connectar-lo al servo i al divisor de tensió estigui realment connectat (és a dir, assegureu-vos que no heu barrejat proveu de prémer el botó de reinici de tots dos i vegeu què passa. En casos extremadament rars, tota la culpa pot recaure en el mòdul NRF24. He trobat un dels meus que només funciona a 5 volts i un altre que només funciona a 3,3 v. Comproveu si això soluciona res. També em va passar que només un arduino funcionava amb la ràdio de 3.3v i l’altre només funcionava amb el de 5v. Sorprenent, oi?

En tercer lloc, si podeu moure el servo, però les tensions són incorrectes, comproveu que les connexions al divisor de tensió siguin com es mostra al diagrama del pas 3 i que la connexió a l’arduino. Si, en canvi, obteniu tensions però no podeu moure el servo correctament, comproveu el potenciòmetre i les seves connexions, la connexió del servo al pin digital i al Vcc i Gnd, i si el servo està encallat, trencat o endinsat. un curtcircuit. Proveu de canviar-lo amb un altre servo. Assegureu-vos que el pin digital sigui el mateix que l’especificat al codi

Bé, això són gairebé totes les coses que em podrien venir al cap sobre els problemes que podríeu trobar. Espero que no passin mai i Happy Projects!

Gràcies per llegir el meu Instructable. Compartiu-lo i voteu-lo pel concurs AUTOR PRIMERA vegada.

Recomanat: