In questa puntata vedremo come programmare con Scratch il nostro Arduino attraverso l’emulatore di Tinkercad.
I protagonisti di questa puntata sono tre: Tinkercad, Arduino e Scratch.
Tutti ovviamente conosciamo Arduino.
Scratch è un linguagio a “blocchi” ideato da un gruppo di ricercatori del MIT (Massachussets Institute of Technology) per avvicinare i bambini all’apprendimento della logica legata alla programmazione.
Tinkercad è invece un CAD (Computer Aided Design) utilizzabile online, con il quale è possibile creare progetti tridimensionali da dare in pasto ad una stampante 3D.
Cosa lega tra loro questi tre elementi del contesto informatico così apparentemente eterogenei? È presto detto: Tinkercad ha aggiunto sul web una sezione CAD per il testing dei circuiti creati con Arduino, e lo sketch per la programmazione del microcontrollore utilizza indifferentemente il C o Scratch.
Ora che ce l’hai, guarda che ci fai!
Così recitava una vecchia pubblicità televisiva che promuoveva l’acquisto del Commodore 64. Diversi miei amici ne acquistarono uno, ma essendo completamente privi di cultura informatica lo lasciarono a prender polvere su uno scaffale. Il “bello” del C64 consisteva proprio nell’avere a portata di mano il mondo della programmazione, ma a quei tempi persino il vecchio BASIC sembrava ostico (non parliamo dell’Assembler del 6502).
Arduino ha sofferto di un destino simile: l’hype legato al prodotto ed il basso prezzo di vendita hanno spinto all’acquisto migliaia di maker in erba, che dopo tre tentativi miseramente falliti hanno chiuso Arduino in un arrnadio e sono passaati ai videogames automobilistici.
A poco vale il sottolineare che il linguaggio C/C++ utilizzato da Arduino è un sottoinsieme molto ridotto del coacervo di puntatori e funzioni caratteristico del linguaggio originale.
Occorre un cambiamento drastico per fare in modo che anche i neofiti abbiano la possibilità di programmare.
E qui entra in gioco Scratch.
Tinkercad presenta Scratch Blocks
Dopo aver costruito il proprio successo creando una interfaccia avanzata ed ipersemplificata per la modellizzazzione di oggetti grafici, gli sviluppatori di Tinkercad hanno pensato bene di applicare l’interfaccia ad oggetti di tipo elettronico, per la creazione ed il testing di circuiti. Quindi, con una ulteriore versione del prodotto, hanno inserito tra i blocchi di oggetti manipolabili anche i “pezzi da puzzle” caratteristici di Scratch.
Code blocks permette la programmazione di Arduino attraverso l’uso di blocchi drag-and-drop. I blocchi consentono di costruire in modo del tutto automatico il codice testuale, così da poter visualizzare immediatamente come apparirebbe il codice formattato per Arduino. Una volta conclusa la produzione dello sketch con i blocchi, sarà possibile salvare il codice prodotto automaticamente e caricarlo per l’esecuzione in Arduino tramite Arduino IDE. Nell’esempio presentato, due blocchi di Scratch hanno prodotto una trentina di righe di codice C per Arduino.
Come funziona
Code blocks crea la funzione loop() all’interno del nostro programma. Questo significa che quando si sceglie di leggere l’input di un sensore o scrivere un output, il sistema di preoccuperà di aggiungere i parametri per il settaggio. Ad esempio, provate a trascinare nell’editor grafico il blocco “built-in LED” e noterete che il corrispondente pin verrà settato come output nella sezione della funzione di setup. Il sistema è persino in grado di riconsocere ed aggiungere automaticamente le librerie necessarie. Provate ad esempio a selezionare il blocco con il servo rotativo, e vedrete automagicamente comparire la relativa libreria di pilotaggio nel codice.
Tinkercad include blocchi già pronti per gli altoparlanti, per i servomeccanismi ed i loro controllori, per la lettura di sensori ultrasonici di distanza e così via. Nuovi bloocchi vengono agigunti man mano che il team di sviluppo ne codifica le caratteristiche d’utilizzo.
Per iniziare a lavorare con Code Blocks, attivate al dashboard di Tinkercad, cliccate du “Circuiti”, poi selezionate la voce “Crea nuovo circuito”. Una volta entrati nell’editor dei circuiti, trascinate sul pannello un blocco con Arduino, e cliccate sul bottone “Code Editor”. Sarà possibile vedere automaticamente Code Blocks ed il codice di default per accendere e spegnere il LED presente sul circuito (programma blink). Premere il tasto “Start simulation” (o Inizia la simulazione) per avere una prova pratica di come si comporterebbe il circuito reale.
Buon divertimento!