![]() |
|
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:

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

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!
