In passato ho letto di un Micro Serial Servo Controller Pololu un dispositivo in grado di controllare 8 servocomandi con un segnale seriale TxRx e due modalità e protocolli di controllo.
I servo sai essere la mia passione ed uno dei motivi per cui ho iniziato a studiare arduino e la programmazione di questo micro controllore.
Controllare 8 servo con arduino significa dedicare 8 pin digitali della scheda, riducendo a soli 4 pin digitali utilizzabili per il tuo progetto, ho eliminato anche i pin Tx ed Rx.
Con il Micro Serial Servo Controller Pololu puoi controllare 8 servo con un solo pin digitale in quanto è necessario solo il pin Tx seriale.
Prima di entrare nel discorso tecnico è utile leggere il manuale che la stessa casa produttrice ha rilasciato a questo link.
Connessione del Micro Serial Servo Controller Pololu ad Arduino
Come hai letto nel manuale il Micro Serial Servo Controller Pololu disponde di un pin denominato “logic-level serial input” ossia un pin di tipo INPUT seriale al quale puoi connettere un pin seriale Tx arduino.
Siccome i pin 0 ed 1 di arduino tendo a non utilizzarli per non perdere la funzionalità del “monitor seriale” ho deciso di usare la libreria Software Serial che simula una seriale software su qualsiasi coppia di pin digitali tu desideri.
come vedi nella foto i cavi che partono dall’arduino e si collegano al Pololu Micro Serial Servo Controller sono solo 3:
- Vcc + 5v
- Gnd
- Seral Tx ( simulato sul pin 4 )
gli altri pin del controller seriale sono impegnati per la connessione dei servo e l’alimentazione degli stessi che ho realizzato con una connessione esterna a 5v per non sovraccaricare il circuito di alimentazione arduino.
Il modulo serial servo controller prevede il recupero della propria alimentazione direttamente dal micro controllore dai 5v ai 16v e, se ho letto bene, puoi alimentare i servo attraverso un convertitore interno al micro servo controller seriale, ipotesi che sto ancora approfondendo in quanto i servo utilizzati assorbono in totale quasi 2A in movimento quando controllati contemporaneamente.
Le modalità di comunicazione e controllo
Il manuale del Micro Serial Servo Controller Pololu riporta la possibilità tramite un ponticello di definire due modalità di comunicazione tra arduino, od altro micro controllore, ed il servo controller:
- Pololu Mode
- Mini SSC II Mode
Entrambi metodi sono di tipo seriale ed il manuale descrive bene come comporre il pacchetto da inviare.
Pololu mode
Questa modalità, come leggi nel manuale, permette di utilizzare alcune particolarità del controller seriale offerte proprio dal tipo di protocollo proprietario pololu:
tra cui l’impostazione della velocità, del range di utilizzo e l’impostazione del punto neutrale di lavoro del servo, tali impostazioni puoi definirle in modo indipendente per ciascun sevo controllato dal Micro Serial Servo Controller Pololu.
Il protocollo Pololu Mode è alquanto semplice:
precede l’invio di un byte 0x80 seguito dal device ID, nel mio esperimento è solo uno, quindi il comando, il servo su cui vuoi eseguirlo ed infine i dati relativi al comando impartito.
Mini SSC II Mode
Il protocollo Mini SSC è più semplice da utilizzare ma consente anche meno funzionalità del precedente:
per abilitare il micro controller all’utilizzo di questo protocollo è necessario chiudere il ponticello posto sul lato come mostrato in figura.
La sua forma è:
in cui il primo byte deve essere 0xFF il secondo riporta il numero del servo ed il terzo la posizione che il servo deve raggiungere.
Noti che non ci sono byte dedicati a funzioni di controllo come l’impostazione della velocità o del punto neutro del servo.
Il video del Micro Serial Servo
Ecco il video con collegati 8 servo: