You are on page 1of 38

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine

Relazione: Gennarino Robot evita ostacoli

UNIVERSIT DEGLI STUDI DI CASSINO E


DEL LAZIO MERIDIONALE

Dipartimento di
Ingegneria Civile e Meccanica
Corso di laurea in
Ingegneria Industriale
A.A. 2015/2016

Modulo :

Meccanica Applicata alle Macchine

Docenti :

Prof. Massimo Cavacece

Studenti :

Alessio Silvestro
Luigi Giona

1
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Indice :

Presentazione e Componenti
Programmazione
Controllo
Studio Cinematico
Studio Dinamico
Algebra dei sistemi a blocchi
Analisi degli aspetti negativi e positivi del progetto
Sviluppi futuri
Costi

2
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Presentazione e Componenti

Gennarino
Robot Evita Ostacoli

La presente relazione riguarda la progettazione di un robot con


alimentazione propria, creato per evitare gli ostacoli. In generale, la
progettazione di un sistema risulta basata sullintegrazione di
diverse tecniche e tecnologie afferenti al settore meccanico,
elettrico, elettronico ed informatico. Infatti, in questo caso, il robot
presenta una struttura meccanica composta da una base in legno
costruita in maniera tale da contenere tutti i componenti di
attuazione e controllo elettrico composto da :
Un microcontrollore Arduino Uno R3 (per la gestione ed il
controllo)
Breadboard (400 punti)
Due servo motore a rotazione continua ( 360 )
Un sensore ad infrarossi
Fili di collegamento ( jumper )
Base in legno compensato

Arduino
3
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Arduino UNO pu essere considerato


il cervello ed il cuore pulsante del
nostro piccolo robot; il componente
pi importante il microcontrollore
ATmega328, che pu essere visto
come un piccolissimo computer e ad
esso si far eseguire lo sketch
(programma) per fare interagire il
dispositivo con il mondo. La scheda Arduino UNO dotata di 14 pin
di input/output digitali (6 dei quali possono essere usati come
segnali PWM), 6 input analogici, un quarzo a 16MHz, un connettore
USB, un jack per l'alimentazione, un connettore per la
programmazione ICSP ed un pulsantino per il reset della scheda. La
scheda inoltre fornisce tutto ci che necessario per supportare il
funzionamento del microcontrollore.
Per cominciare ad utilizzare la
Arduino UNO semplicemente
necessario connettere la scheda ad
un PC tramite un cavo USB oppure
alimentare la scheda tramite un
adattatore AC-to-DC o tramite una
semplice batteria.
La Arduino UNO differisce dalle
precedenti schede per il fatto che non usa il chip FTDI USB-to-serial;
la
scheda
Arduino
UNO
R3
infatti
implementa
il
chip Atmega16U2 (che rimpiazza il chip Atmega8U2 delle
precedenti revisioni) programmato proprio per essere un
convertitore USB-to-serial.
La Arduino UNO sar una delle schede di riferimento delle future
versioni della Arduino. La UNO l'ultima fra una serie di schede USB
Arduino e rappresenta un modello di riferimento per le piattaforme
Arduino.

4
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Breadboard
Una breadboard (o anche detta basetta sperimentale) uno
strumento utilizzato per creare prototipi di circuiti elettrici. La
breadboard non richiede saldature ed completamente riusabile (e
perci utilizzata soprattutto per circuiti temporanei). Sebbene
venga usata normalmente per la prototipazione di circuiti semplici,
pu essere usata anche per testare interi calcolatori. Tutte le
breadboard hanno generalmente una struttura simile composta da
linee di trasmissione (strips) che consistono in collegamenti elettrici
tra i fori. Come in figura, si possono notare le linee di alimentazione,
che sono generalmente poste ai lati e collegate lungo tutta la
verticale, e le linee dedicate ai componenti, collegate in orizzontale
e pi corte. Spesso le breadboard sono componibili, cio possibile
collegare pi basette tra di loro per ampliare le linee a disposizione.

Sensore ad ultrasuoni
Il sensore ad ultrasuoni srf05
formato da un emettitore o Tx di
ultrasuoni ed un ricevitore o Rx degli
stessi orientati nella medesima
direzione, inoltre dotato di una
circuiteria (visibile in figura) che
facilmente le misurazioni.

