Durante l’ultima MakerFaire di Roma mi sono confrontato con molti colleghi ed amici che sono passati a trovarmi e che volevano avere informazione in merito agli sviluppi del progetto DotBot.
Il confronto con le persone ha messo in luce una necessità importante per quanto riguarda l’uso di Arduino a scuola, quello di rendere la programmazione, almeno nella fase iniziale di un percorso di coding, più semplice per il docente che non ha mai utilizzato l’elettronica nella didattica.
Ormai è uno standard de facto l’uso di Scratch, soprattutto nella scuola elementare e media, pertanto un’ambiente di programmazione grafico per Arduino è utile e credo anche necessario. Ritengo comunque possibile, perché sperimentato di persona, insegnare a programmare in C agli studenti delle scuole medie, ma preferisco un approccio morbido, che parte da Scratch e giunge pian pianino al C usando Arduino. Come insegnanti abbiamo l’obbligo di progettare in modo inclusivo pertanto in un percorso di coding e di making elettronico bisogna pensare a tutti, ai bambini e ragazzi con necessità specifiche di ogni livello di scuola ma anche ai colleghi di ogni disciplina.
… ma come fare?
Ho analizzato diverse possibilità:
- S4A
- ScratchX
- Snap4Arduino
- Visualino
per ognuno di essi ne ho realizzato un percorso che utilizzo in funzione delle disponibilità tecniche e delle competenze iniziali degli studenti. Tra le possibilità sopra indicate nelle prossime settimane per corsi indirizzati ad insegnanti di ogni ordine e grado, userò Visualino uno strumento di programmazione visuale per Arduino realizzato da Víctor R. Ruiz e portato avanti dalla comunità spagnola di Arduino.
Avevo sperimentato tempo fa il sistema dopo di che non ne sperimentato l’utilizzo con gli studenti più giovani, ma fortunatamente proprio alla MakerFaire di Roma ho ritrovato Luisa Ravelli, una bravissima formatrice che avevo conosciuto durante un mio corso presso il FabLab di Brescia qualche anno fa. Luisa mi ha confermato l’utilità e la praticità di utilizzo di Visualino con i bambini più piccoli, i suoi consigli e la sua esperienza didattica mi hanno convinto dell’utilità di realizzare un percorso di making di elettronica e di robotica dedicato a docenti e giovanissimi allievi con nessuna competenza in elettronica ed informatica.
Come ben sapete, la “severità” sintattica di linguaggi di programmazione come C o C++ possono, per chi non si è mai occupato di programmazione, rendere difficoltosa la comprensione sull’uso di Arduino che può essere superata partendo da un linguaggio visuale. La soluzione grafica non deve essere intesa come sostituzione ad un IDE testuale, ma potrebbe essere considerato come un inizio “morbido” che conduce in fasi successive al programmazione in C.
Visualino si basa su Google Blockley e bitbloqs di BQ. Si tratta di software opensource, multi-piattaforma e multi-lingua. Per il suo funzionamento necessita che sia installato sul computer l’IDE Arduino 1.6 o superiore utilizzato come motore di Visualino. E’ possibile installare versioni di Visualino per MacOS X, Ubuntu, Windows ed anche Raspberry Pi 2, quindi alla portata di tutti. Sul sito di riferimento trovate i tutorial in lingua spagnola ed inglese molto semplici che vi guideranno nell’installazione delle versioni per Ubuntu, MacOS X e Windows.
Tutto il codice sorgente di Visualino è disponibile su GitHub: github.com/vrruiz/visualino
Di seguito un tutorial passo passo che spero che possiate utilizzare nei vostri corsi.
Per una prima comprensione dell’uso della breadboard, sintetici principi di elettrotecnica e descrizione generale della scheda Arduino, vi rimando alla sezione di questo sito: Impariamo ad usare Arduino e guardate le prime due slide “L’Alfabeto di Arduino”.
Partiamo ora con la sperimentazione, una guida passo passo all’uso di Visualino
Configurazione di Visualino
01. Collegate la scheda Arduino alla porta USB del computer
02. Doppio click sull’icona Visualino
L’ambiente di sviluppo grafico è suddiviso in tre sezioni, da sinistra verso destra: funzioni, area di programma grafico, area di programma testuale.
La sezione funzioni raccoglie i “mattoncini” che andranno trascinati nella zona centrale ed uniti tra di loro per realizzare il programma. Nella sezione di destra potrete osservare il codice in C che viene generato trascinando i blocchi nell’area centrale di programma programma. Il codice C generato può essere solamente visualizzato su di esso non si potrà agire direttamente, di questo codice, per ora, non ve ne preoccupate. Quando sarete diventati bravi programmatori utilizzerete altri sistemi per scrivere direttamente il codice C, per ora lasciamolo fare a Visualino.
03. Selezionate la porta USB corretta a cui è collegata la vostra scheda
04. selezioniamo la scheda Arduino in nostro possesso
Nell’immagine è già selezionata la versione Arduino UNO
Nel caso siate in possesso di un’altra versione selezionatela dal menù a discesa:
05. Preferenze: selezioniamo l’IDE Arduino e lingua del programma
Selezionate la voce “Preferences”
Come detto nella parte iniziale di questo post, il motore principale di Visualino è l’IDE di Arduino che dovrete installare sul vostro computer. Cercate l’applicazione facendo click sul blocco “…”
Se desiderate potete modificare la lingua con cui vengono nominate le funzioni.
Nei passi che seguiranno più avanti ho preferito mantenere la lingua inglese, in quanto alcuni dei termini mantengono lo stesso nome di quello che viene utilizzato in C e che vedrete seguendo un corso Arduino Avanzato.
Vi comparirà la richiesta di riavviare il programma:
Al riavvio ritroverete il nome delle funzioni in italiano.
06. Scriviamo il primo programma
Vi chiederò nei passi successivi di seguire pedestremente la sequenza di operazioni indicate, operazioni che consistono nell’unire blocchi funzionali. Nell’ultima parte del tutorial, quando avrete composto l’intera sequenza di istruzioni, vi spiegherò la logica di funzionamento del programma.
Nell’area funzioni selezionate “Pin function” si aprirà un pannello che racchiude una serie di funzioni, di queste trascinate il blocco “DigitalWrite PIN # state HIGH” e il blocco “Digital pin 0” nell’area di programma centrale.
Dal blocco “Digital pin 0” selezionale il pin 13
Come per i blocchi precedenti selezioniamo dalla gruppo “Control” la funzione “Wait (ms)” e dalla sezione “Math” il blocco “variabile intera”
All’interno del blocco “variabile intera” in cui vi è scritto “0” inserite il valore “1000”
Inseriamo il blocco “1000” all’interno della funzione “Wait”, così come indicato nell’immagine che segue:
Il blocco “Digital pin” impostato con il valore 13 dovrà essere trascinato all’interno del blocco “Digital PIN”
Con tasto destro del mouse + click duplichiamo i blocchi “DigitalWrire” e “Wait”
Dovrete essere nella seguente condizione:
Unite i blocchi così come indicato nell’immagine:
Variate ora lo “state” del secondo blocco “DigitalWrite” in LOW
Sarete nella seguente situazione:
Trascinate i 4 blocchi facendo un click sul primo “DigitalWrite”, all’interno dell’incastro identificato con “Loop”
Sarete nella seguente situazione:
Per effettuare il trasferimento del programma creato è necessario fare click sul pulsante “Upload“, questa operazione provocherà l’apertura temporanea del programma Arduino ed una successiva sequenza di messaggi che compariranno nella parte inferiore della finestra di programmazione:
Al termine dell’operazione dovreste notare che il LED sulla scheda Arduino incomincia a lampeggiare.
il LED che lampeggia è fisicamente collegato al Pin 13 di Arduino ed il programma consente di accendere e spegnere ripetutamente il LED fino a quando non togliamo alimentazione alla scheda.
La ripetizione continua del programma viene realizzata inserendo i 4 blocchi all’interno dell’incastro “Loop”.
Il primo blocco DigitalWrire consente di portare ad un valore logico HIGH il Pin 13 a cui è collegato il LED, ciò ha come effetto l’accensione del LED.
Il blocco successivo è una Wait che permette di bloccare l’esecuzione del programma per un valore in millisecondo espresso dal numero intero in esso inserito, nel nostro caso 1000, questo indica 1000 ms ovvero 1 secondo.
Il blocco successivo pone a LOW il valore sul Pin 13 e ciò implica uno spegnimento del LED ad esso collegato, poiché il blocco successivo è nuovamente un Wait di 1000 ms, lo stato di LED spento viene mantenuto per 1 secondo.
Bene! Avete realizzato il vostro primo programma con Visualino 🙂
carissimo amico,
per ora non ho nessun commento vedrò se riesco a capirci qualche cosa perchè di programmazione sono a ZERO e vorrei portare all’elettronica e alla programmazione mio nipote, la mia elettronica è partita dalle valvole e transistor e poi ai comuni integrati comunque si ferma prima dei microprocessori.
per ora mille grazie.
aldo
Grazie Aldo 🙂 a presto