Strumenti Utente

Strumenti Sito


robotica:esperienze:simulatore_marrtino

LAB2GO Scienza

Simulatore MARRtino

Descrizione

Prima di eseguire esercizi di programmazione di livello elevato è bene avere un pò di familiarità con il sistema e il linguaggio.
Per acquisire queste conoscenze proponiamo una serie di semplici esercizi di programmazione il cui risultato può essere osservato tramite il simulatore di MARRtino installato sulla macchina virtuale.

Avvio del simulatore

Per facilitare la vostra esperienza, riportiamo qui sotto i passaggi per avviare il simulatore una volta installata la macchina virtuale sui vostri PC.







Introduzione alla programmazione di MARRTINO

Per far eseguire un programma al robot dobbiamo creare un file di testo contenente le istruzioni che esso deve eseguire. Questo file viene detto sorgente del programma e deve essere scritto in un linguaggio (di programmazione) che il robot può interpretare. Nel caso di MARRtino questo linguaggio è il python.

Ogni sorgente per il nostro robot (o per il simulatore) avrà questa struttura:

from robot_cmd import *
 
begin()
 
<your program>
 
end()

Nella prima riga troviamo un'istruzione rivolta all'interprete python (il programma che legge il nostro sorgente e lo traduce in istruzioni eseguibili dal robot) che fa si che vengano importati tutta una serie di altri sorgenti che contengono alcune funzioni, cioè delle istruzioni particolari che potremo utilizzare all'interno dei nostri programmi.

begin() è un primo esempio di funzione. In particolare con questa sintassi viene chiamata la funzione begin(), che esegue una serie di procedure necessarie per avviamento del robot e che dovono essere effettuate prima di qualsiasi altra istruzione. La funzione begin() è contenuta in uno dei sorgenti che abbiamo importato con l'istruzione precedente.

end() è un'altra funzione che ha invece lo scopo di terminare l'esecuzione del programma.

Tutte le istruzioni che compongono il nostro programma andranno quindi inserite tra la chiamata della funzione begin() e la chiamata della funzione end().





Primo esercizio

Introduzione all'esercizio Per questo primo esercizio definiremo il perimetro di una stella composta da sei triangoli equilateri. Questa forma geometrica ci renderà più semplice la programmazione poichè, rispetto ad una stella a 5 punte, ci servirà un solo For ripetuto 6 volte che conterrà i comandi per definire il perimetro di un triangolo equilatero.

Testo dell'esercizio Definire il perimetro di una stella composta da sei triangoli equilateri

Soluzione e spiegazione

from robot_cmd import * 		
 
begin()
 
 for count in range(6):
  forward(0.5)
  turn(120)
  forward(0.5)
  right(0.65)
 
end()

Come spiegato precedentemente, allo scopo di risolvere questo esercizio, è sufficiente inserire un For ripetuto 6 volte che fa muovere il robot lungo il perimetro del triangolo equilatero che compone la stella.



Secondo esercizio

Introduzione all'esercizio In questo esercizio faremo muovere il nostro robot lungo un percorso definendo un' ellisse. Questa forma geometrica ci permette di comprendere appieno il funzionamento del comando “For”. Inoltre essa ci permette, se implementata con altri robot, di creare simulazioni di orbite.

Testo dell'esercizio Far muovere il robot lungo un percosrso in modo tale da riprodurre un ellisse.

Soluzione e spiegazione

from robot_cmd import *
 
begin()
 
for count in range(3):
  backward(0.25)
  left(0.5)
for count2 in range(2):
  backward(0.5)
  left(0.25)
for count3 in range(3):
  backward(0.25)
  left(0.5)
for count4 in range(2):
  backward(0.5)
  left(0.25)
 
end()

Per risolvere questo esercizio bisogna dividere l'ellisse in 4 parti e lavorare su ogni singola parte con un For.

Esercizi complementari

  1. Implementare il codice ad altri robot con lo scopo di realizzare orbite planetarie.




Terzo esercizio

Introduzione all'esercizio In questo terzo esercizio proponiamo la creazione di un infinito tramite una serie di comandi che noi abbiamo elaborato.\\L'esercizio prevede l'uso, anche qui, dei cicli FOR per gestire le angolazioni e il giro dell'infinito come nell'elisse. Insieme a vari “forward” e “turn” abbiamo realizzato l'INFINITO.

Testo dell'esercizio Disegnare un infinito con il robot.

Soluzione e spiegazione

from robot_cmd_ros import *
begin()
 
bip()
wait()
 
turn(40)
for count in range(4):
  forward(0.20)
  right(0.0675)
 
right (0.25)
for count in range(3):
  right(0.0675)  
  forward(0.2)
 
right (0.80) 
for count in range(3):
  forward(0.20)
  right(0.15)
 
right (0.295) 
for count in range(4):
  forward(0.195)
  right(0.0675)
 
forward(0.05)
 
for count in range(4):
  forward(0.2)
  left(0.0675)
 
left(0.6)
for count in range(3):
  forward(0.2)
  left(0.085)
 
left (0.7)
 
for count in range(4):
  forward(0.2)
  left(0.0895)
 
left (0.6) 
for count in range(3):
  forward(0.25)
  left(0.0725)
 
turn(-45)
bop()
stop()
 
end()

L'esercizio sulla realizzazione dell'Infinito è l'unione dei comandi sull'elisse e sulla stella perché implementa in se istruzioni che riguardano angolazioni e l'orientamento.

Strumenti

Strumenti necessari Descrizione
Macchina Virtuale È importante avere installato sul nostro PC la macchina virtuale di MARRTino.
Per maggiori informazioni sulla procedura di installazione visitare istruzioni.

Sitografia

Link Descrizione
SimulatoreIn questa sezione dedicata alla programmazione troverete i primi comandi per attivare il simulatore
Tutorial per principianti in PythonQui è possibile leggere un tutorial introduttivo in italiano al linguaggio di programmazione Python
robotica/esperienze/simulatore_marrtino.txt · Ultima modifica: 2019/09/23 14:30 (modifica esterna)