Consegna veloce
Condizioni di sconto per le aziende
Fino al 10% di sconto per alunni, studenti e istituti scolastici
Spedizione in tutta Europa a 4,90 €
Chiudi il filtro
Filtra per:

Costruire un'auto RC con Arduino: Veicolo autonomo - Parte 1

Capire la mobilità del futuro con le auto robot

Benvenuto in una nuova serie di blog sulle auto robot. Nella prima parte ne conosceremo le basi, per così dire, come aiuto per decidere quale telaio, quale microcontrollore e quale tipo di telecomando sono più adatti.

Due o quattro ruote: valutare i pro e i contro della costruzione di auto RC per Arduino

Partiamo dal telaio e analizziamo i vantaggi e gli svantaggi dei kit economici con due o quattro ruote motorizzate. Tutti hanno in comune i motori elettrici, quindi questi da soli non sono un criterio di selezione. I robot a due ruote sono inizialmente più economici perché non hanno il costo di altri due motori elettrici e ruote. Al contrario, hanno una o due ruote di supporto, che conferiscono alle auto RC una grande manovrabilità. Quindi, se vuoi "far girare il piatto", questa è la strada da percorrere. Tuttavia, in questa fascia di prezzo dei motori DC, non puoi aspettarti che funzionino in modo fluido e preciso. Pertanto, la corsa rettilinea non è così buona come quella della versione a quattro ruote. Soprattutto all'avvio, i motori mostrano una maggiore stabilità direzionale, ma le curve sono possibili solo con raggi molto più ampi. Un altro vantaggio del telaio a quattro ruote è il maggiore spazio per le batterie, il microcontrollore, eventualmente il convertitore DC/DC e i sensori.

Telaio per Arduino - Panoramica

La scelta del microcontrollore per costruire un'auto RC

La domanda successiva riguarda il microcontrollore e la sua programmazione. Ad esempio, un micro computer del tipo Raspberry Pi ha la massima potenza di calcolo su un telaio di dimensioni ridotte. Soprattutto per quanto riguarda il controllo remoto, i tipi con WiFi e Bluetooth integrati offrono dei vantaggi e puoi persino trasmettere le immagini da una fotocamera Raspberry Pi. La programmazione avviene nel linguaggio di programmazione Python, molto diffuso, ma l'avvio del sistema operativo Raspberry Pi OS basato su Linux richiede circa un minuto. Un altro svantaggio del Raspis (abbreviazione di Raspberry Pi) è la necessità di un buon alimentatore a 5V. Ciò richiede un buon convertitore DC/DC.

In relazione all'argomento del controllo remoto Bluetooth, in una prossima puntata verrà mostrato un esempio con Raspberry Pi e l'APP Android BlueDot di Martin O'Hanlon (membro dello staff della Raspberry Pi Foundation).

L'avvio del sistema è molto più rapido con un microcontrollore basato su ATmega 328, ad esempio Funduino Uno o Funduino Nano. Dopo circa un secondo dall'accensione, puoi iniziare a controllare gli ingressi, senza dover avviare il sistema da una scheda microSD; il programma caricato non viene dimenticato. La tensione di ingresso può essere compresa tra 5 e 9 volt. La programmazione avviene nell'IDE Arduino, un ambiente di sviluppo simile a C/C++ (per ulteriori spiegazioni vedi https://funduino.de/hardware-software). Per questo motivo, vedremo prima degli esempi con la Funduino Uno R3, per la quale sono disponibili dei controllori di motori perfetti come i cosiddetti shield. Questi vengono semplicemente inseriti nella Uno e le cosiddette librerie ci aiutano nella programmazione.

Excursus: Cos'è un controller/motor driver?

A causa della corrente molto limitata alle uscite dei microcontrollori, le utenze più grandi - e questo include tutti i tipi di motori elettrici e relè - richiedono un'alimentazione esterna e un circuito elettronico che converta il segnale di controllo del microcontrollore. Tuttavia, i requisiti di questo circuito integrato sono ancora più elevati: da un lato, deve consentire una velocità variabile del motore e, dall'altro, vogliamo anche essere in grado di cambiare il senso di rotazione del motore invertendo la polarità.

Utilizzando il circuito integrato L293D come esempio, ora ne spiegheremo il funzionamento. In pratica, questo componente DIP con sedici "gambe"/collegamenti è sufficiente come controllore di due motori elettrici.
Diagramma logico dei circuiti integrati

Il circuito integrato viene alimentato con la tensione nelle connessioni VCC1 e Ground. Possiamo prelevare questa tensione dal microcontrollore. L'alimentazione dei motori avviene tramite VCC2 e Terra. Qui si collega la batteria (o le batterie) (ad esempio 6 o 9 volt). Con i motori più grandi è necessario raffreddare il circuito integrato, mentre con i piccoli motori gialli del kit non è necessario.

Colleghiamo un motore a 1Y e 2Y, le linee di controllo corrispondenti alla MCU (Micro Controller Unit) sono 1A, 2A e 1.2EN.

L'inversione della polarità dei motori per cambiare la direzione di marcia si effettua con un cosiddetto circuito ad H. Lo realizziamo con il nostro microcontrollore impostando due pin di uscita (questi vanno a 1A e 1B) su HIGH o LOW.

