lunedì 14 dicembre 2009
compatibilita' firmware NXT1.0 e 2.0
Il NXT2.0 e' lo stesso mattoncino del NXT1.0.
Il SW pertanto e' compatibile.
John Hansen ha preparato il nuovo enhanced firmware per la nuova (in test-release) versione di Bricxcc.
L'archivio test_release.zip contiene anche il firmware 1.28.
http://bricxcc.sourceforge.net/test_release.zip
http://bricxcc.sourceforge.net/lms_arm_nbcnxc.zip
lunedì 7 dicembre 2009
interfacciare una figura ad un programma
si tratta di usare l'editor di "ric" files.
l'esempio riguarda un voltmetro.
con questo e' possibile creare il file meter.ric incluso nel blocco Advanced Display Image Block di Steve Hassenplug
comunque tutto il sito di S.Hassenplug & Team e ricco di consigli e trucchi
l'esempio riguarda un voltmetro.
con questo e' possibile creare il file meter.ric incluso nel blocco Advanced Display Image Block di Steve Hassenplug
comunque tutto il sito di S.Hassenplug & Team e ricco di consigli e trucchi
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.
Iscriviti a:
Post (Atom)