martedì 6 ottobre 2009
giovedì 25 giugno 2009
sabato 6 giugno 2009
risolutore cubo di rubik

istruzioni di montaggio (LDD) e software scaricabile (by Valter Padovan, che ha modificato il tiltedtwister di Hans Andersson (*), il quale si e' ispirato per gli algoritmi a Ortega/Jelinek)
NB: Padovan manca delle istruzioni d'uso del risolutore; esse si trovano da Andersson.
files zippati scaricabili qui:
http://digilander.libero.it/Valter_NXT/nxtrubik.html
links
la matematica del cubo di Rubik pdf1 e pdf2
lezioni di algebra
i 17 gruppi di simmetria del piano
lista
le 33 simmetrie del cubo di rubik
(*) istruzioni di montaggio pdf
programma per risolvere il cubo (utile per il programma tester che vuole il cubo risolto per calibrare): http://kociemba.org/cube.htm
mercoledì 13 maggio 2009
mercoledì 6 maggio 2009
giovedì 1 gennaio 2009
macchina a stati e pseudo-interrupt
Un problema con NXT-G e' che non c'e' modo per un task (o sequenza) di fermare o interrompere un altro task (o sequenza) parallela. Un modo per affrontare il problema e' sfruttare il fatto che un blocco Move programmato su STOP interrompera' qualsiasi altro blocco Move che provi a controllare quello stesso motore.
B. Davis propone questo approccio.
Ci sono 2 loop che vanno in parallelo.
Il loop piu' in basso lavora sul sensore ultasonico. Se si avvicina troppo a qualcosa, la variabile testo "state" viene impostata ad un certo valore (ad esempio "fwd-1") e fa partire una data azione nella struttura a switch nel loop di sopra.
Davis mostra un esempio fra i diversi casi dello switch (la scelta di quale caso dipende da "state") quello corrispondente al valore "fwd-1). In questo caso la variabile viene impostata a "left-2" e i motori BC azionati in modo da avanzare per 2 rotazioni.
Dopodiche', al giro successivo del loop, il programma rientra nello switch nel caso "left-2" (che non e' illustrato ma presumibilmente fara' girare a sinistra...): qui la variabile state deve prendere il valore "fwd-3". Nel caso fwd-3 la variabile prendera' il valore left-4 e nel caso left-4 prendera' il valore iniziale "init" e mandera' percio' nel primo stato dove i motori andranno dritti indefinitamente.
Qui ci sono invece esempi di come affrontare i problema in altri linguaggi.
B. Davis propone questo approccio.
Ci sono 2 loop che vanno in parallelo.Il loop piu' in basso lavora sul sensore ultasonico. Se si avvicina troppo a qualcosa, la variabile testo "state" viene impostata ad un certo valore (ad esempio "fwd-1") e fa partire una data azione nella struttura a switch nel loop di sopra.
Davis mostra un esempio fra i diversi casi dello switch (la scelta di quale caso dipende da "state") quello corrispondente al valore "fwd-1). In questo caso la variabile viene impostata a "left-2" e i motori BC azionati in modo da avanzare per 2 rotazioni.
Dopodiche', al giro successivo del loop, il programma rientra nello switch nel caso "left-2" (che non e' illustrato ma presumibilmente fara' girare a sinistra...): qui la variabile state deve prendere il valore "fwd-3". Nel caso fwd-3 la variabile prendera' il valore left-4 e nel caso left-4 prendera' il valore iniziale "init" e mandera' percio' nel primo stato dove i motori andranno dritti indefinitamente.
Qui ci sono invece esempi di come affrontare i problema in altri linguaggi.
sabato 6 dicembre 2008
creare icone nuove per nxt-g
Tratto da qui.
Usando la funzione dei MyBlock in NXT-G, si possono costruire propri blocchi. Un passo del processo di costruzione (vediqui) consiste nello scegliere l'icona da associare al MyBlock appena costruito.
per farlo, si puo' scegliere fra un insieme di icone predefinite (che si possono anche combinare). Ad un certo punto pero' finiscono le possibilita' di combinazione oppure l'icona non rende l'idea, per cui conviene crearsene da soli.
Supponiamo di voler creare questa:
La prima cosa da fare e' creare la figura che deve essere in formato PNG 32x32 con sfondo trasparente (in modo da renderla combinabile con altre). Usare Paint.NET per crearla.
La figura va messa nella cartella
C:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Icons\MyBlock

Poi si procede come da procedura standard: una volta creato il MyBlock, al momento di associare le icone, si vedra' anche la nuova figura.

Attenzione che LEGO visualizza le prime 72 icone in ordine alfabetico!!!!!!!!
Per cui occorre fare i furbi nel dare il nome alla figura PNG se la si vuole vedere nella lista.
Comunque per fortuna LEGO memorizza l'icona dentro il programma .rbt che contiene il MyBlock creato. Per cui se la porta dietro ed e' possibile editarla se il programma rbt rimane nel computer.
Se si copia il MyBlock su un altro computer, il PNG originale non e' piu' disponibile sulla nuova macchina e la figura non puo' essere modificata.
Usando la funzione dei MyBlock in NXT-G, si possono costruire propri blocchi. Un passo del processo di costruzione (vediqui) consiste nello scegliere l'icona da associare al MyBlock appena costruito.
per farlo, si puo' scegliere fra un insieme di icone predefinite (che si possono anche combinare). Ad un certo punto pero' finiscono le possibilita' di combinazione oppure l'icona non rende l'idea, per cui conviene crearsene da soli.
Supponiamo di voler creare questa:
La prima cosa da fare e' creare la figura che deve essere in formato PNG 32x32 con sfondo trasparente (in modo da renderla combinabile con altre). Usare Paint.NET per crearla.
La figura va messa nella cartella
C:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Icons\MyBlock
Poi si procede come da procedura standard: una volta creato il MyBlock, al momento di associare le icone, si vedra' anche la nuova figura.
Attenzione che LEGO visualizza le prime 72 icone in ordine alfabetico!!!!!!!!
Per cui occorre fare i furbi nel dare il nome alla figura PNG se la si vuole vedere nella lista.
Comunque per fortuna LEGO memorizza l'icona dentro il programma .rbt che contiene il MyBlock creato. Per cui se la porta dietro ed e' possibile editarla se il programma rbt rimane nel computer.
Se si copia il MyBlock su un altro computer, il PNG originale non e' piu' disponibile sulla nuova macchina e la figura non puo' essere modificata.
Iscriviti a:
Post (Atom)
