- Componenti necessari per Arduino RC Boat
- Trasmettitore RF 433 MHz e moduli ricevitore
- Trasmettitore RF 433MHZ
- Diagramma a blocchi del trasmettitore Arduino RC Boat
- Schema del circuito del telecomando Arduino RC (trasmettitore)
- Costruzione del circuito trasmettitore RC BOAT
- Costruzione della custodia del trasmettitore della barca RC Arduino
- Modulo ricevitore 433 Mhz
- Diagramma a blocchi del ricevitore per barca Arduino RC
- Schema del circuito del ricevitore Arduino RC Boat
- Costruzione del circuito ricevitore di Arduino RC Boat
- Costruire la RC-BOAT
- Motori ed eliche per Arduino Air Boat
- Funzionamento di Arduino RC Boat
- Programmazione Arduino della barca RC
In questo progetto, costruiremo un Air-Boat Arduino telecomandato che può essere controllato in modalità wireless utilizzando i moduli radio RF a 433 MHz. Controlleremo questa barca utilizzando un telecomando fatto in casa costruendo il nostro trasmettitore 433 MHz e un modulo ricevitore. Nel caso di dispositivi controllati a distanza o di comunicazione tra due dispositivi, abbiamo molte opzioni come IR, Bluetooth, Internet, RF, ecc. Rispetto alla comunicazione IR, le comunicazioni radio hanno alcuni vantaggi come una maggiore portata e no richiedono una linea di collegamento visivo tra il trasmettitore e il ricevitore. Inoltre, questi moduli possono fare due modi di comunicazione, il che significa che possono trasmettere e ricevere allo stesso tempo. Quindi, usando questo modulo RF a 433 MHz, costruiamo una barca RC Arduino in questo tutorial.
Abbiamo già realizzato molti progetti telecomandati utilizzando questi moduli RF da 433 Mhz per il controllo di un robot come questo robot controllato da RF o per applicazioni di automazione domestica per il controllo di elettrodomestici tramite RF. Oltre a utilizzare i moduli RF, in precedenza abbiamo anche costruito un'auto Raspberry Pi controllata da Bluetooth e un robot Arduino controllato da un telefono cellulare DTMF. Puoi anche dare un'occhiata a questi progetti se sei interessato.
Componenti necessari per Arduino RC Boat
- Trasmettitore e ricevitore 433 MHz
- Arduino (qualsiasi Arduino, per ridurre le dimensioni sto usando promini)
- HT12E e HT12D
- Pulsanti: 4 n
- Resistenze: 1mega ohm, 47k ohm
- Driver motore L293d
- Batteria da 9 V (sto usando una batteria da 7,4 volt) - 2Nos
- 7805 regolatore- 2Nos
- Motori DC - 2Nos
- Foglia motore o eliche (sto usando eliche fatte in casa) - 2Nos
- Condensatore.1uf- 2Nos
- PCB comune
Trasmettitore RF 433 MHz e moduli ricevitore
Questi tipi di moduli RF sono molto popolari tra i produttori. A causa del loro basso costo e semplicità nelle connessioni. Questi moduli sono i migliori per tutte le forme di progetti di comunicazione a corto raggio. Questi moduli sono moduli RF di tipo ASK (Amplitude Shift Keying), Amplitude-shift keying (ASK) è una forma di modulazione di ampiezza che rappresenta i dati digitali come variazioni dell'ampiezza di un'onda portante. In un sistema ASK, il simbolo binario 1 è rappresentato dalla trasmissione di un'onda portante ad ampiezza fissa e frequenza fissa per una durata di bit di T secondi. Se il valore del segnale è 1, verrà trasmesso il segnale portante; in caso contrario, verrà trasmesso un valore di segnale di 0. Ciò significa che di solito non assorbono energia quando trasmettono lo "zero" logico. Questo basso consumo energetico li rende molto utili nei progetti a batteria.
Trasmettitore RF 433MHZ
Questo tipo di modulo è molto piccolo e viene fornito con VCC a 3 pin, terra e dati. Alcuni altri moduli sono dotati di un pin dell'antenna aggiuntivo. La tensione di lavoro del modulo trasmettitore è 3V-12V e questo modulo non ha componenti regolabili. Uno dei principali vantaggi di questo modulo è il basso consumo di corrente, richiede quasi zero corrente per inviare il bit zero.
Diagramma a blocchi del trasmettitore Arduino RC Boat
Nello schema a blocchi sopra, ci sono quattro pulsanti (pulsanti di controllo), questi pulsanti servono per controllare la direzione della barca. Ne abbiamo quattro per avanti, indietro, sinistra e destra. Dai pulsanti, otteniamo la logica per il controllo della barca ma non possiamo connetterci direttamente all'encoder, ecco perché abbiamo utilizzato Arduino. Potresti pensare perché ho usato Arduino qui, è semplicemente perché dobbiamo abbassare due ingressi dati paralleli dell'encoder contemporaneamente per un movimento avanti e indietro che non può essere ottenuto con i soli pulsanti. Quindi l'encoder codifica i dati paralleli in arrivo sulle uscite seriali. Quindi possiamo trasmettere quei dati seriali con l'aiuto di un trasmettitore RF.
Schema del circuito del telecomando Arduino RC (trasmettitore)
Nel circuito sopra, puoi vedere un lato di tutti e quattro i pulsanti collegati a quattro pin digitali di Arduino (D6-D9) e tutti gli altri quattro lati collegati a terra. Quando premiamo il pulsante, i pin digitali corrispondenti ottengono una logica bassa. I quattro ingressi paralleli dell'encoder HT12E collegati ad altri quattro pin digitali di Arduino (D2-D5). Quindi, con l'aiuto di Arduino, possiamo decidere l'ingresso dell'encoder.
E parlando di encoder HT12E è un encoder a 12 bit e un encoder parallelo input-output seriale. Su 12 bit, 8 bit sono bit di indirizzo che possono essere utilizzati per controllare più ricevitori. I pin A0-A7 sono i pin di input dell'indirizzo. In questo progetto, stiamo controllando solo un ricevitore, quindi non vogliamo cambiare il suo indirizzo, quindi ho collegato tutti i pin degli indirizzi a terra. Se vuoi controllare diversi ricevitori con un trasmettitore, puoi usare i dip switch qui. AD8-AD11 sono gli ingressi dei bit di controllo. Questi ingressi controlleranno le uscite D0-D3 del decoder HT12D. Dobbiamo collegare un oscillatore per la comunicazione e la frequenza dell'oscillatore dovrebbe essere 3KHzper funzionamento a 5V. Quindi il valore del resistore sarà 1,1 MΩ per 5 V. Quindi ho collegato l'uscita dell'HT12E al modulo trasmettitore. Abbiamo già menzionato, il modulo trasmettitore Arduino e RF, entrambi questi dispositivi funzionano su 5V ad alta tensione lo uccideranno, quindi per evitare questo, ho aggiunto il 7805, regolatore di tensione. Ora possiamo collegare (Vcc) 6-12volt qualsiasi tipo di batterie all'ingresso.
Costruzione del circuito trasmettitore RC BOAT
Ho saldato ogni componente su un comune PCB. Ricorda che stiamo lavorando a un progetto RF, quindi ci sono molte possibilità per diversi tipi di interferenze, quindi collega tutti i componenti il più strettamente possibile. È meglio usare connettori pin femmina per Arduino e il modulo trasmettitore. Inoltre, prova a saldare tutto sui pad di rame invece di usare fili extra. Infine, collega un piccolo filo al modulo trasmettitore che aiuterà ad aumentare la portata totale. Prima di collegare Arduino e modulo trasmettitore, ricontrolla la tensione dell'uscita lm7805.
L'immagine sopra mostra la vista dall'alto del circuito trasmettitore RC Boat completato e la vista dal basso del circuito trasmettitore RC Boat completato è mostrata sotto.
Costruzione della custodia del trasmettitore della barca RC Arduino
Un corpo decente è necessario per il telecomando. Questo passaggio riguarda le tue idee, puoi creare un corpo remoto con le tue idee. Sto spiegando come l'ho realizzato. Per realizzare un corpo remoto, scelgo fogli di MDF da 4 mm, puoi anche scegliere compensato, foglio di schiuma o cartone, quindi ho tagliato due pezzi da quello con una lunghezza di 10 cm e una larghezza di 5 cm. Poi ho segnato le posizioni dei pulsanti. Ho posizionato i pulsanti di direzione sul lato sinistro e i pulsanti avanti e indietro a destra. Dall'altro lato del foglio, ho collegato i pulsanti al circuito di trasmissione principale. Ricorda che un normale pulsante ha 4 pin che sono due per ogni lato. Collega un pin ad Arduino e l'altro pin a terra. Se sei confuso con questo, controllalo con un multimetro o controlla la scheda tecnica.
Dopo aver collegato tutte queste cose, ho posizionato il circuito di controllo tra le due schede MDF e serrato con un lungo bullone (fare riferimento alle immagini sottostanti se lo si desidera). Ancora una volta, creare un buon corpo dipende dalle tue idee.
Modulo ricevitore 433 Mhz
Questo ricevitore è anche molto piccolo e viene fornito con 4 pin VCC, terra e i due pin centrali sono dati in uscita. La tensione di lavoro di questo modulo è 5v. Come il modulo trasmettitore, anche questo è un modulo a bassa potenza. Alcuni moduli sono dotati di un pin dell'antenna aggiuntivo, ma nel mio caso non è presente.
Diagramma a blocchi del ricevitore per barca Arduino RC
Lo schema a blocchi sopra descrive il funzionamento del circuito del ricevitore RF. Innanzitutto, possiamo ricevere i segnali trasmessi utilizzando il modulo ricevitore RF. L'uscita di questo ricevitore è dati seriali. Ma non possiamo controllare nulla con questi dati seriali, ecco perché abbiamo collegato l'uscita al decoder. Il decodificatore decodifica i dati seriali nei nostri dati paralleli originali. In questa sezione non abbiamo bisogno di microcontrollori, possiamo collegare direttamente le uscite al driver del motore.
Schema del circuito del ricevitore Arduino RC Boat
L' HT12D è un decodificatore a 12 bit che è un decodificatore seriale in ingresso-uscita parallela. Il pin di ingresso dell'HT12D sarà collegato a un ricevitore dotato di uscita seriale. Tra i 12 bit, 8 bit (A0-A7) sono bit di indirizzo e l'HT12D decodificherà l'ingresso se solo corrisponde al suo indirizzo corrente. D8-D11 sono i bit di uscita. Per abbinare questo circuito al circuito del trasmettitore, ho collegato tutti i pin dell'indirizzo a terra. I dati in uscita dal modulo sono di tipo seriale e il decoder decodifica questi dati seriali in dati paralleli originali e si esce attraverso D8-D11. Per abbinare la frequenza di oscillazione dovrebbe collegare il resistore 33-56k ai pin dell'oscillatore. Led sul 17 ° pin indica la trasmissione valida, si accende solo dopo quando il ricevitore è collegato a un trasmettitore. Anche la tensione di ingresso del ricevitore è di 6-12 volt.
Per controllare i motori, ho usato l'IC L293D, ho scelto questo IC perché per diminuire le dimensioni e il peso e questo IC è il migliore per controllare due motori in due direzioni. L293D ha 16 pin, lo schema sotto mostra i pinout.
1, 9 pin sono il pin di abilitazione, lo colleghiamo a 5 v per abilitare i motori 1A, 2A, 3A e 4A sono i pin di controllo. Il motore girerà a destra se il pin 1A diventa basso e 2A diventa alto, e il motore girerà a sinistra se 1A diventa basso e 2A alto. Quindi abbiamo collegato questi pin all'uscita ps del decoder. 1Y, 2Y, 3Y e 4Y sono i pin di collegamento del motore. Vcc2 è il pin della tensione di pilotaggio del motore, se si utilizza un motore ad alta tensione, collegare questo pin alla sorgente di tensione corrispondente.
Costruzione del circuito ricevitore di Arduino RC Boat
Prima di costruire il circuito del ricevitore, dovresti ricordare alcune cose importanti. L'importante sono le dimensioni e il peso perché dopo aver costruito il circuito, dobbiamo sistemarlo sulla barca. Quindi, se il peso aumenta, ciò influenzerà la galleggiabilità e il movimento.
Così come nel circuito del trasmettitore, saldare ogni componente in un piccolo PCB comune e cercare di utilizzare fili minimi. Ho collegato il pin 8 del driver del motore a 5V perché sto usando motori a 5V.
Costruire la RC-BOAT
Ho provato diversi materiali per costruire il corpo della barca. E ho ottenuto un risultato migliore con la lastra thermocol. Così ho deciso di costruire il corpo con il thermocol. Per prima cosa, ho preso un pezzo di thermocol di 3 cm di spessore e ho posizionato il circuito del ricevitore sopra, quindi ho segnato la forma della barca in thermocol e tagliato. Quindi questo è il mio modo di costruire la barca, che puoi costruire secondo le tue idee.
Motori ed eliche per Arduino Air Boat
Ancora una volta il peso conta. Quindi la scelta del motore corretto è importante, scelgo motori a corrente continua di tipo n20 a 5 volt, piccoli e senza peso. Per evitare le interferenze RF, collegare un condensatore 0.1uf in parallelo agli ingressi del motore.
Nel caso delle eliche, ho realizzato eliche utilizzando fogli di plastica. Puoi acquistare le eliche dal negozio o puoi costruirne una tua, entrambe funzioneranno perfettamente. Per costruire le eliche, per prima cosa, ho preso un piccolo foglio di plastica e ne ho tagliato due piccoli pezzi e ho piegato i pezzi con l'aiuto del calore di una candela. Infine, ho messo un piccolo foro al centro per il motore e fissato al motore il gioco è fatto.
Funzionamento di Arduino RC Boat
Questa barca ha due motori, chiamiamola sinistra e destra. Se il motore si muove anche in senso orario (dipende anche dalla posizione dell'elica), l'elica aspira aria dalla parte anteriore e scarica verso la parte posteriore. Ciò genera trascinamento in avanti.
Movimento in avanti: se entrambi i motori sinistro e destro ruotano in senso orario, il movimento in avanti
Movimento all'indietro: se entrambi i motori sinistro e destro ruotano in senso antiorario (ovvero l'elica aspira aria dal retro e scarica verso la parte anteriore), si verificherà un movimento all'indietro
Movimento a sinistra: se ruota solo il motore destro, la barca viene trascinata solo dal lato destro che farà spostare la barca sul lato sinistro
Movimento a destra: se ruota solo il motore sinistro, la barca riceve solo il trascinamento dal lato sinistro che farà muovere la barca sul lato destro.
Abbiamo collegato l'ingresso del driver del motore a quattro bit di uscita del decoder (D8-D11). possiamo controllare queste 4 uscite collegando l'AD8-AD11 alla massa che è i pulsanti del telecomando. Ad esempio, se colleghiamo AD8 a terra, questo attiverà il D8. In questo modo possiamo controllare i due motori in due direzioni utilizzando queste 4 uscite. Ma non possiamo controllare due motori con un solo pulsante (ne abbiamo bisogno per il movimento in avanti e all'indietro), ecco perché abbiamo usato Arduino. Con l'aiuto di Arduino, possiamo selezionare i pin dei dati di input come nostro desiderio.
Programmazione Arduino della barca RC
La programmazione di questa barca è molto semplice perché vogliamo solo qualche commutazione logica. E possiamo ottenere tutto con le funzioni di base di Arduino. Il programma completo di questo progetto si trova in fondo a questa pagina. La spiegazione del tuo programma è la seguente
Avviamo il programma definendo i numeri interi per quattro pulsanti di input e pin di input del decoder.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Nella sezione setup, ho definito le modalità pin. Cioè, i pulsanti sono collegati ai pin digitali, quindi questi pin dovrebbero essere definiti come input e dobbiamo ottenere l'output per l'ingresso del decoder, quindi dovremmo definire quei pin come output.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Successivamente, nella funzione loop principale, leggeremo lo stato del pulsante utilizzando la funzione digitalread di Arduino. Se lo stato del pin diventa basso, significa che il pin corrispondente è premuto, eseguiremo le condizioni come segue:
if (digitalRead (f_button) == LOW)
Ciò significa che è stato premuto il pulsante avanti
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Questo pulldown m1 e m2 dell'encoder attiverà entrambi i motori sul lato del ricevitore. Allo stesso modo, per il movimento all'indietro
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Per il movimento a sinistra
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Per il giusto movimento
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Dopo aver compilato il codice, caricalo sulla tua scheda Arduino.
Risoluzione dei problemi: posizionare la barca sulla superficie dell'acqua e controllare se si sta muovendo correttamente, altrimenti provare a cambiare la polarità dei motori e delle eliche. Inoltre, cerca di bilanciare il peso.
Il funzionamento completo del progetto si trova nel video linkato in fondo a questa pagina. Se hai domande, lasciale nella sezione commenti.