Menu Chiudi

.:PON:: RicicloRobot I.C. MANERI – INGRASSIA – DON MILANI

RicicloRobot - PON Nicola Palmeri
Condividi questo articolo:

In questo articolo troverete risorse software e didattiche
relative al progetto PON RicicloRobot.

Il progetto PON è diviso in 10 lezioni da 3 ore ciascuna.

Il modulo è vede gli studenti impegnati nella realizzazione di un
robot che si occupa di raccolta differenziata grazie all’uso di
sensori ottici che, discriminando il colore del materiale,
consentono di individuare plastica e metallo. Il dominio di
applicazione del modulo è l’ambiente e il percorso è rivolto a
classi che nel corso dell’anno scolastico in corso hanno
partecipato al progetto curriculare ‘Ambiente legale’, finanziato
ai sensi dell’art. 14 della Legge Regionale n.20 su bando
dell’Assessorato Regionale Pubblica Istruzione. Il Robot si
muoverebbe all’interno del plastico realizzato dagli alunni nel
corso delle attività del progetto ‘Ambiente Legale’. Si
costruiranno, quindi robot pupazzi, con materiale non
strutturato, e robot veri e propri sempre più complessi con
l’aggiunta di elementi tecnici specifici (sensori), nonché si
faranno attività di gioco strutturate ad integrare le regole della
Convivenza Civile e i suoi principi con le Tre Leggi della
Robotica di Asimov.

Le TRE LEGGI della ROBOTICA di ASIMOV

1) A robot may not injure a human being or, through inaction, allow a human being to come to harm.
2) A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.
3) A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.

1) Un robot non può ferire un essere umano né può, permettere a un essere umano di fare del male a causa di un suo mancato intervento.
2) Un robot deve obbedire a qualsiasi ordine impartitogli da esseri umani, tranne nel caso in cui tali ordini siano in conflitto con la Prima Legge.
3) Un robot deve proteggere la propria esistenza purché tale protezione non sia in conflitto con la Prima o la Seconda Legge.

Isaac Asimov

PREMESSA

Iniziare a programmare un calcolatore fin da piccoli è sicuramente un’esperienza che permette ai bambini, fin dalla Scuola Primaria, di capire da subito la logica che sta dietro alle macchine e come esse interagiscono con l’utente. I bambini apprendono le basi dei processi che stanno dietro alle elaborazioni che fa un computer. Comprendono dunque che tutto quello che una macchina riesce a fare non è altro che il risultato di una serie di istruzioni precedentemente pensate e scritte dal programmatore. Questo concetto che può sembrare banale per noi adulti non lo è affatto per i bambini. Grazie al crescente sviluppo tecnologico adesso è possibile avere degli ambienti di programmazione semplici e veloci su macchine di tipo consumer. Mediante l’utilizzo di un linguaggio simile alla lingua parlata è possibile avvicinare i più piccoli al mondo della programmazione. Nello specifico i linguaggi usati in questo progetto potremmo definirli ad altissimo livello perché sono ulteriormente semplificati e ancora più vicini al linguaggio naturale.

STRUTTURA DEL MODULO

Il modulo vede gli alunni impegnati nella costruzione di un robot capace di effettuare la raccolta differenziata. Partiamo dalla locandina, presente nella prima pagina di questo documento, che è stata creata ad hoc con una grafica coordinata che ha accompagnato tutto il progetto, essa raffigura il robot attore principale di questo progetto. Un robot costruito interamente dai nostri  piccoli programmatori che si occuperà, grazie al loro software, di effettuare la raccolta differenziata muovendosi nel plastico già costruito negli anni passati per il progetto Ambiente Legale.

Alla programmazione gli alunni giungono attraverso un percorso graduale che parte dallo sviluppo di semplice codice in modo da studiare tutti i comandi  dell’ambiente di programmazione Scratch.

OBIETTIVI DIDATTICO-FORMATIVI di questo progetto

  • Migliorare la consapevolezza di sé e delle proprie potenzialità
    comunicative ed espressive
  • Far acquisire la consapevolezza del successo scolastico
    attraverso linguaggi diversi per sviluppare l’autostima
  • Aumentare la capacità di relazionarsi in un gruppo ed agire
    positivamente in esso
  • Potenziare la disponibilità ad ascolto, relazioni positive,
    comunicazione, socializzazione
  • Consolidare le capacità di rappresentazione grafica
  • Stimolare corretti comportamenti di rispetto dell’ambiente
  • Sviluppare la capacità logica e la creatività, base del
    ragionamento e del pensiero critico
  • Stimolare la logica nella capacità di analisi, di progettazione e
    di critica al funzionamento
  • Rinforzare le capacità di attenzione e concentrazione,
    strettamente connesse alle attività di osservazione e
    sperimentazione, specifici attributi del metodo scientifico
    CONTENUTI
    LINGUA ITALIANA
  • produzione di testo regolativi per descrivere le sequenze di
    costruzione del Robot
  • Produzione di testi informativi sulla raccolta differenziata
  • Produzione di didascalie alle rappresentazioni grafiche dei
    Robot per descrivere la funzione di un suo componente e/o la
    modalità di funzionamento.
    ARTE IMMAGINE
  • riproduzione grafica di robot
    ROBOTICA EDUCATIVA
  • realizzazione del Robot
  • verifica funzionalità dei sensori
  • attività di programmazione con uso di software specifico
  • sperimentazione del funzionamento del Robot in fase di
    realizzazione
    METODOLOGIA
    Il progetto coinvolge gli alunni con attività di manipolazione e
    progettazione robotica in metodologia problem solving da
    effettuarsi in gruppo secondo modalità di cooperative learning.
    Fondamentale saranno i momenti di discussione e
    conversazione su conoscenze pregresse per raccolta di idee e
    apertura di nuovi orizzonti di conoscenza.
    RISULTATI ATTESI
  • migliore capacità di rappresentazione grafica
  • potenziamento creatività e inventiva
  • potenziamento capacità logiche e di ragionamento
  • integrazione manuale e digitale
  • maggiore sensibilità rispetto al tema della tutela e del rispetto
    dell’ambiente

MODALITÀ DI VERIFICA E VALUTAZIONE


Saranno somministrati in ingresso test sulle aspettative e in uscita test di gradimento. La verifica in itinere sarà effettuata con osservazione dei progressivi miglioramenti che ciascun alunno acquisirà nel corso degli incontri nelle varie attività (attività graficopittorica, di progettazione, realizzazione del Robot e verifica del funzionamento dello stesso). Tali verifiche continue consentiranno di prevedere attività di warm-up specifiche, di ripasso e consolidamento funzionali al recupero di difficoltà via via individuate. Per quanto concerne la valutazione, sulla scorta degli obiettivi del modulo, saranno predisposte schede di valutazione finale per ciascun corsista su competenze acquisite sul piano socio-relazionale, degli apprendimenti con particolare attenzione a pensiero computazionale e creatività digitale.

PRODOTTI FINALI

  • Quaderno dell’alunno con foto scattate nel corso delle attività,
    piani di progettazione del Robot, immagini delle fasi di
    realizzazioni del prototipo del Riciclorobot con materiale di
    scarto.
  • Realizzazione del RicicloRobot con sensori ottici. Lo stesso
    robot farà parte integrante del materiale strutturato del
    laboratorio di Scienze e sarà a disposizione dei docenti della
    Scuola per il consolidamento su attività di educazione
    ambientale.
  • Realizzazione sul sito della Scuola di una sezione relativa al
    modulo, nella pagina su PON – Pensiero computazionale e
    cittadinanza digitale, nella quale verranno caricate
    testimonianze audio e video relative al percorso e sfogliabile

PERCORSO METODOLOGICO-DIDATTICO

Gli approcci usati durante questo progetto pon sono i seguenti: 

  • Learn by doing.
  • Coding/Pensiero computazionale/Programmazione.
  • Problem solving (comprensione, previsione, pianificazione, monitoraggio, valutazione).
  • Didattica laboratoriale, partendo da situazioni-stimolo e disponendo i banchi ad isole.
  • Cooperative learning.
  • Brainstorming.
  • Peer tutoring.
  • Lavoro di gruppo.
  • Uso del metodo scientifico-sperimentale.

Siamo partiti dal concetto di raccolta differenziata analizzando diversi aspetti che riguardano la salvaguardia dell’ambiente vedendo anche diversi video sull’argomento. Il focus del nostro progetto è quello di creare un robot capace di muoversi all’interno del plastico realizzalo dagli alunni nel corso delle attività del progetto Ambiente Legale. Abbiamo costruito il robot Ultimate mBot dotato di braccio meccanico mediante il quale può afferrare oggetti. Alla costruzione del robot hanno partecipato tutti gli studenti e sono riusciti anche a dare soluzioni alternative a quello che era il progetto proposto dalle istruzioni presenti nella scatola di montaggio.

