Area SX srl - Informatica e Microelettronica
    
 
Torna a: Area SX s.r.l. > Articoli Divulgativi > Robotica > Varie > Servo RC: Funzionamento e controllo
Servo RC: Funzionamento e controllo
Data di pubblicazione: 17-10-2003 |  Prodotto Descrizione di un prodotto  |  | Versione Italiana  | (No English Version)The English version of this article does not exists
Parole chiave: - Domotica - PIC -

Un Servo RC tipicamente consiste in uno scatolotto di plastica di ridotte dimensioni (35x40x20mm nel caso del diffusissimo Futaba S3003 riportato in figura 1), da cui fuoriesce un perno in grado di ruotare in un angolo compreso tra 0 e 180 gradi e mantenere stabilmente la posizione raggiunta.

La rotazione del perno viene ottenuta tramite un motore in corrente continua ed un meccanismo di demoltiplica che consente di ottenere un'ottima coppia in fase di rotazione.

L'azionamento del motore viene effettuato 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.

In dotazione ai servo vengono anche fornite una o più squadrette forate da poter innestare sul perno per poter tramettere il movimento ad altre parti meccaniche.

L'uso più comune dei servo avviene nel campo dell'aereomodellismo in cui i servo vengono utilizzati per muovere gli alettoni posti sulle ali e sulla coda dell'aereo o per agire sul'accelleratore del motore.

Come si usa un Servo RC

I Servo RC sono nati per essere pilotati nel modo più semplice possibile. L'esigenza primaria era quella di poter effettuare la movimentazione senza l'ausilio di circuiterie troppo complesse o l'uso di sistemi a microprocessore.

Un servo RC dispone solitamente di soli tre fili attestati ad un connettore femmina per pin strip a passo 2.54mm come visibile in figura 2:

Due di questi fili sono riservati all'alimentazione in corrente continua a 5 volt (da 4.5 a 6.5 per la precisione). Il positivo è di colore rosso, il negativo di colore nero. L'assorbimento massimo è di circa 180mA per un Futaba S3003 ma può variare a seconda delle caretteristiche del servo.

