robot schiva ostacoli
DESCRIPTION
Grazie soprattutto al microcontrollore Arduino UNO, ho realizzato un robot in grado di schivare gli ostacoliTRANSCRIPT
ROBOT SCHIV
A OSTA
COLI
WI T
H A
RD
UI N
O
PERCHÈ QUESTO PROGETTO
Lo scopo del progetto è quello di creare un’opera interattiva unendo la programmazione con l’elettronica. Questa unione è resa possibile dal microcontrollore ARDUINO
FUNZIONAMENTO
Il robot, riconosciuto un ostacolo attraverso il sensore ad infrarossi, valuta da quale lato lo spazio di manovra è migliore e in base ad esso compie la manovra a destra o a sinistra, schivandolo
MATERIA
LI
TU
T TI
AC
QU
I ST A
TI
SU
IN
TE
RN
ET
«MAGICIAN CHASSIS»
Piattaforma Robot (con due motoriduttori + ruote + sfera di assetto)
X2 SUPPORTI BATTERIE DA 4.8V
Uno per l’alimentazione generale ed uno per alimentare a parte il servomotore
SHARP GP2Y0A21YK
Sensore ad infrarossi per la rilevazione dell’ostacolo
1A DUAL TB6612FNG
Driver per i motori: permette la comunicazione tra Arduino e i motori
ARDUINO UNO
PINS PER I COLLEGAMENTI
TOWERPRO SG90
Sub Micro Servo 9g
BREADBOARD
FASI D
EL PROGETT
O
F AS
I P
RI N
CI P
AL I
STUDIO DI ARDUINO E DEL SUO LINGUAGGIO DI PROGRAMMAZIONE
ACQUISTO E PREPARAZIONE DEI MATERIALI
PARTE MECCANICA
montaggio della piattaforma, fissando i motori, le ruote, i supporti batterie e tutti i dispositivi
COLLEGAMENTI
COLLEGAMENTO DRIVER - MOTORI
Driver A01 positivo motore sinistro
Driver A02 negativo motore sinistro
Driver B02 negativo motore destro
Driver B01 positivo motore destro
COLLEGAMENTO DRIVER - ARDUINO
Driver VM Arduino Vin (alimentazione driver)
Driver VCC Arduino GND (connette la massa comune di tutto il robot)
Driver STBY Arduino digital 2 (per consentire ai motori di funzionare)
Driver PWMA Arduino digital 3
Driver AIN1 Arduino digital 4
Driver AIN2 Arduino digital 7
Driver PWMB Arduino digital 5
Driver BIN1 Arduino digital 8
Driver BIN2 Arduino digital 12
ARDUINO + DRIVER
COLLEGAMENTO SENSORE - ARDUINO
Sensore infrarossi filo GIALLO in Arduino AIN5 (per i valori del sensore)
Sensore infrarossi filo NERO in Arduino GND (massa)
Sensore infrarossi filo ROSSO in Arduino 5V (positivo)
POSIZIONAMENTO SENSORE
COLLEGAMENTO SERVO - ARDUINO
Servo filo GIALLO in Arduino PWM 0 (segnale)
Servo filo VIOLA in Arduino GND (massa)
Servo filo ROSSO al polo + dell’alimentatore (positivo)
Infine Arduino e i il servo vanno collegati ai rispettivi alimentatori
TEST DEL SENSORE
Valuto la lontananza dall’ostacolo alla quale il robot deve fermarsi
Sketch utile per verificare il corretto funzionamento del sensore ed impostare il valore da usare come riferimento per la fermata
Minore è il valore che arriva in output, più la lontananza dall’ostacolo è maggiore
TEST DEL SERVO
Valuto i gradi di rotazione che deve compiere il servo una volta che il robot ha riconosciuto l’ostacolo.
Tutto ciò attraverso la programmazione del microcontrollore
SKETCH FINALE
Avrà il compito di dare al robot tutte le funzioni descritte nello scopo del progetto
La distanza è maggiore della sensibilità ?
Avanti
Valuto la direzione: stop e leggo il valore del sensore ruotato a sinistra (VS) e a destra (VD)
VS < VD ?
VD < sens ? (e se la rilevazione dell’ostacolo fosse stato un errore?)
Sinistra
VS < sens ?
Destra
SI
NO
SI
NO
SI NO
NOSI
SKETCH PT1
SKETCH PT2
SKETCH PT3
DIFFICOLTÀ RISCONTRATE
La sfera di assetto era difettosa ho dovuto farmi mandare un altro “Magician Chassis”
Iniziale difficoltà nella parte elettrica, come nel collegamento dei pin, a causa della poca parte pratica fatta a scuola con elettronica;
Un supporto batterie dà problemi di funzionamento (a volte ad Arduino non arriva la giusta alimentazione)
Inversione dei poli + e – nel collegamento del servo, che si è bruciato (me ne sono fatto spedire uno nuovo)
Difficoltà nel far ruotare il servo attraverso lo sketch (difficoltà nel programmarlo)
Il robot richiede un gran numero di batterie (in totale 8 pile AA) che necessitano spesso di essere sostituite
FINE
Capas
so L
uigi