Milkbot
MilkBot
Ricetta per la costruzione di un Automa Parziamente Scremato
APS, per gli amici MilkBot è un piccolo robot da costruire utilizzando, per quanto possibile, materiali di riciclo e da animare utilizzando [http://s4a.cat Scratch 4 Arduino] (S4A), un fork di Scratch, 1.4 che mette a disposizione alcuni blocchi aggiuntivi per pilotare e leggere ingressi ed uscite di una scheda arduino basata su microcontrollore Atmel 328p.
NOTA: Ad oggi non è possibile utilizzare Arduino Leonardo perché non dispone di un secondo clock necessario per la gestione del protocollo di comunicazione tra il robot e il programma di controllo.
Abbiamo pensato di evitare l'uso di strumenti come un saldatore per limitare la possibilità di incidenti durante l'assemblaggio dei componenti.
La lista della spesa
- Un litro di latte o, in alternativa di succo di frutto in tetrapack; - qualche pezzo di nastro biadesivo; - del Nastro adesivo (io preferisco il nastro carta che permette di riutilizzare i componenti per un nuovo progetto quando questo diventerà obsoleto); - due motori servo a rotazione continua, detti anche servo360; - una mini breadboard, in alternatica un paio di mammuth che si possono reperire più facilmente oppure, per chi è autarchico, della plastilina conduttiva. - una pallina da ping pong - due ruote da modellismo - qualche fascetta per chiudere le buste per surgelare - un cavo USB di tipo AB (quelli usati per connettere le stampanti). - un porta batterie per 4 stilo di tipo AA - cavetteria varia - arduino uno/2009/mega (in ordine di preferenza) o compatibile
Parti opzionali
- Un tappo addizionale come base per la pallina da ping pong - un modulo di trasmissione dati bluetooth o wifi per far a meno del cavo di comunicazione mentre si impartiscono i comandi al robot - uno o più connettori per batteria da 9v - un sensore di distanza a infrarossi o ultrasuoni - un buzzer da pc (per il clackson) - qualche led per gli indicatori di direzione, i fari/stop, o status
Consumabili
- 4 batterie stilo di tipo AA (meglio se ricaricabili) - 1 batteria da 9v (ricaricabile è meglio) [opzionale] - Stoffa, cartone, carta, tempere e colori per decorare il robot. *
Strumenti
- Un taglierino - una forbice - una piccola pinza
Cominciamo a costruire
Dopo essersi procurati tutto il materiale, almeno quello base, bisogna utilizzare il latte/succo/contenuto della scatola, lavare ed asciugare accuratamente il tetrapack. Il mio consiglio è di farlo prima di sagomare il telaio in modo da non bagnare il cartone compresso tra i due fogli di materiale impermeabile del tetrapack.
E' possibile optare per un modello scoperto, come la prima versione del milkbot, milkbot_1.0-img.png oppure, come nel video in fondo, ricavare uno sportello da richiudere in cui inserire l'elettronica di controllo ed avere un risultato più pulito.
Una volta aperto un varco verso l'interno del telaio bisogna assicurarsi che l'interno sia effettivamente asciutto.
Annotate un commento sul livello di paranoia su questo aspetto della preparazione e seguitela scrupolosamente perché si tratta di uno dei punti più critici della costruzione. Acqua ed elettronica non sono molto compatibili.
Ribaltiamo il telaio e tracciamo con un pennarello una linea lungo l'asse longitudinale (per lungo) del telaio per aiutarci nel posizionamento dei motori e del caster.
Cos'è un caster? Nei robot che hanno tre punti d'appoggio si usano due ruote più una sfera (il caster). La direzione del movimento si determina variando il verso e la velocità delle due ruote senza doversi preoccuare di direzionare la terza che, essendo una palla, ruoterà sempre.
Applichiamo un pezzo di nastro biadesivo sul tappo della confezione del latte ed incolliamolo sul fondo del robot sull'asse mediano che avevamo tracciato poco prima. Io solitamente lo attacco a circa tre dita dal bordo anteriore del cartone. Siete ovviamnete liberi di scegliere una posizione più adatta, visto che il mio criterio di scelta è stato assolutamente empirico: la prima volta che abbiamo assemblato il robot l'abbiamo posizionato così e, visto che funzionava, non ne ho più modificato la posizione.
Sempre lungo l'asse pratichiamo un foro abbastanza grande per far passare i cavi che serviranno a pilotare i motori.
Ad un paio di centrimetri dal retro applichiamo una striscia di nastro biadesivo, magari due, e posizioniamo i motori. Questi ultimi vanno posizionati specularmente rispetto all'asse facendo molta attenzione a che siano dritti. Io uso un pezzo delle costruzioni dei miei figli per assiicurarmi che siano quanto più possibile in asse e procedo ad incollare il tutto. Uso qualche strappo di nastro carta per assicurarmi una tenuta sicura senza dover passare troppo tempo a togliere residui di colla dai motori in caso debba riutilizzare i pezzi del robot per qualche altra cosa.
A dire il vero questa è una possibilità ancora teorica visto che fino ad adesso non ho apportato modifiche alla struttura.
Facciamo passare i cavi dall'esterno all'interno del robot e fissiamoli con un altro pezzo di nastro carta per impedire che penzolino e vadano a dar fastidio alle ruote durante la marcia.
Se avete le ruote e la palla da ping pong l'esterno della versione base è pronto. Non ci resta che creare i collegamenti e cominciare a sperimentare.
Prima, però, abbiamo bisogno di qualche minuscola base teorica su S4A.
Arduino e Scratch
Per poter assicurare una certa semplicità di utilizzo Scratch 4 Arduino è dovuto scendere a compromessi che ne limitano la flessibilità e quindi alcune delle nostre scelte progettuali sono obbligate, a cominciare dalla scelta dei motori, dal loro posizionamento e dal loro utilizzo.
In particolare S4A riserva i pin digitali 4 e 7 ai motori usati per la propulsione ed il pin 8 a quello per un motore che permette di brandeggiare un eventuale motore aggiuntivo. Per ora noi non sfrutteremo quest'ultima possibilità ma non potremo in ogni caso utilizzare quel pin. A questi pin sono dedicati degli appositi blocchi in S4A, gli altri potranno essere pilotati attraverso dei blocchi generici. Potremmo approfondire parecchio questo argomento e non ne mancherà l'occasione, per ora restiamo sul vago e finiamo di allestire il nostro automa.
I Motori
I motori che utilizziamo per far muovere il robot sono due servomotori a rotazione continua. Solitamente i servomotori hanno una escursione limitata a circa 180 gradi sessagesimali (era tanto che non scrivevo o pronunciavo questa parola, mi sembra di ritornare bambino :) ) i nostri invece, per questo è più difficile procurarseli, sono capaci di effettuare una rotazione completa e questo li rende adatti a far girare delle ruote. Per pilotare questi motori arduino deve inviare loro una serie di impulsi che dicono al motore in che direzione ed a che velocità muoversi. Sto semplificando moltissimo ma S4A fa ancora di più. Per quest'ultimo un motore può avere solo tre configurazioni: Avanti tutta, Indietro tutta e Fermo o, per dirla con i termini che troverete sui blocchi Clockwise, Anticlockwise e Stop.
Il connettore del motore comprende tre cavi: Positivo, Massa e Segnale. Quest'ultimo viene usato per inviare i comandi sotto forma di impulsi elettrici al motore, gli altri due per l'alimentazione. Ovviamente
Per dare i comandi al motore abbiamo bisogno di un cavo per far viaggiare gli impulsi ma sui connettore del motore ci sono tre fili,
Varianti
E' possibile creare un carrello porta caramelle, sostituendo il contenitore del latte con un vassoio in polistirolo per la carne o per la frutta.