...

Capitolo.027

by user

on
Category: Documents
17

views

Report

Comments

Transcript

Capitolo.027
Corso di BASCOM 8051 - (Capitolo 2 7 )
Corso Teorico/Pratico di programmazione in BASCOM 8 0 5 1 .
Autore: DAMINO Salvatore.
SERVOMOTORI A ROTAZIONE CONTINUA
( 3 )
Un modello estremamente interessante di Servomotore è quello in grado di
gestire delle rotazioni continue come quello della Parallax qui di seguito illustrato.
Servomotore a Rotazione Continua in grado di Ruotare oltre i 360°.
Servomotore a Rotazione Continua.
148
Le caratteristiche di questo modello, ordinabile come PN 900-0008, sono
succintamente elencate di seguito.
-
Rotazione Continua Bidirezionale.
Risposta Lineare tra 0 e 50 RPM.
Possibile Pilotaggio tramite PWM per generare rapidamente delle rampe.
Semplice e facile gestione delle risorse.
PROTOCOLLO DI COMUNICAZIONE.
Per compensare piccole differenze di produzione, e lievi differenze nella durata
dell'impulso, il Servo ha un Trimmer che deve essere lentamente variato fino a
quando l'albero sia completamente fermo.
La regolazione deve essere effettuata solo quando l'impulso ha una forma analoga
a quella riportata nella successiva figura, ovvero un'ampiezza di 1,5 ms.
Regolazione Servomotore
a Rotazione Continua.
Il Servo a Rotazione Continua della Parallax è controllato da un impulso, di
ampiezza variabile, la cui durata determina il senso e la velocità di rotazione
dell’albero.
Per ottenere rotazioni regolari, il Servo, richiede una pausa di 20 ms tra gli
impulsi. Di seguito c’è un diagramma temporale, di esempio, che mantiene il
Servo Fermo e Centrato.
Appena la durata dell’impulso decresce da 1,5 ms il Servo ruoterà, in senso
Orario, con una velocità gradualmente proporzionale alla riduzione così come è
illustrato dalla figura seguente.
149
Servomotore Circolare Fermo e Centrato.
Servomotore Circolare in rotazione Oraria.
Allo stesso modo, quando la durata dell’impulso cresce da 1,5 ms, il Servo
ruoterà in senso Anti-Orario, con una velocità gradualmente proporzionale
all’aumento, così come indicato dalla figura seguente.
Servomotore Circolare in rotazione Anti-Oraria.
150
Elicottero.
Rappresentazione
Esplosa dell'Elicottero.
151
Aereomodello Radiocomandato.
Tipici Radiocomandi.
152
ESEMPI
D I
UT I L I Z Z O
L'Esempio.045 illustra come utilizzare le Istruzioni del BASCOM 8 0 5 1 per
gestire dei Servo a Rotazione Continua.
Montare Mini Modulo su Z2 della GMM TST3, collegare PCM del Servo a
CN4.3.
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 solo scegliendo tra un numero limitato di velocità diverse.
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 velocità 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 velocità
che, comunque, sono ridotte ad un numero limitato di valori.
Schema Applicativo per Collegare il Servo all'Esempio.045.
153
L'Esempio.046 è un'evoluzione dell'Esempio.044, adattata al Servomotore a
Rotazione Continua in cui, per ottenere una risoluzione e delle precisioni
decisamente superiori, sono state adoperate delle Istruzioni a Basso Livello in
Assembler.
Le caratteristiche operative rimangono le stesse dell'esempio precedente ma le
prestazioni raggiungono dei livelli molto alti. Si possono, infatti, impostare fino a
1 0 0 diverse velocità.
Se volete rendervi conto dei progressi ottenuti potete sperimentare praticamente
il programma e, sopratutto, studiare le strategie messe in campo per ottenere tali
risultati.
Nel sorgente di questo programma si è avuto cura di spiegare, nel dettaglio, le
ragioni che concorrono a giustificare le scelte adottate. A questo proposito sono
state anche esplicitate le trattazioni matematiche necessarie allo scopo.
Studiando questo programma si potranno trarre degli ottimi spunti per affrontare,
e risolvere, le possibili future problematiche.
Modello di Robot-Insetto
154
con 6 Piedi.
Esempio.045.
Servomotore a Rotazione Continua
con
Istruzioni ad Alto Livello in BASCOM.
Da Console si può
scegliere il Senso e la Velocità di Rotazione. ( Oltre i 360°)
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
Nessuna
Operatori aggiunti:
Nessuno
Programma di Esempio.045 del corso BASCOM 8051.
Il programma consente di impostare il senso e la velocità di rotazione di un Servo
motore a Rotazione Continua, tramite valori inseriti da console. Il segnale
prescelto per controllare il Servo è il P1.3 del Mini Modulo, riportato sul
connettore CN4.3 della GMM TST3. Tale segnale è generato con le istruzioni per
Servo del BASCOM, ad alto livello.
Per le prove del programma è stato usato il modello Servo a Rotazione
Continua 9 0 0 - 0 0 0 0 8 prodotto dalla Parallax.
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!!
155
Esempio.046.
Servomotore a Rotazione Continua gestito con
Istruzioni a Basso Livello. Da Menù si può scegliere il Senso e
la Velocità di Rotazione. ( Oltre i 360°)
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
Nessuna
Operatori aggiunti:
Nessuno
Programma di Esempio.046 del corso BASCOM 8051.
Il programma consente di impostare il senso e la velocità di rotazione di un Servo
motore a Rotazione Continua, tramite valori inseriti da console. Il segnale
prescelto per controllare il Servo è il P1.3 del Mini Modulo, riportato sul
connettore CN4.3 della GMM TST3. Tale segnale non è generato con le istruzioni
per Servo del BASCOM, bensì con Istruzioni a Basso Livello.
Per ottenere la massima Risoluzione sulla velocità del motore si è dovuto
ottenere la massima risoluzione sulle temporizzazioni. Questi risultati sono
possibili solo integrando alcune parti di programma in Assembly.
Per le prove del programma è stato usato il modello Servo a Rotazione
Continua 9 0 0 - 0 0 0 0 8 prodotto dalla Parallax.
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!!
156
Fly UP