Gestione servocomandi

Il servo motore, è un dispositivo elettro meccanico utilizzato per muovere o spostare con precisione, in modo lineare o angolare, parti meccaniche unite tra loro mediante leve o cavi (servomeccanismi).

Il servocomando, oltre all’uso per il controllo dei droni, può essere utilizzato per muovere una telecamera, un braccio robotico, un sistema telemetrico o qualsiasi altro attrezzo che deve essere controllato a distanza.

Flowcode, affida la gestione del servomando al “Servo Motor Control”, costituito da un serie di comandi ottimizzati per generare un segnale PWM, con una risoluzione del movimento a 8 bit o 16 bit: ogni “servo motore”, è associato a un canale capace di pilotare otto servocomandi standard

Il numero di servocomandi collegabili a una singola scheda, dipende dalle porte disponibili; con ArduinoUNO, è possibile usare fino a 12 servocomandi, a scapito di alcune funzioni, come l’uscita analogica sui pin 9 e 10, non più utilizzabili.

PWM servo 16 ch

l’aggiunta di ulteriori Servo Motor controller, permette di aumentare il numero dei servocomandi.

informazioni sul segnale di controllo del servocomando

Servocomando

Dal servocomando escono tre fili di colore diverso:

  • Rosso              = positivo di alimentazione con tensione compresa tra 4,8 e 6 V.
  • Nero               = massa, negativo di alimentazione.
  • Giallo/bianco = segnale di controllo.

Il controllo è un segnale PWM, ripetuto in modo continuo in maniera da evitare di perdere la posizione.

La separazione tra un impulso e il successivo è compresa tra 10 e 20 millisecondi; la frequenza tipica di ripetizione degli impulsi è 50 Hz.

La larghezza dell’impulso è compresa tra 1 e 2 millisecondi:

  • 1,5 ms = zero; posizione centrale di riposo (rest).
  • 2 ms    = posizione massima; 45° a destra, in senso orario, dal punto di riposo
  • 1 ms    = posizione minima; 45° a sinistra, in senso antiorario, dal punto di riposo.

Le posizioni intermedie si ottengono variando l’impulso compreso tra 1 e 2 millisecondi.

In robotica, l’angolo di rotazione varia tra 0 e 180°; attenzione, a causa del fermo meccanico presente nel servocomando, le posizioni estreme possono causare la bruciatura del motore.

È possibile ottenere una rotazione completa di 360°, eliminando manualmente il fermo meccanico e sostituendo il potenziometro con 2 resistenze da 10k collegate tra il positivo e la massa, con il punto centrale collegato al segnale di feedback, facendo credere alla parte elettronica di essere sempre in posizione centrale;  oppure, per chi non ha adeguate manualità per questo tipo di intervento, può acquistarne uno già predisposto per l’utilizzo.

Con questa modifica al servocomando, un impulso maggiore di 2 ms, farà girare il motore, continuamente, a destra, un impulso inferiore a 1 ms, farà girare il motore, continuamente, a sinistra; per fermare il motore è sufficiente inviare un impulso di 1,5 ms.

La parte elettronica interna al servocomando, ha un potenziometro collegato all’albero del motore in modo da comparare l’impulso di comando con la posizione del motore; muovendo di conseguenza la posizione fino a raggiungere il punto in cui, potenziometro e comando si equivalgono, fermando il motore.

PWM servo ms

i servocomandi che hanno un angolo di movimento di 180°, utilizzano impulsi compresi tra 0,5 e 1,5 ms e impulsi compresi tra 2 e 2,5 ms.

Riccardo Monti