Coding a scuola con BBC micro:bit – lezione 1

Nel momento di calma lavorativa estiva ho deciso di realizzare un corso introduttivo in 10 lezioni sull’uso del BBC micro:bit che utilizzerò con i mie allievi delle classi prime (superiore) nei prossimi mesi. Il corso è da intendersi introduttivo e se desiderate, come accade per qualsiasi contenuto che pubblico su questo sito, usate liberamente questi appunti secondo le vostre necessità, spero che questo lavoro possa essere utile.

Tutte le lezioni sono già impostate le pubblicherò a distanza di circa di 2 o 3 giorni salvo imprevisti o impegni didattici.

BBC micro:bit è un piccolissimo microcontrollore che può essere utilizzato per una grande varietà di progetti a livello didattico per svolgere attività laboratori di Coding, ad esempio per sperimentazioni sulla creazione di giochi, robot, strumenti musicali, oggetti indossabili e molto altro. La versatilità e la semplicità d’uso, unita ad una buona dose di fantasia da parte dei vostri studenti permetterà di creare attività laboratoriali che possono anche avere una forte interazione con il mondo fisico.

La distribuzione del BBC micro:bit iniziò nel 2016, venne regalata a tutti gli studenti dell’Inghilterra e nel 2017 la scheda e stata resa disponibile per la vendita in: Finlandia, Francia, Germania, Inghilterra, Italia, Olanda, Svezia e nel breve la distribuzione verrà estesa a molti altri paesi.

Ho avuto la fortuna di acquistare la scheda diversi mesi fa, non appena venne resa disponibile in Italia, ne ho valutato prestazioni e modalità di utilizzo a scuola, ma le avventure robotiche con DotBot hanno rallentato la produzione delle lezioni destinate agli studenti, riprendo con questo post la realizzazione di appunti dedicati al micro:bit.

Oltre alle 10 lezioni introduttive ho sviluppato ulteriori lezioni in cui spiego come realizzare dispositivi IoT e diverse applicazioni robotiche.
Probabilmente il tutto diventerà una buona raccolta di dispense ed esercitazioni, forse un libro open, ma i pensieri e i progetti corrono veloci e tutto potrà cambiare 🙂 nel mentre tra un pensiero e l’altro inizio a scrivere ciò che ho sperimentato nei mesi passati.
Per chi fosse interessato da ottobre ripartirà un ciclo di miei Webinar ed ho intenzione di svilupparne uno dedicato all’uso BBC micro:bit per fare Coding a scuola.

La versatilità del micro:bit permette di impostare lezioni sul Coding sia per il primo che per il secondo ciclo di studi del nostro ordinamento scolastico.
Per rendere il percorso accessibile alla maggior parte dei colleghi e studenti ho cercato di ridurre al minimo i concetti di elettronica, mentre ogni concetto informatico è spiegato con disegni e schemi, in questo modo le lezioni potranno essere utilizzate per ogni livello di scuola ed espanse a piacimento da docenti ed allievi.

Durante questa prima parte del corso useremo come ambiente di programmazione il Microsoft Block Editor che permette la creazione di codice unendo blocchi funzionali, così come accade con Scratch o Blockly. L’intera programmazione avviene on-line all’interno di una pagina web, inoltre non sarà necessario installare nessuna driver sul vostro computer.
Nei corsi successivi mostrerò anche come realizzare progetti in JavaScript, Python e Microsoft Touch Develop.

Micro:bit è una scheda elettronica che per alcune funzionalità ricorda una scheda Arduino. Sulla scheda troviamo un microcontrollore a 32 bit, il “cervello” che governa l’intero dispositivo, inoltre sono presenti: un magnetometro (bussola elettronica), modulo Bluetooth, sensore di movimento (accelerometro), sensore di temperatura, uscite ed ingressi analogiche e digitali, due pulsanti, un pulsante di reset, una matrice di 25 LED.

Ma perché utilizzare micro:bit a scuola?

Mi è stato chiesto:
Michele ma tu che ti occupi di didattica con Arduino da anni perché vuoi usare  micro:bit?