Per completare la sua missione il robot ha bisogno di un sensore di colore e di un sensore di prossimità ad ultrasuoni. Una delle sfide dei piccoli ingegneri è stata quella di situare in maniera opportuna i due sensori in modo da essere funzionali, efficienti e di non entrare in contrasto l’uno con l’altro dato che erano situati vicini.

Nella figura qui accanto vediamo in dettaglio il piccolo contenitore giallo della plastica, i sensori cilindrici color alluminio ad ultrasuoni e in basso, sotto di essi, vediamo il sensore di colore. Come si può vedere dall’immagine non è stato facile sistemare i sensori in modo che le strutture hardware non interferiscano tra di loro. Sono state fatte diverse prove e diversi test di programmazione prima di arrivare alla soluzione finale. Mentre programmavamo il robot abbiamo studiato anche le tre leggi della robotica di Asimov e abbiamo approfondito l’argomento con dei video specifici. 

Successivamente sono stati presentati i comandi ciclici e quelli decisionali. 

Fondamentale è stato lo studio dei comandi di input che hanno permesso ai bambini di creare altri programmi interattivi.

È stato importante anche trattare le variabili con le quali abbiamo creato programmi più complessi che permettevano la creazione simultanea di più figure geometriche e soprattutto che permettevano di crearle in base a dei parametri immessi nei dati di input, come per esempio il numero di lati e le dimensioni di ogni lato.

Infine i programmi sono stati resi modulari e più snelli sfruttando la possibilità d Scratch di creare delle funzioni dividendo i problemi mediante algoritmi più piccoli.

Abbiamo affrontato anche gli argomenti che riguardano i suoni, gli sfondi e la modifica dei personaggi all’interno dell’ambiente Scratch. Quest’ultima parte del corso è stata davvero molto gradita dai bambini che si sono sbizzarriti a modificare gli sprite e gli sfondi creando delle storie davvero fantasiose. Inoltre sono stati molto veloci ad apprendere questi nuovi concetti che hanno completato la trattazione della programmazione con Scratch. 

TEST D’INGRESSO

Il test d’ingresso è stato somministrato mediante l’uso di un’area sul blog creato appositamente per i miei progetti PON: www.scuolax.com

All’interno del blog è ancora attivo un modulo di Google grazie al quale i bambini hanno risposto alle domande del questionario.

PRODOTTI REALIZZATI

L’obiettivo finale del corso è stato quello di costruire il robot e implementare il suo algoritmo. Abbiamo anche realizzato una versione virtuale dove a muoversi non è il nostro robot ma uno sprite di Scratch. 

Ecco il link al nostro programma: https://scratch.mit.edu/projects/461897468

Sono stati utilizzati anche dei quadernoni dove i bambini hanno incollato le numerose schede usate durante il corso. 

MODALITÀ DI VALUTAZIONE

Lo stesso test d’ingresso, con l’aggiunta di altre domande è stato proposto alla fine del corso per paragonare le risposte e poter valutare dunque i concetti appresi. Per affinare i risultati del test tutti i partecipanti al corso sono stati interrogati ed è stato posto loro un problema da risolvere con Scratch.

Qui di seguito riporto i codici del programma RicicloRobot che simula il comportamento del robot sullo schermo. I codici seguenti sono suddivisi per ogni sprite. Invece il codice del robot è pubblicato sul sito www.scuolax.com alla pagina relativa a questo progetto pon.

SPRITE 1: RicicloRobot

SPRITE 2, 3 e 4: Rispettivamente i bidoni della plastica, umido e carta. Qui sotto vediamo il codice relativo al bidone della plastica.

SPRITE 5, 6 e 7: Rispettivamente le isole ecologiche della plastica, umido e carta.

INTERVISTA ad Isaac Asimov.

1^ LEZIONE: Introduzione, premessa, la struttura del modulo, la raccolta differenziata, descrizione della struttura del progetto, questionario d’ingresso, panoramica sull’IDE di Scratch, il nostro robot, le leggi della robotica di Asimov, calendario lezioni, panoramica dello schema di funzionamento del programma che andremo a realizzare.

Iniziamo questo splendido progetto pon parlando di raccolta differenziata.

Nella gestione dei rifiuti la raccolta differenziata si intende un sistema di raccolta dei rifiuti che prevede una prima differenziazione in base al tipo di rifiuto da parte dei cittadini diversificandola dalla raccolta totalmente indifferenziata.

Contenitori della raccolta differenziata a Singapore

Il fine ultimo è dunque la separazione dei rifiuti in modo tale da reindirizzare ciascun tipo di rifiuto differenziato verso il rispettivo più adatto trattamento di smaltimento o recupero che va dallo stoccaggio in discarica o all’incenerimento/termovalorizzazione per il residuo indifferenziato, al compostaggio per l’organico e al riciclo per il differenziato propriamente detto (cartavetroalluminioacciaioplastica).(RAEE).

Per quanto detto la raccolta differenziata è propedeutica alla corretta e più avanzata gestione dei rifiuti costituendone di fatto la prima fase dell’intero processo, ma perde di senso in assenza di infrastrutture di recupero e riciclo post raccolta differenziata. Il corretto smaltimento della raccolta differenziata porta al riciclo dei rifiuti differenziabili col vantaggio di recupero di materie prime ed energia e minor prodotto finale destinato a inceneritori/termovalorizzatori e discariche.

Uno degli obiettivi del nostro progetto è quello di fare in modo che una parte del processo di differenziazione dei rifiuti avvenga mediante l’uso di un robot in grado di individuare automaticamente i contenitori dei rifiuti e di riporli nelle rispettive aree di stoccaggio. Il nostro robot si muoverà sul plastico realizzato durante il progetto Ambiente Legale completato nella nostra scuola negli anni precedenti. Prima di addentrarci nel vivo del discorso, parlando di robot e di automatismi, è opportuno studiamo assieme e commentare le tre leggi della robotica di Asimov.

Le TRE LEGGI della ROBOTICA di ASIMOV

1) A robot may not injure a human being or, through inaction, allow a human being to come to harm.
2) A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.
3) A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.

1) Un robot non può ferire un essere umano né può, permettere a un essere umano di fare del male a causa di un suo mancato intervento.
2) Un robot deve obbedire a qualsiasi ordine impartitogli da esseri umani, tranne nel caso in cui tali ordini siano in conflitto con la Prima Legge.
3) Un robot deve proteggere la propria esistenza purché tale protezione non sia in conflitto con la Prima o la Seconda Legge.

Per programmare il nostro robot useremo Scratch, un linguaggio di programmazione ad alto livello.

Facciamo panoramica sull’IDE di Scratch, analizziamo assieme la differenza tra l’IDE di Scratch e quello di mBot e mBot Touch. IDE significa Integrated development environment, ambiente di sviluppo integrato. Mediante l’IDE possiamo programmare il nostro codice.

Utilizziamo anche le esercitazione proposte da Code.org. 
https://studio.code.org/s/coursec-2018

Impariamo a conoscere le varie sezioni dell’IDE di Scratch.

Impariamo a registrarci su Scratch e ad effettuare l’accesso.

Impariamo a salvare un progetto su Scratch o a salvarlo sul computer o ad importarlo dal computer. 

Uno strumento che sarà molto utile durante tutte le lezioni sarà il blog www.scuolax.com che useremo come strumento didattico e di comunicazione. L’accesso ad alcune pagine del blog è consentito solo mediante una password. I ragazzini potranno accedere alle pagine del blog anche da casa, sotto la supervisione di un adulto, in modo da poter ripassare gli argomenti studiati ed esercitarsi con le attività online svolte durante il corso.

2^ LEZIONE: Dettagli sull’IDE di Scratch, differenza tra l’IDE di Scratch e mBot  Blockly, mBot su dispositivi touch con due app specifiche, comandi principali di Scratch ed esercitazione. Iniziamo a montare il nostro RicicloRobot!

Che cos’è un algoritmo?
Che cos’è un programma?
L’algoritmo è la sequenza di comandi che avete nella vostra testa, mentre il programma è fatto da comandi che scrivete su un computer o su un robot in una determinata lingua, in un determinato linguaggio di programmazione. 

  • Lo STAGE di Scratch
  • Gli SPRITE
  • L’area STRUMENTI
  • L’elenco dei BLOCCHI
  • I COSTUMI e I SUONI
  • L’area degli SCRIPT
  • Lo sfondo (anche se lo useremo poco per il nostro progetto).

Esercitazione con il Corso C 2018 proposto da Code.org. 
https://studio.code.org/s/coursec-2018

Impariamo a conoscere le varie sezioni dell’IDE di Scratch.

Impariamo a registrarci su Scratch e ad effettuare l’accesso.

Impariamo a salvare un progetto su Scratch o a salvarlo sul computer.

Lo stage è il nostro palcoscenico dove facciamo muovere i nostri personaggi.
Possiamo creare sfondi diversi per il nostro progetto!

Cosa sono gli sprite?
Gli sprite sono i personaggi che si muovono sullo stage.
Impariamo a creare un codice diverso per ogni sprite e impariamo a copiarlo da uno sprite ad un altro.

Iniziamo a montare il nostro RicicloRobot!

Alla costruzione del robot Ultimate mBot dotato di braccio meccanico partecipano tutti gli studenti.

Come già detto sopra, per completare la sua missione il robot ha bisogno di un sensore di colore e di un sensore di prossimità ad ultrasuoni. Una delle sfide dei piccoli ingegneri è quella di situare in maniera opportuna i due sensori in modo da essere funzionali ed efficienti. Nella seguente figura qui sopra vediamo in dettaglio il contenitore giallo della plastica, i sensori cilindrici color alluminio ad ultrasuoni e in basso, sotto di essi vediamo il sensore di colore. Come si può vedere dall’immagine non è stato facile sistemare i sensori in modo che le strutture hardware non interferiscano tra di loro.

3^ LEZIONE: L’importanza della raccolta differenziata, i colori dei contenitori,  attività di programmazione dei percorsi più brevi e più efficienti. I comandi decisionali. Continuiamo il montaggio del nostro RicicloRobot.

Torniamo a parlare dell’importanza della raccolta differenziata e della standardizzazione dei colori dei contenitori per la raccolta. Fino a tempi recenti non è esistita una standardizzazione del colore per la raccolta differenziata, mentre nel 2013 è stata emessa la norma UNI 840:2013 che affronta il tema della codifica dei colori nei rifiuti. La norma specifica le dimensioni e i requisiti di progettazione dei contenitori per rifiuti e riciclo con capacità di 400, 1300 e 1700 l. Lo schema è il seguente: 

coloreTipo di rifiutoTipo di trattamento
verdeVetro (o multimateriale con prevalenza vetro)Riciclabile
bluCarta e cartone (o multimateriale con prevalenza carta)Riciclabile
gialloPlastica (o multimateriale con prevalenza plastica)Riciclabile
marroneRifiuti organici (parte umida)Riciclabile
turcheseMetalli (alluminio e acciaio)Riciclabile
grigioSecco indifferenziatoNon riciclabile

Utilizzando materiali di riciclo abbiamo realizzato velocemente dei piccoli contenitori colorati.

Nella precedente lezione abbiamo visto l’IDE di Scratch e abbiamo esaminato diversi comandi presenti su Scratch, ma per far funzionare il nostro Robot abbiamo bisogno di un altro ambiente di programmazione, si tratta di MakeBlock di mBlock. Questo nuovo ambiente fa sempre uso dei comandi di Scratch, ma ha un’interfaccia un po’ diversa. Ci permette inoltre di collegare mBot completo di braccio. Il software è utilizzabile online e permette anche il collegamento di altri robot e dispositivi diversi dal nostro. 

Impariamo ad installare correttamente su un computer il plugin che ci permetterà di collegare il PC al Robot. 

Dopo aver installato il plugin facciamo dei test in Real Time provando molti comandi Dopo aver installato il plugin facciamo dei test in Real Time provando molti comandi che possiamo impartire al robot.

Realizziamo dei semplici programmini con lo scopo di preparare il terreno per il nostro programma oggetto di questo corso. Ricordiamoci dunque i punti principali del programma che dobbiamo realizzare.

Aiutiamoci elencando i task principali.

– Il robot deve potersi muovere in tutte le direzioni;

– deve riuscire ad evitare eventuali ostacoli che potrebbe trovare durante il suo percorso;

– deve riconoscere i colori dei contenitori che trova davanti a se e collocarli nella giusta area.

In questa lezione concentriamoci sui comandi legati al movimento del robot e testiamoli su dei percorsi prestabiliti. Eseguiamo anche numerosi test sul  movimento del braccio meccanico meccanico. 

Realizziamo un semplice programmino che usiamo per testare i vari motori del robot.

I comandi BEGIN: “Quando si clicca qui”, “Quando il robot si avvia”, “Quando si preme il tasto X”, “Quando si preme su questo sprite”. 

Facciamo un riassunto di tutto quello finora spiegato!

4^ LEZIONE: Continuiamo ad esaminare tutti gli aspetti legati al movimento del robot nell’ambiente circostante e quelli relativi al braccio meccanico, utilizziamo le app MakeBlock e mBlock Blockly con i tablet.

Continuiamo ad esaminare tutti gli aspetti legati al movimento del robot nell’ambiente circostante e quelli relativi al movimento del braccio meccanico. 

Realizziamo diversi programmi che permetto al robot di compiere azioni semplici: andare avanti, afferrare un oggetto e riporlo nel punto di partenza.

Continuiamo gli esperimenti relativi ai movimenti sui piccoli robot mBot. 

Ogni bambino utilizza un tablet con l’applicazione mBlock Blockly collegata al suo mBot.

Usiamo l’applicazione soprattutto nella modalità storia, questa modalità permette ai bambini di imparare attraverso diversi livelli di difficoltà.

Alcuni video di questa attività si trovano sempre sul blog www.scuolax.com

5^ LEZIONE: Il corso prosegue dopo una lunghissima interruzione. Facciamo il punto della situazione e procediamo effettuando un gran ripasso degli argomenti trattati. egistrazione su Scratch, ripasso degli argomenti trattati la volta precedente, proviamo ogni comando uno per uno per ripassarne le funzionalità. Utilizzo dei robot a casa.

Il corso prosegue dopo una lunghissima interruzione. Facciamo il punto della situazione e procediamo effettuando un gran ripasso degli argomenti trattati. Ad ogni alunno viene attivato un account sulla piattaforma Scratch e su Blockly. Ripassiamo tutti gli argomenti trattati la volta precedente, proviamo ogni comando uno per uno per ripassarne le funzionalità. Ogni bambino porta a casa uno dei piccoli robot mBot che la scuola ha in dotazione in modo che possano utilizzarlo a casa anche in orari diversi da quelli della lezione. 

Ogni bambino userà da casa l’applicazione Makeblock che permette di usare il robot in dotazione anche nella modalità gioco.

Ecco un video che uno degli alunni ha voluto inviarci:

Riprendiamo e ripassiamo i corsi su code.org, ogni studente avvia il proprio percorso guidato dal docente per ripassare in maniera sistematica gli argomenti delle volte precedenti.

https://studio.code.org/s/pre-express-2019

https://studio.code.org/s/express-2018

Ogni studente effettua la registrazione su Scratch in modo da poter conservare e condividere i propri lavori online.

Rivediamo assieme anche le funzionalità di Classroom per utilizzarla agevolmente per tutta la durata del corso.

Realizziamo un piccolo programma che integreremo nel codice del main project di RicicloRobot da applicare poi al robot che si muoverà nell’ambiente reale del modellino della città.

Parliamo dunque dei comandi decisionali, analizziamo bene la struttura di IF THEN ELSE producendo diversi semplici programmini che controllano l’input della tastiera.

6^ LEZIONE: L’obiettivo principale di questa lezione sono i sensori. Parleremo dei sensori posti sul robot e dei sensori “virtuali” che useremo nella versione desktop del programma.

Usiamo i piccoli robot con l’applicazione mBot Blockly e scegliamo la modalità storia. Con questa modalità è possibile seguire un percorso guidato affrontando tutti i comandi di Scratch. 

Passiamo al task successivo: I SENSORI.

Ricordiamo quali erano i tre punti visti nella terza lezione:
– Il robot deve potersi muovere in tutte le direzioni;
– deve riuscire ad evitare eventuali ostacoli che potrebbe trovare durante il suo percorso;
– deve riconoscere i colori dei contenitori che trova davanti a se e collocarli nella giusta area.

Dopo diversi esperimenti legati al primo di questi tre punti passiamo al secodo, quello relativo ai sensori. Partiamo da una trattazione teorica dei sensori ad ultrasuoni e passiamo alla sperimentazione pratica realizzando un programma che permette ai robot mBot di evitare gli ostacoli che via via trovano davanti al loro percorso. Dato che il progetto si svolgerà online abbiamo realizzato anche un programmino che simula lo spostamento del robot reale sullo stage virtuale. In questo caso non useremo il sensore di prossimità ma quelli di colore.

Il nostro robot è dotato di un sensore di colore posto davanti ad esso mediante il quale è in grado di percepire il colore dei contenitori che incontra. 

Studiamo il comportamento delle dinamiche relative a tale sensore utilizzando il comando booleano “sta toccando il colore X”. Questo comando funge da sensore virtuale e utilizzato assieme al comando IF THEN ELSE fa proprio al caso nostro.

A questo punto è importante trattare il meccanismo dei “messaggi” e come questi vengono utilizzati dagli sprite all’interno di Scratch. 

Utilizziamo e passiamo alla sperimentazione dei comandi:

  • “invia a tutti il messaggio”;
  • “invia a tutti il messaggio e attendi”;
  • “quando ricevi il messaggio”.

Lo studio di questi comandi è un’altra tappa fondamentale da raggiungere per arrivare al programma finale.

Adesso è arrivato il momento di ampliare i nostri tre task aggiungendo altri dettagli.

Ecco dunque i compiti che deve svolgere il robot:

–  Deve riuscire a muoversi nel plastico.

– Deve riconoscere le mura o la presenza di eventuali ostacoli durante il suo tragitto.

– Per ogni ostacolo deve saper distinguere se si tratta di un muro o di un oggetto di interesse.

– Gli oggetti di interesse sono di tre tipi: bidone verde, bidone giallo, bidone rosso.

– Mediante il sensore di colore deve riuscire a capire quale oggetto di interesse ha davanti, se ha davanti l’oggetto di un determinato colore allora dovrà prelevarlo e trasportarlo con se fino a quando non troverà l’area con il corrispondente colore.

– Appena trovata l’area dovrà rilasciare l’oggetto.

  • Il ciclo continuerà partendo dall’inizio fino a quando tutti i contenitori non sono stati portati nelle loro relative aree.

7^ LEZIONE: In lezione cambiamo un po’ argomento e impariamo ad utilizzare un altro ambiente, un’altra classe virtuale, quella di CSFirst di Google. Tra le tante attività scegliamo l’attività chiamata“Avventura in alto mare”.

In questa lezione cambiamo un po’ argomento e impariamo ad utilizzare un altro ambiente, un’altra classe virtuale, quella di CSFirst di Google. Tra le tante attività scegliamo l’attività chiamata “Avventura in alto mare”.

Si tratta di un’attività introduttiva pensata per essere utilizzata in una classe, una conferenza, un hackathon o altri eventi. È un’attività autonoma e non fa parte di nessun Club di Computer Science First, quindi non richiede l’utilizzo di materiali, username o password.  

L’attività ha una durata di 2 ore e serve come stimolo, cambiando un po’  scenario.

Avventura in alto mare è composta dai seguenti punti:

  • Introduzione attività In alto mare
  • Create un account Scratch ed effettuate l’accesso
  • Onda animata
  • Un’onda calma
  • Racconta una storia extension
  • Attività con componenti aggiuntivi
  • Riepilogo attività
  • Condividi il tuo progetto
  • Esponi il tuo progetto.

In questa attività, gli studenti dovranno usare il codice per animare un’onda dell’oceano e raccontare una storia ambientata in alto mare. Con questa attività, gli studenti scopriranno che cos’è l’informatica e come funziona il linguaggio di programmazione Scratch. Inoltre, utilizzeranno varie categorie di blocchi di Scratch per creare storie uniche e personali.

Alla fine di questa lezione i bambini hanno ricevuto da parte di Google un passaporto con degli adesivi per ogni obiettivo raggiunto.

8^ LEZIONE: Completiamo il nostro programma che simula il movimento del robot sullo stage di Scratch. Descriviamo blocco su blocco e facciamo un diagramma di flusso per comprendere meglio il funzionamento. Dopo il programma su Scratch passiamo a descrivere quello che servirà per il robot che sarà scritto in Python.

Adesso è arrivato il momento di completare il nostro programma. Il robot deve eseguire alla perfezione tutti i comandi in modo da assolvere il suo compito di operatore ecologico computerizzato e “intelligente”. 

Come accennato nella quinta lezione, a causa dell’emergenza Covid questa parte del progetto pon si è svolta a distanza mediante le videocall, utilizzando meet. Tutto quello che il robot fa nel plastico è stato simulato dunque su Scratch utilizzando gli sprite che si muovono sullo stage. Il fatto che si tratti di un programma simulato non toglie nulla agli obiettivi del corso, anzi, per certi versi si è riusciti a lavorare con più ordine dato che i piccoli programmatori erano più concentrati davanti al proprio schermo.

Presentiamo gli attori del nostro software ovvero gli sprite:

  • Abbiamo lo sprite che rappresenta il robot;
  • i tre sprite che rappresentano i tre contenitori;
  • i tre sprite che rappresentano le tre aree ecologiche.

