La mia prima creazione con il LEGO Mindstorms NXT non e’ hardware ma software. Sono partito dal robottino piu’ semplice della confezione (un semplice carrello con trazione differenziale) e mi sono concentrato sul protocollo di comunicazione. LEGO, infatti, mette a disposizione degli sviluppatori la documentazione sul firmware, protocollo di comunicazione ed interfacce hardware del NXT. Ho iniziato a scrivere una implementazione Java del protocollo e ho provato una versione (chiamata icommand) scritta da Brian Bagnall del team di Lejos. Il loro lavoro e’ ben fatto, anche se mostra qualche problema nella gestione dei motori (peraltro segnalato nella documentazione ufficiale).
In attesa di prendere una decisione in merito al porting di iCommand su CLDC o continuare il mio lavoro da zero, ho fatto un merge delle due cose per sperimentare una ideuzza che ho da tempo: controllare un robot a gesti anziche’ a con dei comandi. L’idea e’ forse troppo ambiziosa, ma ho pensato che un modo semplice per realizzarla potesse essere adottare un PDA. In particolare, l’ampio touchscreen di un palmare si presta benissimo ad essere utilizzato come tavoletta su cui tracciare rette corrispondenti alle direzioni che il robot deve seguire.
JNXT e’ il nome di questo controller gestuale e l’obiettivo e’ permettere il controllo di un robot in maniera semplice ed immediata (dunque accessibili anche a coloro che hanno difficolta’ motorie).
La lista delle MIDlet su J9:
L’applicazione e’ avviata:
Appena si tenta di impartire un comando, l’applicazione chiede che venga attivata la connessione al NXT:
Si procede con l’attivazione della connessione Bluetooth alla porta seriale del NXT:
Ora possiamo impartire le direzioni (avanti, stop, indietro):
Ho realizzato un piccolo video, dove e’ possibile vedere il robot in azione, pilotato con le rette tracciate sul display:
Mitico!
Idea per prossima release: l’utente disegna il percorso sul display e il robot lo segue ๐
Sempre piu’ in gamba.
Ciao
Edo
Spettacolo! Ero quasi sicuro che con questo “lungo” silenzio nel tuo blog ci stessi preparando una sorpresa! Ottima idea e brillante realizzazione. ๐
Ciao,
Mirco
Bene… ho giร capito dove andrai a parare… sul palmare costruirai una cartina della tua casa, dopodichรจ, disegnando i percorsi e con una serie di iconcine che descrivano le azioni da eseguire, potrai far muovere nxt per casa e fargli compiere tante simpatiche azioni… quando pensi di finire il progetto? ๐
ps: intanto io attendo il mio… non ho neanche il tracknumber, me tapino!
Cerco di rispondere a tutti!
Edo: grazie per il complimenti, ma ti assicuro che il mio interesse non e’ ne’ per Java ne’ per la robotica! Dovendomi preparare a diventare (un giorno o l’altro) papa’ e’ doveroso che io abbiamo molta dimestichezza con le LEGO. Ero ad un bivio: trenini elettrici o costruzioni? Beh, il mio appartamento sembra piu’ compatibile con le costruzioni! ๐ Ovviamente la proposta e’ dietro l’angolo: quando ci facciamo una giocata con i LEGO al JMDF?
Mirko: dovremmo organizzare un LEGO Fest in Sardegna…
ZT: l’idea e’ buona e assomiglia a quella di Edo. Vorrei, pero’, riuscire a sfruttare un po’ di piu’ l’intelligenza del giocattolo. L’evoluzione successiva, oltre a tracciare percorsi completi sullo schermo, sara’ mandare il robot in una zona a me sconosciuta e farmi mandare da lui un resoconto dell’esplorazione (mappa del percorso seguito, ostacoli scorti in lontananza con il sensore ad ultrasuoni, eventuali sorgenti di luce etc etc…).
Nel mentre coccolo qualche altra idea con JME… ๐
That’s fantastic, Stefano! If you could use a super-size ray on the Lego NXT then disabled people could use that to help around the house.
Thanks Brian!
I think we can design a good mix of sensors to make it work… ๐
Mitico ziu Gerda…… Immoi puru con le costruzioni!!!!
Il prossimo passo? Non finirai mai di stupirci.
A guidicare dall’entusiasmo con cui fai le cose e’ proprio il caso di dirlo : SPASSIARI!!!!
A presto.
Andrea
Fantastico…
Lavorare con degli oggetti “reali” รจ tutt’altra cosa che fare sempre e solo software, beato te! E complimenti per l’idea.
F