Preparando l’ultimo lab di tecnologie didattiche presso gli Orti Dipinti

Aggiornamento lampo del giorno dopo — seguirà un post-tutorial dettagliato.

Solo per segnalare, con soddisfazione, che gli studenti, dopo avere discusso insieme tutte le caratteristiche di quattro robot fra i più noti (Beebot, Mio Robot, Cubetto, Ozobot) e averli sperimentati approfonditamente, hanno concluso che quello più imperfetto, come fosse un po’ lo sfigato del gruppo, il Mio Robot da €25, era il preferibile. Bene, molto bene. L’entusiasmo, la curiosità e la lucidità di questi giovani fanno bene al cuore.

Preferendo fare meno e bene anzichè tutto così e così, l’esplorazione più complessa e necessariamente più articolata del Micro:Rover è rimasta fuori ieri. La approfondiremo qui e non è detto che non ci si ritrovi ancora presso gli Orti con alcuni di questi studenti: si studia sempre, non solo a scuola…

Ah… non abbiamo dimenticato di preporre un commento sulla matematica fatta con oggetti semplici di Emma Castelnuovo, mostrando e discutendo il quadrilatero fatto di spago e bacchette, per illustrare come all’invarianza del perimetro possa non corrispondere l’invarianza dell’area. (Emma Castelunovo, L’officina matematica — ragionare con i materiali. La Meridiana, Bari, 2008). Tecnologie, sì ma a mente larga…

Premessa

Post effimero con informazioni schematiche per il laboratorio di tecnologie didattiche di domani mercoledì 10 alle 14 presso gli Orti Dipinti (Borgo Pinti 76, Firenze). Lo ripubblicherò successivamente in forma più completa.

La strategia didattica

L’obiettivo è di toccare con mano e provare alcuni dei robot più comuni (i prezzi sono indicativi e variabili nel tempo, come noto, ma l’ordine di grandezza è quello):

Non è una forma di pubblicità, anzi: il messaggio tenderà ad essere più critico nei confronti dei dispositivi più costosi, secondo il principio che la scuola pubblica deve fare proposte che siano massimamente accessibili a tutti i cittadini (Articoli 3 e 34 della Costituzione).

Per la medesima ragione proporrò anche un’altra soluzione, meno nota e un po’ più impegnativa da usare, caratterizzata però da un eccezionale rapporto fra potenzialità didattiche e costo. Si tratta del robot Micro:Rover (€57), basato sulla scheda BBC micro:bit, che può anche essere acquistata a parte (€13) e utilizzata per una miriade di altri progetti.

Il Micro:Rover

Quando si apre la scatola si trovano tre elementi: il carrello, la scheda di controllo e il sensore a ultrasuoni di distanza, più un cavo USB. La batteria agli ioni di litio da 3.7V tipo 18650 va acquistata a parte. Il montaggio è banale. La scheda di controllo inclusa, il cervello del robot, è la BBC micro:bit. Una scheda dotata di numerosi sensori che può essere programmata con linguaggio a blocchi, Javascript o Python per le esperienze più disparate. Può essere comprata a parte (€13).

Ma una volta montato che fare?

Come succede spesso oggi, nella scatola non ci sono delle vere istruzioni, eccetto per un libretto di poche pagine che mostra cosa fare quando si alimenta la scheda micro:bit (da sola) per la prima volta. Ma sul MIcro:Rover nulla. C’è solo un’indicazione sulla scatola:

Get Tutorial:
http://freenove.com/fnk0037

Dal link si scarica un file zip che, una volta aperto, crea una cartella “Freenove_Micro_Rover” ma contenente alcuni tutorial in PDF e vari esempi caricabili nel robot suddivisi in due sottocartelle: quelli da caricare nel sistema a blocchi e quelli in Python. Le cose che si possono fare sono svariate e ci sono modi diversi per attuarle. Bisogna avere le idee chiare oppure essere disposti a cercare la propria strada. Completamente diverso dalla BeeBot e altri robot simili, con i quali il percorso è quasi subito chiaro e univoco.

Comunque ha abbastanza senso aprire semplicemente il primo file: tutorial.pdf. Dopo le semplici istruzioni per il montaggio la prima cosa che viene proposta è quella di scaricare un’app Android o IOS che consente di comandare il robot con i movimenti della mano (comunica via bluetooth). C’è anche la possibilità di attivare i sensori di prossimità, luminosità o tracciamento di linee. Siamo comunque nell’ambito della macchinina radiocomandata, che qui non ci interessa.

Ci interessa sfruttare il robot per sviluppare pensiero… computazionale, matematico, scientifico…

Il valore didattico lo troviamo in primo luogo nella scrittura del software per manovrare il robot, attivando un processo del tipo seguente.

  1. Definizione obiettivo
    Voglio far compiere al robot una certa azione, o sequenza di azioni, ivi comprese eventuali reazioni ai segnali ricevuti dai sensori: prossimità, luce, inclinazione, orientazione, tracciamento sul suolo…
  2. Costruzione teoria
    Immagino traiettorie geometriche — segmenti retti, curve — e parametri fisici — tempo occorrente per superare un certo tratto, velocità… — che collegati opportunamente fra loro ipotizzo sortiscano l’effetto voluto
  3. Scrittura codice
    Scrivo il codice che interpreta le azioni suddette
  4. Verifica teoria
    Scarico il software nel robot e lo provo
  5. Ripetizione ciclo
    Torno al punto 2. se l’effetto ottenuto non corrisponde a quello immaginato — succede quasi sempre così.

In secondo luogo, se riusciamo a coinvolgere i ragazzi in tale processo, possiamo cercare di far emergere un’analogia dei movimenti del robot nel mondo reale con quelli della tartaruga sul foglio virtuale, sullo schermo. Se ci riesce è un passo importante perché quello di stabilire corrispondenze fra mondi diversi è uno dei fondamenti del pensiero matematico, o del pensiero scientifico tout court.

Come si programma il Micro:Rover?

Micro:Rover si può programmare in vari modi. La prima proposta del tutorial è quella di usare MakeCode che si presenta come una classica interfaccia di programmazione a blocchi ma offre anche un passaggio immediato a Python o JavaScript. Questo significa che in qualsiasi fase (entro certi limiti) di scrittura di un programma si può passare dalla versione blocchi ad una delle due versioni testuali. Ciò in armonia con una tendenza attuale crescente a facilitare la transizione dal linguaggio a blocchi a quello testuale. Ciò essenzialmente perché gli studiosi si sono accorti che nelle versioni a blocchi i ragazzi è bene che ci stazionino poco e, del resto, sono proprio loro a voler passare alla “programmazione vera” appena vengono presi dal meccanismo.

L’alternativa in versione web è l’editore Python micro:bit.

Ambedue questi sistemi sono servizi web, che non necessitano di scaricare un software sul proprio computer. Vanno bene se si ha una connessione internet e se i progetti non sono troppo complessi. Più professionale, per così dire, è l’uso dell’editore Python Mu, che va invece scaricato sul computer. Questo si può usare anche se si è scollegati da internet ed io l’ho trovato molto più comodo se si deve editare il software a ripetizione, come sempre succede quando si inizia a lavorarci per davvero.

Se la cosa avrà senso trasformerò questo articolo in un tutorial. Per ora mi limito a riportare alcuni esempi che ho realizzato pensando a un’attività che mi è capitato di fare in alcune classi di III primaria a Scuola-Città Pestalozzi, usando robot Lego della serie EV3 (oltre €500…). Gli esempi che riporto sono propedeutici a quel tipo di attività che consistevano in una serie di obiettivi per conseguire i quali i bambini dovevano cercare di programmare il robot per…

  • raggiungere in linea retta un birillo posto ad una certa distanza. L’attività prevedeva la misura della distanza del birillo con un metro e la taratura della velocità del robot: per quanto tempo devo far girare i motori per coprire una certa distanza?
  • raggiungere il solito birillo, girarci intorno e tornare alla base
  • eseguire una gimcana intorno a una fila di birilli e ritorno
  • immaginare e provare a coneguire un obiettivo a piacere

