Coding tangibile per la fisica parte 1

Abbiamo voluto intitolare il post “Coding tangibile per la fisica”, poiché in questa lezione, suddivisa in due parti e dedicata alla scuola secondaria (di primo e secondo grado), realizzeremo un vero e proprio esperimento di fisica, facendo coding a partire da dati del mondo circostante.

In questa prima parte realizzeremo l'esperimento usando Makey Makey e Scratch, nel prossimo vedremo come farlo usando Arduino UNO e il codice testuale.


Physical computing

Abbiamo preso spunto da alcuni capitoli del libro “The nature of code”, che consigliamo come risorsa bibliografica estremamente utile per attività di coding alla scuola secondaria.

Lo avevamo utilizzato anche alcuni anni fa per la realizzazione di un progetto di simulazione di fenomeni fisici: la creazione di sfere che, rimbalzando, producevano alcuni suoni all’interno di un’applicazione. Il progetto aveva presentato alcune criticità quando avevamo collegato l’applicazione ad un sensore esterno, in modo che le sfere interagissero col mondo fisico.

Questa esperienza ci è stata utile per capire quanto sia diverso programmare dentro il computer dal programmare per mettere in contatto il mondo del codice con il mondo reale attraverso una serie di sensori e attuatori (anche se si usano gli stessi linguaggi e le stesse strutture logiche), poiché la realtà è imprevedibile e i sensori possono avere diverse qualità.

Questa considerazione è da tenere sempre presente quando si lavora sui dispositivi di physical computing (o sulla robotica), ovvero sui sistemi interattivi in grado di rilevare dati e rispondere al mondo che li circonda mediante sensori ed attuatori, nei quali non c’è confine tra la realtà esterna e quello che avviene all’interno dello schermo, perché c’è una interazione continua.


Nel corso della lezione vedremo come costruire un circuito usando Makey Makey (una scheda dedicata al mondo fisico, che simula il mouse o la tastiera del computer e programmabile come un Arduino Leonardo).


Molto spesso l’attività di coding viene svolta usando Scratch o programmi simili che, avendo un’interfaccia grafica, tendono a spostare l’attenzione del programmatore sugli elementi visivi, mentre, nella programmazione dei sistemi interattivi e nella robotica, conta molto di più ciò che non si vede e ciò che si sente con gli altri sensi.


"Con il physical computing programmiamo ANCHE ciò che si vede."




Un esempio di tale interazione la vediamo nell'immagine a sinistra, tratta dal sito di Makey Makey, dove l’interazione è rappresentata dalle mani che toccano oggetti di vario tipo (per approfondimento qui trovate il video di come funziona Makey Makey).



Esperimento con Makey Makey

Ecco l’esperimento che realizzeremo.


Quello che mostriamo è un metodo “chiavi in mano” per costruire un sistema di misurazione del movimento, della velocità media e dell’accelerazione media, sfruttando i sensori magnetici, che hanno un costo contenuto e che sono programmabili con un codice non troppo complesso.

Utilizzeremo Makey Makey e Scratch, impiegando 4 interruttori magnetici, che chiudono il circuito al passaggio di un magnete ancorato ad un cacciavite.

Abbiamo inserito un LED per ogni interruttore per evidenziare il momento di chiusura del circuito.

Quando il cacciavite passa accanto all'interruttore, il circuito si chiude e Makey Makey riceve un segnale che trasmette al computer. Esso viene, poi, registrato in Scratch, indicando il momento esatto in cui il magnete è passato vicino a quell’interruttore.


La bandierina gialla corrisponde al punto in cui si trova il primo interruttore (LED giallo a 0 cm), la rossa al punto in cui si trova il secondo interruttore (LED rosso a 10 cm), la blu al punto in cui si trova il terzo interruttore (LED blu a 19 cm) e la verde al punto in cui si trova il quarto interruttore (LED verde a 29 cm). Al passaggio del magnete viene registrato il tempo: al momento 0 è passato dal LED giallo, al momento 0,77 sec dal LED rosso, a 1,86 sec dal LED blu ecc…

Potremmo effettuare le stesse misurazioni anche in maniera più precisa con altri componenti elettronici (ad esempio le fotocellule), che però sono più costosi di quelli usati in questa lezione.

Il percorso mostrato è molto breve (circa 30 cm); per minimizzare una serie di piccoli errori di misurazione, sarebbe opportuno realizzare un percorso più lungo e prevedere una minore distanza tra le bandierine. Con gli strumenti in dotazione di Makey Makey, per esempio, è possibile fare percorsi anche di 1 m.

Vediamo, ora, come calcolare l’accelerazione media del nostro movimento.

Tra la bandierina gialla e la rossa ci sono circa 10 cm di distanza; è possibile calcolare in quanto tempo viene percorsa quella distanza e in quanto tempo viene percorsa la distanza (sempre di 10 cm) tra la bandierina blu e la verde per poi calcolare la velocità iniziale e quella finale. Facendo la differenza tra la velocità iniziale (rosso-giallo) e quella finale (verde-blu), e dividendo tale valore per il tempo totale otterremo l’accelerazione media.


Velocità inziale= 10cm/tempo

Velocità finale= 10 cm/tempo

Accelerazione media= (Velocità finale- Velocità iniziale)/tempo


Questo esperimento può essere modificato, oltre che aumentando la lunghezza del percorso, inserendo una pendenza o usando oggetti che si muovono da soli, come ad esempio macchinine.

I componenti fondamentali del circuito sono Makey Makey e il sensore magnetico, detto reed switch. Nei negozi di elettronica viene chiamato anche ampolla, poiché è un ampolla di vetro contenente dei sottilissimi contatti che, quando c’è un magnete in prossimità, si toccano e chiudono il circuito.

Somiglia ad un resistore, consigliamo, però, di non esagerare nel piegare le zampette, perché è molto fragile, essendoci l’ampolla di vetro (nel video precedente si può vedere come piegarle correttamente).


Reed switch

Circuito pull up

Makey Makey di solito viene usato dalla parte frontale dove si collegano i cavetti a morsetto dentro i contatti (le 4 frecce, lo spazio, il click del mouse).

Makey Makey Frontale

Sempre sul lato frontale, nella parte inferiore, abbiamo i ground (cioè la terra); essi sono il polo negativo che dobbiamo tenere in contatto con il nostro corpo per chiudere il circuito (nel video ad esempio la persona ha un braccialetto al polso o altro per tenere il corpo in contatto con la terra).



Quando con l’altra mano si tocca l’estremità del cavetto col morsetto, il circuito viene chiuso.



Makey Makey retro

Nel retro della scheda, troviamo una serie di connessioni a cui possiamo collegare i cavetti che si usano di solito con Arduino (jumpers), in questo modo possiamo costruire il circuito che abbiamo visto nel video, usando i classici cavetti.











Ecco lo schema del circuito.


Attenzione: ricordarsi che nel retro del Makey Makey si trovano le suddette connessioni.

In particolare, ci interessano il 5v (5 volt) e il ground (la terra) che solo il polo + e il polo - che ci servono per alimentare il circuito che andremo a costruire.


La seguente è la versione con il LED (serve per far vedere che l’interruttore viene chiuso).

Eccolo, invece, in versione semplificata.

Tecnicamente questo circuito si chiama pull up. Un cavetto lo teniamo collegato allo spinotto ground sul retro del Makey Makey.


Quando un magnete si avvicina all’interruttore, diventa tutto un collegamento (blu/GDN - sensore - cavetto) e il circuito si chiude (proprio come abbiamo visto nell’immagine iniziale di Makey Makey: il circuito con Makey Makey, come mostrato, è aperto; quando la persona tocca la mela, si chiude).

Nel nostro caso sono le due estremità interne del sensore, che, quando c’è un magnete nelle vicinanze, si toccano e chiudono il circuito. A quel punto la nostra scheda sente che sta ricevendo qualcosa di diverso rispetto a prima ed invierà un segnale al computer.

Il circuito pull up in Makey Makey è già pronto, basta semplicemente collegare la scheda al computer e installare il driver.


Codice Scratch

Andiamo a vedere nel dettaglio il codice dentro Scratch.

Per ogni sprite (cioè per ogni bandierina) c’è un piccolo blocco di codice.

Premendo le frecce sul Makey Makey, vediamo apparire una nuvoletta indicante il tempo che passa tra quando abbiamo premuto la prima freccia al momento 0 e quando abbiamo premuto successivamente la freccia. Per azzerare premiamo la bandierina verde in alto.



Possiamo misurare quanto velocemente premiamo le frecce.

Notiamo come Makey Makey non sia altro che una tastiera esterna al computer.


Codice del primo sprite (giallo)






Cronometro (o timer) è una variabile che gira autonomamente dentro Scratch quando avviamo un programma. Si trova nel menù sensori (azzurro) ed è sempre presente (non va dichiarata); essa ci permette di estrarre i suoi dati ogni volta che vogliamo.

Possiamo aggiornare questi valori premendo ancora le frecce, anche senza premere nuovamente la bandierina verde.

Quando premiamo freccia su il cronometro viene azzerato e viene “pronunciato” il suo valore che è 0. E’ facile capire, adesso, il codice delle altre bandierine.

Codice Scratch bandierina Rossa






Codice Scratch bandierina Blu






Codice Scratch bandierina Verde






Il codice permette di aggiornare il valore del cronometro, che misura il ritardo con cui premiamo le altre frecce.

Adesso capiamo meglio la frase “Con il physical computing programmiamo ANCHE ciò che si vede”, poiché qui ci sono elementi grafici statici ed in realtà stiamo lavorando solo sul tempo che non si vede.

Da sottolineare che Makey Makey riesce a comunicare con Scratch, poiché è di fatto un emulatore di tastiera/mouse e Scratch risponde ai comandi di tastiera/mouse con i blocchetti situazioni, tra i quali si può scegliere spazio, freccia su, freccia destra, freccia sinistra ecc…


In conclusione, possiamo dire che misurare è meglio di simulare!


Nel prossimo articolo parleremo di come effettuare lo stesso esperimento con la scheda Arduino UNO e usando il codice testuale.



Per approfondire questo argomento, guarda la video lezione Coding tangibile per la fisica (Corso Coding per la scuola secondaria).

Vuoi certificare la tua formazione? Abbonati a PaLEoS!


Vuoi portare la formazione PaLEoS nella tua scuola? 

Puoi avere tutti i nostri corsi, per tutti i docenti del tuo Istituto

© 2020 PaLEoS Srl
Via Sant'Angelo 25 - 50142 Firenze (FI)
Tel. 329-5983082 - info@paleos.it paleos.srl@pec.it
P.iva 06843880482 - Capitale Sociale € 39.000
Nr. iscrizione Registro Imprese Firenze: 660459

 Privacy | Dove siamo