aiuta ad

eseguire

Per eseguire una misura necessario inviare un segnale ( Trigger )


e leggere leco di quel segnale dopo che esso, dopo aver rimbalzato
sulloggetto, torna indietro.

Servomotore
Nella robotica per gli azionamenti, sono molto utilizzati i
servomotori. Di solito questi si presentano come piccoli contenitori
di materiale plastico da cui fuoriesce un perno in grado di ruotare in
un angolo compreso tra 0 e 180 mantenendo stabilmente la
posizione raggiunta. Per ottenere la rotazione del perno utilizzato
5
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

un motore a corrente continua ed un meccanismo di demoltiplica


che consente di aumentare la coppia in fase di rotazione.
Questultima effettuata tramite un circuito di controllo interno in
grado di rilevare l'angolo di rotazione raggiunto dal perno tramite
un potenziometro resistivo e bloccare il motore sul punto
desiderato.
I Servomotori sono concepiti per essere pilotati nel modo pi
semplice possibile, eseguendo la movimentazione senza l'ausilio di
circuiterie troppo complesse o l'uso di
sistemi
a
microprocessori.
Un
servomotore dispone solitamente di
soli tre fili attestati ad un connettore
femmina per pin strip a passo
2.54mm. Due di questi fili sono
riservati all'alimentazione in corrente
continua. Il positivo di colore rosso,
il negativo di colore nero, il terzo filo,
normalmente di colore bianco,
riservato
per
il
controllo
del
posizionamento.
I servo a rotazione continua si differenziano dai servomotori
tradizionali perch possono ruotare a 360 senza fermarsi
praticamente mai ed il controllo dato mediante un unico cavo,
oltre allalimentazione, e alla riduzione meccanica che aumenta la
coppia a scapito della velocit.

Jumper
I ponticelli (o jumper) sono dei contatti metallici ideali per essere
utilizzati con le breadboard; essi permettono di realizzare in modo
rapido contatti elettrici tra componenti elettronici evitando l'uso di
saldature. Presi di colore diverso, si possono distinguere alla fine
diversi circuiti sul progetto in esame.

6
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Immagine 3D
Robot Gennarino nelle sue componenti essenziali

7
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Programmazione
Nel seguente capitolo vengono spiegati i vari passaggi che hanno
portato alla compilazione dello sketch per far muovere il robot
mediante lutilizzo del linguaggio C++.
Si usano i servo
Per poter movimentare il robot si utilizzano dei particolari motori
elettrici di cui si possono controllare, con un certo grado di
accuratezza, i gradi di rotazione.

La prima riga di comando permette di includere una libreria di


Arduino, nello specifico quella che permette di usare i servomotori.
Una libreria una porzione di codice esterno che consente di
facilitare luso di molti dispositivi elettronici; in esse vengono
dettagliate tutte le funzionalit del dispositivo e le modalit di
utilizzo, paragonando la libreria a mattoncini di informazione che
aggiungono funzionalit specifiche allo sketch permettendo di poter
usare un dispositivo elettronico, offrendo allutente i modi (le
funzioni) per operare su di esso.
Le successive linee di codice consentono di creare i due oggetti
servo. Nella funzione setup(), come detto in precedenza, si definisce
il modo con cui verranno usati i pin di Arduino, in questo caso ai
contenitori MotoreSinistro e MotoreDestro si dar la funzionalit
.attach() (in informatica si dice che abbiamo assegnato un metodo).
La funzione .attach() ha come parametro il pin a cui collegato il
servo, quindi con le due linee di codice.
8
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Semplicemente si collegheranno i due servo rispettivamente al pin


11 e al pin 10.
Allinterno della funzione loop() si trova il metodo .write() funzione
che permette di controllare direzione e velocit di rotazione del
servo. La .write() accetta come parametro un numero compreso tra
0
e
180
gradi.
Lintervallo 0, 180 deriva dal fatto che un servo standard, che non
ha una rotazione continua come quella che si sta per usare,
solitamente ruota solamente di 180 gradi, partendo da 0 gradi la
ruota raggiunge la parte centrale, 90 gradi, giungendo poi fino ai
180
gradi.
Con un servo a rotazione continua passando il valore 0 alla .write()
si dir al servo che deve ruotare alla massima velocit in una
direzione, con il valore 90 gradi si pone il servo in stop (posizione
neutra) e con 180 gradi si dice al servo di ruotare in senso
opposto alla massima velocit.

In questo sketch Arduino, c il bisogno di configurare i pin digitali di


I/O digitali a cui connettere il sensore ad ultrasuoni.
Nella definizione di variabili si sono definite le variabili come
const. sempre bene definire una variabile const se si sa che il
valore non potr mai essere modificato nel programma.
Nel setup() si definisce come verranno usati i pin.

9
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Funzione principale di lettura letturaSensoreUltrasuoni() che


restituisce la distanza a cui si trova lostacolo:

viene posto il pin di trigger ad HIGH per 10 microsecondi, trascorso


questo tempo viene riportato il trigger a LOW; a questo punto
tramite la funzione di sistema pulseIn viene calcolata la quantit di
tempo in cui il segnale resta a livello HIGH, non appena lo stato
letto passa a LOW pulseIn restituisce la durata in cui il segnalo
stato a livello HIGH. Questo valore viene utilizzato per il calcolo
della distanza mediante la formula
distanza = ( durata /2)/29 ;
A questo punto bisogna comprendere come poter decidere cosa
fare nel momento in cui di fronte al robot presente un ostacolo.
Sappiamo che:
1. se non vi sono ostacoli di fronte al robot allora bisogna andare
avanti;
2. se presente un ostacolo di fronte al robot, bisogna svoltare a
sinistra ( una possibile scelta, bisogna comunque svoltare).
A questo punto si aggiunge al robot una funzione,
azioneRobot(), che viene eseguita allinterno del loop e consente
di verificare quale azione effettuare (andare avanti o girare di 90).
Si definiscono due variabili di stato che saranno utilizzate per
decidere se far andare avanti il robot oppure farlo ruotare a sinistra.

10
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Si imposta per default lo stato VAI_AVANTI, in questo modo appena


si accende il robot viene eseguita immediatamente il corpo della
prima if. Bisogner successivamente verificare se di fronte viene
rilevato un ostacolo, se ci avviene necessario cambiare direzione
modificando lo stato in GIRA_SX.

Nel caso non venga rilevato nessun ostacolo la condizione della


prima if risulta vera e lazione da far compiere al robot quella di
proseguire in avanti; quindi a seguito del corpo della prima if il
codice sar:

11
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Si pu quindi scrivere di seguito tutto il programma che dar vita al


robot. Si sarebbero potute includere molte pi cose oppure
implementare pi funzioni con gli appositi sensori di Arduino oppure
con altri di qualit anche maggiore:

12
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

13
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Schema
Al fine di facilitare il pi possibile chi stia leggendo la relazione
tecnica in oggetto e non abbia le conoscenze tecniche della
programmazione informatica, si creato uno schema logico per
facilitare al pi la comprensione di quello che scritto allinterno del
programma partendo dallavvio, quindi la dichiarazione dei servo,
fino alle scelte che compie il programma quando incontra un
ostacolo sul suo percorso.
Di seguito riportato lo schema logico, le domande e le risposte
che si pone il robot stesso.

14
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

15
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Controllo
Il controllo del Robot Gennarino affidato, come precedentemente
detto, ad Arduino, una piattaforma open-source utilizzata per la
costruzione di progetti di elettronica e automazione. Arduino
consiste in una scheda fisica programmabile con un microcontrollore e in una parte software, o IDE (Integrated Development
Environment), che eseguito sul computer viene usato per scrivere e
caricare codice informatico in linguaggio C nella scheda fisica.
Alimentazione (USB / Barrel Jack)
Ogni scheda Arduino ha bisogno di
essere collegata ad una fonte di
alimentazione. Arduino UNO
pu essere alimentato da un
cavo USB (1) proveniente dal
computer o una presa a
muro (da 6 a 12 Volt
massimo) che termina con un
jack
Barrel
(2).
Il
collegamento USB anche il
modo con cui caricare il codice
nella scheda Arduino.
Pins (5V, 3.3V, GND, analogico, digitale, PWM, AREF)
I pin sulla scheda sono i connettori in cui inserire i fili per costruire
un circuito. Di solito sono di plastica e consentono di collegare un
solo cavo alla volta. Arduino ha diversi tipi di pin, ciascuno dei quali
segnato sul bordo interno e utilizzati per funzioni diverse.
GND (3): abbreviazione di 'GROUND', 'TERRA', 'NEGATIVO', o
anche 'MASSA'. Ci sono diversi perni GND su Arduino, ognuno dei
quali pu essere utilizzato per mettere a terra il circuito.
(4) 5V e 3.3V (5): come si pu immaginare, questi pin forniscono
5 volt e 3,3 volt. La maggior parte dei componenti semplici utilizzati
con Arduino utilizzano 3.3 volt o 5 volt al massimo.
16
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Analogico (6): l'area dei pin sotto l'etichetta 'Analog In' (da A0 ad
A5) sono ingressi Analogici. Questi pin possono leggere il segnale
da un sensore analogico (come un sensore di temperatura) e
convertirlo in un valore digitale che possiamo leggere ed usare nel
programma.
Digitale (7): nella parte opposta ai pin Analogici, ci sono i pin
Digitali (da 0 a 13). Questi pin possono essere utilizzati sia per
l'ingresso digitale (per verificare se un pulsante stato premuto ad
esempio) che per luscita digitale (come l'alimentazione di un LED).
PWM (8): la tilde (~) accanto ad alcuni pin digitali (3, 5, 6, 9, 10,
e 11) indica la possibilit di usare tali uscite come segnali PulseWidth Modulation (PWM).
AREF (9): acronimo di riferimento Analogico. La maggior parte
delle volte questo pin non necessario. A volte utilizzato per
impostare una tensione di riferimento esterna (tra 0 e 5 Volt) come
il limite superiore per i pin di ingresso analogico.
Pulsante di ripristino
La scheda Arduino ha un pulsante di reset (10). Premendolo si
collegher temporaneamente il pin di reset a massa e quindi sar
possibile riavviare l'esecuzione di qualsiasi codice caricato in
Arduino. Questo pu essere molto utile se il codice non viene
ripetuto o per operazioni di DEBUG.
Indicatore LED di alimentazione
Appena sotto a destra della parola "UNO" sul circuito, c' un LED
accanto alla parola 'ON' (11) molto piccola. Questo LED dovrebbe
accendersi ogni volta che si collega Arduino ad una fonte di
alimentazione. Se questa luce non si accende, c' una buona
probabilit che qualcosa non va.
LED RX TX
TX l'abbreviazione di trasmissione, RX l'abbreviazione di
ricezione. Questi segni appaiono un p ovunque in elettronica per
indicare i pin responsabili della comunicazione seriale. In questo
caso ci sono due posti su Arduino UNO dove si nota la scritta TX e
17
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

RX: sui pin Digitali 0 e 1 e accanto ai LED di segnalazione TX e RX


(12). Questi LED si attivano ogni volta che Arduino sta ricevendo o
trasmettendo dati (come quando si sta caricando un nuovo
programma sulla scheda tramite il software Arduino IDE).
CI principale
Loggetto nero con le gambe in metallo un IC, ovvero un Circuito
Integrato (13). Bisogna pensare a questo come il cervello vero e
proprio di Arduino. Ultimamente stato sostituito da un circuito
SMD molto pi piccolo di dimensioni. Il principale IC sulle schede
Arduino della linea Atmega, parte della societ ATMEL. E'
necessario sapere il tipo di IC che si sta utilizzando poich nel
momento della programmazione si dovr scegliere il tipo di
processore in uso (Board) prima di inviare il codice scritto sulla
scheda Arduino.
Regolatore di tensione
Il regolatore di tensione (14, in realt non qualcosa che
interagisce con Arduino, ma utile sapere che fa esattamente
quello che dice, ovvero che controlla e regola la quantit di tensione
che viene immessa nella scheda Arduino e quindi trasforma la
tensione in ingresso da 6-12 volt a 5 volt.

Collegamenti
Tramite la breadboard, sono stati realizzati su Gennarino diversi
collegamenti tra Arduino e gli altri componenti, come servomotore e
sensore a ultrasuoni.
Alimentazione Arduino

18
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

La pi importante da un punto
di vista fisico, ma la pi
semplice da un punto di vista
manuale, il collegamento
dellalimentazione
(batteria)
da 9V, tramite un jack Barrel.
stata scelta la pila da 9V in
quanto risulta essere la pi
conforme con la necessit di
alimentare il microcontrollore
che oscilla da 6V a 12V.

Collegamento Servomotore a rotazione continua


Il collegamento tra il servomotore e Arduino sfrutta come ponte di
collegamento la breadboard. Utilizzando tre pin stato collegato il
servomotore alla breadboard; successivamente, con diversi jumper,
stato portato il filo nero (negativo) e il rosso (positivo)
sullalimentazione, diversamente con il bianco (segnale) stato
mandato il segnale del motore sinistro al pin 11 e il segnale del
motore destro al pin 10.

Collegamento Arduino Sensore ad Ultrasuoni


Per il collegamento Arduino-sensore si
collegato il sensore alla breadboard
attraverso GND e Vcc alle rispettive
linee di alimentazioni sulla
breadboard. Da questi poi sono
stati
effettuati
dei
collegamenti,
attraverso
altrettanti
jumper, al GND e a +5V sulla scheda
Arduino; allo stesso modo, sono stati
collegati con altri due fili i punti Trig e
Echo rispettivamente ai pin 8 e 9 di Arduino.

19
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

20
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Cinematica
Lidea di movimento di un punto materiale data dalla percezione
delle differenti posizioni occupate dal punto in instanti diversi. La
legge che associa a ciascun istante di tempo la posizione del punto
materiale P(t) detta legge oraria del punto P: la conoscenza di
questa legge loggetto della cinematica. Linsieme complessivo
delle posizioni occupate dal punto materiale nel corso del suo moto
detto traiettoria, e rappresenta quella linea immaginaria (in
generale, curva) che collega tutte le posizioni occupate dal punto in
tutti gli istanti.
Ma come si fa a descrivere la posizione di un punto materiale? Per
farlo necessario introdurre un sistema di riferimento, che consta
di:
un punto fisso O, detto origine del sistema di riferimento;
un certo numero di rette, dette assi, tra loro perpendicolari,
che passano per il punto O;
un verso e ununit di misura, che identificano una coordinata
per ciascun asse.
Se
gli
assi
sono due,
si
parla
di
sistema
di
riferimento bidimensionale: il sistema di riferimento del piano
cartesiano, studiato dalla geometria analitica, dotato di due
coordinate, usualmente denominate X e Y.

Analisi cinematica di una ruota


In figura 1 rappresentata la ruota in due successive posizioni
durante il suo moto di rotolamento senza strisciamento. Per la
descrizione del moto della ruota si possono prendere come
coordinate la posizione x del centro della ruota stessa e una
coordinata angolare .

21
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Per determinare velocit e accelerazione di un generico punto P


solidale alla ruota, si pu procedere scrivendo le espressioni delle
sue coordinate x e y in funzione dellangolo (t) di rotazione della
ruota stessa. Indicando con d la distanza del punto P dal centro O
della ruota:

Derivando poi rispetto al tempo le relazioni precedenti si ottengono


le velocit e le accelerazioni:

Al variare della distanza d dal centro della ruota si ottengono


diverse traiettorie; la figura 2 mostra le traiettoria percorsa dal
punto P per d < R,
d = R e d > R.

22
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

23
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Servi
I servi utilizzati per il nostro robot sono gli Sm-s4303r della Springrc,
a rotazione continua. Dalle specifiche del costruttore possiamo
ottenere le varie prestazioni dei servi ai vari voltaggi di
funzionamento:

Nel nostro caso la tensione di riferimento quella di 6V in quanto i


servi sono alimentati sia da Arduino che da un portapile con quattro
stilo da 1,5 volt luna. La velocit del robot si mantiene costante in
tutto il suo funzionamento ed in particolare ci sono due tipi di stati
legati al funzionamento dei servi.
24
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

In particolare si possono effettuare varie valutazioni riguardanti la


potenza generata dai servi per capire se questi hanno una
dimensione giusta per il robot:
1) Il diametro della ruota circa di 4,5 cm; questo vuol dire che in
una rotazione completa il robot compie un movimento pari a:
Circonferenza = 2 r = 14,14 cm
2) Le specifiche ci dicono che compie 70 rotazioni al minuto:
Distanza =

rotazioni
minuto

cm
minuto

circonferenza = 990

= 9,9

m
minuto

Distanza
secondiun minuto

Velocit =

9.9
60

= 0,164

3) La potenza generata dal motore pari a 4,8

kg
cm

m
secondo

4,8 kg/cm = 0,4707192 N/m

4) Potenza motori = 0,94142 N/m


5) Da una prima valutazione il robot ha un peso di 0,533 kg. Per
semplicit di valutazione considereremo il peso distribuito in
maniera omogenea su tutta la superfice:

Fpeso = 0,533 * 0.98 = 0,522 N


6) Il robot riesce tramite i suoi due motori a procedere su gran
parte delle superfici considerate, anche grazie alle due ruote
anteriori che forniscono sia un supporto meccanico e riducono
anche lattrito del robot con il pavimento.

25
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Analisi cinematica del robot


Si pu ora definire quello che lorigine O come il punto di partenza
del veicolo, di accensione, per poi muoversi con un moto
uniformemente accelerato per un certo punto t fino a quando la
velocita non diventa costante.
Quindi dal tempo t0 al tempo t1 la legge oraria usata :

v 1 = v0 + a t
al tempo t1 , la velocit non aumenta pi, diventa costante, e di
conseguenza laccelerazione per definizione uguale a zero :

