Sommario:

Radio bidirezionale NRF24 per telemetria: 9 passaggi (con immagini)
Radio bidirezionale NRF24 per telemetria: 9 passaggi (con immagini)

Video: Radio bidirezionale NRF24 per telemetria: 9 passaggi (con immagini)

Video: Radio bidirezionale NRF24 per telemetria: 9 passaggi (con immagini)
Video: I segreti del FRECCIAROSSA 1000 | Come si guida un TRENO ad ALTA VELOCITÀ da 35 mln € 2024, Luglio
Anonim
Radio bidirezionale NRF24 per telemetria
Radio bidirezionale NRF24 per telemetria

Ciao ragazzi, mi chiamo Pedro Castelani e vi porto il mio primo istruttore: costruire una radio bidirezionale con arduino per, beh, qualunque cosa vi serva.

In questo progetto, realizzeremo due circuiti separati che fungeranno sia da ricevitore che da trasmettitore. I componenti più importanti sono due schede arduino (funzionano tutte) e due moduli ricetrasmettitori nrf24. Nel mio caso, controllo un servo con un potenziometro dall'altro arduino e rimando le tensioni di una batteria lipo a due celle al primo.

Ho intenzione di usarlo come add-one per il mio drone, che non possiede telemetria né controllo servo cardanico. Puoi, tuttavia, usarlo per altre cose, come costruire il tuo quadricottero, aereo, auto rc, ecc. Dal codice fornito puoi anche apportare le modifiche che desideri in base alle tue esigenze. Cercherò anche di spiegare come modificarlo correttamente (cosa che mi ha richiesto un po' di tempo per imparare da solo, essendo abituato ad un altro tipo di utilizzo del chip nrf24).

Passaggio 1: materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

Per iniziare il nostro progetto, abbiamo bisogno di conoscere tutte le parti necessarie. Di seguito è riportato un elenco di quelli di base necessari. Ho comprato la maggior parte di loro in un negozio di elettronica locale dove vivo, quindi non sarò in grado di consigliarti un posto dove comprarli. Potresti provare Amazon o qualsiasi altro posto. Non sto dicendo che dovresti ordinarli lì, ma è solo un suggerimento.

  1. Due schede Arduino (tutti dovrebbero funzionare. Ho due arduino pro mini, che mi piacciono molto perché hanno 13 pin digitali e 8 analogici, mentre l'Uno ne ha solo 6 analogici).
  2. Due moduli Nrf24. Ce ne sono alcuni con antenne esterne che hanno un raggio di trasmissione maggiore. Scegli quelli che più ti piacciono.
  3. Cavi jumper Femmina-Femmina e Femmina-Maschio.
  4. Scheda di prototipazione.
  5. Arduino Programmer (per arduino pro mini, se ne hai uno con connessione usb non ne avrai bisogno).
  6. Arduino IDE (Software). Scarica da qui.
  7. Nel mio caso ho utilizzato anche:
  • Servo. Chiunque tu possa avere. Mi piace l'SG90, un piccolo progettato per arduino.
  • Potenziometro (tra 10k e 20k ohm). Può essere acquistato presso un negozio di elettronica locale oppure è possibile utilizzare il joystick realizzato per arduino. Ci sono alcune immagini di quelle che ho. Ne ho anche preso uno da un controller rc drone rotto, solo per darti qualche idea
  • 4 resistori normali uguali. Ho usato quelli da 10.000 che ho preso dalla casa di mio nonno. Li sto usando come divisori di tensione.
  • Piccolo perfboard pad in rame (che ho anche ricevuto da mio nonno) per saldare insieme i resistori.
  • Perni. Utilizzato per collegare facilmente i cavi jumper dall'arduino alle resistenze.
  • Batteria lipo 2s. Lo uso per alimentare uno dei miei arduino. I resistori sono collegati ad esso e leggono le sue tensioni. Intendo che il mio arduino sia collegato alla batteria 2s del mio drone, poiché non avrà bisogno di una fonte di alimentazione esterna e allo stesso tempo mi dirà quanta batteria è rimasta.
  • Saldatore e saldatore. Necessario per saldare i resistori, la perfboard e i pin insieme.

Passaggio 2: funzione e codice

Funzione e codice
Funzione e codice

Una volta citati tutti i materiali, iniziamo a parlare della funzione dei moduli.

Come funziona: chiamiamo un arduino "A" e l'altro "B". Nel mio caso, dopo aver programmato entrambi, li ho collegati al loro chip radio corrispondente e ho aggiunto il potenziometro ad arduino A e le resistenze e il servo ad arduino B. Il modulo A invia i valori a B e sposta il Servo. B legge le tensioni della batteria 2s e le rimanda ad A. Poi ricomincia tutto il cerchio. Poiché A riceve valori non espressi meccanicamente, è collegato al programmatore, attraverso il quale possiamo leggerli con un monitor seriale (incluso nell'IDE di Arduino)

Codice: chiamo lo sketch per arduino A (collegato con il programmatore e il potenziometro) TwoWayRadio_1, e lo sketch per arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 e TwoWayRadio_2WithServo si trovano appena sotto questo paragrafo. C'è una spiegazione all'interno di ogni codice solo per rendere tutto più facile da capire.

Passaggio 3: moduli di saldatura: divisore di tensione e potenziometro

Moduli di saldatura: divisore di tensione e potenziometro
Moduli di saldatura: divisore di tensione e potenziometro
Moduli di saldatura: divisore di tensione e potenziometro
Moduli di saldatura: divisore di tensione e potenziometro
Moduli di saldatura: divisore di tensione e potenziometro
Moduli di saldatura: divisore di tensione e potenziometro
Moduli di saldatura: divisore di tensione e potenziometro
Moduli di saldatura: divisore di tensione e potenziometro

Questo passaggio è facoltativo, poiché potresti semplicemente voler utilizzare il potenziometro-joystick progettato specificamente per arduino e utilizzare un altro modulo al posto del partitore di tensione. Io, invece, ho pianificato tutto (codici inclusi) per questi moduli.

Potenziometro:

Questa parte è quasi la più semplice nella fase di saldatura. Dovrai solo saldare alcuni cavi jumper al tuo potenziometro. Se lo desideri, puoi prima saldare il potenziometro alla perfboard e poi saldare alcuni dei pin. Quando è necessario utilizzarlo, è sufficiente collegare i cavi jumper all'arduino e quindi ai pin sulla perfboard. Quando non sono in uso, è possibile rimuovere i cavi e utilizzarli per un altro progetto. Se invece fai come ho fatto io, puoi lasciare il potenziometro saldato direttamente ai cavi

  • Se stai facendo come ho fatto io, prendi tre cavi jumper femmina-femmina, taglia una delle punte e rimuovi l'isolamento lì, lasciando un piccolo pezzo di filo di rame su ciascun filo.
  • Riscaldare il saldatore e saldare i ponticelli modificati ai pin dei potenziometri. Se puoi, prova a ottenere colori diversi in modo da ricordare quale è vcc, gnd e quello "segnale" (quello centrale). Collega questi cavi ai corrispondenti pin analogici sull'arduino. Ci sono alcune immagini all'inizio del passaggio su come è finito guardando. Il potenziometro non è normale, è in realtà una piccola ruota con cinque perni. Mi ci è voluto del tempo per scoprire quale fosse quale. Prova a farlo più facilmente e usa un normale potenziometro come mostrato nel passaggio MATERIALI.
  • Se lo stai saldando a un perfboard, prendi il potenziometro e il perfboard e saldali insieme al tuo saldatore.
  • Prendi i perni (tre) e posizionali nel modo più conveniente. Usa la saldatura per creare una connessione tra ciascun pin e i pin del potenziometro. Non effettuare una connessione tra più di due pin o non funzionerà (agirà come un cortocircuito).
  • Prendi alcuni cavi jumper femmina-femmina o femmina-maschio e collegali dal tuo arduino al tuo nuovo modulo potenziometro (ricorda quale è quale).

2. Divisore di tensione:

  • Questa parte è un po' più complicata. Dovrai procurarti i quattro resistori, i cinque pin e la perfboard. Ho progettato il codice da utilizzare per una batteria 2s (due celle), ma potresti anche usarlo per 1s cambiando un po' lo sketch di arduino e l'hardware. Ho incluso le immagini di due divisori di tensione che ho realizzato, uno con solo 2 resistori (per batterie 1s) e uno con quattro (hai indovinato: batterie 2s).
  • Cominciamo con il 2s. Non ho immagini del processo di costruzione da quando ho iniziato a scrivere questo istruibile molto tempo dopo aver finito di saldarlo. Includo immagini del risultato finale, quindi cercherò di essere il più chiaro possibile.
  • Inizia ottenendo la perfboard e 5 pin. Saldarli vicino al lato e non lasciarli toccare l'un l'altro.
  • Saldare i resistori come mostrato nell'ultima immagine all'inizio del passaggio (il piccolo schema del circuito). I collegamenti tra ogni resistore e pin sono realizzati con saldatura. Cerca di occupare il minor spazio possibile.
  • Quando hai finito, dovrebbe assomigliare alle immagini del partitore di tensione finito che ho pubblicato sopra.
  • Il partitore di tensione 1s è sostanzialmente lo stesso, con l'eccezione che si utilizzano solo tre pin e due resistori. Ho incluso immagini di come appare una volta finito. Basta guardare lo schema per quello 2s e immaginarlo senza il filo di segnale 1, il filo centrale e i resistori r2 e r3 e lì, ce l'hai!
  • Quindi, se vuoi un divisore di tensione 1s, potrebbe essere solo un po' più complicato del semplice utilizzo di uno 2s.

Passaggio 4: programmare il tuo Arduino

Programmare il tuo Arduino
Programmare il tuo Arduino
  1. Abbiamo quasi finito!
  2. Dopo aver scaricato il software Arduino IDE dal sito linkato nel passaggio MATERIALI, scaricare gli sketch dal passaggio FUNZIONE E CODICE.
  3. Quindi, aprili nell'IDE di Arduino.
  4. Apri "Strumenti" in una qualsiasi di entrambe le schede e fai clic su "Schede". Scegli la tua tavola dall'elenco. Fare clic su "Processore" e poi su "Programmatore", selezionando ciascuno in base alla propria scheda. Quindi tornare allo schizzo. È abbastanza comodo cercare le informazioni della tua scheda su Internet. Basta cercare il nome e vedere le specifiche.
  5. Fai clic su "schizzo" (in alto), quindi su "includi libreria", quindi su "gestisci librerie". Una piccola finestra dovrebbe aprirsi al centro dello schermo. Immettere l'opzione di ricerca "rf24". Scarica la libreria che desideri. Sarà necessario poter caricare il codice sulla scheda arduino.
  6. Solo per essere sicuri, fai clic sul simbolo "Tick" (in alto a sinistra) per verificare che non contenga errori. Procedi quindi a caricarlo premendo la freccia che punta a destra, accanto al simbolo "Tick".
  7. Se la tua scheda è una Pro Mini, ti spiego tra poco come collegare il tutto. In caso contrario, basta caricarlo e, una volta terminata la programmazione di entrambi gli arduino, passare al passaggio successivo, dopo aver letto l'avviso di seguito.
  8. Poiché hai due schede, RICORDA con quale codice è stata programmata ciascuna, per evitare problemi futuri.
  9. Quindi, se hai un Pro Mini, avrai bisogno di un programmatore. Esistono due tipi di programmatori: 5 pin e 6 pin. Mi concentrerò su quelli a 5 pin poiché sono quelli che ho. I collegamenti sono i seguenti (il primo pin è da programmatore, poi arduino): Gnd--Gnd; 5v-Vcc (tranne se il tuo Pro Mini è un 3.3v, nel qual caso è 3.3v--Vcc); Rxd: Txo; Txd--Rxi. Ho incluso un'immagine sia della scheda che del programmatore, nel caso avessi bisogno di controllare.
  10. Collega il tuo arduino al programmatore e il programmatore al tuo computer. Apri l'IDE e fai clic sul pulsante di caricamento. Se guardi nella parte inferiore sinistra dello schermo, vedrai un messaggio che dice "compilazione". Nel momento in cui questo messaggio diventa "uploading", premi il pulsante di ripristino su arduino Pro Mini. Dopo un po', lo schizzo terminerà e apparirà un messaggio che dice "Caricamento completato". Una volta che ciò accade, hai finito e sei pronto per passare al passaggio successivo.

Passaggio 5: collegare tutto

Collegamento di tutto
Collegamento di tutto
Collegamento di tutto
Collegamento di tutto
Collegamento di tutto
Collegamento di tutto
Collegamento di tutto
Collegamento di tutto
  1. Dopo aver programmato entrambi gli arduino, dobbiamo collegare tutto per farlo funzionare. Qui avremo bisogno di tutto ciò che è stato menzionato prima: gli arduino, i moduli nrf24, i cavi, il servo, il programmatore, il partitore di tensione, il potenziometro, ecc.
  2. Per prima cosa collegheremo l'arduino che funziona con il programmatore. All'inizio della fase ci sono le immagini dei collegamenti del nrf24. Il pin irq, che si dice vada al pin 8 dell'arduino, non è affatto collegato. Il resto è proprio come nell'immagine per entrambi gli arduino (potete leggere le note all'interno delle immagini per maggiori info)
  3. Il Vcc per la radio può essere collegato a 3.3 o 5v. A volte funziona solo con uno di loro. Prova con 3.3 e poi 5 se non funziona. Per 3.3, utilizzare il pin 3.3v del programmatore. Ho dovuto farlo, come vedrete nelle immagini del prodotto finito.
  4. Collega il programmatore ad arduino come detto nel passaggio precedente.
  5. Collegare il cavo di "segnale" del potenziometro al pin analogico A0.
  6. Collegare il "Positivo" del potenziometro a Vcc (solo 5v, non 3.3) e "Negativo" a Gnd.
  7. Passa all'altro arduino.
  8. Collegare la radio come detto prima, secondo le immagini.
  9. Collega il cavo di segnale del servo (arancione-giallo-bianco. Controlla le specifiche per il servo) al pin digitale 2, e la sua massa al Gnd di arduino, e il suo positivo al Vcc di arduino.
  10. Collegare il cavo di segnale 1 dal partitore di tensione al pin A0 e il cavo di segnale 2 al pin A1.
  11. Collegare, utilizzando la scheda prototipi, il cavo negativo del partitore di tensione, la massa di arduino e la massa della batteria (cavo nero sulla spina jst).
  12. Collegare il "cavo centrale" dal partitore di tensione a quello centrale della batteria, tra i cavi rosso e nero della spina jst (colore bianco).
  13. Collega il cavo "positivo" dal partitore di tensione al terminale positivo della batteria e al Raw dell'arduino. Non collegare direttamente a Vcc, poiché questo pin è specifico per 5v. Il pin Raw utilizza qualsiasi tensione superiore a 3,3 o 5v a 12v e lo regola I pin Vcc diventano quindi uscite a 5v.

Hai quasi finito! I tuoi prodotti finiti dovrebbero apparire come le immagini sopra. Ricontrollare ogni connessione per evitare cortocircuiti.

Passaggio 6: potenzia il tuo progetto

  • Il tuo arduino con il servo è stato alimentato nell'ultimo passaggio quando hai collegato la batteria all'intero circuito. Quindi, devi solo collegare l'altro arduino a una porta USB e il gioco è fatto!
  • Muovi il potenziometro e dovresti vedere come si muove anche il servo. Nel mio caso, il servo è collegato a un gimbal della fotocamera a 1 asse, che ha limitato l'angolo, quindi ho dovuto regolare i parametri. Lo troverai comunque nel codice.
  • Per vedere le tensioni, una volta collegato il programmatore al computer, apri il software arduino e premi "Ctrl+Shift+m". Si aprirà una finestra che dice "Serial Monitor". Nella parte inferiore di questa finestra c'è un'opzione che dice "(numero) baud". Fare clic su di esso e selezionare "9600". Chiudi il monitor e riaprilo premendo gli stessi tasti e dovresti iniziare a vedere molti valori in arrivo. Non sarai in grado di vedere quali sono questi valori a causa della velocità con cui stanno arrivando, ma se disconnetti il programmatore si fermeranno e potrai leggerli. Sto cercando di ottenere qualcosa con cui graficarli automaticamente per visualizzare le tensioni o rappresentarli con i led, ma è ancora in corso.
  • Anche se potresti non vedere chiaramente i valori, dal momento che stanno passando così velocemente, sappi solo che finalmente funziona e che puoi modificarlo per soddisfare le tue esigenze!

Passaggio 7: dimostrazione

Bene, questo è il video in cui lo accendo e lo uso solo un po' per mostrarti come dovrebbe funzionare.

Passaggio 8: altre idee su come utilizzare questo progetto

Altre idee su come utilizzare questo progetto
Altre idee su come utilizzare questo progetto
Altre idee su come utilizzare questo progetto
Altre idee su come utilizzare questo progetto
Altre idee su come utilizzare questo progetto
Altre idee su come utilizzare questo progetto

Ecco alcune idee che puoi costruire usando questo come base. Dimmi se ne fai uno o se ci provi e non puoi così posso aiutarti!

  • Invece di leggere le tensioni, modifica il codice in modo che restituisca la temperatura, la pressione, l'altezza, ecc. Ho trovato abbastanza utile il chip BMP180 per questo.
  • Misura le distanze con il modulo HC-SR04 e inviale al primo arduino. Usa il servo per puntare il sensore dove vuoi.
  • Aggiungi un altro canale servo per spostare una telecamera verso l'alto e lateralmente; per esempio, su un'auto RC.
  • Aggiungi altri tre canali servo (o più!) e crea il tuo trasmettitore e ricevitore rc per un quadricottero, aereo, elicottero, auto rc, ecc!
  • Cambia il servo per un proiettore e aggiungilo al tuo drone! Sarai anche in grado di controllare l'intensità della luce (potrebbe essere necessario alcuni transistor e alcune modifiche al codice)
  • Invece di leggere i voltaggi su un computer, sii creativo e aggiungi un modulo lcd, oppure puoi realizzare una scheda a 6 led (due verdi, due gialli e due rossi) che li spegnerà uno ad uno man mano che la batteria si scarica e inizierà a lampeggiare quando il livello della batteria scende al di sotto della tensione scelta. Ho realizzato questa piccola scheda e postato un'immagine all'inizio del passaggio.

Giusto per chiarire tutto, se hai intenzione di realizzare uno di questi progetti, tieni presente che dovrai modificare entrambi i codici e forse alcune connessioni. Per favore, cerca di ricordare di non friggere la tua tavola facendo qualcosa di stupido.

Se hai altre idee o hai bisogno di aiuto per realizzare uno di questi progetti, pubblica nella sezione delle domande!

Passaggio 9: risoluzione dei problemi

Risoluzione dei problemi
Risoluzione dei problemi

A dire il vero, la maggior parte dei problemi che ho riscontrato finora erano legati alla parte dello schizzo, che hai già risolto. Cercherò di dirti quanti più problemi posso per aiutarti il più possibile.

Innanzitutto, se stai provando a caricare lo schizzo e non puoi, prova questo:

Assicurati di aver scaricato le librerie necessarie (e quelle corrette!).

Assicurati di aver scelto la scheda, il processore e il programmatore corretti.

Assicurati che la connessione tra il pc e il programmatore e il programmatore e l'arduino sia buona.

Se stai utilizzando un pro mini, prova a premere il pulsante di ripristino non appena possibile dopo la visualizzazione del messaggio "caricamento".

Di tutte queste cose si parla nel passaggio PROGRAMMAZIONE DEL TUO ARDUINO.

Secondo, controlla tutte le connessioni tra tutto:

Se il tuo arduino non si accende, è chiaramente un problema di tensione. Controllare se i cavi non sono collegati correttamente e se c'è un corto circuito.

Se si accende ma non funziona, assicurati che tutte le connessioni siano dove dovrebbero essere, che l'arduino programmato per essere collegato al servo e al partitore di tensione sia davvero collegato a loro (in altre parole, assicurati di non aver mischiato sollevarli), prova a premere il pulsante di ripristino su entrambi e guarda cosa succede. In casi estremamente rari, tutta la colpa può essere del modulo NRF24. Ne ho trovato uno dei miei che funziona solo a 5 volt e un altro che funziona solo a 3.3v. Controlla se questo risolve qualcosa. Anche a me è successo che solo un arduino funzionava con la radio 3.3v e l'altro funzionava solo con quella 5v. Sorprendente, non è vero?

Terzo, se puoi spostare il servo ma le tensioni sono sbagliate, controlla che i collegamenti al partitore di tensione siano come nello schema al punto 3 e il collegamento all'arduino. Se invece ti arrivano le tensioni ma non riesci a muovere correttamente il servo, controlla il potenziometro e i suoi collegamenti, il collegamento del servo al pin digitale e ai Vcc e Gnd, e se il servo è bloccato, rotto o in un corto circuito. Prova a cambiarlo con un altro servo. Assicurati che il pin digitale sia lo stesso di quello specificato nel codice

Bene, queste sono quasi tutte le cose che potrebbero venirmi in mente sui problemi che potresti incontrare. Spero che non accadano mai e Happy Projects!

Grazie per aver letto il mio Instructable! Per favore condividilo e votalo per il concorso FIRST TIME AUTHOR!

Consigliato: