Questo progetto realizza un modellino di un’auto radiocomandata pilotata da senssori collegati con il nuovo Arduino R4, a sua volta in cloud.
L’han fatto di nuovo: i ragazzi del corso di elettronica dell’ITS Fondazione Biotecnologie di Bergamo (Flavia Calabrese, Davide Conzon, Guglielmo Ferrari e Artica Giussani, in rigoroso ordine alfabetivo) hanno realizzato come progetto di fine corso un sistema di comando e controllo per un’autovettura in scala, interamente basato sul nuovo Arduino UNO R4.
Lasciamo a loro la parola.
Descrizione del progetto
L’obiettivo dell’esperienza è quello di realizzare una macchina comandata tramite telefono mediante l’utilizzo del software Arduino IoT e Cloud. Per consentire l’invio e la ricezione dei comandi, si è utilizzata la nuova versione di Arduino UNO R4, che incorpora in una sola scheda diversi sensori ed un sistema di trasmissione Wi-Fi.
Elenco componenti
Componenti | Quantità | Valore | Specifiche | Prezzo |
---|---|---|---|---|
Arduino R4 WiFi | 1 | Microcontrollore | ESP32-SE | 32 euro |
Cavi | vari | F-M e M-M | ||
Motore | 1 | Motore DC 1 | 12V | 15 euro |
Motore STM | 1 | DM996 Stepper | 6V / 300 mA | 12 euro |
Resistenze | 1 1 | 220 ohm 1 kohm | ||
Fotoresistenza | 1 | 2 ohm - 20 kohm | 1 euro | |
Ponte H | 1 | L298 | 5V - 12V | 7 euro |
LED | 4 9 2 | Giallo Rosso Verde | 2.1V / 20 mA 2.0V / 20 mA 3.0V / 20 mA | |
Batteria | 1 | 7.4V - 1500 mA | 23 euro | |
Totale | 90 euro |
Schema elettrico – Schema di montaggio
Realizzazione
Il progetto è stato suddiviso in diversi moduli: progettazione elettronica, progettazione software, progettazione degli spazi d’ingombro e stampa 3D, budget e marketing, ordini e magazzino, montaggio, testing, QA. Il team ha realizzato un Gantt dei lavori per cercare di parallelizzare il più possibile le attività e ridurre tempi e costi di produzione.
Ad un ponte H (L298N) sono stati collegati i cavi di alimentazione della batteria (7,4V e GND); si sono usate le porte: enA (porta PWM pin 10) che controlla la velocità di rotazione del motore, in1 (pin 9) consente la rotazione in senso orario, in2 (pin 8) consente la rotazione in senso antiorario.
L’uscita 5V del ponte H viene collegata alla porta Vin di Arduino per la sua alimentazione. L298N viene collocato sul dorso della vettura.
Viene collegato il motore DC nelle porte OUT1 e OUT2 del Ponte H.
Anteriormente, viene montato un motore passo-passo (DM996) ad alta velocità, esso controlla in modo preciso e veloce il movimento di sterzo dell’auto. La tensione operativa è pari a 6V.
Il supporto dei fari è stato realizzato attraverso un processo di stampa 3D; ad esso vengono montati quattro led gialli saldati in parallelo (pin 2) a loro volta collegati a una fotoresistenza nella porta analogica A0. Così si è in grado di rilevare ii cambio di stato della fotoresistenza: quando questa riconosce un determinato grado di illuminazione (vedi datasheet) vengono accesi i led dei fari. Sono inoltre stati aggiunti 9 led rossi collegati in parallelo posti sul retro del telaio, che si accendono nel momento in cui la macchina procede in retromarcia. Infine, l’ultima implementazione è stata quella di posizionare due led verdi (pin 3, 4) posti ai lati della carrozzeria al fine di simulare le frecce direzionali.
Il funzionamento prevede l’accensione di uno dei due nel momento in cui la macchina sterza a sinistra piuttosto che a destra.
I comandi per partenza, stop e svolta a destra e sinistra vengono impostati via smartphone, collegato al cloud di Arduino, che li riceve, interrpeta e ritrasmette in tempo “quasi-reale”. I ritardi di trasmissione dei segnali hanno costituito una parte integrante del codice sorgente: sono stati definiti pesi opportuni per evitare che la vettura curvasse troppo o troppo velocemente, e per attuare un freno motore in caso di stop. In ogni caso la vetura va guidata con un occhio alla futura posizione del mezzo… un po chme le vere auto da corsa!
Codice sorgente
Il codice relativo al progetto è stato rilasciato al pubblico dominio ed è presente su Github.
Sono altresì presenti tabelle e grafici utilizzati per la taratura e l’ottimizzazione dei controlli.
Problemi riscontrati e soluzioni adottate
- L’idea iniziale era pilotare la macchina tramite telecomando IR, abbandonata successivamente a causa di un conflitto con un altro componente. Infatti, il sensore IR captava i segnali emanati dal sensore di prossimità, CHE avrebbe fermato il motore in caso di vicinanza ad ostacoli.
- Il sensore di prossimità è stato rimosso in quanto, avendo un range di rilevamento troppo ampio, avrebbe interrotto il moto dei motori ad ogni ostacolo presente non solo frontalmente ma anche lateralmente, impedendo alla macchina di partire.
- Un’altra difficoltà riscontrata riguarda lo sviluppo del Servo: l’uscita 5V di Arduino non forniva sufficiente corrente per alimentarlo, per risolvere il problema l’alimentazione è quindi stata
collegata ai pin Vcc e Gnd del ponte H fornendo così 7.4V. - Altrettanto problematico è stato il motore DC che, improvvisamente, ha smesso di funzionare. Non sicuri del motivo si è smotata tutta la parte posteriore della macchina fino a scoprirlo. Ciò ha permesso di capire che il problema risiedeva nei cavi del motore che usurandosi, si erano staccati. È stata eseguita una sostituzione completa dei cavi e una nuova saldatura, il motore ha ripreso a funzionare correttamente e la macchina è stata rimontata.
Considerazioni finali
Un team di 4 ragazzi freschi di un corso di informatica, e dei quali il 50% non aveva precedenti nozioni di elettronica ha sviluppato da zero un progetto di complessità medio-alta: si pensi solo alla gestione dei servocomandi in parallelo, al calcolo dei tempi di ritardo dei comandi inviati attraverso smartphone.
L’obiettivo del progetto è stato concluso con esito positivo riuscendo ad implementare tutte le funzionalità attese.
E’ stata inoltre raccolta la seguente documentazione:
Link utili:
- Arduino UNO R4 WiFI
- Cavi Dupont
- Motore DC 12V
- Motore STM 12V passo-passo
- Resistori vari
- Fotoresistore
- Ponte H L298
- LED vari
- Batteria LiPO 7.4V 1500mA
Join our groups on Telegram…