Si identifichi un altro tempo t 2, come quel tempo in cui il sensore va


a

rilevare
ostacolo:

un

26
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Al tempo t2, rilevando un ostacolo, il robot ferma una ruota mentre


laltra continua a girare per far ruotare di 90 la struttura cos che si
possa evitare lostacolo.
Si pu approssimare lo schema logico con quello del pendolo
semplice. Lapprossimazione sta nel fatto che nel pendolo semplice
si raggiunge velocit massima quando la massa si trova al centro
delloscillazione, per poi ritrovarsi a destra o a sinistra
delloscillazione con velocit pari a zero. In questo specifico caso,
nel piano, loscillazione parte dal punto centrale con velocit
massima per poi fare una rotazione intorno al fulcro (la ruota ferma)
di un angolo di 90 (semi rotazione) e si identifica come la corda
lasse che unisce i due servomotori, e la massa come la ruota
movente. Con la stessa legge oraria con cui si studia la ruota
movente possiamo studiare anche lo spostamento, la velocit e
laccelerazione delloggetto stesso immaginandole con il punto
dapplicazione nel baricentro della struttura.
La tensione della corda l uguale a zero, essendo una struttura
rigida quella che lega le due ruote. La velocit della ruota movente
parte dal punto t2 con v2 = cost (ma questa da come si sar capito
anche vMAX) con un moto uniformemente decelerato si arriver ad
un tempo t3 dove la v3=0 sempre della ruota movente.
Y0 Y = l ( cos cos 0 )
Dopo la rotazione di 90 gradi attorno al fulcro la legge oraria
diventa la stessa cio si torna al tempo t 0 dove tutti e due i servi
sono fermi e iniziano il loro moto sempre uniformemente accelerato
con legge oraria
v = v0 + a t

27
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Dinamica
La dinamica quella parte della meccanica che si occupa di
studiare la relazione tra le forze e gli effetti che esse hanno su un
corpo.
1. Il principio di inerzia o primo principio della dinamica:
Se su un corpo non agiscono forze o agisce un sistema di forze
in equilibrio, il corpo persevera nel suo stato di quiete o
di moto
rettilineo
uniforme.
Per sistema di forze in equilibrio si intende un insieme di
forze, grandezze vettoriali, la cui somma vettoriale sia nulla.
2. La legge fondamentale della dinamica o secondo principio
della
dinamica:
Se su un corpo agisce una forza o un sistema di forze, la forza
risultante applicata al corpo possiede direzione e verso della
sua accelerazione e, in modulo, direttamente proporzionale
al modulo la sua accelerazione. La costante di proporzionalit
tra queste due grandezze la massa (detta appunto inerziale),
grandezza specifica di ciascun corpo. Questa legge pu essere
enunciata mediante lequazione