Molti diranno: troppo difficile! No, preparando perbene i bambini, assistendoli adeguatamente e dando loro tempo si sono dimostrati perfettamente all’altezza: giornata strepitosa!

Esempi

Riporto i codici in Python. Ho provato a realizzarne alcuni anche con i blocchi ma è disastrosamente più lento e io non ho tutto questo tempo a disposizione. I codici qui sotto funzionano sia nell’editore Python Mu in locale che con l’editore Python micro:bit da usare nel web.

Il quadrato

Non poteva certo mancare il solito quadrato!

Rivediamolo in Logo:

REPEAT 4 [
FORWARD 100
RIGHT 90
]

E poi con Python Turtle (il Logo con Python):

for i in range(4):
    forward(100)
    right(90)

Queste sono cose che abbiamo visto nel nostro corso edX Coding a scuola con il software libero. In ambedue i casi l’effetto è quello di disegnare un quadrato. Vediamo ora come appare in My Python (uso questa dizione che si riferisce all’impiego nel Micro:Rover):

for i in range(4):
    forward(100)
    right(90)

Sorpresa! È lo stesso di quello che disegna il quadrato virtuale con Python Turtle. Era proprio qui che volevo arrivare, per poi accedere alle simulazioni, ovvero a quelle che abbiamo proposto come simulazioni del mondo reale con la tartaruga virtuale che invece con il robot fisico sono la realtà. Però però…

C’è sempre qualche però. Quando si fruga fra le istruzioni disponibili per comandare Micro:Rover non si trovano i comandi forward e right! Si trovano istruzioni che tecnicamente si direbbero di più basso livello, ovvero di comando diretto dei due motori che animano le ruote del robot. E qui bisogna distinguere:

  • Scuola primaria
    L’insegnante deve prima confezionare questi comandi. Impossibile? Tutt’altro, basta imparare o chiedere supporto a qualcuno disposto a darlo, cosa che mi prefiggo di fare, distribuendo al pubblico ciò che serve per usare questi robot, o insegnando a farsi i comandi da soli.
  • Scuole secondarie
    Qui si possono coinvolgere i ragazzi stessi nella creazione dei comandi.

Che poi non è per niente complicato. Ad esempio:

# Definisco forward(s), dove s è la distanza in cm
def forward(s):              
    Rover.motor(50,50) 
    sleep(100*s) 
    Rover.motor(0,0) 
    sleep(1000)
 
# Definisco right(a), dove a è l'angolo in #
def right(a): 
    Rover.motor(35, -35)
    sleep(1100*a/90) 
    Rover.motor(0,0) 
    sleep(1000) 
     
# Percorro il contorno di un qudrato di 50 cem di lato
    for i in range(4): 
        forward(50) 
        right(90)  

Ci sono molte cose da dire ma ora non ho tempo e domani c’è il laboratorio. Aggiornerò successivamente mostrando questi esempi, che potranno essere scaricati e usati direttamente

  • Quadrato (manca solo qualche dettaglio all’esempio visto)
  • Quadrato con taratura degli angoli di rotazione. Perché scopriremo che far ruotare un robot con due ruote e un ruotino di appoggio non è un’operazione del tutto banale: ci sono gli attriti e il bilanciamento del robot. Tutto molto istruttivo…
  • Il robot vaga a caso, esattamente come la tartaruga Logo nella lezione 7 La Tartaruga fa la tartaruga del corso Coding a scuola con il software libero.
  • Il robot vaga a caso ma evita gli ostacoli come la peste…
  • Il robot impara a sterzare, come se fosse un’automobile. Si collega al disegno dei cerchi alla Seymour Papert che abbiamo visto nel corso.

1 commento su “Preparando l’ultimo lab di tecnologie didattiche presso gli Orti Dipinti”

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: