Come funziona un servocomando
I servocomandi, o più semplicemente servo, sono molto usati nel modellismo e nella robotica amatoriale. Si tratta di piccoli dispositivi, generalmente contenuti in uno scatolotto di materiale plastico, muniti di un motorino, una serie di ingranaggi di riduzione e circuiteria. Parleremo quindi in questa brief-note, dei servocomandi “da hobby” anche noti come servocomandi RC, perchè generalmente utilizzati in abbinamento alle riceventi dei RadioComandi. Più che altro la denominazione di “Servocomandi RC” assicura che i servo funzionino seguendo un preciso standard di comunicazione.
Difatti esistono anche alcuni servocomandi, che però NON sono definiti “RC”, che seguono standard di comunicazione proprietari, come ad esempio i servo della Dynamixel, che comunicano tramite un’interfaccia RS-485.
Dal corpo di un servocomando fuoriesce un perno di rotazione, al quale possono essere fissate, mediante un incastro zigrinato e una vite centrale, le cosiddette “squadrette” (Horn in inglese), di varie forme, materiali e dimensioni e che servono per collegare il servocomando al dispositivo che esso dovrà “muovere”. Le squadrette generalmente sono forate per permettere l’ancoraggio, tramite viti autofilettanti, a staffe oppure per permetterci di inserire al loro interno gli alberini di comando. Per applicazioni di robotica sono spesso necessarie anche delle Staffe (Frames in inglese) in alluminio, plastica o materiali vari, da ancorare alle squadrette tonde, che permettono di realizzare articolazioni complesse formate da più servo.
Il perno di rotazione è in grado di effettuare un’escursione minima garantita di 90°, ma in genere si arriva tranquillamente a 180°. Il servo ha una posizione centrale e può ruotare di 45° (o 90°) a destra e 45° (o 90°) a sinistra.
Attenzione: io qui mi riferisco spesso ad una rotazione di 90° (45-0-45), per motivi di sicurezza, ma al 99.9999% il servo che avete tra le mani in questo momento è in grado di ruotare di 180° (90-0-90), anche se alcuni servo economici sforzano arrivati alle estremità.
Questi dispositivi sono molto utilizzati, ad esempio, sulle automobili radiocomandate per aprire/chiudere la valvola del gas, per effetuare la sterzata, oppure ancora sugli aereoplani radiocomandati o ancora nei piccoli robot in cui vanno a costituire, mediante squadrette, staffe e leveraggi vari, le varie giunture degli arti dei robot.
La Hitec, nota casa produttrice di Servo RC insieme alla Futaba, ha in catalogo servocomandi per svariate applicazioni tra cui quelli specifici per robotica, però a volte vengono preferiti servocomandi standard anche per applicazioni di robotica amatoriale in quanto il prezzo è più accessibile
Quando vi capita di acquistare dei servocomandi su Ebay, se sono nuovi, pretendete sempre di avere il corredo di squadrette in quanto un servo nuovo è sempre venduto con questi piccoli accessori, altrimenti non può essere utilizzato o quanto meno lo utilizzerete con difficoltà.
I servocomandi, a dispetto delle loro ridotte dimensioni, grazie a sistemi di riduzione ad ingranaggi più o meno sofisticati, hanno delle forze torcenti spaventose e sono in grado di spostare diversi Kg (tanto per fare un esempio, l’Hitec HS-805BB è in grado di spostare circa 25Kg, ma alcuni modelli di servo arrivano anche oltre 45Kg).
Un’altra peculiarità è quella di mantenere la posizione: una volta detto al servocomando di ruotare di un certo numero di gradi, e se tale comando viene inviato di continuo, rimarrà in quella posizione trattenendo il carico a cui è collegato. Ovviamente bisogna sempre scegliere un servocomando che abbia la potenza necessaria a svolgere il compito assegnatogli. Spesso, nei servocomandi economici, capita che gli ingranaggi, generalmente costruiti in Nylon, si spacchino proprio perchè il servocomando viene utilizzato al limite della propria forza. Per tale motivo esistono servocomandi con ingranaggi metallici o materiali plastici di un certo livello. Quello della foto in alto, ad esempio, utilizza ingranaggi in Karbonite: un brevetto della Hitec che permette di avere un buon compromesso tra prezzo, peso e resistenza.
Bisogna inoltre distinguere tra servocomandi analogici e digitali. In questa sede tratterò solo gli analogici perchè sono i più diffusi e più economici. Vengono chiamati analogici in quanto il posizionamento del perno viene fatto controllando la rotazione di un piccolo potenziometro posto all’interno del servocomando e messo in movimeno dagli stessi ingranaggi che muovono il perno. Nei servi analogici il motorino non è alimentato quando il servo si trova nella posizione comandata. I servo digitali, invece, hanno sistemi digitali per controllare il posizionamento e forniscono quindi una risposta più rapida e precisa, hanno altre opzioni tra le quali il settaggio della velocità, il controllo di assorbimento, temperatura ecc (possono essere programmati”, raggiungono forze torcenti più elevate ma per contro costano un occhio della testa e consumano più corrente in quanto il motorino è sempre alimentato. In ogni caso i servocomandi RC sia digitali che analogici seguono lo stesso standard di comunicazione: per cui generalmente sono intercambiabili.
Alcuni forum stanno reindirizzando le loro discussioni su questa pagina: non può che farmi piacere, ma alcuni stanno scrivendo delle mastodontiche fesserie del tipo: “quell’articolo parla solo dei servo digitali”… A parte il fatto che chi ha detto questo probabilmente non avrà nemmeno letto l’articolo ma avrà guardato solo le figure (ma nemmeno: non mi pare di aver messo foto di servi digitali!), le cose che sto scrivendo (con cura tra l’altro) valgono sia per i servo digitali che per quelli analogici, purchè si tratti di servi RC! Seguono lo stesso standard di comunicazione!
Una comparazione tra servo analogici e digitali può essere trovata a questo link
Il servocomando, abbiamo detto, ha quindi una rotazione limitata: 90° (45 a destra e 45 a sinistra o 90° a destra e sinistra per i servo che lo consentono), questo perchè hanno all’interno un perno che ne blocca l’escursione.
Questo è vero parzialmente: esistono anche dei servocomandi a rotazione continua, ma si usano per applicazioni speciali
In molti effettuano la modifica dei servocomandi rimuovendone i blocchi: in questo caso il servocomando può essere utilizzato, ad esempio, come un motoriduttore per collegarci su delle ruote per movimentare il nostro robottino o la nostra macchinina: è una soluzione valida ed economica.
Arriviamo quindi alla parte cruciale: come si pilota un servocomando?
Da un servocomando fuoriescono 3 fili: due sono per l’alimentazione e generalmente sono nero o marrone per il negativo e rosso per il positivo; il terzo filo, quello destinato al segnale di comando, generalmente è giallo (Hitec), bianco (Futaba) o arancione o nero.
L’alimentazione generalmente è compresa tra 4.8 e 6volts (ma fate riferimento al datasheet del vostro servocomando) . Alla massima tensione il servo fornisce il massimo della potenza.
Il segnale di comando è costituito da un’onda quadra inviata ripetutamente: il fronte positivo deve avere una durata compresa tra 1 e 2 (tra 0,5 e 2,5 per i servo che ruotano di 180°) millisecondi e la somma del fronte positivo e quello negativo (ovvero: il periodo) deve essere di circa 20mSec (frequenza: 50 Hz). Il segnale fatto in questo modo deve essere inviato di continuo se si vuole che il servocomando, sotto sforzo, mantenga la posizione desiderata:
Possiamo notare che tale segnale è in pratica un segnale di tipo PWM (Pulse Width Modulation) : per pilotare un servocomando andiamo a modulare la durata della semionda positiva.
I servocomandi in grado di ruotare di 180° accettano un impulso tra 0,5 e 2,5mSec.
Ne approfitto quindi per introdurre il concetto di Duty Cycle (d): esso rappresenta il rapporto, espresso in percentuale, tra la durata della semionda positiva (τ) e il periodo (T) del segnale. Quando il fronte positivo dura 1mSec, essendo il periodo di 20mSec, il duty cycle varrà:
Possiamo quindi dire che un servocomando va pilotato mediante un segnale modulato in PWM alla frequenza di 50Hz, con un duty cycle compreso tra 5% e 10% . Valori al di fuori di questi possono portare a malfunzionamenti: il servo fischia, si surriscalda e può rompersi.
In realtà alcuni servocomandi possono essere pilotati non curandosi del periodo di 20mSec ma solo della esatta durata della semionda positiva: quella negativa potrà variare tra 10 e 40mSec circa, ma tale comportamento non è standard. Utilizzando un periodo (e quindi una durata totale) di 20mSec saremo certi di riuscire a far funzionare correttamente qualsiasi tipo di servocomando senza correre il rischio di romperlo.
Con un duty cycle del 5% (quindi: impulso di 1mSec), il servo si ruoterà tutto da un lato (45° a destra), con un duty cycle dal 10% (impulso di 2mSec), il servo si ruoterà tutto dall’altro lato (45° a sinistra). Il servo raggiungerà quindi la posizione centrale con un impulso di 1,5mSec:
I servo che hanno un’escursione di 180° ruoteranno di 90° a destra con un impulso di 0,5mSec e 90° a sinistra con un impulso da 2,5mSec. In pratica possiamo dire che c’è una rotazione di 45° ogni 0,5mSec.
Realizzare un’onda quadra adatta allo scopo è relativamente semplice. In questo articolo potete vedere come pilotare un servocomando usando un microcontrollore PIC (codice sorgente in Hitech-C).