Il terzo filo, normalmente di colore bianco, è riservato per il controllo del posizionamento. Su questo filo è necessario applicare un segnale impulsivo o PWM (dall'inglese Pulse Wave Modulation) le cui caratteristiche sono "quasi" univoche per qualsiasi Servo RC disponibile in commercio. Per essere sicuri di riuscire a pilotare qualsiasi Servo RC il nostro circuito di pilotaggio dovrà essere in gradi di inviare al servo circa 50 impulsi positivi al secondo di durata variabile in un intervallo massimo compreso tra 0.25ms e 2.75ms.

Generalmente con un impulso di durata pari a 1.5ms il perno del servo RC si posiziona esattamente al centro del suo intervallo di rotazione. Da questo punto il perno può ruotare fino a -90 gradi (senso antiorario) se l'impulso fornito ha una durata inferiore a 1.5ms e fino +90 gradi (senso orario) se l'impulso fornito ha durata superiore a 1.5ms. Il rapporto esatto tra la rotazione del perno e la larghezza dell'impulso fornito può variare tra i vari modelli di servo.


Figura 3 - Relazione tra il segnale PWM e la rotazione del perno

Controller seriale Pololu per pilotare fino 16 servo RC da una sola porta RS232

Il controller Pololu POSSC è in grado di generare fino a 16 impulsi PWM indipendenti tra loro e di durata variabile tra 0.25ms e 2.75ms sufficienti per il controllo della maggior parte dei Servo RC disponibili in commercio.

Per semplificare ulteriormente il pilotaggio dei Servo RC, la società Pololu produce un controller dotato di un PICmicro già programmato, in grado di riconoscere una serie di comandi di posizionamento da una semplice porta seriale RS232 standard o da una linea asincrona TTL invertita (utile per interfacciare il controller direttamente ad un microprocessore).

La durata degli impulsi PWM su ogni uscita può essere controllata in maniera indipendente con una risoluzione di 0.5uS, pari ad una rotazione di soli 0.045 gradi.

Il controller Pololu POSSC
Figura 4 - Il controller seriale per 16 servo RC Pololu POSSC

Specifiche tecniche

Dimensioni 382 x 578 mm
Numero di servo 16
Voltaggo PWM 0 - 5 V
Risoluzione PWM 1 µs (circa 0.1°)
Range PWM 250-2750 µs
Alimentazione logica 5.6-20 V
Linea dati Seriale RS232 (ħ12V) o TTL (0-5V)
Baud rate 1200-38400 (con rilevamento automatico)

Schema elettrico e descrizione funzionale

In figura 5 riportiamo lo schema elettrico del controller Pololu POSSC seguito da una descrizione funzionale delle varie parti circuitali.

Il controller Pololu POSSC
Figura 5 - Schema elettrico del controller seriale per 16 servo RC Pololu POSSC

Sezione RS232

La sezione circuitale nell'area trattegiata in alto a sinistra dello schema, converte i segnali a +/- 12 volt in entrata dalla linea RS232 in segnali a 0/5 volt positivi adatti al resto della logica di controllo.

Il connettore a 9 pin di tipo a vaschetta (meglio conosciuto come connettore Canon) è di tipo femmina e potrebbe innestarsi direttamente sul connettore Canon maschio normalmente presente su un normale PC. La disponibilità in un connettore femmina, indica chiaramente la tipologia di funzionamento del controller rispetto allo standard RS232 è cioè la simulazione di un apparato di tipo DCE (Data Communication Equipment) ovvero un apparato asservito al DTE (Data Terminal Equipment) costituito in questo caso dal PC. Questo significa, in termini pratici, che se dobbiamo connettere il controller al nostro PC tramite un cavo seriale dobbiamo assicurarci di usare un cavo non invertente, ovvero lo stesso tipo di cavo usato per collegare i modem, evitando assolutamente di usare i cosiddetti cavi null modem o invertenti.

Nel caso invece si abbia la necessità di connettere il controller alla linea seriale TTL di un microcontroller, è possibile evitare di montare i componenti CON3, R2, R3 e Q1 ed applicare direttamente il segnale, già a 0/5 volt positivi, direttamente al pin S del connettore CON2.

In entrambe i casi la linea TX, proveniente dal PC o dal micro, arriva al pin RX del microprocessore PICmicro 16C63A che provvederà ad interpretare i comandi ricevuti e ad effettuare le attuazioni conseguenti.

Connettore di alimentazione CON1

Sui pin + e - del connettore CON1 dobbiamo fornire la tensione di alimentazione per i 16 servo RC. La tensione normalmente è compresa tra i 4.6 ed i 6 volt DC ma potrebbe richiedere spunti di corrente notevoli specialmente se tutti e 16 i servo vengono attivati contemporaneamente. Fate riferimento alla documentazione dei servo RC utilizzati per decidere il tipo di alimentazione da adottare.

Connettore di alimentazione CON2

Su pin + e - di CON2 dobbiamo fornire la tensione di alimentazione per la logica di controllo. Grazie all'integrato stabilizzatore U2, un LM2931, possiamo applicare su questi pin una tensione compresa tra i 5.6 ed i 20 VDC. Il pin S come già detto in precedenza può essere usato in alternativa al connettore RS232 in caso di trasmissione dei dati seriali dal micro a livello TTL.

Su pin + e - di CON2 dobbiamo fornire la tensione di alimentazione per la logica di controllo.

Prova pratica

Una volta montato il controller vediamo come sia possibile verificarne il funzionamento. In figura 6 riportiamo una foto del banco di prova utilizzato.


Figura 6 - Il controller POSSC collegato a 16 servo Futaba S3003

Come si vede nella foto sono stati collegati 16 servo ad altrettante uscite disponibili sul controller. L'ingresso RS232 è stato quindi collegato con un normale cavo seriale non invertente alla porta COM1 di un PC dotati di Sistema operativo Windows 2000 (qualsiasi altra versione ovviamente va bene allo scopo).

Tra i protocolli di comunicazione riconosciuti dal controller POSSC abbiamo scelto il più semplice Mini SSC II descritto a pagina 11 dello User Guide della Pololu disponibile per il download nella sezione Link e Download in fordo a questo articolo.

Questo protocollo richiede l'invio di soli tre byte per posizionare ogni singolo servo come visibile in figura 7.


Figura 7 - Il pacchetto base del protocollo Mini SSC II

Per utilizzare questo protocollo è necessario chiudere il ponticello J1.

Per generare il pacchetto di dati sulla seriale RS232 del nostro PC abbiamo utilizzato la versione demo del programma RS232 Hex Com Tool v3.0 disponibile per il download dal sito http://www.viddata.com.


Figura 8 - Screen shot del programma RS232 Hex Com Tool v3.0

Questo programma consente di specificare una stringa di byte da inviare su seriale e di memorizzare degli script molto semplici per la generazione automatica delle sequenze di caratteri.

Per testare il movimento ti tutti e 16 i servo ho usato questo semplice script:

_LINE
Tutti a destra
FF 10 00 FF 11 00 FF 12 00 FF 13 00 FF 14 00 FF 15 00 FF 16 00 FF 17 00
FF 18 00 FF 19 00 FF 1A 00 FF 1B 00 FF 1C 00 FF 1D 00 FF 1E 00 FF 1F 00
1.0

_LINE
Tutti a sinistra
FF 10 C0 FF 11 C0 FF 12 C0 FF 13 C0 FF 14 C0 FF 15 C0 FF 16 C0 FF 17 C0
FF 18 C0 FF 19 C0 FF 1A C0 FF 1B C0 FF 1C C0 FF 1D C0 FF 1E C0 FF 1F C0
1.0
1.25

Link e download


Segnala questo articolo: 

Delicious         



Parole chiave: - Domotica - PIC -

Data di pubblicazione: 17-10-2003Hits: 49852
I marchi citati sono proprietà dei titolari dei relativi diritti. Le caratteristiche tecniche e i prezzi riportati sono indicativi e soggetti a variazioni senza preavviso. Le foto non hanno valore contrattuale. Nonostante accurate verifiche, il presente documento può contenere prezzi o specifiche errati. Area SX si scusa in anticipo e si impegna ad evitare tali imprecisioni.

 Area SX store
In questa sezione puoi ordinare direttamente i prodotti descritti in questo articolo
Tutti i prezzi indicati sono espressi in Euro con IVA e spese di trasporto escluse. I prezzi si riferiscono al singolo pezzo
DescrizioneCodicePrezzo

Area SX s.r.l. - Via Stefano Longanesi 25, 00146 ROMA - Tel: +39.06.99.33.02.57 - Fax: +39.06.62.20.27.85 - P.IVA 06491151004