Tutorial sui Servomotori per descrivere il loro Funzionamento, le Caratteristiche Elettriche e Meccaniche e come Interfacciarli con Microcontrollori…
INTRO
I servomotori sono tipi di motori nei quali l’angolo di rotazione dell’albero riesce ad assumere valori molto precisi e mantenere questa posizione fin quando i segnali di ingresso non fanno variare l’angolo.
L’uso più comune e semplice è ad esempio il controllo della sterzata delle ruote anteriori in modellini radiocomandati. Sono presenti in molte altre parti di modellini radiocomandati e in tutte quelle applicazione in cui si vuole un movimento controllato. Ad esempio io lo utilizzerò per aprire e chiudere una bocchetta di ventilazione in una serra.
Per avere la stessa funzione eseguita da un servomotore si potrebbe utilizzare un motore passo-passo e un encoder di controllo per capire la posizione dell’albero e aggiustarla al valore voluto. Tutto questo richiede circuiteria esterna e una porzione di codice per il controllo del motore, rendendo i progetti più complicati.
In questa breve guida daremo una rapida occhiata all’interno dei servomotori, il loro funzionamento e come eseguire il controllo della posizione.
COME È FATTO INTERNAMENTE
Il servomotore si presenta come un parallelepipedo di plastica dal quale esce un piccolo albero solitamente metallico a cui collegare un braccio plastico che andrà a controllare il movimento. All’interno dispone di una serie di ingranaggi, un potenziometro che controlla la posizione dell’albero, un motore DC per eseguire il movimento e un circuito di controllo.
Gli ingranaggi hanno il compito di aumentare la potenza del motore in modo tale che il braccio di plastica riesca ad eseguire meglio i movimenti. Inoltre rendono più preciso il movimento visto che 64 giri del motore corrispondono ad uno solo del braccio.
Il circuito di controllo legge la posizione dell’albero grazie al potenziometro e in base al segnale di ingresso va a controllare il motore DC.
CARATTERISTICHE ELETTRICHE E SEGNALI DI CONTROLLO
La tensione di alimentazione è solitamente 5V ma vi sono anche servo motori più potenti con tensione di alimentazione maggiore. Anche la potenza assorbita dipende dal tipo di motore utilizzato. Il segnale di controllo è un segnale PWM (pulse width modulation) quindi un segnale ad onda quadra nel quale si controlla la durata del segnale a livello alto rispetto al periodo totale.
La frequenza del segnale è 50Hz, quindi con un periodo di 20mS e la corrispondenza tra segnale di ingresso e gradi del braccio è la seguente.
Alcuni servomotori hanno un segnale di controllo diverso, ovvero 0.5mS corrispondono a 0° mentre 2.5mS di impulso corrispondono a 180°. La maggior parte dei servo riesce a compere solo 180° di massimo movimento mentre altri riescono a compiere un giro completo ovvero 360°.
Ovviamente il server riesce ad assumere tutti i valori compresi tra 0 e 180° fornendo l’adeguato segnale. Le equazioni matematica che lega i gradi assunti dall’albero con il segnale di ingresso e viceversa sono le seguenti.
Ad esempio se si vuole che il braccio assume un angolo di 15° devo inviare un segnale PWM con un impulso di durata 1.083mS ovvero un PWM con duty cycle pari a 5.41%.
Bisogna essere precisi nel dire che i servo non sono controllati dal duty cycle ma sono controllati dalla durata dell’impulso. Il duty cycle presentato è valido solo per segnali a 50Hz ma i servono possono avere una frequenza anche più alta. Ad esempio 100Hz quindi il periodo è 10mS e i valori di duty cycle raddoppiano mentre i valori degli impulsi a livello alto rimangono costanti.
Dopo aver aggiornato la posizione con il segnale di ingresso desiderato il servo rimane in posizione a meno che non vi sia una forza esterna che muove il braccio. In questo caso la posizione va sempre aggiornata per evitare spostamenti. Se il braccio non è soggetto a forze posso porre il segnale di ingresso a 0 logico e li rimarrà fino al nuovo impulso che ne aggiorna la posizione.
Alcuni server hanno un funzionamento diverso, quindi vi invito a leggere il datasheet del servo da voi acquistato per sicurezza.
SERVOMOTORE SG90
I discorsi fatti in precedenza valgono per il tipo di servomotore che presenterò in questo capitolo. Tra i più economici di ebay vi è il servo SG90 che è ottimo per piccoli progetti visto il costo, la leggerezza e il minimo ingombro.
Questo servo funziona con tutte le librerie e con i segnali PWM presentati in precedenza. Le caratteristiche salienti sono le seguenti:
- Peso 9 grammi
- Coppia 1.8Kgf ٠cm
- Velocità con tensione di alimentazione 5V: 60° in 100mS
- Durata impulso accettati: 0.5mS-2.4ms (1mS per 0° e 2mS per 180°)
- Tipo di motore: a spazzole
Il filo rosso è la tensione positiva, quello marrone la tensione negativa o massa mentre il filo giallo è il segnale di ingresso. Sebbene possa essere alimentato fino a 6V rendendolo più veloce si sconsiglia di superare i 5V.
Questo è solo uno dei molti servi in commercio. Nel caso volete usarne uno diverso in ogni caso grazie a questa guida e al datasheet (foglio tecnico) del servo sarete in grado di utilizzare questo tipo di motore per ogni vostro progetto.