venerdì 15 marzo 2013

Quarta lezione del corso. Finalmente oggi abbiamo costruito il nostro primo robottino. Le istruzioni le abbiamo trovate su internet e precisamente qui: Castor bot.

Abbiamo impiegato circa un'ora e un quarto per costruire i nostri esemplari. Le difficoltà maggiori sono state quelle in cui si dovevano costruire pezzi con una simmetria non immediatamente chiara: tanto per intenderci quei pezzi che ad una prima occhiata non avevano una particolare differenza se guardati da una parte o dall'altra. Comunque con l'aiuto degli insegnanti le piccole "imprecisioni" sono state superate.

La fase di costruzione ha messo alla prova, più che in altre occasioni, la capacità di lavorare in gruppo: anche qui qualche aggiustatina da parte degli insegnanti si è dimostrata necessaria.

Alla fine il nostro robot era pronto, si trattava solo di programmarlo.

Abbiamo poi deciso di programmare il robot in modo che percorresse un quadrato. Abbiamo capito che  le istruzioni da inserire erano sempre le stesse ripetute più volte (quante?). A questo punto però è sorto sono sorti 3 problemi.

1. da che parte si muoverà il robot se gli dico di andare avanti? Per farlo la cosa più semplice è stata quella di utilizzare un programma banalissimo, costituito da una sola istruzione:


2. da che parte gira il robot se gli dico di andare a sinistra? Anche qui possiamo provare con un programma di una sola istruzione:


3. Noi dobbiamo far girare il robot di 90° a sinistra: come si traduce questo in termini di rotazioni? Questa volta abbiamo applicato la tecnica delle approssimazioni successive: abbiamo prima fatto girare il robot facendolo muovere di 1 rotazione e abbiamo visto che era troppo; abbiamo poi provato facendolo muovere di 0.5 rotazioni e abbiamo visto che era troppo poco; abbiamo provato con uno 0.75 e abbiamo visto che andava bene.

Nota: per risolvere questo problema si poteva utilizzare, ad esempio, la funzione di Feed-back offerta dal mattoncino dei motori ma questo lo vedremo la prossima volta.

Alla fine abbiamo programmato il robot con il seguente programma



e lo abbiamo provato sul pavimento: eureka! Che soddisfazione vedere il nostro robottino fare proprio quello che gli abbiamo chiesto. Il tempo della lezione è scaduto, ma altre sfide ci attendono e nuovi elementi verranno aggiunti per rendere il nostro "amico" più interattivo. Alla prossima!

lunedì 11 marzo 2013

Dopo una settimana di pausa, la terza lezione ci ha finalmente introdotti alla programmazione del kit Lego Mindstorms.

Ad ogni gruppo è stato assegnato un computer portatile, sul quale era stato pre-installato il SW Lego Mindsotrms disponibile con il kit che stiamo utilizzando. Il SW è in inglese ma questo non è un problema per gli alunni che rapidamente imparano i pochi termini che non conoscono o conoscono poco e che sono necessari all'utilizzo del SW stesso. A proposito, abbiamo subito insegnato loro ad utilizzare l'abbreviazione SW al posto della parola SoftWare.

Prima però di entrare nell'operatività della programmazione è stato spiegato loro uno schema che è stato poi seguito durante la lezione e verrà applicato di continuo anche nelle lezioni successive. E' stato spiegato loro che la programmazione del "robottino" è frutto del seguente "processo":

1. Pensare cosa vogliamo far fare al robottino
2. Tradurre questo pensiero in un diagramma di flusso
3. Scrivere il diagramma di flusso all'interno del SW di programmazione del robottino
4. "Scaricare" il programma appena scritto nel robottino
5. Far eseguire il programma al robottino

Ogni gruppo è stato invitato ad osservare il "mattonino intelligente", scoprendo che ha un "display", una porta USB e delle altre porte; è stato detto loro che ha anche un altoparlante.



E' stato spiegato loro come collegare il "robottino" al PC mediante il cavo USB e come lanciare il SW di programmazione. Una volta che la schermata del SW si è aperta davanti ai loro occhi abbiamo cominciato subito ad illustrare le "corrispondenze" tra i simboli che loro conoscono di un diagramma di flusso e i "blocchi" presenti nel SW.


A questo punto abbiamo proposto loro il primo programma: fare dire "Ciao!" (o meglio "Hallo!") al robottino. Secondo lo schema proposto abbiamo tradotto il nostro "pensiero" in un diagramma di flusso:


Il diagramma di flusso tradotto nel SW di programmazione è:


Ora che il programma è pronto non resta che "scaricarlo" nel robottino; questo si fa utilizzando il telecomando del SW di programmazione:


Mediante questo tool è possibile scaricare il programma nel robottino ed eseguirlo.

Il programma è poi stato complicato in più passaggi, aggiungendo nuovi blocchi fino ad arrivare al seguente:



Dopo esserci divertiti con il solo mattoncino intelligente, abbiamo collegato due motori alle porte B e C e abbiamo scoperto alcune delle funzioni del blocco di controllo motori:



facendo girare i motori per un po' di secondi, per un certo numero di rotazioni o di un certo angolo; abbiamo infatti scoperto che ogni blocco ha molti "parametri" che ne governano il comportamento:



Anche questa lezione è finita: la prossima volta costruiremo il primo robot e cominceremo a farlo muovere.