Sei sulla pagina 1di 20

Indice

1 ABC dei Robot 11


1.1 I Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.1 I Robot didattici . . . . . . . . . . . . . . . . . . . . . 14
1.2 Anatomia di un Robot . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Piccolo glossario . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 La struttura di un Robot . . . . . . . . . . . . . . . . . . . . 33
1.4.1 La struttura meccanica . . . . . . . . . . . . . . . . . 33
1.4.2 L’unità di controllo . . . . . . . . . . . . . . . . . . . . 33
1.4.3 I sensori . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.4.4 Gli ingressi utente . . . . . . . . . . . . . . . . . . . . 36
1.4.5 Gli attuatori . . . . . . . . . . . . . . . . . . . . . . . 36
1.4.6 I segnalatori . . . . . . . . . . . . . . . . . . . . . . . . 37
1.4.7 L’alimentazione . . . . . . . . . . . . . . . . . . . . . . 37
1.4.8 L’esempio del braccio manipolatore . . . . . . . . . . . 37
1.5 Alimentazione e batterie . . . . . . . . . . . . . . . . . . . . . 38
1.6 Materiali per la struttura . . . . . . . . . . . . . . . . . . . . 41
1.6.1 Il legno . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.6.2 Le materie plastiche . . . . . . . . . . . . . . . . . . . 43
1.6.3 I materiali compositi . . . . . . . . . . . . . . . . . . . 44
1.6.4 I metalli . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.7 Elementi di fissaggio . . . . . . . . . . . . . . . . . . . . . . . 45
1.7.1 Le viti . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.7.2 I dadi . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.7.3 I bulloni . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.7.4 Le rondelle . . . . . . . . . . . . . . . . . . . . . . . . 52
1.7.5 Accorgimenti per evitare l’allentamento . . . . . . . . 53
1.7.6 Colle o adesivi . . . . . . . . . . . . . . . . . . . . . . 53
1.8 Lavorazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
1.8.1 Taglio . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.8.2 Foratura . . . . . . . . . . . . . . . . . . . . . . . . . . 56
1.8.3 Incollaggio . . . . . . . . . . . . . . . . . . . . . . . . . 56
1.8.4 Finitura . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.8.5 Verniciatura . . . . . . . . . . . . . . . . . . . . . . . . 58
1.8.6 Saldatura a stagno . . . . . . . . . . . . . . . . . . . . 58

2 ZumoRobot - Telaio 63
2.1 Progetto dello ZumoRobot . . . . . . . . . . . . . . . . . . . . 63
2.2 Telaio Zumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.3 Vano Batterie . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.4 Scheda tecnica: batterie . . . . . . . . . . . . . . . . . . . . . 72
2.5 Vano Motori . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.6 Assemblaggio di Arduino sullo ZumoRobot . . . . . . . . . . 78
2.7 Supporto 3D per Arduino . . . . . . . . . . . . . . . . . . . . 80

3 ZumoRobot - Sensori di linea 83


3.1 Sensori di linea . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.1.1 Scheda tecnica del sensore CNY70 . . . . . . . . . . . 84
3.2 Progetto e realizzazione scheda sensori . . . . . . . . . . . . . 86
3.2.1 Come creare il componente CNY70 su Multisim e Ul-
tiboard . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.2.2 Come inserire un componente nei database (Multisim
e Ultiboard) . . . . . . . . . . . . . . . . . . . . . . . . 100
3.3 Montaggio componenti e collaudo . . . . . . . . . . . . . . . . 101
3.3.1 Collaudo scheda sensori con Arduino . . . . . . . . . . 104
3.4 Utilizzo di moduli commerciali . . . . . . . . . . . . . . . . . 105

4 ZumoRobot - Shield 109


4.1 Il motore in corrente continua . . . . . . . . . . . . . . . . . . 109
4.1.1 Struttura del motore a magneti permanenti . . . . . . 109
4.1.2 Approfondimento sul motore . . . . . . . . . . . . . . 111
4.1.3 Velocità, coppia motrice e potenza . . . . . . . . . . . 113
4.1.4 Come si scelgono i motori per i robot . . . . . . . . . . 114
4.2 Driver con transistor BJT . . . . . . . . . . . . . . . . . . . . 116
4.3 Driver a ponte H . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.4 Progetto di uno shield motori . . . . . . . . . . . . . . . . . . 121
4.4.1 Progetto dello schema elettronico . . . . . . . . . . . . 122
4.4.2 Progetto del circuito stampato . . . . . . . . . . . . . 125
4.4.3 Montaggio e collaudo dello shield motori . . . . . . . . 126
4.5 Utilizzo di moduli commerciali . . . . . . . . . . . . . . . . . 130
4.5.1 Utilizzo di breakout board . . . . . . . . . . . . . . . . 130
4.5.2 Utilizzo di uno shield motori . . . . . . . . . . . . . . 130
4.6 Schede tecniche . . . . . . . . . . . . . . . . . . . . . . . . . . 134
4.6.1 Scheda tecnica: driver L293D . . . . . . . . . . . . . . 134
4.6.2 Scheda tecnica: driver L298 . . . . . . . . . . . . . . . 135
4.6.3 Scheda tecnica: driver SN754410 . . . . . . . . . . . . 138
4.6.4 Driver a confronto . . . . . . . . . . . . . . . . . . . . 139
4.6.5 Scheda tecnica: driver L6202 . . . . . . . . . . . . . . 139
4.6.6 Shield KA03 . . . . . . . . . . . . . . . . . . . . . . . 140
4.6.7 Shield MotoMama . . . . . . . . . . . . . . . . . . . . 142

5 ZumoRobot - Sensore bersagli 149


5.1 Sensori a infrarossi . . . . . . . . . . . . . . . . . . . . . . . . 149
5.1.1 Fotodiodi IR . . . . . . . . . . . . . . . . . . . . . . . 149
5.1.2 Fototransistor IR . . . . . . . . . . . . . . . . . . . . . 150
5.1.3 Sensibilità . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.1.4 Ricevitori IR . . . . . . . . . . . . . . . . . . . . . . . 150
5.1.5 Sensori di distanza IR . . . . . . . . . . . . . . . . . . 152
5.2 Uso dei sensori come occhi . . . . . . . . . . . . . . . . . . . . 154
5.2.1 Sensori PIR . . . . . . . . . . . . . . . . . . . . . . . . 157

6 Collaudo ZumoRobot 159


6.1 Collaudo ZumoRobot . . . . . . . . . . . . . . . . . . . . . . . 159
6.1.1 Collaudo motori e CNY70 . . . . . . . . . . . . . . . . 160
6.1.2 Collaudo comando motori con CNY70 . . . . . . . . . 162
6.1.3 Collaudo sul bordo tavolo . . . . . . . . . . . . . . . . 163
6.1.4 Collaudo riflessi . . . . . . . . . . . . . . . . . . . . . . 164
6.1.5 Collaudo riflessi e rotazione . . . . . . . . . . . . . . . 165
6.2 Strategie di programmazione . . . . . . . . . . . . . . . . . . 166
11

Capitolo 1

ABC dei Robot

1.1 I Robot
Un robot (si pronuncia ròbot, anche se talvolta si usa la pronuncia francese
robó) è una qualsiasi macchina, in grado di svolgere, più o meno indipenden-
temente, un lavoro al posto dell’uomo. Un robot può agire autonomamente
o sotto la supervisione dell’uomo e il suo lavoro si basa su istruzioni pro-
grammate. I compiti svolti dai robot vanno dalla fabbricazione, costruzione,
manipolazione di materiali pesanti e pericolosi, all’operare in ambienti ri-
schiosi per l’uomo. In base a questa definizione, il concetto di robot può
comprendere quasi tutti gli apparati automatizzati ma, nell’uso corrente, il
termine implica un grado di autonomia che esclude molte macchine sempli-
cemente automatiche dal venire chiamate robot. Il termine robot deriva dal
termine ceco robota, che significa lavoro pesante o lavoro forzato. L’intro-
duzione di questo termine si deve allo scrittore ceco Karel Čapek, il quale
usò per la prima volta il termine nel 1920 nel suo dramma teatrale “I robot
universali di Rossum”.
La robotica è una disciplina che studia e sviluppa macchine (hardware) e
programmi (software) che permettono a un robot di svolgere i suoi compiti.
Nella robotica confluiscono competenze di molte discipline: automazione,
elettronica, fisica, informatica, biologia, fisiologia, matematica e meccanica.
Il termine robotica venne usato per la prima volta da Isaac Asimov nella
sua famosa raccolta “I, Robot” (1950), dove citava le tre regole della robotica.
In seguito divennero le tre leggi della robotica: Prima legge - un
robot non può recare danno a un essere umano, né può permettere che, a
causa del suo mancato intervento, un essere umano riceva danno; Seconda
legge - un robot deve obbedire agli ordini impartiti dagli esseri umani, purché
tali ordini non contravvengano alla Prima Legge; Terza legge - un robot deve
CAPITOLO 1. ABC DEI ROBOT 19

si toglie l’alimentazione, e le FLASH, che mantengono i dati anche quando


non sono alimentate.

Fig. 1.5: Driver con transistor e relè

DRIVER dispositivo elettronico in grado, quanto a tensioni e correnti, di


pilotare carichi elevati (per esempio un motore elettrico come in figura 1.5).

RELÈ dispositivo elettromeccanico che permette, tramite un comando


elettrico, di chiudere uno o più contatti elettrici. Si basa sulla forza che
un elettromagnete esercita su una parte mobile a cui sono fissati i contatti.

CARICO nome generico che si assegna a un dispositivo che assorbe poten-


za da un circuito che gli sta a monte (per esempio un motore, una lampada,
un altoparlante).

INTERRUTTORE dispositivo elettromeccanico con un comando ma-


nuale a due posizioni, che permette di aprire o chiudere un contatto elettrico.

DEVIATORE dispositivo elettromeccanico con comando manuale a due


posizioni che, a differenza dell’interruttore, ha tre terminali: connette elet-
tricamente il terminale centrale all’uno o all’altro degli altri terminali.

PULSANTE dispositivo elettromeccanico che può essere strutturato co-


me un interruttore o un deviatore ma, al contrario di questi, dopo essere
stato premuto ritorna nella posizione di riposo. I contatti prendono il no-
me di NA (Normalmente Aperto, a volte indicato NO Normally Open) o

RoboGame - Volume 1 Gabriele Volpi


63

Capitolo 2

ZumoRobot - Telaio

2.1 Progetto dello ZumoRobot


Il progetto dello ZumoRobot è nato per partecipare alle competizioni Mi-
nisumo di robotica. La competizione prevede che due robot lottatori si
affrontino su un campo da gioco di 70 cm di diametro, il ring o dojo. Vince
il robot che riesce a spingere per primo l’avversario fuori dal campo.
Le regole di gara impongono le specifiche di progetto seguenti:

1. all’inizio dell’incontro le dimensioni del robot non devono eccedere i 10


x 10 cm in pianta, una volta iniziato l’incontro il robot può assumere
qualsiasi dimensione; non ci sono limiti per l’altezza. La progettazione
meccanica va quindi curata per evitare di superare i limiti di spazio, in
particolare sarà posta attenzione dell’ingombro del robot, allo spazio
dei sensori, ai paraurti;
2. il peso del robot non può superare i 500 g pertanto, per mantenere al
massimo il peso e basso il baricentro, saranno impiegati componenti
leggeri e verrà previsto uno spazio dove aggiungere dei pesi di zavorra
utili a raggiungere il peso limite.

La struttura del robot è basata su una scheda Arduino montata sul telaio
Zumo [5] (figura 2.1) dove sono alloggiati due micro motoriduttori in corrente
continua. I motori sono controllati da Arduino tramite uno shield motori
che serve anche a interfacciare i sensori di linea e i sensori bersaglio.
Il microcontrollore legge i sensori a infrarossi che vedono l’avversario e i
sensori di linea che vedono il bordo del campo di gioco.
I sensori di linea che vedono il bordo del campo di gioco sono due sensori
a infrarossi CNY70; l’uscita di questi sensori viene collegata a due ingressi
analogici di Arduino.
64 CAPITOLO 2. ZUMOROBOT - TELAIO

Fig. 2.1: Ingombro dei cingolo

I sensori bersaglio che vedono l’avversario sono due sensori a infraros-


si 2Y0A21; anche l’uscita di questi sensori viene collegata a due ingressi
analogici di Arduino.
L’alimentazione è fornita da un pacco batterie interno al telaio Zumo.
Come al solito la programmazione del microcontrollore si effettua tramite
il connettore USB presente sulla scheda Arduino e un cavo USB collegato al
computer.

2.2 Telaio Zumo


Il movimento del robot avviene tramite due cingoli del telaio Zumo. Ogni
cingolo è collegato ad una ruota posteriore motrice e ad una ruota anteriore
libera. Ogni ruota motrice è dotata di denti per aggiungere un eventuale
encoder di rotazione ed è collegata ad un motore in corrente continua.
Nel kit del telaio Zumo sono presenti i seguenti componenti:

1. tre bulloni (figura 2.2) per chiudere il coperchio del vano motori, due
di questi bulloni servono anche per collegare la pala frontale al robot
(figura 2.3);

2. due ruote con il foro tondo (figura 2.4), che sono le ruote libere non
collegate ai motori;

3. due bulloni con rondelle (figura 2.5) per fissare le ruote libere al telaio
Zumo;

Gabriele Volpi RoboGame - Volume 1


78 CAPITOLO 2. ZUMOROBOT - TELAIO

vano motori. I colori differenti servono a riconoscere i fili una volta che non
sarà più possibile accedere al vano motori.

Fig. 2.23: Robot assemblato

2.6 Assemblaggio di Arduino sullo ZumoRobot


Per collegare Arduino al telaio Zumo si stampa un pezzo 3D che sostituisce
il coperchio del vano motore. Arduino viene fissato al supporto 3D e fermato
con delle viti. I collegamenti meccanici previsti sono i seguenti:

1. la scheda Arduino viene posizionata sopra il supporto 3D;

2. il supporto 3D viene fissato sopra al telaio Zumo (al posto del coper-
chio) con viti e dadi;

3. la scheda dei sensori di linea viene fissata in basso con una vite che
entra nel foro posto nello spazio tra i due motori;

4. la pala frontale viene collegata al supporto 3D e al telaio tramite due


viti e due dadi.

Nel disegno in figura 2.24 è mostrato il montaggio del robot. Le linee blu
rappresentano i punti corrispondenti che verranno serrati con i bulloni (per
il coperchio e la pala) e con una vite autofilettante (per la scheda sensori).
Nel disegno in figura 2.25 è mostrato il robot nelle sue parti. A partire
dall’alto troviamo lo shield motori (celeste), la scheda Arduino (blu), il sup-
porto 3D per Arduino e i sensori bersaglio (rosso) e il supporto (bianco) per

Gabriele Volpi RoboGame - Volume 1


CAPITOLO 2. ZUMOROBOT - TELAIO 79

Fig. 2.24: Assemblaggio del robot

RoboGame - Volume 1 Gabriele Volpi


80 CAPITOLO 2. ZUMOROBOT - TELAIO

i sensori bersaglio (neri), il telaio Zumo (giallo) con i motori (rosa) nei loro
alloggiamenti, la pala (beige), la scheda sensori di linea (verde), le ruote e i
cingoli.

Fig. 2.25: Parti del robot

Nel disegno in figura 2.23 è mostrato il robot assemblato con la pala


trasparente per vedere la posizione della scheda sensori di linea. Si può
inoltre notare che i sensori di bersaglio sono leggermente inclinati per vedere
meglio l’avversario sul campo di gara.

2.7 Supporto 3D per Arduino


Per costruire il supporto 3D per Arduino occorre scaricare da Thingiverse
[7] il modello 3D del coperchio del vano motori per il telaio Zumo. Il coper-
chio è stato disegnato dall’utente Shaarage ed è accessibile sulla pagina web
www.thingiverse.com/thing:1122367
Poi possiamo scaricare da Thingiverse il modello 3D di un supporto per
Arduino. Il supporto è stato disegnato dall’utente Eric Chu ed è accessibile
sulla pagina web www.thingiverse.com/thing:26237
Infine con l’ausilio di TinkerCAD [8] è possibile modificare i due oggetti
per realizzare un coperchio che funga anche da supporto per Arduino. Il co-

Gabriele Volpi RoboGame - Volume 1


83

Capitolo 3

ZumoRobot - Sensori di linea

3.1 Sensori di linea


I sensori di linea sono costituiti da una coppia LED-fototransistor in grado
di vedere se di fronte al sensore si trovi una superficie (target) riflettente.
Vengono principalmente usati nei robot inseguitori di linea (line follower )
per vedere la linea scura da seguire, o nei robot per minisumo per riconoscere
il bordo bianco del campo di gara (in giapponese dojo).

Fig. 3.1: Simbolo del transistor e


del fototransistor a confronto

Fig. 3.2: Funzionamento del sensore di linea

Il LED emette un fascio infrarosso che colpisce il bersaglio e torna in-


dietro al fototransistor (figura 3.2): questo è un particolare transistor in
109

Capitolo 4

ZumoRobot - Shield

4.1 Il motore in corrente continua


4.1.1 Struttura del motore a magneti permanenti
Il motore elettrico è un dispositivo che utilizza l’energia elettrica e la trasfor-
ma in energia meccanica di rotazione; viene quindi usato per muovere, spo-
stare, azionare parti meccaniche mediante un comando elettrico. Di motori
elettrici ne esistono molti tipi, qui si illustreranno soltanto i motori elettri-
ci in corrente continua a magneti permanenti che costituiscono la maggior
parte dei motori utilizzati nella robotica didattica.

Fig. 4.1: Motore in corrente continua FA-130

Essi sono costruttivamente semplici, poco costosi, facili da controllare.


Nella figura 4.1 è possibile vedere uno dei più diffusi micromotori in c.c. per
robotica presenti sul mercato, di dimensioni 25×21 mm, con asse di 2 mm,
generalmente usato nei motoriduttori. Ne esistono ovviamente anche di più
grossi e potenti.
Lo schema di principio del motore in corrente continua a magneti per-
manenti è illustrato in figura 4.2. I due poli Nord e Sud sono quelli di
due magneti permanenti (calamite) posti sulla parte fissa del motore, lo
110 CAPITOLO 4. ZUMOROBOT - SHIELD

statore. All’interno dello statore ruota una parte mobile, il rotore, che
contiene vari avvolgimenti di filo di rame ai quali arriva corrente attraverso
due contatti striscianti, le spazzole, che toccano le lamelle sul collettore.
Per semplicità gli avvolgimenti sono stati rappresentati come una sola spira,
ma nella realtà sono molte di più.

Fig. 4.2: Schema di principio del motore in corrente


continua a magneti permanenti

Gli avvolgimenti sono posti sulla circonferenza del rotore e fanno capo a
contatti diversi sul collettore. Quando si collega una batteria al motore, il
sistema spazzole-collettore fa scorrere corrente in uno degli avvolgimenti del
rotore e al campo magnetico fisso generato dai magneti si aggiunge il campo
magnetico generato dall’avvolgimento. Come se si trattasse di due calamite,
i due campi magnetici tendono ad allinearsi facendo ruotare l’intero rotore.
Prima che l’allineamento si compia e il rotore si fermi, il collettore, ruotando,
toglie alimentazione a quell’avvolgimento e la dà al successivo, e la rotazione
prosegue.

Gabriele Volpi RoboGame - Volume 1


CAPITOLO 4. ZUMOROBOT - SHIELD 121

collegati come in figura 4.11. I quattro diodi normalmente non conducono


corrente perché sono polarizzati inversamente, ma quando il motore si ferma
o si inverte la rotazione, si attivano a coppie per richiudere la tensione inversa
prodotta dagli avvolgimenti del motore. Lo schema di montaggio è in figura
4.12.

Fig. 4.12: Schema di montaggio del driver a ponte H con


diodi di protezione

4.4 Progetto di uno shield motori


Prende il nome di shield una scheda elettronica che viene montata sopra
(piggyback ) ad una scheda Arduino sfruttandone i connettori di espansio-
ne; essa serve, in genere, ad aggiungere nuove funzionalità e interfacce ad
Arduino. Nel nostro caso offre un modo semplice e veloce per interfacciare
uno o più motori senza dover progettare e costruire il necessario hardware.
Il cuore dello shield motori è il driver, cioè il circuito integrato che si fa
carico di gestire i comandi di Arduino e fornire adeguata corrente ai motori.
I driver in commercio, più diffusi per questo tipo di applicazioni, sono si-
glati L293D, L298 e SN754410, sebbene oggi essi risultino inferiori come

RoboGame - Volume 1 Gabriele Volpi


122 CAPITOLO 4. ZUMOROBOT - SHIELD

prestazioni ai più moderni driver con transistor MOSFET, come ad esempio


l’L6202. A fine unità didattica trovate le schede tecniche di ciascun driver.
I primi tre driver contengono ciascuno due ponti H completi e sono quindi in
grado di pilotare due motori in corrente continua nei due sensi di rotazione,
o un motore passo-passo, o in generale quattro carichi induttivi. Si differen-
ziano soprattutto per la corrente massima erogabile e, di conseguenza, per
le dimensioni del contenitore (package) necessario a dissipare il calore che si
genera.

Fig. 4.13: Shield motori

4.4.1 Progetto dello schema elettronico


Per realizzare uno shield motori utilizzeremo un driver SN754410 [18] che,
come risulta dalle caratteristiche tecniche, ha prestazioni migliori dell’L293D
e contiene già i diodi di protezione. Nello schema, realizzato con il software
Multisim, è indicato come SN754410. Lo schema comprende anche la circui-
teria necessaria a interfacciare Arduino con degli altri elementi di controllo
del robot.

Elenco componenti (through-hole technology )

• U1: integrato SN754410 in contenitore DIP

• uno zoccolo DIP 16 pin o due strisce da 8 pin femmina con funzione
di porta-integrato

• R1, R2, R3 e R4: resistenza 330 Ω da 1/4 W

• LED1, LED2, LED3 e LED4: diodo LED da 5 mm

Gabriele Volpi RoboGame - Volume 1


149

Capitolo 5

ZumoRobot - Sensore bersagli

5.1 Sensori a infrarossi


I sensori a infrarossi sono sensori che lavorano nella banda della radiazione
infrarossa (IR) in genere centrati sulla lunghezza d’onda di 950 µm, ma si
trovano sensori che lavorano per lunghezze che variano da 760 µm a 1150 µm.
Si possono trovare sensori semplici, come i fotodiodi IR e i fototransistor IR,
e dispositivi più complessi che hanno a bordo dei circuiti di discriminazione
del segnale, come i ricevitori IR, i sensori di distanza IR e i sensori PIR
(Passive IR sensor ). La loro funzione varia dalla semplice segnalazione
della presenza di un ostacolo alla precisa misurazione della distanza da un
bersaglio (target). Il segnale d’uscita è in tensione, in alcuni casi analogico,
in altri digitale.

