servomotori ( 1 )

Transcript

servomotori ( 1 )
Corso di BASCOM 8051 - (Capitolo 2 5 )
Corso Teorico/Pratico di programmazione in BASCOM 8 0 5 1 .
Autore: DAMINO Salvatore.
SERV OMOT O RI
( 1 )
Un Servomotore è un organo meccanico di potenza, in grado di gestire un
movimento, il quale può essere comandato da un segnale logico di bassa o
bassisima potenza. In questo caso non ci occuperemo dei sofisticati modelli
industriali ma dei più più comuni modelli per uso nel modellismo per aerei, navi,
auto, robot, ecc. Stiamo parlato di quelli che, in gergo, vengono chiamati
SERVOS, in Inglese, o piu semplicemenre SERVO, in Italiano, e che molti
appassionati adoperano, o vorrebbero adoperare, sui propri modelini.
Alcuni tipi di Servomotori o, piu comunamente detti, Servo.
Il Servo è generalmente alloggiato in un contenitore ed è costituito da un motore
elettrico, completo di riduzione meccanica, un sistema di feedback per la posizione
dell'asse di uscita e tutta l'elettronica di controllo. Tramite un opportuno sistema
di comando è possibile far ruotare l'asse di uscita del servo e posizionarlo in una
specifica e precisa posizione.
127
Collegamento Elettrico di un Servo.
Esistono Servo di varia potenza, ingombro, funzionalità, ecc. ma la caratteristica
fondamentale è che si comandano tutti allo stesso modo.
128
Vista Interna di un tipico Servo.
Qui si possono vedere le parti meccaniche del servo. Ci si può rendere conto che
esso non è che una serie di ingranaggi che ha lo scopo di ridurre il numero dei giri
del motore ad un valore utilizzabile dal dispositivo che deve essere comandato.
Notate bene che l'albero di uscita del servo, normalmente, può ruotare soltanto di
180°. Per superare questo limite occorre adoperare dei Servo in grado di
superare i 360° oppure modificare il servo.
Schema a Blocchi di un tipico Servo.
129
Per gestire il Servo occorrono solo 3 fili. Due sono quelle della alimentazione che,
in genere, è di 6Vdc ma, a scapito di una riduzione della potenza, è accettato
anche il 5Vdc. Un terzo filo è quello del segnale di Controllo e che è tipicamente
a livello TTL.
Elementi Costitutivi
di un tipico Servo.
Approfitto dell'occasione per ribadire che, nonostante ci sia una notevole
somiglianza, il segnale di controllo dei Servo NON è assolutamente un segnale
PWM come molti, male informati, continuano a credere ed a predicare. La
notazione corretta è PCM ovvero Pulse-Code Modulation che, letteralmente, si
può tradurre come Modulazione Codificata di Impulsi. Per convincersi è
sufficiente confrontare i due segnali con un normale oscilloscopio.
Il funzionamento del Servo è molto semplice. Come si può osservare, dallo
schema a blocchi, il segnale di Controllo arriva all'Elettronica. Questa lo
confronta con il valore presente sul Potenziometro e decide se deve fare ruotare
il motore ed in che direzione.
Impulso di Controllo
Centro. Max
Costruttore Min.
Hz
+V Servo
GND
Controllo
Futaba
Hitech
Graupner/Jr
Multiplex
Robbe
50
50
50
40
50
Rosso
Rosso
Rosso
Rosso
Rosso
Nero
Nero
Marrone
Nero
Nero
Bianco
Giallo
Arancio
Giallo
Bianco
0.9
0.9
0.8
1.05
0.65
1.5
1.5
1.5
1.6
1.3
2.1
2.1
2.2
2.15
1.95
Cavi di Collegamento
Tabella Riassuntiva delle caratteristiche
130
di alcuni Servo.
Per comandare un Servo occorre, tramite il filo di controllo, inviare allo stesso una
serie di impulsi TTL. La durata del singolo impulso determina la posizione dell'asse
di uscita. Il tempo di pausa, tra un impulso ed il successivo, può variare entro ampi
limiti senza che si abbia una perdita di controllo del Servo.
Dopo avere data una descrizione qualitativa cominciamo a dare delle indicazioni
quantitative stabilendo dei precisi valori numerici.
La durata dell'impulso può variare tra un minimo di 1mS ed un massimo di 2mS.
In funzione della durata di questo impulso il Servo farà ruotare il perno di uscita,
solidale con il potenziometro, fino al raggiungimento del completo equilibrio.
Relazione Esistente trà Larghezza degli Impulsi e Rotazione.
La durata minima e massima dell'impulso corrisponde ai due estremi
dell'escursione del Servo. L'impulso della durata di 1,5ms corrisponde alla
posizione centrale, o mediana, del Servo.
131
Bisogna ricordare che questo impulso deve essere continuamente rinfrescato
(ripetuto) altrimenti il Servo, non essendo più governato, si porterà a riposo.
Questo significa che non potrà più garantire di mantenere la posizione e l'albero
potrà essere mosso dalle forze attualmente presenti del carico applicato.
La durata della Pausa, tra un impulso ed il successivo, deve essere compresa tra
un minimo di 10ms ed un massimo di 40ms.
La durata tipica della Pausa tra gli impulsi è di 20ms che sono pari a 50Hz.
Tipico Esempio di Utilizzo dei Servo.
132
Applicazione dei Servo nei Robots.
Modello di Automobile.
133
Tipici Radiocomandi.
Modello di Aereo Radiocomando con Motore Elettrico.
134
Esempio di Applicazione per Controllo Carrello.
135
Modello di Nave Radiocomandata.
Servomotori di Tipo Industriale.
136
ESEMPI
D I
UT I L I Z Z O
L'Esempio.041 illustra come utilizzare le Istruzioni del BASCOM 8 0 5 1 per
gestire dei Servo.
La gestione del Servo motore viene effettuata con le Istruzioni ad alto livello del
BASCOM. Queste generano un segnale che non segue esattamente le specifiche
temporali del segnale PCM di controllo del Servo, ma che comunque riesce a farlo
muovere correttamente.
Le Istruzioni del BASCOM usano un Interrupt periodico generato dal TIMER0,
che quindi non può essere usato per altre funzioni!!!
La Risoluzione (=durata) delle temporizzazioni è definita dal valore di Reload
impostato con l'istruzione Config Servo... e dalla posizione settata con
l'istruzione Servo..., come indicato nell'aiuto in linea del BASCOM.
Questo demo imposta un tempo di reload minimo che non provoca vibrazioni del
servo, pari a 50 µs, in modo da ottenere una risoluzione massima sulle posizioni.
Schema Applicativo per Collegare il Servo.
L'Esempio.042 è un'evoluzione del precedente. Esso infatti consente di poter
pilotare il Servo tra 0 ° e 2 0 0 ° con continuità. Queste operazioni vengono
effettuate utilizzando le Istruzioni ad alto livello del BASCOM con delle modalità
analoghe a quelle dell'esempio precedente. Le posizioni sono decise dall'utente
che inserisce direttamente il numero di R e l o a d
da
console.
137
Esempio.041.
Servomotore.
Da Console si può scegliere di
muoversi a 0° a 90° oppure a 180°.
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
CONFIG SERVOS ; SERVO1
Operatori aggiunti:
Nessuno
Programma di Esempio.041 del corso BASCOM 8051.
Il programma consente di posizionare un Servo Motore nelle posizioni di inizio
corsa (0°), metà corsa (90°) e fine corsa (180°), tramite apposita scelta con
menù da console. Il segnale prescelto per controllare il Servo è il P1.3 del Mini
Modulo, riportato sul connettore CN4.3 della GMM TST3.
Per le prove del programma è stato usato il modello Servo standard 9 0 0 - 0 0 0 0 5
prodotto dalla Parallax ma si può tranquillamente adoperare anche altri modelli di
Servo come quelli, ad esempio, della Futaba od altri.
Il programma si presenta ed usa una console seriale dotata di Monitor e Tastiera,
con un protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit,
Nessuna Parità.
Questa Console può coincidere con un sistema in grado di gestire una
comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC
dotato di una linea COMx, che esegue un programma di emulazione terminale
come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM 8 0 5 1
(vedere Configurazioni IDE) .
Il programma funziona solo se la GMM 5 1 1 5 è montata sullo zoccolo Z2 della
G
M
M
TST3!!
138
Esempio.042.
Servomotore. Da Menù si può scegliere di
muoversi in qualsiasi posizione compresa trà 0° e 180°.
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
Nessuna
Operatori aggiunti:
Nessuno
Programma di Esempio.042 del corso BASCOM 8051.
Il programma consente di posizionare un Servo Motore in tutte le posizioni della
sua corsa (0°÷200°), tramite apposito valore inserito da Console. Il segnale
prescelto per controllare il Servo è il P1.3 del Mini Modulo, riportato sul
connettore CN4.3 della GMM TST3.
Per le prove del programma è stato usato il modello Servo standard 9 0 0 - 0 0 0 0 5
prodotto dalla Parallax ma si può tranquillamente adoperare anche altri modelli di
Servo come quelli, ad esempio, della Futaba od altri.
Il programma si presenta ed usa una console seriale dotata di Monitor e Tastiera,
con un protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit,
Nessuna Parità.
Questa Console può coincidere con un sistema in grado di gestire una
comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC
dotato di una linea COMx, che esegue un programma di emulazione terminale
come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM 8 0 5 1
(vedere Configurazioni IDE) .
Il programma funziona solo se la GMM 5 1 1 5 è montata sullo zoccolo Z2 della
GMM TST3!!
139