JNXT: NXT Gesture-based Controller

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:

jnxt_1.png

L’applicazione e’ avviata:

jnxt_2.png

Appena si tenta di impartire un comando, l’applicazione chiede che venga attivata la connessione al NXT:

jnxt_3.png

Si procede con l’attivazione della connessione Bluetooth alla porta seriale del NXT:

jnxt_4.png

jnxt_5.png

Ora possiamo impartire le direzioni (avanti, stop, indietro):

jnxt_6.png

jnxt_8.png

jnxt_7.png

Ho realizzato un piccolo video, dove e’ possibile vedere il robot in azione, pilotato con le rette tracciate sul display:

8 pensieri su “JNXT: NXT Gesture-based Controller

  1. Mirco

    Spettacolo! Ero quasi sicuro che con questo “lungo” silenzio nel tuo blog ci stessi preparando una sorpresa! Ottima idea e brillante realizzazione. ๐Ÿ˜‰

    Ciao,
    Mirco

  2. ziotempa

    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!

  3. gerdavax Autore articolo

    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… ๐Ÿ™‚

  4. Andym

    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

I commenti sono chiusi.