Box:bit, tra robotica e thinkering
L’idea. Costruire un piccolo robot radiocomandato utilizzando materiali poveri per la struttura, mescolandoli con componenti elettronici per realizzarne l’automazione. Il progetto, descritto dettagliatamente nelle sue fasi di creazione e sviluppo nella seconda metà di questo articolo-tutorial, nasce all’interno di un più ampio percorso formativo realizzato presso una scuola secondaria della provincia di Verona. Per questo ho preferito raccontare nella prima parte il contesto e le attività svolte precedentemente alla costruzione di Boxbit. Senza la prima parte non sarebbe stato possibile arrivare a realizzare il piccolo robot di cartone con un cuore elettronico.
Il contesto. Presso l’Istituto Comprensivo di Valeggio sul Mincio (VR) durante l’anno scolastico 2018/2019 è stato attivato un PON di potenziamento logico-matematico per le ragazze e i ragazzi delle classi terze della scuola secondaria di primo grado.Il percorso formativo è stato diviso inizialmente in tre fasi di lavoro permettendo agli studenti di affrontare ed approfondire diversi aspetti legati alla matematica, sia teorici che pratici. Durante il percorso i partecipanti hanno avuto modo di utilizzare Scratch e di sviluppare competenze strumentali sul coding legandolo alla geometria.Partendo da questo aspetto, avendo gli studenti già affrontato con un’altra docente molti dei costrutti legati alla programmazione, sono stato coinvolto per portare avanti delle attività laboratoriali di robotica e IoT (Internet of Things).Per le lezioni ho quindi proposto di utilizzare sia Microbit, che già utilizzavo in diversi contesti, sia gli mBot disponibili presso la scuola.
La scheda BBC Micro:bit. Mi permetto di aggiungere alcuni paragrafi per spiegare cos’è Microbit, in quanto ho avuto modo di constatare che molti non la conoscono pur essendo ormai disponibile sul mercato da alcuni anni.Si tratta di una scheda elettronica a basso costo (circa 25 euro) basata su processore ARM a 32 bit, progettata proprio per insegnare i rudimenti della programmazione da BBC, la famosa società concessionaria del servizio radioteleviso del Regno Unito, in collaborazione con altri partner (tra cui ARM, Samsung e Microsoft).Microbit è di ridotte dimensioni, misura 4 cm di altezza e 5 cm di larghezza e può essere programmata con diverse tipologie di linguaggi sia a blocchi che testuali. Inoltre integra una matrice di 25 LED rossi, utilizzabile per visualizzare numeri, testi o semplicementee figure, dispone di servizi radio e Bluetooth, una bussola digitale-magnetometro, un accelerometro e un connettore microUSB.Nella parte inferiore, poi, dispone di un connettore a 23 PIN che permettono di espandere le potenzialità collegandola con altre schede o sensori (gli stessi utilizzabili con Arduino).Si evince quindi da queste caratteristiche come Microbit sia uno strumento appetibile per fare coding, robotica e molto altro.
Lo sviluppo del percorso. Il percorso dedicato a questa parte ha avuto una durata complessiva di 20 ore, dove abbiamo avuto modo di sperimentare con i ragazzi diverse soluzioni di utilizzo degli strumenti che avevamo a disposizione.Abbiamo utilizzato inizialmente la scheda con Makecode, strumento di sviluppo a blocchi sviluppato da Microsoft, implementando diverse soluzioni di utilizzo dei sensori e dei LED disponibili. Questo ci ha dato modo di capirne il funzionamento e di progettare successivamente il loro impiego. Ad esempio abbiamo giocato con la matrice a LED, dapprima utilizzando i comandi preconfigurati e poi con variabili e cicli per accendere e spegnere alternativamente le 25 luci rosse. Un’interessante soluzione, nata durante il laboratorio e che ho riproposto agli studenti, è stata quella di sviluppare un’applicazione multifunzione che avrebbe sfruttato LED, accelerometro e bussola. E’ nata così AppInViaggio, trasformando la scheda alternativamente in contapassi, bussola e termometro. Il tutto senza dover ogni volta ricaricare il programma opportuno tramite USB, ma bensì utilizzando le combinazioni dei due pulsanti A e B presenti ai lati dei LED.
Per realizzare quest’app abbiamo sezionato il lavoro dapprima in 3 piccoli script, testandoli separatamente. Quindi li abbiamo trasformati in funzioni all’interno di un unico script. Attraverso i due pulsanti i partecipanti potevano scegliere quale funzione attivare ed utilizzare.AppInViaggio ci ha dato dunque modo di sperimentare con i ragazzi un’attività all’interno degli spazi della scuola: girovagando per i corridoi abbiamo misurato la distanza in passi, la temperatura nonché l’orientamento dell’edificio rispetto ai punti cardinali.Durante il percorso tuttavia abbiamo voluto sperimentare l’utilizzo di Microbit anche con altri linguaggi. Utilizzando Scratch 3 in abbinata con Scratch Link, avendo a disposizione dei PC compatibili con il sistema, abbiamo realizzato un piccolo gioco di dati controllandone il lancio con lo scuotimento della scheda, collegata al computer tramite Bluetooth. Dandoci, inoltre. modo di parlare, seppur in modo minimale, di statistica e probabilità.
Alla scoperta della robotica. Dopo aver sperimentato l’utilizzo dei vari sensori della piccola scheda prodotta dalla BBC, costruendo più o meno complessi script, abbiamo iniziato ad utilizzare gli mBot approcciandoli con la stessa metodologia usata per Microbit.Abbiamo, quindi, utilizzato mBlock, applicazione derivata da Scratch, per programmare questi piccoli robot. Dapprima con semplici comandi per conoscerne le potenzialità e successivamente script più complessi.
Ad esempio, abbiamo giocato con il sensore ultrasuoni mostrando le letture di distanza sul monitor attraverso lo sprite, abbinando successivamente queste letture ad un suono emesso con il buzzer oppure accendendo con colorazioni diverse i due LED RGB presenti sulla scheda del robottino.Non solo: abbiamo sfruttato il sensore di “segui linea” programmando il robot per muoversi e seguire una linea, aggiungendo la lettura della distanza perché il robot si blocchi trovandosi un ostacolo di fronte.Quindi abbiamo analizzato le somiglianze con la scheda Microbit e ci siamo chiesti: possiamo costruire un nostro robot?
Costruiamo un nostro robot. Nella fase finale del percorso ho proposto agli studenti di costruire un piccolo robot da zero, prendendo qualche spunto da mBot. Questi i materiali che abbiamo utilizzato per ciascun robot:
- Una scatola di cartone 10x10x5 cm.
- Due servomotori con rotazione 360 gradi.
- Due tappi di plastica di 4 cm di diametro e spessi 3 cm, da utilizzare come ruote.
- Una biglia.
- Un supporto per la biglia, stampato con la stampante 3D.
- Un buzzer.
- Una coppia di cavi Dupont FF.
- Una scheda di espansione Ring:bit.
- Due schede Micro:bit.
- Colla a caldo.
- Un taglierino.
La fase di assemblaggio. I ragazzi hanno dapprima intagliato le scatole per realizzare i fori dove sarebbero stati inseriti rispettivamente i servomotori (sui lati) e le schede (sul coperchio). Hanno successivamente utilizzato la colla a caldo per incollare i tappi sui servomotori e una volta asciugati li hanno inseriti nelle scatole. Quindi hanno avvitato una Microbit sulla scheda Ringbit, facendo aderire i 5 PIN con i supporti della scheda di espansione e di seguito hanno collegato i due servomotori sui contatti P1 e P2.Il buzzer, invece, è stato collegato su P0, essendo questo il canale utilizzato dalla scheda della BBC per emettere i suoni. Terminato l’assemblaggio si è proceduto con la programmazione.
La fase di sviluppo. Per la fase di programmazione abbiamo utilizzato nuovamente Makecode aggiungendo l’estensione per la scheda Ringbit, lavorando in due step. Nella prima parte abbiamo lavorato sull’analisi generale del codice e sulle funzionalità che avremmo voluto:
Premo il pulsante A:
- Se la scheda è inclinata a Destra, BoxBit deve girare a destra procedendo in avanti.
- Altrimenti se è inclinata a sinistra girerà a sinistra procedendo in avanti.
- Altrimenti muoverà in avanti dritto.
Premo il tasto B:
- Se la scheda è inclinata a Destra, BoxBit deve girare a destra procedendo indietro.
- Altrimenti se è inclinata a sinistra girerà a sinistra procedendo indietro.
- Altrimenti muoverà indietro dritto.
Premo i tasti A e B assieme:
- Il robot si ferma.
Partendo da questa scaletta abbiamo identificato le azioni con un numero e abbiamo scritto il codice per le due schede. La prima, che funge da radiocomando, in base alle condizioni sopracitate, invia il numero alla seconda scheda. Questa in base al valore ricevuto esegue una delle azioni identificate.Pertanto, ad esempio, se premo il pulsante A sul radiocomando e questo è inclinato a destra, verrà inviato il numero 1 alla seconda scheda installata a bordo del robot. Questa ricevendo il numero 1 dirà al solo motore di sinistra di avviarsi in avanti e di conseguenza, mantenendo il motore di destra fermo, avverrà una rotazione verso destra.
E il buzzer? Le varie fasi di sviluppo hanno lasciato poi il tempo ai ragazzi di apportare le proprie modifiche aggiungendo suoni in fase di movimento oppure rivedendo gli stessi comandi analizzati inizialmente. In tutto il percorso ho mantenuto lo stesso approccio che utilizziamo al Coderdojo, ovvero offrire degli spunti iniziali di codice, spesso basilari, per poi lasciare spazio alla creatività e all’ingegno dei giovani programmatori.
Concludendo. I tempi di realizzazione di Boxbit si sono divisi in due lezioni da due ore ciascuna. I ragazzi hanno infatti impiegato un 30/40 minuti di media per l’assemblaggio e un’altra ora e mezza per la programmazione. Il resto del tempo è stato poi dedicato all’utilizzo, alla correzione di eventuali errori e a qualche piccola gara nei corridoi. Il risultato è stato sicuramente interessante ed ha affascinato, nonché divertito, gli studenti partecipanti. Alcuni di essi infatti hanno deciso di portare il piccolo Boxbit all’esame di stato del primo ciclo.