F=ma
dove F la risultante delle forze agenti sul corpo, m la massa dello
stesso, a laccelerazione cui soggetto (il prodotto quello tra uno
scalare e un vettore).
3. Il principio di azione-reazione o terzo principio della dinamica:
Se due corpi interagiscono tra loro, si sviluppano due forze,
dette comunemente azione e reazione: come grandezze
vettoriali sono uguali in modulo e direzione, ma opposte in
verso.
La prima legge serve a definire una classe di osservatori: i
cosiddetti osservatori inerziali, per lappunto. Gli osservatori
inerziali sono coloro per i quali vale il principio di inerzia, ovvero
tutti gli osservatori che, in presenza di un equilibrio di forze,
28
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

registrano un moto rettilineo uniforme. Se questo non verificato


per un dato osservatore, ess si dice non inerziale. Si pu dimostrare
che tutti gli osservatori inerziali si muovono di moto rettilineo
uniforme gli uni rispetto agli altri.
Lunit di misura della forza nel sistema internazionale il newton
N.
In realt, le leggi di Newton funzionano anche nellaltro verso. In
particolare:
Se un corpo si muove di moto rettilineo uniforme, allora le
forze che agiscono su di esso sono in equilibrio.
Se un corpo soggetto a unaccelerazione a, allora su di esso
deve agire una forza F= m a
Dinamica del robot
Allaccelerazione del dispositivo, al tempo t 0 fino al tempo t1, il robot
soggetto a una forza pari a F = m * a dove m = 0.533g e
laccelerazione a varia perch varia la velocit che crescente fino
a quando diventa costante al tempo t1.
Inizio:

Al
tempo t0

lutilizzatore avvia il robot il quale da comando ai servomotori di


iniziare a muoversi con velocit crescente fino al tempo t 1 dove v=
cost.
29
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Dal tempo t1 al tempo t2 il robot procede a velocit costante con F=


m a = 0 appunto perch la velocit costante.

Andiamo ora a definire il tempo t2, ovvero il tempo in cui loggetto


vede lostacolo.

30
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Quindi il robot in risposta a questo inizia a ruotare, fermando il


servomotore sinistro e usandolo come punto dappoggio per far
ruotare la struttura mantenendo costante la velocit dellaltro
servomotore fino ad avere una rotazione di 90.

31
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Dopo la rotazione, il robot continuer la sua corsa a velocit


costante ripetendo il processo n volte.

32
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Analisi degli aspetti negativi e positivi del progetto


Gennarino un robot evita ostacoli e come tale rispetta bene la sua
primaria funzionalit, i risvolti positivi e negativi del progetto sono
derivanti dal punto di vista progettuale, costruttivo/ fisico e della
programmazione.

RISVOLTI POSITIVI
I.

Avente una base di compensato e minimizzata negli spazi e


nello spessore, sulle ruote dei servomotori viene a gravare un
peso non eccessivamente grande rispetto alla potenza dei
servomotori stessi. Materiale usato anche per la sua facile
lavorazione con strumenti semplici (sega, carta vetrata, etc)

II.

I componenti scelti per lassemblaggio e il corretto


funzionamento dello stesso sono stati scelti in base alle loro
qualit e al prezzo, cercando di mantenere alta la qualit e
bassi i costi ber avere quindi un binomio efficiente ed efficace.

III.

affidata lalimentazione del robot a due circuiti differenti per


non avere problemi di sotto alimentazione e di corretto
funzionamento.

IV.

La programmazione in C++ risulta essere semplice ed


efficiente per la regolazione principale dei componenti.

V.

Facile reperibilit dei componenti.

VI.
VII.

Facilit di implementazione dei componenti.


Arduino, premesso che le sue dimensioni non sono l'ideale per
applicazioni ad alto grado di integrazione, comunque
possibile creare sistemi comandati tramite etere oppure
connessione ad Internet via cavo.

33
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

RISVOLTI NEGATIVI
I.

La limitazione strutturale, riguardante le dimensioni dello


chassie, non permette di aggiungere arbitrariamente dei
componenti rispetto la loro forma.

II.

Le alimentazioni utilizzate dai componenti non sempre


possono essere soddisfatte con alimentazioni messe in
commercio e quindi in molti casi sono necessari dei regolatori
di tensione.

III.

Gennarino pu muoversi solo su superfici piani senza


avvallamenti o gradini perch altrimenti non li riconosce.

IV.

Su superfici troppo lisce il coefficiente di attrito ruota-terreno


diventa troppo basso cosi che si creano slittamenti dovuti ai
materiali che vengono a contatto.

V.

I due circuiti creati per lalimentazione del robot, visto che


sono spezzati da altrettanti interruttori, devono essere accesi
in contemporanea perch altrimenti se laccensione non
avviene nello stesso momento il robot si mette in
funzionamento con una sotto alimentazione da parte dei servi
dovuta a una alimentazione indiretta da parte dellaltro
circuito.

34
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Sviluppi futuri
1. Si potrebbe inserire un terzo servo motore che permette al
sensore di ruotare di 90 gradi tenendo per conto del limite
strutturale riguardante laggiunta di una nuova alimentazione
per questultimo.
2. Nel caso questo problema non sia ovviabile possibile
aggiungere un secondo sensore in modo da coprire unarea di
interesse maggiore.
3. Al fine di alleggerire il peso del robot si potrebbero realizzare
basi in materiale pi leggero (plastica o alluminio, casomai
tagliato con il laser), cos che si possa avere pi precisione e
bilancio nella struttura con materiale come ad esempio fibra di
carbonio.
4. Si potrebbe realizzare una cover superiore al fine di proteggere
i componenti e i collegamenti, di per se molto fragili e
complicati, dandogli anche una forma pi estetica con
materiale come vetroresina.
5. Si potrebbero cambiare i servomotori con altri pi potenti in
modo tale che il robot possa seguire il suo cammino a velocit
maggiore a quella attuale.
6. Si potrebbe modificare il programma di modo che quando si
trova di fronte ad un ostacolo potremmo avere una dolce
curvatura, casomai anche verso destra e non sempre di 90
verso sinistra.
7. Si potrebbe sostituire le ruote in plastica, accessori dei servo
motore, con altre in materiale diverso, tali da aumentare
lattrito ruota-terreno in modo tale da evitare slittamenti.
8. Si potrebbe cambiare il cervello del nostro robot con uno simile
ma con sistema Bluetooth cosi che si possa dare da un
qualsiasi dispositivo come tablet o smartphone lo START e lo
STOP.
9. Si potrebbe implementare la struttura con un sensore di
prossimit in modo tale che potrebbe percorrere anche
superfici con gradini o irregolari.

35
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Sistema a blocchi
Naturalmente anche importante studiare il suo sistema di
controllo.
Da un punto di vista generale un sistema robotico pu essere
schematizzato come nella figura seguente.

Il sistema di controllo fornisce i comandi al sistema di attuazione,


che attraverso la struttura meccanica, realizza i movimenti del
robot.
Il sistema di controllo non altro che un sistema retroazionato che
fornisce il comando agli attuatori, adeguandoli agli effetti ottenuti
che sono rivelati dai sensori in esso inseriti.
E' quindi il classico sistema retroazionato che appare in tutti i
sistemi di controllo di tipo automatico. Naturalmente i comandi
devono essere registrati su un microcontrollore.
Dal punto di vista del controllo abbiamo un sistema di questo:
Dove andiamo ad analizzare le varie parti del nostro sistema a
blocchi:

36
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

K = attrito delle ruote con il pavimento


Kb = costante del controllo in velocit
Kp = resistenza totale del potenziometro
KT = costante del motore
J = inerzia interna del motore
c = coefficiente di smorzamento
Kb e Kp sono relative al controllo di posizione

Andiamo a esplicitare i nostri valori trovati nelle specifiche dati dai


costruttori:

Resistenza totale dl potenziometro Kp = 5.7 V/rad


Costante del motore KT = 0.2 Nm/V
Inerzia del motore J = 1.75* 10-5 Nms2/ rad
Coefficiente di smorzamento c = 2 * 10-5 Nms/rad

37
Studenti: Silvestro, Giona

Laurea in Ingegneria Industriale Meccanica Applicata alle Macchine


Relazione: Gennarino Robot evita ostacoli

Costi
Si analizza in questa sezione quelli che sono stati i costi per creare
Gennarino.

Componenti

Costi

Arduino UNO R3

21.11

Sensore Ultrasuini HC-SR04

4.74

Jumper

1.83

Bread Board 400 punti

3.66

2x Servo motore per robot rotazione


continua 360 SM-S4303R

2 x 10.25

Compensato 1 m2

7.00

Batteria da 7V

4.76

4 batterie da 1.5V

2.59
Totale

66.39

38
Studenti: Silvestro, Giona