Per realizzare il nostro software utilizziamo un approcci bottom up creando prima il codice relativo ad ogni contenitore. Cosa deve fare ogni sprite che rappresenta il contenitore appena riceve un determinato messaggio che gli ordina di spostarsi  accompagnato dal robot? Deve spostarsi nell’area ecologica relativa. Se per esempio, come nella seguente figura, ci stiamo occupando del contenitore giallo allora dobbiamo monitorare il messaggio a lui indirizzato che si chiamerà “bidone GIALLO”.

Dunque quando lo sprite “GIALLO BIN” riceve il messaggio “bidone GIALLO” questo dovrà spostarsi, tramite il comando “scivola in 1 secondi a PLASTICA”, nell’area ecologica dove raccogliamo la plastica. 

Ecco qui di seguito il codice per comprenderne meglio il funzionamento.

Nella figura qui sopra troviamo anche il comando di reset alla posizione di partenza ampiamente discussa quando abbiamo affrontato i diversi programmi di esercizio.

Seguendo sempre questo approccio bottom up vediamo chi è che deve inviare il messaggio “bidone GIALLO” per far si che il bidone giallo e il robot si spostino.

Questo messaggio deve essere inviato dallo sprite che rappresenta il Robot. Ma quando lo deve inviare? Quando trova il contenitore giallo durante il suo cammino. 

Analizzando quindi il codice dello sprite che rappresenta il robot vediamo che tramite il ciclo “Per sempre” controlliamo, mediante i tre comandi IF THEN ELSE, se il contenitore che incontra il robot è di colore GIALLO, BIANCO o MARRONE.

In base a ciò che incontra manderà a tutti gli sprite rispettivamente i messaggi “bidone GIALLO”, “bidone BIANCO”, “bidone MARRONE”. Ma questi messaggi non attivano solamente lo spostamento del bidone, come abbiamo visto sopra con il codice relativo a quello giallo, questi messaggi attivano anche lo spostamento dello stesso robot che si sposterà nelle aree ecologiche corrispondenti simulando l’accompagnamento del bidone nell’area di appartenenza.

Analizziamo quanto finora scritto e confrontiamolo con il programma scritto in Python che utilizzerà il robot. Il programma è stato caricato sul blog ScuolaX.com

9^ LEZIONE: Miglioriamo il nostro programma e confrontiamolo con quello che caricheremo sul robot scritto in Python.

Durante questa lezione eseguiamo diversi esperimenti per migliorare l’algoritmo, per renderlo più funzionale ed esteticamente bello ed inoltre ci occupiamo della trasposizione dello stesso algoritmo sul robot dotato di braccio meccanico. In questa fase di implementazione direttamente sul robot è stato necessario usare il linguaggio di programmazione Python perché Scratch non poteva essere utilizzato agevolmente per i nostri scopi, quindi gli studenti si limitano ad ascoltare le problematiche relative a quesa migrazione sul robottone. 

Ogni studente prova sul proprio robot alcune parti di codice del programma principale.

10^ LEZIONE: Manifestazione finale, migliorie al programma, questionario finale, mostriamo i vostri lavori, i passaporti di Google, Minecraft for Education. 

Manifestazione finale. Miglioriamo ancora il programma aggiungendo una funzionalità alle scritte relative alle aree ecologiche.

Somministrazione del questionario finale.

Ogni bambino mostra tutti i suoi programmi realizzati durante il corso. 

Compiliamo assieme i passaporti arrivati da Google. 

Diamo un sguardo ad altri sistemi di programmazione per i più piccoli come per esempio Minecraft for Education.

ECCO IL CODICE COMPLETO del nostro programma caricato sul portale di Scratch:

https://scratch.mit.edu/projects/461897468

Ecco uno dei video inviato dai ragazzini tra i compiti assegnati.

Riassumendo, sono stati realizzati due programmi per la raccolta differenziata, un programma su Scratch che potete trovare mediante questo link https://scratch.mit.edu/projects/461897468 e un programma su MBlock, ottimizzato poi con Python utilizzato dal robot vero proprio. Quest’ultimo potete trovarlo sul blog www.scuolax.com assieme ad altre risorse didattiche, software e materiale multimediale relativo a questo progetto.

QUI DI SEGUITO POSTO UN VIDEO MOSTRATO AGLI ALUNNI DELLA SECONDARIA DI PRIMO GRADO CHE NON HANNO PARTECIPATO A QUESTO PON.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *