
Per programmare con micro:bit non esiste un solo ambiente ma il contesto ideale – per aspiranti di ogni età – è Microsoft MakeCode, un pannello web completo di tutto il necessario. Lo scopo di questo tutorial è accompagnare l’aspirante programmatore alla realizzazione del primo programma micro:bit. Dopo aver presentato l’ambiente Microsoft MakeCode svolgeremo un primo esercizio seguendo questi step:
- realizzazione del programma mediante l’uso di blocchi di codice;
- sperimentazione del prodotto nell’emulatore on line;
- scaricamento del programma in formato esadecimale eseguibile;
- importazione dell’eseguibile sul microcontroller.
I passi appena elencati saranno grosso modo quelli seguiti nella realizzazione di ogni progetto e tutto il necessario sarà disponibile nell’ambiente web che stiamo per incontrare.
L’ambiente di lavoro
Quella che segue è una panoramica su Microsoft MakeCode:
Abbiamo apposto quattro numeri cerchiati in rosso per individuare altrettante zone dell’editor e tale numerazione è riproposta nel seguente elenco:
- emulatore micro:bit: in alto a sinistra del pannello possiamo vedere la rappresentazione di una faccia del micro:bit, quella dedicata all’interazione utente con led, pulsanti e pin. I programmi che realizzeremo andranno direttamente in esecuzione qui;
- blocchi: un menu che propone i blocchi di codice da utilizzare suddivisi per categorie;
- area di lavoro: qui verranno trascinati e incastrati tra loro i blocchi di codice. Agendo sulle linguette nella fascia alta dell’area si può passare dalla visualizzazione a blocchi al corrispondente codice Javascript;
- salvataggio e scaricamento del codice: il programma una volta preparato sarà scaricabile per essere importato nel microcontroller o per essere successivamente ricaricato nell’editor.
I blocchi di codice
Come detto, per programmare è sufficiente trascinare blocchi di codice nell’area di lavoro ed incastrarli tra loro. Il tutto sarà agevolato da un approccio simile alle costruzioni: blocchi di funzione compatibili tra loro mostreranno punti di incastro complementari.
Ogni blocco rappresenta un possibile elemento della programmazione sia per quanto riguarda il controllo del flusso del programma sia l’hardware (led, pin, bluetooth, sensori, etc.) tuttavia le forme cui essi aderiscono seguono lineamenti che fanno riferimento al ruolo che rivestono nel programma.
Ci sono blocchi deputati a contenere gruppi di istruzioni e si presentano con una forma simile alla seguente:
Blocchi di questo tipo rappresentano elementi in grado di racchiudere il programma intero. Quello mostrato in figura determina quali azioni devono essere compiute “all’avvio” del programma. Al momento potrebbe sembrare un aspetto di poco conto ma si noti che i bordi esterni non hanno nessun incavo o sporgenza e ciò indica che non possono essere contenuti in altri.
Altri blocchi rappresentano azioni da eseguire, come il seguente che accende i led necessari a far apparire una stringa (personalizzabile) richiesta.
In questo caso, incavo e sporgenza esterne dimostrano che questo tipo di blocco va incastrato in altri come quelli della categoria precedente. Ecco un possibile incastro permesso dall’editor:
Questo potrebbe essere il nostro Hello world con micro:bit infatti si tratta di un programma funzionante che fa scorrere il testo “Hello” composto con la matrice di led.
Il blocco beige che contiene la stringa “Hello” fa parte della terza categoria di elementi: i blocchi per la manipolazione dei valori. Tra questi ultimi, troveremo quelli che permetteranno di svolgere azioni aritmetiche, confronti e gestione di variabili.
Dopo questa breve introduzione disponiamo di tutti gli elementi per realizzare il nostro primo esempio con micro:bit.
Il primo programma con micro:bit
Come primo esempio, trasformeremo micro:bit in un contatore che manterrà in memoria un valore che potrà essere incrementato con la pressione del pulsante B e decrementato (se maggiore di 0) con la pressione del pulsante A.
Questa la struttura di blocchi necessaria:
Si noti alcuni aspetti interessanti:
- il programma denota l’anima “a eventi” di micro:bit. Abbiamo tre raggruppamenti di blocchi, ognuno dei quali risponde ad un diverso evento: il primo agisce all’avvio, il secondo alla pressione di A, il terzo alla pressione di B;
- con i blocchi rossi gestiamo le variabili. All’avvio inizializziamo la variabile conteggio a 0 e successivamente lo modifichiamo con un altro blocco rosso, cambia;
- come output utilizziamo esclusivamente la matrice a led sulla quale facciamo apparire il livello raggiunto dal contatore con il blocco azzurro mostra numero;
- i blocchi verdi che vengono utilizzati costituiscono la logica condizionale che valuta se la variabile contiene un valore maggiore di zero prima di decrementarlo. Oltre al blocco se allora che costituisce l’if del programma, per rappresentare la condizione da valutare sono stati usati ben due blocchi: uno che effettua il confronto (verde) ed uno incaricato solo di estrarre il valore della variabile (rosso).
Il codice scritto potrà essere immediatamente provato nell’emulatore e azionando la linguetta “Javascript” in alto apparirà la traduzione dei blocchi in Javascript che riportiamo nel seguente snippet:
let conteggio = 0 input.onButtonPressed(Button.A, () => { if (conteggio > 0) { conteggio += -1 } basic.showNumber(conteggio) }) input.onButtonPressed(Button.B, () => { conteggio += 1 basic.showNumber(conteggio) }) conteggio = 0 basic.showNumber(conteggio)
Se lo si ha a disposizione, si può importare l’eseguibile su micro:bit con due semplici passaggi:
- scaricamento del programma in formato esadecimale tramite la pressione del pulsante “Scarica”;
- copia dell’eseguibile sul micro:bit collegato via USB al computer. In Windows, micro:bit verrà rilevato come un normale driver e per mandare in esecuzione il programma sul dispositivo sarà sufficiente collocarvi l’eseguibile scaricato al punto precedente.
Nel video che segue, si può avere una dimostrazione del funzionamento. Si noti che i numeri possono essere rappresentati uno alla volta nella matrice di led per questo quando si arriva al numero 10 si vedono le cifre scorrere.
Conclusioni
BBC micro:bit appare da subito un connubio perfetto tra utilità, divertimento, economicità e completezza, ideale non solo per avvicinare chiunque al mondo della programmazione ma anche per progettare logiche da integrare in sistemi più complessi attraverso connessioni elettriche e segnali bluetooth.
Il nostro viaggio è appena iniziato: a presto!
No Responses to “Iniziamo a programmare con micro:bit”