Alessandro
12 servo controller low cost
Tutorials -
Domenica 26 Giugno 2011 15:40
Scritto da Alessandro

Costruire un robot su ruote o su zampe comporta una progettazione completamente diversa. Uno degli elementi di maggior differenza è il tipo e il numero dei motori.

Mentre per un motore su ruote bastano solitamente 2 o 4 motori a seconda del numero di ruote motrici, per realizzare un robot su zampe il numero di motori aumenta vertiginosamente. Non è raro vedere un robot esapode, e quindi a 6 zampe, con 18 servomotori.

Un robot quadrapode, cioè a 4 zampe, di solito si accontenta di 8 o 12 motori, a seconda del numero degli snodi presenti. Per fortuna, rispetto ai robot basati su ruote, solitamente non è necessario avere servi a rotazione continua o motoriduttori. Servomotori tradizionali bastano e avanzano.

I servomotori si pilotano con il PWM e Arduino 2009 o Uno ha 6 porte PWM. Questo è un problema. Se poi si vogliono usare altri sensori che necessitano di pin digitali, siamo proprio messi male, perché i Pin Digitali di Arduino sono solo 14, di cui 2 tra l’altro vengono utilizzati per il colloquio con la serial port (pin 0 e pin 1).

Si può utilizzare allora un Arduino Mega, che ha 14 pin PWM. Si può sicuramente fare, ma un Arduino Mega costa più di 50 euro, non è proprio a buon mercato.

Cercando su internet ho trovato un chippettino, che utilizzando il protocollo I2C è in grado di pilotare 12 servi. Prima buona notizia è che il protocollo I2C usa le porte analogiche 4 e 5, quindi lascia intatte tutte le porte digitali. Seconda buona notizia è che è possibile usarne più di uno, in modo tale da moltiplicare il numero di servomotori utilizzabili (24, 36, ecc.). Rimangono ancora libere 14 porte digitali e 4 analogiche per altri scopi. Terza buona notizia è che il chippettino in questione costa 4 euro e mezzo. Un prezzo sostenibile anche dall’hobbista più squattrinato. Ecco questo chippettino magico:

 

servo_controller

 

E’ un chip a 20 pin il cui schema dei collegamenti è qui riportato:

 

12 servo chip

 

VDD = +5V

Vss = GND

SDA, SLC sono i pin I2C che vanno collegati ai pin 4 e 5 di Arduino e collegati inoltre +5V usando delle resistenze di pull-up di valore compreso tra 1K Ohm e 10K Ohm (io ho usato delle 3.3k Ohm).

ADDRESS1, 2, 3 sono dei pin che si possono usare per cambiare l’indirizzo I2C del Chip (solitamente non serve, a meno che non se ne usi più di un chip, in questo caso è necessario differenziare gli indirizzi).

SERVO01… SERVO11 sono i pin dove collegare il pin di comando dei servi (gli altri si collegano a +5V e GND).

Ho fatto una prova di funzionamento del chip e mi sembra che vada bene.

Ecco un breve video che ho realizzato:

 

http://www.youtube.com/watch?v=YoMiVgMsWQM

 

Questo è il datasheet.

Questo il listatato utilizzato.

Ora sotto tutti a comprare un po' di componenti Gioblu per fare un esapode o quadrapode!

 

Gioblu Robotics © 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi