- Motore CC senza nucleo per auto RC
- Materiali richiesti
- Joystick RF per auto RC utilizzando Arduino
- Schema del circuito dell'automobile Arduino RC
- PCB di fabbricazione per auto RC Arduino
- Assemblaggio del PCB
- Ruote di stampa 3D e supporto motore
- Programmazione di Arduino
- Funzionante di Arduino RC Car
Le auto radiocomandate sono sempre divertenti con cui giocare, personalmente sono un grande fan di queste auto telecomandate e ho giocato (ci faccio ancora) molto. La maggior parte di queste auto oggi fornisce una coppia enorme per gestire terreni accidentati, ma c'è qualcosa che è sempre stato in ritardo, la sua velocità !!.. Quindi, in questo progetto, costruiremo un tipo di auto RC completamente diverso usando Arduino, il principale L'obiettivo di questa macchina è raggiungere la massima velocità, quindi ho deciso di provare il motore CC senza nucleo per un'auto RC. Questi motori sono normalmente utilizzati nei droni e hanno una velocità nominale di 39000 giri / min che dovrebbe essere più che sufficiente per placare la nostra sete di velocità. L'auto sarà alimentata con una piccola batteria al litio e potrà essere controllata a distanza utilizzando il modulo RF nRF24L01. In alternativa, se stai cercando qualcosa di semplice, puoi anche controllare questo progetto Simple RF Robot e Raspberry Pi Bluetooth Car.
Motore CC senza nucleo per auto RC
Il motore CC senza nucleo utilizzato in questo progetto è mostrato nella figura sotto. Puoi trovarli facilmente poiché sono ampiamente utilizzati nei mini droni. Basta cercare 8520 Magnetic Micro Coreless Motor e troverai questi.
Ora, ci sono alcuni svantaggi nell'utilizzo di motori DC per un'auto RC. La prima cosa è che forniscono una coppia di spunto molto bassa, quindi la nostra auto RC dovrebbe essere il più leggera possibile. Questo è il motivo per cui ho deciso di costruire l'intera macchina su un PCB utilizzando componenti SMD e riducendo il più possibile le dimensioni della scheda. Il secondo problema è la sua alta velocità, 39000 RPM (RPM dell'albero) sono difficili da gestire, quindi abbiamo bisogno di un circuito di controllo della velocità sul lato Arduino, che abbiamo costruito usando un MOSFET. La terza cosa è che questi motori saranno alimentati da una singola batteria ai polimeri di litio con una tensione operativa compresa tra 3,6 V e 4,2 V, quindi dobbiamo progettare il nostro circuito per funzionare a 3,3 V. Questo è il motivo per cui abbiamo utilizzato un Arduino Pro mini da 3,3 V.come il cervello della nostra macchina RC. Una volta risolti questi problemi, diamo un'occhiata ai materiali necessari per costruire questo progetto.
Materiali richiesti
- 3.3V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2pz
- Modulo joystick
- MOSFET SI2302
- Diodo 1N5819
- Motori BLDC senza nucleo
- AMS1117-3.3V
- Batteria ai polimeri di litio
- Resistenze, Condensatori,
- Cavi di collegamento
Joystick RF per auto RC utilizzando Arduino
Come accennato in precedenza, l'auto RC sarà controllata da remoto utilizzando un joystick RF. Anche questo Joystick sarà costruito utilizzando un Arduino insieme a un modulo RF nRF24L01, abbiamo anche utilizzato il modulo Joystick per controllare il nostro RC nella direzione richiesta. Se sei completamente nuovo a questi due moduli, puoi prendere in considerazione la lettura degli articoli Interfacing Arduino with nRF24L01 e Interfacing Joystick with Arduino per imparare come funzionano e come usarli. Per costruire il tuo joystick remoto RF Arduino puoi seguire lo schema del circuito sottostante.
Il circuito RF Joystick può essere alimentato utilizzando la porta USB della scheda nano. Il modulo nRF24L01 funziona solo su 3.3V, quindi abbiamo usato il pin 3.3V su Arduino. Ho costruito il circuito su una breadboard e sembra di seguito, puoi anche creare un PCB se necessario.
Il codice Arduino per il circuito RF Joystick è piuttosto semplice, dobbiamo leggere il valore X e il valore Y dal nostro Joystick e inviarlo all'auto RC tramite nRF24L01. Il programma completo di questo circuito si trova in fondo a questa pagina. Non entreremo nella spiegazione di ciò poiché ne abbiamo già discusso nel collegamento al progetto di interfacciamento condiviso sopra.
Schema del circuito dell'automobile Arduino RC
Di seguito è mostrato lo schema elettrico completo della nostra auto Arduino telecomandata. Lo schema del circuito include anche un'opzione per aggiungere due moduli IR TCRT5000 alla nostra auto. Questo è stato progettato per consentire alla nostra auto RC di funzionare come un robot che segue la linea in modo che possa funzionare da sola senza essere controllata dall'esterno. Tuttavia, per il bene di questo progetto non ci concentreremo su di esso, rimanete sintonizzati per un altro tutorial di progetto in cui proveremo a costruire il "Fastest Line Follower Robot". Ho combinato entrambi i circuiti su un singolo PCB per la facilità di costruzione, puoi ignorare il sensore IR e la sezione Op-amp per questo progetto.
L'auto RC sarà alimentata dalla batteria Lipo collegata al terminale P1. L' AMS117-3.3V viene utilizzato per regolare 3,3V per il nostro nRF24L01 e la nostra mini-scheda pro. Possiamo anche alimentare la scheda Arduino direttamente sul pin grezzo, ma il regolatore di tensione 3.3V integrato sul pro mini non sarà in grado di fornire corrente sufficiente ai nostri moduli RF, quindi abbiamo utilizzato un regolatore di tensione esterno.
Per pilotare i nostri due motori BLDC, abbiamo utilizzato due MOSFET SI2302. È importante assicurarsi che questi MOSFET possano essere pilotati da 3,3 V. Se non riesci a trovare lo stesso identico numero di parte, puoi cercare MOSFET equivalenti con le seguenti caratteristiche di trasferimento
I motori possono consumare una corrente di picco fino a 7 A (la continua è stata testata per essere 3 A con carico), quindi la corrente di drenaggio del MOSFET dovrebbe essere 7 A o più e dovrebbe accendersi completamente a 3,3 V. Come puoi vedere qui, il MOSFET che abbiamo selezionato può fornire 10 A anche a 2,25 V, quindi è una scelta ideale.
PCB di fabbricazione per auto RC Arduino
La parte divertente della costruzione di questo progetto è stata lo sviluppo del PCB. Il PCB qui non solo forma il circuito, ma funge anche da telaio per la nostra auto, quindi abbiamo pianificato un'auto in cerca della forma con opzioni per montare facilmente i nostri motori. Puoi anche provare a progettare il tuo PCB usando il circuito sopra oppure puoi usare il mio progetto PCB che assomiglia a questo sotto una volta completato.
Come puoi vedere, ho progettato il PCB per montare facilmente la batteria, il motore e altri componenti. È possibile scaricare il file Gerber per questo PCB dal collegamento. Una volta che sei pronto con il file Gerber, è il momento di farlo fabbricare. Per ottenere facilmente i tuoi PCB da PCBGOGO, segui i passaggi seguenti
Passaggio 1: accedi a www.pcbgogo.com, registrati se è la prima volta. Quindi, nella scheda Prototipo PCB, inserisci le dimensioni del tuo PCB, il numero di strati e il numero di PCB richiesto. Il mio PCB è 80 cm × 80 cm, quindi la scheda è simile alla seguente.
Passaggio 2: procedi facendo clic sul pulsante Cita ora . Sarai portato a una pagina dove impostare alcuni parametri aggiuntivi, se necessario, come il materiale utilizzato per la spaziatura delle tracce, ecc. Ma per lo più i valori predefiniti funzioneranno bene. L'unica cosa che dobbiamo considerare qui è il prezzo e il tempo. Come puoi vedere, il tempo di costruzione è di soli 2-3 giorni e costa solo $ 5 per il nostro PSB. È quindi possibile selezionare un metodo di spedizione preferito in base alle proprie esigenze.
Passaggio 3: il passaggio finale è caricare il file Gerber e procedere con il pagamento. Per assicurarsi che il processo sia fluido, PCBGOGO verifica se il tuo file Gerber è valido prima di procedere con il pagamento. In questo modo puoi essere certo che il tuo PCB è facile da fabbricare e ti raggiungerà come impegnato.
Assemblaggio del PCB
Dopo che la scheda è stata ordinata, mi ha raggiunto dopo alcuni giorni anche se il corriere in una scatola ben imballata ben etichettata e come sempre la qualità del PCB era eccezionale. Condivido alcune immagini delle bacheche qui sotto affinché tu possa giudicare.
Ho acceso la mia barra di saldatura e ho iniziato a montare la scheda. Poiché le impronte, i pad, i via e la serigrafia sono perfetti della giusta forma e dimensione, non ho avuto problemi a montare la tavola. La tavola era pronta in soli 10 minuti dal momento del disimballaggio della scatola.
Di seguito sono riportate alcune immagini della scheda dopo la saldatura.
Ruote di stampa 3D e supporto motore
Come avrai notato nell'immagine sopra, abbiamo bisogno di 3D il nostro supporto motore e le ruote per il robot. Se hai utilizzato il nostro file Gerber PCB condiviso sopra, potresti anche utilizzare un modello 3D scaricandolo da questo collegamento a thingiverse.
Ho usato Cura per tagliare i miei modelli e li ho stampati usando Tevo Terantuala senza supporti e 0% di riempimento per ridurre il peso. È possibile modificare l'impostazione in base alle esigenze della nostra stampante. Poiché i motori ruotano molto velocemente, ho trovato difficile progettare una ruota che si adatti perfettamente all'albero del motore. Quindi ho deciso di utilizzare le lame del drone all'interno della ruota come puoi vedere sotto
Ho trovato questo più affidabile e robusto, tuttavia, sperimenta diversi design di ruote e fammi sapere nella sezione commenti cosa ha funzionato per te.
Programmazione di Arduino
Il programma completo (sia Arduino nano che pro mini) per questo progetto si trova in fondo a questa pagina. La spiegazione del tuo programma RC è la seguente
Avviamo il programma includendo il file di intestazione richiesto. Nota che, il modulo nRF24l01 richiede l'aggiunta di una libreria al tuo IDE Arduino, puoi scaricare la libreria RF24 da Github usando questo link. A parte questo, abbiamo già definito la velocità minima e massima per il nostro robot. L'intervallo minimo e massimo va da 0 a 1024 rispettivamente.
#define min_speed 200 #define max_speed 800 #include
Quindi all'interno della funzione di configurazione, inizializziamo il nostro modulo nRF24L01. Abbiamo utilizzato le 115 bande poiché non è congestionata e ha impostato il modulo per funzionare a bassa potenza, puoi anche giocare con queste impostazioni.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 bande sopra i segnali WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN power low rage myRadio.setDataRate (RF24_250KBPS); // Velocità minima}
Successivamente, nella funzione loop principale, eseguiremo solo la funzione ReadData con la quale leggeremo costantemente il valore inviato dal nostro modulo joystick del trasmettitore. Notare che l'indirizzo del tubo menzionato nel programma dovrebbe essere lo stesso di quello menzionato nel programma del trasmettitore. Abbiamo anche stampato il valore che riceviamo a scopo di debug. Una volta che il valore è stato letto con successo, eseguiremo la funzione Control Car per controllare la nostra auto RC in base al valore ricevuto dal
modulo Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Quale pipe leggere, indirizzo a 40 bit myRadio.startListening (); // Stop Transminting and start Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nReceived:"); Serial.println (data.msg); ricevuto = data.msg; Control_Car (); }}
All'interno della funzione Control Car, controlleremo i motori collegati ai pin PWM utilizzando la funzione di scrittura analogica. Nel nostro programma trasmettitore abbiamo convertito i valori analogici da A0 e A1 pin di Nano a 1 a 10, 11 a 20, 21 a 30 e 31 a 40 per controllare l'auto rispettivamente in avanti, indietro, sinistra e destra. Il programma seguente viene utilizzato per controllare il robot in avanti
if (ricevuto> = 1 && ricevuto <= 10) // Sposta in avanti {int PWM_Value = mappa (ricevuto, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Allo stesso modo, possiamo anche scrivere altre tre funzioni per il controllo inverso, sinistro e destro come mostrato sotto.
if (ricevuto> = 11 && ricevuto <= 20) // Break {int PWM_Value = map (ricevuto, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (ricevuto> = 21 && ricevuto <= 30) // Gira a sinistra {int PWM_Value = map (ricevuto, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (ricevuto> = 31 && ricevuto <= 40) // Gira a destra {int PWM_Value = map (ricevuto, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Funzionante di Arduino RC Car
Dopo aver terminato con il codice, caricalo sulla tua mini-board pro. Rimuovere la batteria e la scheda attraverso il modulo FTDI per il test. Avvia il tuo codice, apri la batteria seriale e dovresti ricevere il valore dal modulo Joystick del trasmettitore. Collega la batteria e anche i motori dovrebbero iniziare a ruotare.
Il funzionamento completo del progetto si trova nel video linkato in fondo a questa pagina. Se hai domande, lasciale nella sezione commenti. Puoi anche utilizzare i nostri forum per ottenere risposte rapide ad altre tue domande tecniche.