Comments
Description
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