Questo documento contiene due differenti corsi per la programmazione visuale. Il primo è progettato per l'auto-apprendimento e il secondo per un workshop con un istruttori della durata di un'ora.
Imparare da soli la programmazione visuale
Questa sezione introduce la programmazione visuale per tutti coloro che vogliono imparare da soli. Questo tutorial assume che sia installata la versione 1.2.0 di Aseba Studio e che il robot Thymio II sia collegato al computer.
Accedere all'ambiente di programmazione visuale
Il linguaggio di programmazione visuale (VPL = visual programming language) è disponibile nella versione 1.2.0 di Aseba Studio sotto il tab tools quando Thymio è collegato. Cliccando su Launch VPL viene avviato l'ambiente VPL.
L'ambiente si sviluppo visuale si presenta come segue:
- La barra degli strumenti contiene i bottoni per aprire e salvare file, caricare e arrestare l'esecuzione del codice e modificare la modalità dell'editor.
- Questa area è utilizzata per scrivere del codice. Il codice scritto in quest'area istruisce il robot su come comportarsi.
- Questa linea indica se le istruzioni sono complete e scritte correttamente.
- I bottoni evento determinano quando il robot deve eseguire un'azione. Questi bottoni possono essere aggiunti al codice cliccando su essi e trascinandoli al centro.
- I bottoni azione determinano determinano cosa il robot deve fare. Questi bottoni possono essere aggiunti al codice cliccando su essi e trascinandoli al centro.
Barra degli strumenti
Descrizione dei bottoni della barra degli strumenti da sinistra a destra.
- new: Questo bottone predispone l'editor per un nuovo sviluppo.
- open file: Questo bottone apre un file esistente.
- save: Questo bottone salva il codice inserito.
- save as: Questo bottone salva il codice sviluppato su un file con un nome definito dall'utente.
- load and run: Questo bottone carica il codice sul robot e lo esegue.
- stop: Questo bottone arresta il robot. Una volta che il robot è stato arrestato, occorre ricaricare il codice nel robot perchè il robot lo riesegua.
- colour scheme: Questo bottone cambia lo schema dei colori dei bottoni evento e azione.
- advanced mode: Questo bottone mette l'editor nella modalità avanzata.
- quit: Questo bottone chiude l'ambiente di sviluppo visuale.
Eventi
Nome | Funzione | |
eventi bottoni | Il robot riconosce quando un bottone viene premuto. Bottone verde significa che il bottone è stato premuto. Rosso che è stato rilasciato. | |
eventi prossimità | Il robot riconosce che vi sono oggetti davanti o dietro di sé. Sensore verde significa che non c'è nulla di fronte al sensore, mentre sensore rosso significa che il sensore ha rilevato un oggetto. | |
eventi terreno | Il robot riconosce oggetti che si trovano sotto di lui. Sensore verde significa che non c'è nulla sotto il sensore, sensore rosso significa che vi è un oggetto in prossimità del sensore. | |
evento tap | Il robot riconosce quando viene toccato. | |
evento clap | Il robot riconosce quando qualcuno batte le mani vicino a lui. |
Azioni
Nome | Funzione | |
Azione move | Questa azione attiva le ruote. | |
Azione colour | Questa azione cambia il colore del robot. | |
Azione circle | Questa azione fa accendere i led gialli messi in cerchio.. | |
Azione sound | Questa azione fa riprodurre un suono di sistema al robot. |
Programmazione
Potete programmare con VPL cliccando i bottoni di evento a sinistra e quelli di azione sulla destra e trascinandoli nella finestra centrale per comporre una clausola evento-azione. Ciascuna clausola è composta da un bottone evento e un bottone azione. Ogni clausola determina quando (evento) il robot deve fare cosa (azione). Per esempio una clausola composta da un evento tap e da una azione move dice al robot di muoversi quando qualcuno gli da un colpetto. Si possono scrivere diverse clausole evento-azione. Queste coppie di eventi e azioni possono essere prese e spostate per un riaggiustamento. Cliccando sul bottone e + si inserisce una nuova riga mentre cliccando sul bottone - si rimuove la riga corrente. Una volta che il codice è stato scritto, deve essere caricato nel robot cliccando sul bottone load and run nella toolbar.
In breve i passi per la programmazione visuale sono:
- Trascinare una icona evento nell'editor.
- Trascinare una icona azione nell'editor.
- Repetere i passi 1 e 2 fino a che tutto il programma sia stato codificato..
- Cliccare sul bottone load and run e verificare che il robot si comporti come atteso.
Questo video mostra un semplice scenario di programmazione per collegare gli eventi bottone alle azioni move e colour:
Esempi
- Il Programma Tap & clap cambia i colori del robot usando dei colpetti sul robot o il sensore acustico. Il robot diventa di colore magenta se riceve un colpetto e spegne la luce se sente un battito di mani. Ecco alcune possibili estensioni da provare come esercizio:
- Cambiare il colore del robot a verde. cambiarlo a giallo.
- Cambiare il colore a blu quando battiamo le mani e spegnere la luce quando riceve un colpetto.
- Accendere il cerchio giallo con un battito di mani e spegnerlo con un colpetto.
- Con il Programma Terreno Il robot si muove in base ad eventi dei sensori inferiori. Il robot va avanti quando riconosce che vi è del terreno sotto e si ferma quando incontra il vuoto (ad esempio sull'orlo del tavolo). Ecco alcune possibili varianti o estensioni:
- Emettere un suono quando il robot è sull'orlo del tavolo.
- Illuminare di verde il robot quando è su terreno e di rosso quando raggiunge il bordo del tavolo.
- Fare in modo che il robot giri a sinistra quando il sensore di sinistra rileva del terreno e quello di destra no. Fare in modo che il robot giri a destra quando il sensore di destra rileva del terreno e quello di sinistra no.
- Il Programma Prossimità fa in modo che il robot si sposti usando i sensori di prossimità davanti e dietro. Il robot si sposta avanti quando rileva qualcosa dietro, si ferma se è bloccato davanti, gira a sinistra se bloccato a destra e viceversa. Alcune varianti:
- Modificare il colore del robot per ogni movimento - avanti, sinistra, destra e stop.
- Fare in modo che il robot si sposti all'indietro se bloccato di fronte. Far fermare il robot quando gli viene dato un colpetto.
- Il Programma Bottoni fa in modo che il robot si muova e cambi il suo colore usando i bottoni (come mostrato nel video). Il robot si muove in avanti e diventa rosso quando il bottone rivolto in avanti viene premuto. Si muove all'indietro e diventa verde quando il bottone rivolto all'indietro viene premuto, si ferma quando viene premuto il bottone centrale. Ecco alcune possibili variazioni:
- Fermare il robot quando riconosce un ostacolo davanti a lui.
- Fare sterzare a destra il robot se viene rilevato un ostacolo a sinistra e viceversa.
- Far arrestare il robot se si trova sull'orlo del tavolo.
Modo avanzato.
Cliccando il bottone advanced mode nella barra degli strumenti compare un nuovo gruppo di bottoni. Il modo avanzato introduce una variabile di stato nell'ambiente di programmazione visuale che permette di avere più comportamenti per lo stesso bottone. Lo stato definisce una condizione in cui il robot si trova. Per esempio, assumendo che voi siate il robot, il pranzo è l'evento, mangiare è l'azione e la temperatura è lo stato.
Quando sentite caldo preferireste mangiare un panino per pranzo. Quando sentite freddo invece potreste preferire una zuppa calda a pranzo.
In altre parole, con l'introduzione dello stato, potete fare in modo che l'azione dipenda sia dall'evento che dallo stato.
- Il Programma Tap avanzato utilizza il sensore degli urti e la variabile di stato per cambiare i colori del robot. Quando il robot viene colpito alterna tra due stati e cambia il colore da rosso a verde e viceversa. Ecco alcune estensioni:
- Aggiungere un terzo stato per gestire anche il colore blu.
- fare in modo che il robot spenga le luci quando si battono le mani.
- Il Programma Prossimità avanzato utilizza i sensori di prossimità per attivare i movimenti del robot e l'evento tap per passare dallo stato 0 allo stato 1. Possibili modifiche:
- Fare fermare il robot quando il sensore di prossimità posteriore viene attivato con lo stato a 1.
- Utilizzare l'evento clap invece dell'evento tap per cambiare lo stato tra 0 e 1.
- Il Programma Cerchio usa i bottoni e gli stati per accendere il cerchio di led gialli. I bottoni avanti e indietro cambiano lo stato del robot e per ciascuno stato del robot, si accende una sezione differente del cerchio di led. Questo programma utilizza i primi 8 (da 0 a 7) dei 16 (da 0 a 15) possibili stati che il robot può avere possible. Ecco alcune estensioni:
- Riprodurre il suono di sistema happy quando il robot è in stato 0. Riprodurre il suono di sistema triste quando il robot è nello stato 4.
- Aggiungere due ulteriori stati: 8 e 9. Accendere tutte le luci del cerchio quando il robot è in stato 8. spegnere tutte le luci del cerchio quando il robot è in stato 9.
- Aggiungere i rimanenti 6 stati (da 10 a 15). Fare in modo che il robot cambi i colori anche per gli stati da 10 a 15. Per esempio il robot può essere di colore rosso, giallo, azzurro, blu e magenta. Spegnere le luci quando il robot ritorna allo stato 0.
Stati | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
bottone 1 | - | x | - | x | x | - | x | - | x | - | x | - | x | - | x | |
bottone 2 | - | - | x | x | - | x | x | - | - | x | x | - | - | x | x | |
bottone 3 | - | - | - | - | x | x | x | x | - | - | - | - | x | x | x | x |
bottone 4 | - | - | - | - | - | - | - | - | x | x | x | x | x | x | x | x |
Programmazione visuale con un istruttore
Questa sezione descrive una attività di laboratorio di un'ora circa sulla programmazione visual di Thymio II. E' rivolto a bambini a partire dagli otto anni.
QUesto laboratorio alterna fasi interattive con attività di programmazione/esecuzione individuale.
Attrezzatura
L'attrezzatura consiste in un robot e un computer per ogni bambino più un robot e un computer collegati a un video proiettore. Stampare anche le seguenti schede di riferimento per le varie icone e bottoni.
Agenda
Presentazione (15 min)
I bambini e gli istruttori si incontrano intorno ad un tavolo, senza computer. Gli istruttori presentano il robot, mostrando i comportamenti basici e spiegando cosa sono e come funzionano sensori e attuatori del robot. quindi gli istruttori lasciano giocare un po' i bambini con il robot.
Introduzione alla programmazione (10 min)
Ancora intorno al tavolo e con il robot spento, gli istruttori spiegano come il robot possa avere differenti programmi, precedentemente mostrarti, al variare del colore dei robot.
Gli istruttori riassumono quali sono i sensori (chiedendo ai bambini come il robot reagisce a certi segnali dei sensori, etc.) e quali sono gli attuatori (chiedendo ai bambini quali azioni il robot può fare, ecc.).
Gli istruttori quindi spiegano che i bambini possono creare i loro propri programmi. Spiegano ai bambini che possono creare i loro programmi personali. Spiegano che le icone evento possono essere combinate con le icone azione. Gli istruttori mostrano le carte stampate e chiedono ai bambini quale pensano che sia il loro obiettivo. Quindi un istruttore al computer collegato ad un proiettore mostra come collegare il robot, e avvia Aseba e l'ambiente VPL. L'istruttore chiarisce le attenzioni da avere, ad esempio il robot deve essere connesso prima di avviare Aseba e non dovrebbe essere sconnesso mentre Aseba sta funzionando.
Al proiettore, l'istruttore mostra un semplice esempio ( cambiare il colore del robot in arancione quando colpito), chiede ai bambini di indovinare che cosa questo programma farà e verificherà le risposte eseguendo il programma sul robot.
Programmazione libera (15 min)
I bambini possono riaccendere il robot e andare al computer, dove liberamente programmano i robot, mentre gli istruttori rispondono alle domande.
Sfida (20 min)
Gli istruttori mostrano le sfide sul proiettore e chiedono ai bambini di sceglierne una e di chiamare gli istruttori quando sono pronti.
Le sfide sono le seguenti:
- Il robot deve diventare rosso quando il bottone di sinistra viene premuto e verde quando viene premuto quello di destra.
- Il robot deve diventare rosso quando il bottone sinistro viene premuto, verde quando viene premuto il bottone destro, e si spegne la luce quando viene premuto il bottone di mezzo.
- Il robot cambia colore quando si battono le mani e di nuovo quando il bottone centrale viene premuto.
- Il robot deve diventare rosso e girare a sinistra quando il bottone di sinistra viene premuto, diventare verde e girare a destra quando il bottone di destra vien premuto.
- Il robot deve diventare rosso e girare a sinistra quando il bottone di sinistra viene premuto, diventare verde e girare a destra quando il bottone di destra vien premuto, emettere un suono e andare avanti quando viene premuto il bottone avanti, spegnere le luci e fermarsi quando il bottone indietro viene premuto.
- Il robot deve andare avanti quando il bottone avanti viene premuto, girare a sinistra se viene individuato un ostacolo a destra e girare destra se viene rilevato un ostacolo a sinistra.
Gli istruttori possono anche mostrare la modalità avanzata quando appropriato e spiegare il concetto di stato.