Thymio simulatore
Certamente la robotica educativa ha come elemento essenziale il robot soggetto alle leggi della fisica. Ma a volte, potrebbe essere conveniente aprire un file Thymio .aesl per modificarlo senza avere un Thymio fisicamente con se e connesso a un computer o scrivere dei programmi e verificare in un campo prova il comportamento teorico dell'algoritmo programmato.
Questa pagina spiega come utilizzare un Thymio simulato utilizzando il programma simulatore, un campo di prova e un ambiente di programmazione come VPL, Aseba Studio o Scratch.
Aseba contiene numerosi programmi tra cui nella directory Simulazioni un programma simulatore, Aseba Playground, che è in grado di simulare numerosi tipi di robot, compreso Thymio.
Vediamo come utilizzare un Thymio simulato con "Aseba Playground" e "Studio".
Avviamento del programma Aseba Playground e scelta di un Playground Thymio (Campo prova)
Una volta scaricato Aseba, trova la directory "Simulations" e avvia "Aseba Playground" facendo clic sull'icona corrispondente.
Apparirà una finestra che vi permetterà di scegliere un playground (campo di gioco). Molti campi gioco contengono un Thymio, si può iniziare con thymio.playground che mostra un ambiente quadrato con un ostacolo cilindrico.
- Windows: C:\Program Files (x86)\AsebaStudio\examples
- Mac OSX: /Applications/Aseba/Simulations/examples
- Linux: /usr/share/doc/aseba/example-scenarios
Si vedrà un ambiente 3D con un Thymio virtuale. Il Thymio virtuale può essere spostato dove si crede e programmato con i medesimi comandi (API) del Thymio reale, pertanto i file aesl sono compatibili tra i due ambienti (reale e simulato).
Avvio di Aseba Studio o VPL e connessione al Thymio simulato
Una volta che Aseba Playground è in esecuzione, è necessario avviare Aseba Studio oppure Thymio VPL facendo clic sull'icona corrispondente.
|
ou |
|
Nella finestra di connessione viene visualizzato un elenco dei robot target (reali o virtuali) a cui collegarsi. Tutti i robot a un computer nella stessa rete vengono visualizzati. Leggere le informazioni visualizzate per comprendere a quale robot volete collegarvi.
Se si avvia Thymio, si vedrà prima un messaggio di errore che dice che non può connettersi a un Thymio reale. Fare clic su OK e apparirà la finestra di login.
Selezionare un target, fare clic su "Connect".
Apparirà la finestra Aseba Studio o Thymio VPL.
Ora è possibile programmare il Thymio simulato.
Caratteristiche supportate
Poiché il Thymio simulato si trova in un ambiente virtuale limitato, non tutte le funzioni sono implementate.
Tuttavia sono disponibili tutte le variabili, funzioni ed eventi. Se si usano alcune funzioni non implementate, non si ottiene un errore di compilazione, tuttavia alcuni eventi potrebbero non accadere mai, alcune funzioni potrebbero non fare nulla e alcune variabili potrebbero non cambiare mai. Questo è dovuto allo stadio ancora non maturo del programma di simulazione.
Di seguito troverete un elenco di ciò che è supportato nel simulatore. Se si tenta di utilizzare una funzione non ancora implementata, nel simulatore viene visualizzato un messaggio di avviso.
variable |
status |
button.backward, button.left, button.center, button.forward, button.right |
simulato, 0 di default, 1 quando i bottoni corrispondenti sono cliccati con il mouse |
prox.horizontal[0-6] |
simulato, restituisce i valori di quanto virtualmente percepito dal robot considerando il campo di gioco in cui si trova con un rumore addizionale per simulare le condizioni reali |
prox.ground.ambiant[0-1] |
sempre 0 |
prox.ground.reflected[0-1] |
simulato, restituisce i valori in base al colore del terreno con una aggiunta di un rumore addizionale per simulare le condizioni reali (l'ambiente simulato è bi-dimensionale, non possono esserci fori o precipizi sotto Thymio e Thymio non può venir inclinato o messo su un fianco) |
prox.ground.delta[0-1] |
simulato, restituisce i valori come prox.ground.reflected[0-1] |
prox.comm.rx, prox.comm.tx |
sempre 0 |
acc[0-2] |
sempre 0 |
temperature |
sempre 220 ovvero 22.0 gradi centigradi |
motor.left.target, motor.right.target |
di default 0, può essere definito dall'utente settando la velocità dei motori. Il Thymio simulato si può muovere esclusivamente su un piano. |
motor.left.speed, motor.right.speed |
retituisce motor.left.target, motor.right.target |
motor.left.pwm, motor.right.pwm |
sempre 0 |
rc5.address |
sempre 0 |
rc5.command |
sempre 0 |
mic.intensity |
sempre 0 |
mic.threshold |
può essere definita dall'utente ma non ha alcun effetto |
timer.period[0], timer.period[1] |
può essere definito dall'utente per fissare un timer timer0 e timer1 eventi |
funzioni |
stato |
prox.comm.enable(state) |
non fa nulla |
leds.circle(l0, l1, l2, l3, l4, l5, l6, l7), leds.top(r, g, b), leds.bottom.left(r, g, b), leds.bottom.right(r, g, b), leds.buttons(l0, l1, l2, l3) , leds.prox.h(l0, l1, l2, l3, l4, l5, l6, l7) |
questi LED sono visualizzati come texture colorate sul robot simulato |
leds.rc(l), leds.temperature(r, b), leds.sound(l), leds.prox.v(l0, l1) |
non fa nulla |
sound.freq, sound.wave, sound.record, sound.replay, sound.play |
non fa nulla |
sd.open(x,status), sd.write(data,written), sd.read(data,read), sd.seek(position,status) |
simulato |
eventi |
stato |
button.backward, button.left, button.forward, button.right, button.center |
si attiva quando l' utente clicca con il mouse su uno dei pulsanti simulati di Thymio |
buttons |
regulare, 50 Hz |
prox |
regulare, 10 Hz |
prox.comm |
mai attivato |
tap |
innescato a seguito di shock nel simulatore o quando l' utente clicca con il mouse sul Thymio simulato (ma non sui pulsanti) |
acc |
regulare, 16 Hz |
mic |
mai attivato |
sound.finished |
mai attivato |
temperature |
regulare, 1Hz |
rc5 |
never triggered |
motor |
regulare, 100 Hz |
timer0 |
si attiva quando scade il periodo del timer 0, definito dall' utente |
timer1 |
si attiva quando il timer 1 scade, definito dall' utente |
~ VPL Icona |
~ Stato |
|
implementato, si attiva quando l' utente clicca con il mouse su uno dei pulsanti simulati di Thymio |
|
implementato, rileva oggetti nel simulatore |
|
implementato, rileva il colore del terreno nel simulatore |
|
implementato, attivato a seguito di shock nel simulatore o quando l' utente clicca con il mouse sul Thymio simulato (ma non sui pulsanti) |
|
non implementato, mai attivato |
|
implementato, il Thymio simulato può muoversi su un piano |
|
implementato, visualizzato come texture colorate sul robot simulato |
|
implementato, visualizzato come texture colorate sul robot simulato |
|
non implementato, mai attivato |
|
implementato, attivato alla scadenza del timer |
|
implementato |
|
implementato |
|
non implementato, non ha senso interagire con il telecomando con Thymio simulato |
|
non implementato, non ha senso interagire con il telecomando con Thymio simulato |
|
implementato, rileva oggetti nel simulatore |
|
implementato, rileva il colore del terreno nel simulatore |
|
Thymio non può essere inclinato nel simulatore |
|
Thymio non può essere inclinato nel simulatore |