5.1.1 Fotodiodi IR
Un fotodiodo (figura 5.1) è un diodo caratterizzato da una giunzione PN
in cui la zona P, disposta molto vicino alla struttura esterna del fotodiodo,
è rivestita da uno strato antiriflesso sopra il quale è in genere inserita una
lente il cui scopo è quello di focalizzare i raggi IR incidenti sulla superficie.

Fig. 5.1: Simbolo elettrico e un esempio di fotodiodo

Il fotodiodo opera in polarizzazione inversa, cioè con l’anodo connesso


verso massa e il catodo verso il positivo; quando la luce incide sulla superficie
150 CAPITOLO 5. ZUMOROBOT - SENSORE BERSAGLI

del fotodiodo esso inizia a condurre nonostante la polarizzazione inversa e


lo fa tanto di più quanto maggiore è l’illuminamento.

5.1.2 Fototransistor IR
Il fototransistor è simile al fotodiodo ma ha una sensibilità alla luce molto
maggiore, in quanto la corrente di base che si genera viene poi amplificata
dal transistor. Per contro un fototransistor ha una risposta nel tempo molto
meno rapida del fotodiodo.

Fig. 5.2: Simbolo elettrico e un esempio di fototransistor

5.1.3 Sensibilità
La sensibilità è un parametro che indica il rapporto tra la variazione della
grandezza di uscita e la variazione della grandezza di ingresso di un sensore,
in questo caso fra la tensione di uscita e il livello di illuminamento (lux) in
ingresso.

5.1.4 Ricevitori IR
Un ricevitore IR è un dispositivo che ha all’interno un circuito di condizio-
namento del segnale che permette di amplificare il segnale ed eliminare gran
parte delle interferenze esterne. Non si deve dimenticare che, sia la luce del
sole che la luce delle lampade, in particolare quelle fluorescenti, contengono
una radiazione infrarossa che può essere scambiata dal ricevitore per un se-
gnale utile. Per ottenere questo scopo il ricevitore IR è progettato per filtrare
segnali a frequenza ben precisa e, eventualmente, con modulazioni partico-
lari e ben riconoscibili: un esempio ne è il dispositivo TSOP4838 (figura 5.3)
che opera solo su segnali a 38 kHz. I ricevitori IR Vengono largamente usati
in robotica per identificare la presenza di ostacoli o bersagli, su angoli rela-
tivamente ampi. Questa loro scarsa direzionalità è da una parte un pregio
e dall’altra un difetto: si vede bene se di fronte c’è un bersaglio ma non si
capisce esattamente in quale direzione si trovi.

Gabriele Volpi RoboGame - Volume 1


156 CAPITOLO 5. ZUMOROBOT - SENSORE BERSAGLI

Fig. 5.11: Caratteristica del 2YA021 simulata


con una serie di segmenti

in una variabile la misura precedente e poi si confronta con quella attuale.


Per calcolare la distanza si usa la funzione distanza_eye che verifica l’in-
tervallo in base al valore letto, poi calcola con map la distanza.

Lo sketch è il seguente:
# define EYE A2

int val_sensore ;
int val_medio ;
int v al _se ns o re _O L D ;

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void setup ()
{
Serial . begin (9600);
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void loop ()
{
val_sensore = distanza_eye ();
Serial . print ( val_sensore );
Serial . print ( " " );

if ( val_sensore < v al _s e ns or e _O LD )
Serial . println ( " si avvicina " );
else if ( val_sensore > v al _s e ns o re _O L D )
Serial . println ( " si allontana " );

Gabriele Volpi RoboGame - Volume 1


159

Capitolo 6

Collaudo ZumoRobot

6.1 Collaudo ZumoRobot

Il collaudo del robot (figura 6.1) deve essere fatto per test successivi. Ven-
gono usati piccoli sketch di test al fine di verificare il funzionamento delle
singole unità.

Fig. 6.1: ZumoRobot