Il cambio di velocità avviene come nell'esempio n. 04 - LED pulsante con modulazione dell'ampiezza degli impulsi (PWM), ovvero con l'accensione e lo spegnimento molto rapido della tensione. Pertanto, per i collegamenti 1,2EN ("Enable") è necessaria un'uscita PWM sull'MCU (sono i pin con la tilde ~).

Per il secondo motore, i collegamenti 3A, 4A e 3,4EN sono collegati ai pin dell'MCU.

L'immagine a destra (Diagramma logico) spiega il funzionamento del circuito integrato. Possiamo vedere i quattro amplificatori che danno i segnali di ingresso da 1A a 4A rispettivamente con la tensione della batteria alle uscite da 1Y a 4Y. Tuttavia, questo avviene solo se anche gli ingressi PWM 1,2EN e 3,4EN sono commutati su HIGH.

Due di questi circuiti integrati L293D sono installati sulla Motor Shield V1, in modo da poter collegare fino a quattro motori.

Per non utilizzare troppi pin, al centro della Motor Shield V1 è presente un cosiddetto registro a scorrimento (SN74HC595). Spiegarne il funzionamento andrebbe oltre lo scopo di questo articolo. Fortunatamente, i nostri colleghi di Adafruit a New York hanno fatto la maggior parte della programmazione per noi e hanno fornito una libreria per controllare facilmente i motori.

Driver motore per auto RC per Arduino

Immagine Motor Shield V1 con modifica:
Connettori a presa saldata (connettori femmina) per collegare altre apparecchiature

 

Anche la Motor Shield V2 può controllare fino a quattro motori e utilizza un circuito integrato simile, ma per il collegamento delle linee di controllo si utilizza il cosiddetto bus I2C con le connessioni SDA (=Serial Data) all'ingresso analogico A4 e SCL (=Serial Clock) ad A5. Adafruit ha anche sviluppato e fornito una libreria di programmi adatta a questo scopo.

Driver motore per auto RC per Arduino - Parte 2

Immagine Motor Shield V2 con modifica:
Connettori a presa saldati (connettori femmina) per il collegamento di apparecchiature aggiuntive

Entrambi i Motor Shield hanno connettori femmina aggiuntivi saldati per collegare in seguito trasmettitori/ricevitori Bluetooth o 433 MHz o sensori. Maggiori informazioni in uno dei seguenti post del blog.

Alimentazione e controllo di un'auto RC per microcontrollori Arduino

Se vogliamo che la nostra auto robot si guidi da sola, dobbiamo scollegarla dalla porta USB del PC. Questo significa che anche l'alimentazione viene meno. D'ora in poi, la centrale di comando (MCU) e i motori elettrici saranno alimentati da batterie o pile ricaricabili. I motori sono di gran lunga i maggiori consumatori. Il portabatterie fornito con la maggior parte dei kit è per quattro batterie Mignon (AA), cioè 6 volt per MCU e motori. Se vuoi usare batterie ricaricabili, devi usare sei batterie Mignon (AA) o due batterie 18650 agli ioni di litio a causa del voltaggio più basso.

Per quanto riguarda i controlli, nelle prossime puntate conosceremo i telecomandi con telecomando a infrarossi, i ricetrasmettitori Bluetooth con APP per smartphone o un secondo microcontrollore sempre con ricetrasmettitore BT HC-05 e i radiocomandi a 433Mhz e 2,4 GHz. La serie di blog si concluderà con gli aspetti della guida autonoma, in particolare il rilevamento degli ostacoli. A presto.

 

Inserisci questi caratteri nel seguente campo di testo.

I campi contrassegnati con * sono obbligatori.

Prodotti correlati
- 36%
Telaio per Arduino (robot con un asse più rullo) Telaio per Arduino (robot con un asse più rullo)
Contenuto 1 Stück
5,72 € * 8,90 € *
Numero d'ordine: F23107456
Aggiungi al carrello
- 43%
Telaio a due livelli con 2 motori - Smart Car Telaio a due livelli con 2 motori - Smart Car
Contenuto 1 Stück
7,97 € * 13,90 € *
Numero d'ordine: F23107487
Aggiungi al carrello
Esaurito
- 23%
Telaio per Arduino (due assi e due piani) Telaio per Arduino (due assi e due piani)
Contenuto 1 Stück
10,60 € * 13,69 € *
Numero d'ordine: F23107483
Aggiungi al carrello
Microcontrollore Funduino UNO R3 - compatibile con Arduino Microcontrollore Funduino UNO R3 - compatibile...
Contenuto 1 Stück
18,90 € *
Numero d'ordine: F23107480
Aggiungi al carrello
Funduino NANO R3 - con chipset originale FTDI Funduino NANO R3 - con chipset originale FTDI
Contenuto 1 Stück
17,41 € *
Numero d'ordine: F23107175
Aggiungi al carrello
Motorshield L293D per Arduino UNO e MEGA Motorshield L293D per Arduino UNO e MEGA
Contenuto 1 Stück
3,78 € *
Numero d'ordine: F23107155
Aggiungi al carrello
Driver motore MINI-L293D / 1x motore passo-passo o 2x motore DC Driver motore MINI-L293D / 1x motore...
Contenuto 1 Stück
2,66 € *
Numero d'ordine: F23106810
Aggiungi al carrello
L293D DIP 16 I/C con 4 canali per i motori L293D DIP 16 I/C con 4 canali per i motori
Contenuto 1 Stück
1,30 € *
Numero d'ordine: F23106904
Aggiungi al carrello