tratto da MinstormsWorld
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.
domenica 23 novembre 2008
martedì 28 ottobre 2008
XXX ItLUG LEGOfest a Crema, 22 e 23 novembre 2008
XXX ItLUG LEGOfest a Crema, 22 e 23 novembre 2008
anche quest'anno all'interno di Dadi.com, che si terra' (al solito) presso la sede universitaria, in via Bramante 65, Cremalink
venerdì 24 ottobre 2008
labview per NXT
Qui si trovano vis di Gasperi di esempio per spiegare come controllare nxt con labview.
In attesa dell'uscita del libro.
PS: il libro e' uscito ma non si riesce ad ordinare dall'Italia
recensione
capitolo di esempio
In attesa dell'uscita del libro.
PS: il libro e' uscito ma non si riesce ad ordinare dall'Italia
recensione
capitolo di esempio
Iscriviti a:
Post (Atom)