Prima di ogni cosa sono un insegnante è uno dei miei obiettivi è trovare soluzioni efficaci che mi permettono di costruire una didattica anche personalizzata, soprattutto in presenza di necessità specifiche dello studente, Arduino mi ha permesso di fare tantissimo e continuerò ad usarlo, BBC micro:bit è uno strumento in più specificatamente progettato per fare formazione (Coding) a scuola con bambini dai 7 ai 13 anni.

Micro:bit ha un costo relativamente basso, dispone a bordo di sensori sufficienti per svolgere molte attività interessanti, la gestione dei sensori avviene mediante istruzioni semplici, inoltre le competenze elettroniche che bisogna avere sono molto molto molto basse ed inoltre può essere programmato in diverse modalità tutte semplici.

Detto ciò allora perché non provare ad usarlo? 🙂

Caratteristiche principali

Di seguito in elenco trovate le caratteristiche tecniche principali della scheda, maggiori dettagli elettronici (corrente erogata dai pin, risoluzione del convertitore analogico digitale, sensibilità del magnetometro ed altro), saranno esposti durante lo svolgimento delle lezioni.

Sono presenti sulla scheda due pulsanti, nominati A e B (identificati con le lettere scritte direttamente sulla scheda) possono essere programmati in diversi modi. Le condizioni riconosciute sono la pressione breve, la pressione lunga e la pressione contemporanea dei due pulsanti.
I pulsanti operano in logica inversa, ovvero quando il pulsante è in stato di rilascio l’ingresso corrispondente al livello logico “1”, mentre quando il pulsante viene premuto, l’ingresso corrispondente al livello logico “0”. I pulsanti A e B sono collegati rispettivamente ai pin P5 e P11 del GPIO, il connettore a pettine presente sulla scheda ben evidente nell’immagine che segue.

  • La scheda è dotata di un connettore micro USB utilizzato sia per alimentare il circuito che per trasferire i programmi realizzati su computer.
  • Un connettore JSC per l’alimentazione della scheda.
  • Un pulsante di reset permette il riavvio della scheda ed esegue l’ultimo programma caricato nella memoria della scheda (non cancella quindi il programma). Il reset è possibile sia nel caso in cui il micro:bit viene alimentato via USB che mediante la batteria esterna.

  • La scheda è dotata di 25 LED rossi che possono essere accesi con diversa intensità luminosa (10 livelli) e possono essere impiegati per visualizzare caratteri o disegni e come vedremo durante le esercitazioni potranno essere utilizzati per realizzare animazioni e giochi. Durante le esercitazioni mostrerò un curioso utilizzo dei LED come rilevatori di luce ambientale, un sistema non preciso, ma interessante per scopi didattici.
 Per ogni LED è possibile impostare la luminosità su una scala di dieci livelli.
  • Un accelerometro che rileva l’accelerazione sui tre assi. Con esso è possibile rilevare diverse tipologie di movimento: scuotimento, la rotazione e la caduta libera e tre livelli di accelerazione (2g, 4g, 8g).
  • Una bussola elettronica in grado di riconoscere l’orientamento del micro:bit rispetto al Nord magnetico. Essendo un magnetometro potrebbe essere anche impiegato come rilevatore di metalli e questo sarà una delle sperimentazione che realizzeremo durante il corso.
  • Un modulo Bluetooth per la connessione a molteplici dispositiovi: altri micro:bit, PC, smartphone, kit Bluetooth, tablet e fotocamere;
  • Sensore di temperatura per la rilevazione della temperatura ambiente.
 L’intervallo di temperatura rilevabile va dai -25 °C a 75 °C, con una risoluzione di 0,25 °C ed una accuratezza di +/- 4 °C, quindi siamo in presenza di un sensore non precisissimo ma già che sufficiente per effettuare sperimentazioni didattiche.
  • Un connettore a 24 pin con passo 1,27 mm tranne 5 piazzole più larghe alle quali possono essere connessi morsetti a coccodrillo. Le piazzole più larghe sono inoltre dotate di foro centrale di 4 mm a cui è possibile ancorare con viti ulteriori connettori.
    Il connettore è l’interfaccia verso il mondo esterno fornisce I/O digitali, analogici, touch, pwm, bus di comunicazione seriale I2C e SPI ovvero strade di comunicazione standard in elettronica usati da moltissimi dispositivi elettronci.
    I terminali P0, P1 e P2 possono essere abilitati come sensori touch.
Tutti i terminali del connettore a pettine sono connessi al medesimo pin su entrambi i lati della scheda e per evitare cortocircuiti o interferenze i terminali piccoli, collocati a destra e sinistra delle piazzole grandi, GND e 3V, sono rispettivamente collegati a GND e 3V.
 Ai connettori è possibile assegnare funzioni differenti assegnabili via software.

La scheda può essere alimentata in 3 modi:

  1. tramite il il connettore micro USB;
  2. con una alimentazione di 3V data da due batterie da 1,5V connesse tramite connettore JSC al micro:bit;
  3. collegando direttamente una sorgente di alimentazione ai terminale 3V e GND presenti sul connettore a pettine.

Particolare attenzione bisogna porre se alimentate la scheda attraverso i connettori 3V e GND presenti sul connettore a pettine , in quanto il connettore a 3V è collegato direttamente ai circuiti integrati presenti sulla scheda e una tensione superiore ai 3,6 V danneggia irreparabilmente il micro:bit.
Durante le sperimentazioni potreste avere necessità di alimentare piccoli circuiti esterni, tenete in conto che la massima corrente utilizzabile è di 90 mA.

Comunicazione USB

Il micro:bit può comunicare con altri dispositivi mediante una connessione USB versione 1.1 a 12Mbit), quindi supportata da qualsiasi dispositivo recente e datato. La gestione USB avviene integralmente via software, la scheda viene rilevata da qualsiasi PC come una normalissima memoria di massa, come ad es. una chiavetta USB o SD, in questo modo potrete trasferire il software che create dal PC alla scheda semplicemente trascinando il file nel micro:bit nella cartella radice, i file non dovranno quindi essere inseriti in particolari cartelle sulla memoria del micro:bit. Durante la fase di trasferimento noterete che sulla scheda un LED situato nella faccia opposta a quella dei due pulsanti incomincia a lampeggiare velocemente, al termine del trasferimento il LED si spegne e parte immediatamente l’esecuzione del programma.
La connessione seriale USB può anche essere utilizzata per la trasmissione e la ricezione di dati provenienti da altri micro:bit, computer o altri tipi di microcontrollori, vedremo questa caratteristica in sperimentazioni apposite che vi proporrò più avanti.

Qualche dato tecnico in più per i più esperti

  • Processore: ARM Cortex-M0 32 bit processor
  • Flash ROM: 256KB
  • RAM: 16KB
  • Speed: 16MHz
  • Bluetooth 4.1 con Bluetooth low energy
  • L’anti rimbalzo dei pulsanti è gestito via software
  • Accelerometro sensibile sui 3 assi con risoluzione di 10 bit (0..1023) che può rilevare accelerazioni 2g, 4g e 8g
  • Sensibilità magnetometro 0.10 microT

Mappa piedinatura scheda

Di seguito una mappa che descrive la piedinatura della scheda.

  • I pin dedicati all’alimentazione: positivo, potenziale di +3V3 (che è un modo per indicare 3,3 Volt) e la terra indicata con GND.
  • Pin per realizzare sensori touch (Pin: 0, 1, 2)
  • Pin da utilizzare come ingressi/uscite analogiche e digitali
  • Pin per la comunicazione con altri dispositivi elettronici

Non spaventatevi 🙂 tutto sarà spiegato, ma per completezza desidero fornirvi una mappa riepilogativa che potrete poi riutilizzare più avanti.

Piedino Tipo di piedino Funzione
0 Touch Pad 0
1 Touch Pad 1
2 Touch Pad 2
3 Analogico Colonna 1
4 Analogico Colonna 2
5 Digitale Pulsante A
6 Digitale Riga 2
7 Digitale Riga 1
8 Digitale
9 Digitale Row 3
10 Analogico Column 3
11 Digitale Pulsante B
12 Digitale
13 Digitale SPI MOSI
14 Digitale SPI MISO
15 Digitale SPI SCK
16 Digitale
19 Digital I2C SCL
20 Digital I2C SDA

Programmazione

Il micro:bit può essere programmato con diversi linguaggi di programmazione, mediante ambienti di sviluppo on-line oppure residenti sul proprio computer. Sostanzialmente possiamo programmare la scheda con 4 diversi tipi di linguaggi di programmazione:

  1. C e C + +
  2. Microsoft Block Editor (programmazione grafica a blocchi)
  3. JavaScript
  4. MicroPython versione di Python sviluppata per microcontrollori

Come detto all’inizio di questo articolo, per rendere più agevole e veloce l’uso di micro:bit utilizzerò Microsoft Block Editor, più avanti prenderò in analisi altri linguaggi di programmazione.

Per chi già conosce Scratch, di cui trovate su slideshare diverse lezioni che ho svolto e reso pubbliche in passato, troverà molte similitudini con Microsoft Block Editor che risulta anch’esso completamente visuale, con possibilità di passare agevolmente, nello stesso ambiente di programmazione da programmazione grafica a blocchi a JavaScript e viceversa. La modalità di realizzazione dei programmi avviene in un’area di programmazione in cui vengono trascinate le istruzioni, rappresentati da blocchetti che possono essere tra di loro incastrati.
L’incastro dei blocchi avviene solamente tra istruzioni funzionalmente compatibili, ovviamente ciò non implica la correttezza del programma generato che necessita ovviamente di un analisi a priori.

All’interno del Microsoft Block Editor troverete un simulatore del micro:bit che consente, mediante un pulsante play di provare i propri programmi prima di trasferirli sulla scheda reale, nella lezione che seguirà mostrerò come trasferire i programmi sulla scheda.

Come indicato nell’immagine possiamo distinguere tre aree principali del Microsoft Block Editor:

  1. Scheda virtuale
  2. Lista delle istruzioni categorizzate per tipologia
  3. Area di programmazione in cui trascinerete le istruzioni

Per accedere alla lista dei progetti realizzati o per caricare un nuovo progetto si utilizza il pulsante “Project”:

Il numero delle istruzioni disponibili è molto elevato, con le sperimentazioni che realizzeremo impareremo ad usarle.

Esplorate la lista delle istruzioni facendo click su ognuna delle categorie disponibili:

Se desiderate una spiegazione esaustiva di ogni singola istruzioni, con il computer collegato ad internet facendo click sull’icona ? in alto a destra potrete accedere alla sezione Reference oppure alla sezione Block, nel caso vogliate avere informazioni sulla singola istruzione facendo click con tasto destro del mouse avrete possibilità di accedere ad una serie di funzionalità tra cui l’Help dell’istruzione, oppure posizionando il mouse sulla singola istruzione visualizzerete un testo di spiegazione.

Posizionare il puntatore del mouse sull’istruzione per avere un help:

Esploreremo ogni altra parte dell’ambiente di programmazione durante le lezioni.

Micro:bit può essere anche programmato attraverso uno smartphone iOS o Android inviando il programma dal cellulare al micro:bit via Bluetooth, di seguito i link all’Apple Store e al Google Play per prelevare gratuitamente le App:

La modalità di utilizzo via smartphone è ben spiegata alla pagina: Mobile Apps for micro:bit, ma durante lo svolgimento delle esercitazioni mostrerò come effettuare questa operazione.

Questa la schermata principale dell’App per iOS che utilizzo per programmare i miei micro:bit:

Dove acquistare micro:bit?

Sul sito di riferimento nella sezione “Buy” trovate la lista dei rivenditori, oppure potete acquistare direttamente su amazon.it

Il primo esercizio da svolgere è il seguente:

esplorare il sito di riferimento ricco di risorse utili condivise gratuitamente da insegnanti e studenti una fonte inesauribile di suggerimenti per la nostra didattica.

… vi aspetto quindi alla prossima lezione
Buon Coding a tutti 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.