Sto realizzando una serie di attività didattiche in cui utilizzare micro:bit come controller per giochi realizzati con il Blocks Editor, Scratch 3 e per controllare remotamente alcuni robot.
L’idea, molto semplice è stata quella di realizzare un semplice volante stampato in 3D su cui disporre un involucro che ospita BBC micro:bit e il pacco batterie di alimentazione della scheda. Il video in allegato mostra la prima versione del volante micro:bit multiuso. Per chi avesse necessità condivido i file sorgenti per la stampa 3D.
In fase di progetto un controller più evoluto che ospiterà scheda Arduino, pulsanti ed altri dispositivi elettronici.
Sto svolgendo in questi giorni il corso sulla didattica laboratoriale e nelle giornata di ieri ho svolto un approfondimento sull’uso delle funzioni con il MakeCode editor di micro:bit che rendo pubblico su questo sito.
NOTA. Gli esempi in questo post hanno il solo scopo di mostrare l’utilizzo delle funzioni (chiamata di una funzione, passaggio per valore, restituzione di un valore da una funzione, ecc…) e non quello di risolvere un specifico problema, pertanto gli esempi potrebbero essere realizzati in modalità sicuramente più efficiente.
Le funzioni con BBC micro:bit
Una funzione consente di creare una porzione di codice che possiamo riutilizzare più volte nel nostro programma, quindi invece di copiare lo stesso codice in molte sezioni del programma, possiamo semplicemente utilizzare un unico blocco funzione da utilizzare all’interno del nostro codice tutte le volte che ci necessita.
Una funzione è definita dal suo nome e dal corpo della funzione che ospita tutte le istruzioni.
La funzione ha un nome univoco e non può essere costituita da parole staccate tra loro. E’ utile assegnare alle funzioni nomi che specificano cosa fa la funzione, ad esempio “calcoloVolume”, “calcoloArea”, “distanzaOstacolo”, “impostaLed”, “displayOn”. Si consiglia inoltre di adottare una notazione camel case (testo a cammello), ovvero scrivere parole composte o frasi, come il nome di funzioni, unendo tutte le parole tra loro, ma lasciando le loro iniziali con lettera maiuscola, in questo modo viene meglio decodificato da un essere umano il significato del nome composto. E’ buona regola adottare una strategia di questo genere anche per il nome delle variabili.
La prima lettera della frase può essere maiuscola o minuscola, tendenzialmente si preferisce usare la lettera minuscola.
Il corpo della funzione è il codice all’interno del blocco funzione, quello che viene chiamato body.
Nella giornata di domani, 30 Marzo, dalle 9.30 alle 17.00 parteciperò alla: Giornata di studio per la scuola sui temi del Making, della Domotica e della Robotica Educative.
Rappresenterò il mio istituto, l’ITIS G.B. Pininfarina di Moncalieri e il FutureLabs di Moncalieri. Il mio intervento previsto dalle 10,30 alle 11,00, avrà come titolo: “Didattica e IOT: l’intelligenza delle cose”, parlerò di making a scuola e “del futuro prossimo venturo” della didattica laboratoriale dal mio punto di vista. L’evento, in diretta streaming su YouTube vuole essere anche il momento per l’inaugurazione della rete nazionale: Robot School che ha tra i suoi obiettivi:
…creare, promuovere e sostenere, tramite l’attuazione delle misure previste dal PNSD, un sistema sinergico tra scuola, agenzie educative, enti, associazioni e tutti gli attori della comunità educante, diretto a favorire la più ampia diffusione dei processi di innovazione digitale e di didattica innovativa condividendo i principi e gli obiettivi dell’innovazione metodologico-didattica e digitale e ricercando costantemente l’incontro e la collaborazione con altre istituzioni scolastiche presenti su tutto il territorio nazionale, al fine di creare sempre maggiori sinergie e moltiplicare l’impatto della sperimentazione…
Rete capofila della rete: Liceo Scientifico “Leonardo da Vinci” Floridia (SR).
Programma della giornata:
9.30 – 10.00 Saluti istituzionali – relatori on. Lucia Azzolina (ex Ministro Pubblica Istruzione), dott. S. Suraniti (Direttore – USR Sicilia) , dott. N. Neri Serneri (Dirigente AT Siracusa)
10.00 – 10-30 Presentazione del progetto – relatori prof. M. Pisani (Dirigente Scolastico Liceo L. Da Vinci ), prof.ssa V. Martorino (referente Progetto Robot School)
10.30- 11.00 “Didattica e IOT : l’intelligenza delle cose” –relatore prof. Maffucci (Future Lab Pininfarina di Torino)
11.00 -11.30 “ Innovazioni tra Making ed IoT ” – relatore prof. F. Piana (vincitore Premio Scuola Digitale)
11.30-12.00 “La tecnologia nello spazio : prospettive e scenari futuri“ – relatore ing. Farina (Microgravity Research Center – Brussels)
12.00-12.30 – Saluti del dirigente del Future Lab di Gallarate – prof. G. Martino
“STEM : Tinkering, IoT e Robotica Educativa” – Proposte formative e buone pratiche dal FutureLab” – relatoriprof. M. Sabella, V. Belloni (Future Lab di Gallarate)
12.30-13.00 -“Spazio Domande e Contributi”
13:00 – 14:30 Pausa
14.30 – 15.00 “Strategie e processi di ragionamento durante la programmazione robotica: riflessioni teoriche ed empiriche”, relatori Edoardo Datteri e Gilda Bozzi – (Università Milano Bicocca- coordinatore del Laboratorio di Robotica per le Scienze Cognitive e Sociali)
15.00- 15.30 Pepper recita Dante – Buone pratiche nella robotica umanoide – relatore prof R. Delle Monache (Future Lab Volta – Pescara)
15:30 -16.30 Workshop Immersivo: “Umanoidi e Disabilità”,relatori dott. G. Pioggia , dott.ssa Flavia Marino (CNR Messina, Istituto Marino)
Sono felice di comunicarvi che svolgerò nel mese di aprile con Tecnica della Scuola il corso: Laboratori Steam con Arduino.
Sono più di 10 anni che utilizzo questa stupenda scheda, stupenda soprattutto perché mi ha permesso di recuperare negli anni molti ragazzi demotivati o con carenze di carattere logico matematico e tali mancanze pregiudicavano inevitabilmente la comprensione di argomenti che insegno: elettronica, informatica, sistemi elettronici.
Arduino nasce come scheda elettronica fatta per NON elettronici, una scheda che doveva servire prevalentemente per prototipare e quindi permettere a chiunque di superare lo scoglio della complessità elettronica ed informatica, almeno nella prima fase di apprendimento, per produrre un prodotto da utilizzare in diversi ambiti: design, medico, umanistico, ecc…
Successivamente si è constatato che l’uso di Arduino a scuola, in moltissime attività laboratoriali, risultava estremamente utile. Soprattutto nel mio caso Arduino ha permesso di trovare un ausilio didattico in grado di catalizzare interesse e passione da parte anche di chi aveva scarse competenze matematiche.
Quando l’azione didattica veniva condotta con precisione, l’uso di Arduino ha permesso di far comprendere allo studente che, se è relativamente facile realizzare progetti con forte interazione con il mondo reale, ancora più interessanti potevano diventare quegli stessi progetti se le competenze nelle discipline STEAM fossero state maggiori.
Con l’attività pratica basata su Arduino si fornisce un motivo in più per sopportare e superare l’insuccesso scolastico, sviluppando progetti pratici il cui funzionamento dipenderà dall’impegno e dallo studio, quindi lo studente, in modo evidente vede in Arduino l’oggetto che permette la materializzazione della propria competenza, cosa che non mi stancherò mai di dire e che più volte ho scritto su queste pagine. Se io studente conosco la fisica e la chimica probabilmente saprò gestire progetti che hanno a che fare con l’IoT, la fisiologia umana , le arti, l’economia e molto altro.
Come dico nella presentazione del corso:
Le attività laboratoriali di “fabbricazione digitale” che fanno uso di Arduino, favoriscono lo sviluppo delle competenze metacognitive e relazionali, potenziamento del pensiero logico, della capacità di astrazione e di problem solving.
ed aggiungo: la percezione che imparare è bello.
Quindi l’uso di Arduino diventa il pretesto per mettere in atto processi di analisi e autoanalisi e di messa in pratica di conoscenze e abilità.
Questa è ciò che ho visto e continuo a vedere durante le attività di laboratorio.
Ma è possibile che Arduino, una semplice scheda elettronica, possa fare tutto ciò?
Sì ne sono assolutamente convinto, l’evidenza si ha quando si vive il laboratorio ogni giorno, si percepisce negli studenti la sensazione che è bello imparare, perché imparare mi fornisce un immediato riscontro fisico di ciò che so e ciò che mi serve per far diventare “ancor più bello” il mio progetto.
Non si pensi assolutamente che Arduino è fatto per pochi addetti, non è l’oggetto che manipola solo l’insegnante di elettronica, è l’oggetto che usa l’insegnate di musica per far costruire strumenti musicali, è lo strumento che usa l’insegnate di arte per mostrare come creare installazioni di arte cinetica, è lo strumento che usano gli insegnanti di materie umanistiche quando vogliono sperimentare azioni di educazione civica in cui gli allievi devono progettare un ausilio per la disabilità per un loro compagno di classe, ma Arduino è anche lo strumento utilizzato costruire strumenti per comprendere i cambiamenti climatici.
Vorrei con questo corso farvi percepire come è semplice costruire progetti didattici laboratoriali trasversali, che coinvolgono tutte le discipline.
Spero di vedermi al mio corso, il primo di una serie di corsi a carattere assolutamente laboratoriale che svolgerò nei prossimi mesi con Tecnica della Scuola.
Non mi resta quindi che lasciarvi al programma del corso e sperare che insieme, durante le attività a distanza, si possano sviluppare oggetti fisici utili per voi.
E’ necessario disporre della scheda Arduino?
E’ consigliato, ma sarà possibile seguire assolutamente il corso anche se non si dispone della scheda, ma il mio consiglio è quello di mettere mani subito sugli oggetti fisici in modo che si assimilino più velocemente le nozioni di base. Vi fornirò tutte le indicazioni e i dettagli tecnici per sapere dove e cosa acquistare per cominciare il proprio percorso di apprendimento e impostare le lezioni laboratoriali per i vostri studenti.
Presentazione
LABORATORI STEAM CON ARDUINO
Come fare coding, tinkering e making a scuola
Come realizzare laboratori Steam utilizzando Arduino, una delle più affermate tecnologie open-source e open-hardware che sempre di più si sta affermando a scuola. Un corso per conoscere e approfondire le opportunità della robotica educativa e del coding. Il corso, combinando diverse tecnologie innovative, avrà un approccio assolutamente laboratoriale e fornirà tecniche ed idee per supportare l’apprendimento degli studenti favorendo in loro anche lo sviluppo dell’espressione personale e della creatività. Verranno mostrati esempi realmente sperimentati in classe in cui si evidenzieranno gli aspetti legati all’interdisciplinarietà e all’inclusione che hanno trovato largo impiego nella quotidianità scolastica.
Particolare attenzione verrà posta anche all’attività di sperimentazione pratica con Arduino in modalità di didattica digitale integrata utilizzando simulatori online e non solo.
L’intero corso è pensato per tutti gli insegnati, non è necessario in alcun modo avere competenze di elettronica o informatica e la proposta formativa è disegnata su un percorso testato da anni indirizzato a persone non tecniche in particolar modo ad insegnanti e studenti.
Cos’è Arduino:
Arduino è un hardware, una scheda elettronica di facilissimo utilizzo, e di basso costo
Arduino è un’ambiente di programmazione che permetterà di realizzare programmi che verranno poi eseguiti sulla scheda elettronica per la realizzazione molteplici progetti che potranno avere una forte interazione con il mondo reale;
Arduino è un sito ed una comunità online che condivide risorse e progetti utilissimi in campo didattico, soprattutto nelle attività che rientrano all’interno dell’insegnamento delle STEAM (Science, Technology, Engineering, Arts, Mathematics).
Perché usare Arduino nella didattica laboratoriale.
Il costo contenuto;
le dimensioni ridotte;
la semplicità di utilizzo;
la possibilità di sviluppare una vasta gamma di attività possibili data dalla notevole modularità della scheda;
una comunità di appassionati molto attiva tra cui moltissimi docenti.
L’uso di Arduino diventa un pretesto per mettere in atto processi di analisi e autoanalisi e di messa in pratica di conoscenze e abilità. Le attività laboratoriali di “fabbricazione digitale” che fanno uso di Arduino, favoriscono lo sviluppo delle competenze metacognitive e relazionali, potenziamento del pensiero logico, della capacità di astrazione e di problem solving.
Inoltre, uno degli ambiti che maggiormente viene svolto a livello laboratoriale è quello della robotica educativa. Durante il corso verranno forniti esempi e percorsi didattici completi immediatamente utilizzabili in classe, volti alla realizzazione di attività laboratoriali per la costruzione di robot didattici basati su piattaforma Arduino in cui verranno presi in considerazione le seguenti azioni:
come si pensa e si progetta in gruppo;
come si progetta un robot didattico;
come si realizza un robot con materiali riciclati;
come si programma il robot;
Durante il corso verranno forniti anche consigli sulle dotazioni tecniche necessarie per iniziare ad utilizzare questa piattaforma:
cosa comprare;
dove comprare;
come imparare ad utilizzare in modo semplice Arduino;
come avviare un laboratorio di STEAM in cui si fa uso di Arduino.
Saranno svolti 4 incontri in webinar di 2 ore ciascuno, per un totale di 8 ore.
Questa mattina, durante la realizzazione e l’analisi dei problemi per il progetto di PCTO: “misura di sedentarietà delle persone sedute alla scrivania” che stanno realizzando i miei studenti di 3′ Elettronica, è nata l’esigenza di associare un doppio controllo per la valutazione della presenza della persona seduta alla scrivania, un controllo effettuato con PIR HC-SR501 ed un sensore di forza resistivo (FSR) inserito all’interno del cuscino della seduta.
Per evitare l’acquisto di un sensore di forza resistivo e non pesare sulle finanze dei ragazzi le modalità sono tre:
richiesta alla scuola
compra il Prof.
farlo costruire ai ragazzi
l’acquisto da parte della scuola o mia non è un problema, ma la terza soluzione è quella che in questo momento prediligo, perché può essere realizzata in 5 minuti, credo che possa gratificare di più lo studente Maker in erba 🙂 , inoltre ritengo importante che gli allievi assumano la capacità di costruire il sensore perché ne dovranno ottimizzare l’uso, scontrandosi inevitabilmente con una serie di variabili fisiche che dovranno gestire.
Ma come si costruisce il sensore?
E’ indispensabile piccolo tubo cilindrico non trasparente, preferibilmente nero che possa essere compresso e al termine della compressioni ritorni abbastanza velocemente nella sua posizione di riposo. Possiamo ricavare il tubo sguainando un cavo elettrico o cavo di rete, oppure come ho fatto in questo tutorial, prendendo una guaina termorestingente.
Inserire un diodo LED ad un’estremità del cilindro e dalla parte opposta inserire un LDR.
Collegare il sistema nella solita modalità, inserendo in serie al LED un resistore da 220 Ohm e creando un partitore di tensione tra l’LDR e un resistore da 10KOhm, così come indicato nel circuito indicato di seguito.
Come test di funzionamento utilizzare il semplice sketch che trovate di seguito, nei commenti la spiegazione di tutte le parti del codice.
Aprite la Serial Monitor e premete e rilasciate il tubo
/*
* Prof. Michele Maffucci
* Data 01.03.2021
*
* Oggetto: sensore di seduta a pressione
*
*/
// variabile in cui verrà memorizzato il valore presente sul pin A0
const int misura = A0;
// valore restituito dall'analogRead
int val = 0;
// pin a cui è connesso il LED del sensore di seduta
int pinLed = 2;
// LED che segnala la seduta della persona
int pinLedAlert = 13;
void setup() {
// Inizializzazione della Serial Monitor
Serial.begin(9600);
// ledPin è il pin a cui è connesso il LED del sensore di seduta
pinMode(pinLed, OUTPUT);
// pinLedAlert è il pin a cui è connesso il LED che segnala la seduta della persona
pinMode(pinLedAlert, OUTPUT);
// Attivazione del LED del sensore di seduta
digitalWrite(pinLed, HIGH);
// Messaggio di avvio
Serial.println("Sistema di rilevazione seduta");
Serial.println("-----------------------------");
Serial.println("");
delay(1000);
}
void loop() {
// analogRead leggerà il valore su A0 restituendo un valore tra 0 e 1023
val = analogRead(misura);
// il valore di controllo nell'if deve essere sperimentato in funzione
// delle necessità costruttive (ad es. la lunghezza del tubo)
// se vero la persona è seduta
if (val >= 100) {
digitalWrite(pinLedAlert, HIGH); // accensione del LED di avviso
Serial.println("Persona NON seduta alla scrivania"); // segnalazione di assenza persona
Serial.print("Valore letto dal sensore = "); // Stringa di stampa
Serial.println(val); // Valore restituito dall'AnalogRead
Serial.println(""); // Stampa linea vuota di separazione
delay(1000); // Intervallo di 1 secondo tra ogni stampa
}
else
{
digitalWrite(pinLedAlert, LOW); // spegnimento del LED di avviso
Serial.println("Persona seduta alla scrivania"); // segnalazione di presenza persona
Serial.print("Valore letto dal sensore = "); // Stringa di stampa
Serial.println(val); // Valore restituito dall'AnalogRead
Serial.println(""); // Stampa linea vuota di separazione
delay(1000); // Intervallo di 1 secondo tra ogni stampa
}
}
Il risultato sulla Serial Monitor è il seguente
Il valore di soglia scelto deve essere ricavato sperimentalmente in funzione della lunghezza e della trasparenza del tubo.