Il secondo progetto utilizza nuovamente la struttura del primo ma punta a realizzare un gioco di abilità in cui il mattoncino programmabile estrae un colore e ne mostra a schermo l'iniziale, in seguito la croce di colori inizia a ruotare e il giocatore deve fermarla quando il colore scelto è di fronte alla bandierina. In sintesi:
Quando si preme il tasto destro, conto alla rovescia (3-2-1)
Viene estratto a random un colore dal mattoncino programmabile (B: blu, G giallo, R rosso, V viola) e mostra la lettera a schermo
Il giocatore deve schiacciare il tasto sinistro in modo da avviare un movimento veloce (<50%) della croce di colori
Quando schiaccia il touch sensor la rotazione del motore si interrompe ma per inerzia va avanti
Vince chi riesce a avvicinare di più il colore indicato alla bandierina.
Obbiettivo della lezione è l'introduzione delle variabili che servono in questo caso per stabilire sia il colore estratto che la distanza dalla bandierina per determinare chi è stato più bravo.
Per quanto riguarda gli aspetti matematici è stato un buon spunto per parlare e per applicare il concetto di "valore assoluto".
Oggi abbiamo lavorato su un robot molto semplice, costituito da una croce di colori azionata da un motore. L’obbiettivo del lavoro è stato quello di creare un piccolo gioco di abilità su 3 livelli di difficoltà crescente. Il mattoncino programmabile estrae un colore a caso fra i 4 della croce, mostrandone a schermo l’iniziale. In seguito parte il motore e tramite touch sensor il giocatore deve interromperne il moto quando il colore scelto è sotto l’indicatore dello start (bandierina).
Una volta finito il montaggio, siamo passati alla programmazione. Abbiamo diviso il lavoro in 3 fasi a difficoltà crescente:
Base: durante la prima lezione abbiamo creato i programmi base. La programmazione del primo è piuttosto semplice, quando il programma viene avviato viene estratto il colore, il motore gira e grazie al touch sensor ne viene interrotto il moto. Chi più si avvicina alla “bandierina” vince.
Intermedio: Abbiamo introdotto l’errore. Il programma una volta arrestato il motore ci mostra la distanza rispetto alla posizione ideale per far si che il colore scelto finisca esattamente sotto la bandierina. Il programma è più complesso e prima di iniziare a programmare Il Prof ci ha mostrato la funzione di un nuovo blocco: il blocco "posizione". Questo blocco è fondamentale perché ci permette di rilevare la posizione del mattoncino di lego colorato in base al disco di 360 gradi. Infatti ogni mattoncino colorato ha di base una certa posizione. (90,180,270,360 gradi) e questo blocco ci permette di calcolare la distanza dall'indicatore facendo un’operazione: la posizione di base meno la posizione raggiunta. Il risultato viene mostrato a schermo e otteniamo l’errore.
Avanzato: Durante la terza lezione avevamo il compito di creare un robot che oltre alle abilità viste e acquisite nelle lezioni precedenti, (fra le altre la capacità di riconoscere i gradi di differenza tra la posizione ideale e quella reale), venisse implementato con un sistema di punteggio e di difficoltà crescenti. Se i gradi di errore fossero stati maggiori di 25, il sistema avrebbe dovuto togliere un punto, se invece fossero stati minori di 35, avrebbe dovuto aggiungere un punto e successivamente aumentare la velocità della ruota, in modo tale da rendere il gioco ad ogni partita più difficile. Inoltre occorreva programmare la possibilità di 5 tentativi, alla fine dei quali il robot avrebbe mostrato il punteggio finale.
GIOCO BASE
GIOCO INTERMEDIO
GIOCO AVANZATO
L’attività è stata molto bella, interattiva, ha stimolato l'ingegno. Abbiamo molto apprezzato la possibilità di poter personalizzare programma rendendolo ancora più accattivante, unico, creativo e giocoso. Sicuramente sarà una bella esperienza per chi gioca e lo è stata per chi ha programmato. Il gioco fra l'altro è davvero divertente, funziona bene ed è stato molto apprezzato anche durante l'open day sia interno che esterno.
Lopresti G. (3A) e Narducci L. (3C)
Breve video che mostra i nostri eroi alle prese con la sfida. Bravi programmatori ma quanto a giocatori c'è margine di miglioramento...