Archivi categoria: micro:bit

BBC micro:bit – funzioni

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.

Continua a leggere

BBC micro:bit – Esercizio: Realizzare un timer per il lavaggio delle mani

In una situazione di didattica a distanza fare laboratorio può essere complicato, ma con un po’ di fantasia e l’aiuto degli studenti si può fare molto. Alcuni mesi fa avevo proposto ai miei allievi questa stessa esercitazione però realizzata con Arduino: Arduino – Esercizio: Realizzare un timer per il lavaggio delle mani.

Ho realizzato la medesima esercitazione questa volta con BBC micro:bit in tre modalità diverse che vi condivido, nel codice trovate anche i commenti che spiegano sommariamente il codice. Ovviamente al sistema potrebbe essere aggiunto:

  • allarme sonoro
  • servomotore su cui inserire indice rotante, così come fatto per la sperimentazione con Arduino.

Spero che questa proposta possa essere utile anche ad altri.

Versione 1 (link al codice sorgente)

Versione 2 (link al codice sorgente)

Versione 3 (link al codice sorgente)

Buon making a tutti.

Didattica laboratoriale a distanza: controllare la postura con BBC micro:bit quando siamo seduti al computer


Durante il recente incontro online con il FabLab di Belluno abbiamo parlato di didattica laboratoriale a distanza realizzata con diversi dispositivi elettronici e kit di sperimentazioni che ho realizzato. Siamo entrati anche nello specifico dell’utilizzo di alcune tecnologie come BBC micro:bit ed ho mostrato alcune esercitazioni realizzabili online in didattica a distanza.

Come spesso accade mi piace realizzare con gli studenti sperimentazioni che hanno attinenza con il loro vivere quotidiano in modo da fornire un senso fisico al loro studio teorico. Lavorare continuamente per molte ore davanti al computer è un’azione che molte persone stanno vivendo e gli effetti negativi di questo continuo lavorare online si riflettono sulla nostra salute, occhi e schiena doloranti sono ormai la norma. Ovviamente ginnastica e tempi precisi di lavoro aiutano tantissimo, ma occupandomi di didattica analizzare questo aspetto può rendere la lezione online interessante.

Una semplicissima esercitazione che si può condurre a distanza è quella che consente di controllare l’esatta postura di una persona seduta alla scrivania, viene controllato se si inarca in avanti la schiena.

Per poter realizzare questo sistema si utilizza il sensore di luce del micro:bit, sensore realizzato con la matrice di LED disposti sulla scheda.

Ponendo il micro:bit sullo schienale della sedia, quando siamo seduti correttamente, copriremo con la schiena il micro:bit, non permettendo di rilevare fonti di luce, non appena ci si flette in avanti il sensore rileverà la luce e quindi verrà emesso un un segnale di allarme.

Questo stessa sperimentazione è stata realizzata anche con Arduino ed una fotoresistenza, in un prossimo post pubblicherà l’esercitazione.

Di seguito due esempi, il primo semplice, visualizza un messaggio che indica l’avvio del sistema, ed emette un segnale sonoro nel caso in cui si inarchi la schiena. Il secondo esempio aggiunge un pulsante di avvio sistema, l’impostazione della sensibilità del sistema (da realizzare manualmente) ed ed aggiunge l’utilizzo di funzioni esterne, motivo che mi aiuta a spiegare la chiamata di funzioni.

Ovviamente in questa situazione si utilizza il suono emesso dal computer, ma con alcune piccole modifiche è possibile aggiungere un buzzer esterno.

Versione 1 (link al codice sorgente)

Versione 2 (link al codice sorgente)

Buon Making a tutti 🙂

Gestire con micro:bit un display 1602 I2C

Ho realizzato questo tutorial come risposta ad un quesito che mi è stato posto da un’amica collega sull’utilizzo del display 1602 I2C comandato da micro:bit.
Per quanto riguarda la descrizione tecnica del display vi rimando al post su questo sito:

Utilizzo dell’LCD 16×2 Hitachi HD44780 1602 con modulo I2C PCF8574T

Per un utilizzo con micro:bit è sufficiente conoscere il tipo esatto di integrato I2C che gestisce la comunicazione tra display e micro:bit nella modalità indicata da questo tutorial.

Aprite un nuovo progetto dall’ambiente grafico di programmazione di micro:bit.
Aggiungiamo l’estensione che consente la gestione di un display 16×2 I2C, per far ciò selezionate “+Extensions”:

nel campo di ricerca inserite: I2C

dovreste ottenere il seguente risultato:

Selezionate l’estensione indicata nell’immagine:

All’interno dei blocchi disponibili ritroverete quelli che fanno riferimento al display:

Ogni dispositivo I2C dispone di un indirizzo, un codice a cui bisogna far riferimento in fase di programmazione e per quanto riguarda la scheda di comunicazione I2C disposta sul retro del display troverete due tipi di dispositivi con indirizzo differenti l’uno dall’altro. La differenza consiste nel tipo di circuito integrato che gestisce la comunicazione I2C:

  • PCF8574 > indirizzo 39
  • PCF8574A > indirizzo 63

L’indirizzo dovrà essere inserito all’interno di un apposito blocco come indicato di seguito.

Per sapere quale indirizzo usare potete leggere la sigla dell’integrato, come indicato nell’immagine che segue:

nel mio caso l’indirizzo da inserire sarà il 39.

L’altro metodo consiste nel sostituire, nel codice che segue, gli indirizzi sopra indicati in modo da individuare il numero corretto che permette la visualizzazione del testo sul  display.

Per il collegamento del circuito avete necessità di alimentare il display a 5V, in commercio esistono degli edge connector (connettore per collegare micro:bit alla breadboard) che prelevano dalla USB i 5 volt, nel mio caso questa funzionalità non è fornita, l’unica tensione disponibile è di 3,3V non sufficienti per alimentare il display.

Se anche voi siete nelle medesime condizioni allora alimenterete via USB il micro:bit mentre il display dovrà essere alimentato esternamente mediante una tensione di 5V. Se agite in questo modo ricordate che la terra (GND) dovrà essere la medesima (collegate insieme) per entrambi i dispositivi. Fate riferimento allo schema di seguito indicato:

Sul micro:bit il pin 20 corrisponde all’SDA e il pin 19 all’SCL, pin che avranno una corrispondenza con il display. Per le mie sperimentazioni dispongo di un cavo USB modificato per poter inserire su breadboard la tensione di 5V proveniente dalla USB del computer.

Realizzeremo un semplice programma che consente di visualizzare su due righe il testo:

BBC micro:bit
Italy timer

dove timer è il numero di secondi trascorsi dall’avvio del programma.

L’inserimento della prima istruzione provocherà la visualizzazione del display I2C:

L’istruzione “LCD initialize with Address 39” assegna al display l’indirizzo 39

L’istruzione “show string” mostrerà sul display il testo incluso nel primo campo: “BBC micro:bit” che verrà scritto a partire dalla colonna 0 e riga 0 (in prima riga).

La seconda “show string” mostrerà sul display il testo “Italy” alla colonna 0 e riga 1 (in seconda riga):

Definiamo una nuova variabile che andremo successivamente ad incrementare:

assegnamo alla variabile il nome: contatore

All’interno della funzione “forever” inserire l’istruzione “change” per incrementare di una unità la variabile “contatore”.

Con l’istruzione “show number” visualizziamo sul display un numero, inserendo nel primo campo la variabile “contatore” il numero visualizzato sarà quello memorizzato nella variabile contatore:

La visualizzazione del numero contenuto in “contatore” avverrà in colonna 6 riga 1:

Aggiungendo una pausa di 1 secondo l’incremento del numero che appare sul display sarà di 1 secondo:

Questo il risultato:

Buon Coding a tutti 🙂

BBC micro:bit holder per 10 schede

Puntata n. 2 – Cronache estive
Pulizie di inizio estate

La scrivania straborda di appunti, relazioni, stampe 3D. La pila di vecchi compiti ed esercizi sovrastata dall’oscilloscopio usato come fermacarta. Afferro la pila di appunti e sento una fitta alla mano, come se 10 vespe si fossero accanite su di me, ovviamente nulla di così pericoloso, solamente i piedini appuntiti di un serie di circuiti integrati della famiglia 74XX riposti in una busta di carta e per qualche assurdo motivo collocati all’interno dei compiti…. maledette porte logiche! 🙂

Basta! Si svuota l’intero studio e si fa ordine!
La buona volontà viene minata dal figlio, che di fianco alla mia scrivania, occupato nella preparazione dell’orale di Fisica 1 al Politecnico, si lascia sfuggire sottovoce: “si si ci credo proprio”,

i figli “so piezz e core”.

Procediamo con ordine,
ho individuato la scatola che contiene i kit micro:bit si trova ancora nell’ingresso di casa nella medesima posizione lasciata più di 10 gg fa dopo l’ultima lezione che ho svolto presso una scuola di Torino.

Micro:bit in disordine, cavi usb sparpagliati, no! No non è modo!

Se Giovanna (moglie) rientra e la trova ancora li mi costringe a dare il bianco in tutta la casa.

Ma che bello sarebbe se le schede fossero tutte riposte ordinatamente allineate nella valigetta,
ecco che il “diavoletto perditempo” sta prendendo il sopravvento…
lo sapevo! Lo sapevo!

Quasi quasi mi invento qualcosa in 5 minuti per sistemare le mie schede.

Seduto alla scrivania, in compagnia di un bicchiere di acqua e limone con ghiaccio, incomincio a disegnare,
da qualche parte bisogna pur incominciare
e poi avrò il diritto di un momento di pausa?

Il diavoletto perditempo ha vinto! 🙂

Figlio: papàaaaa che stai a fà!
Io: pensa al tuo esame! Io mi sto rilassando!
Figlio: ma non avevi appena incominciato a mettere ordine?

e dopo 5 minuti di pausa, iterati 4 volte, ho generato questo semplice supporto per 10 schede micro:bit che condivido con voi su Thingiverse.

Ora vado a metter ordine 🙂

Buon Making a tutti.