Durante l’introduzione al corso avevo segnalato che il micro:bit è dotato di una bussola elettronica, vediamo quindi in questa lezione come rilevare i punti cardinali: Nord, Sud, Est ed Ovest facendo apparire rispettivamente le lettere: N, S, E, O in funzione di come verrà ruotata la scheda. Per far ciò utilizzeremo l’istruzione “IF condizione THEN istruzioni ELSE altre_istruzioni”
Per rendere semplice la realizzazione del programma limiterò l’individuazione dei punti cardinali ad un intervallo di gradi, selezionerò settori di 90° in cui farò corrispondere:
da 0° a 45° individuerò il Nord
da 45° a 135° individuerò l’Est
da 135° a 225° individuerò il Sud
da 225° a 315° individuerò l’Ovest
da 315° a 360° individuerò ancora il Nord
Il controllo della posizione del micro:bit avverrà usando 4 istruzioni annidate “IF condizione THEN istruzione ELSE istruzione”
Inseriremo la totalità delle istruzioni all’interno dell’istruzione “forever” in modo che si abbia un controllo continuo della posizione della bussola. Dal menù “Basic” trasciniamo l’istruzione “forever” nell’area di programmazione
Dal menù “Variables” creiamo una nuova variabile “angolo”, così come avete imparato nelle lezioni precedenti, la variabile la utilizzeremo per memorizzare l’angolo di rotazione della scheda rispetto al logo superiore, con la scheda parallela al suolo
Trascinate all’interno dell’istruzione “forever” l’istruzione “set to” ed impostiamo come variabile “angolo”
Per rilevare l’angolo di rotazione abbiamo necessità della funzione: “direzione bussola (°)” che si trova nella sezione “Ingressi”
La funzione restituisce l’angolo di rotazione che verrà assegnata alla variabile “angolo” e il valore in esso memorizzato sarà utilizzato per visualizzare il punto cardinale.
Dalla gruppo “Logica” selezionare l’istruzione “SE condizione ALLORA istruzione ALTRIMENTI istruzione” e trascinatela al di sotto dell’istruzione “imposta”
L’istruzione IF verrà eseguita se la condizione logica che segue è verificata, nel nostro caso l’istruzione logica da verificare è se “angolo” è minore di 45°, pertanto dalla sezione “Logic” trasciniamo l’istruzione che permette questo controllo
Il controllo dovrà essere fatto tra il valore memorizzato nella variabile “angolo” e 45°, nel caso la condizione risulti vera, sul display dovrà comparire la lettera “N” altrimenti (THEN) nel caso in cui il confronto logico non fosse vero bisognerà verificare se la scheda è ruotata di un angolo diverso
Proseguendo allo stesso modo per il controllo degli altri punti cardinale, si otterrà
Lascio a voi come proposta di esercizio il perfezionamento per rendere più precisa l’indicazione del punto cardinale, ad esempio potreste aggiungere anche le indicazioni per il Nord-Est, Sud-Est, Sud-Ovest e Nord-Ovest.
Per simulare il funzionamento di questo programma sul simulatore Microsoft, osservate bene il logo di Microbit. Esso diventerà infatti “ago” che potrete ruotare
Altra cosa importante
Se hai appena caricato il programma sul tuo microbit ma non funziona leggi con attenzione:
micro:bit possiede un magnetometro interno che permette di utilizzarlo come bussola e al primo utilizzo questa bussola deve essere calibrata in modo che la lettura dei valori risulti precisa. Quando carichi un programma che fa uso della bussola il micro:bit farà comparire prima il messaggio ‘DRAW A CIRCLE’ o ‘TILT TO FILL SCREEN’ sullo schermo, tieni il micro:bit in orizzontale e poi inclinalo in modo da completare il riempimento del cerchio o dell’intero schermo, dopo aver eseguito questa operazione il programma verrà eseguito.
Una spiegazione estesa sulla calibrazione del micro:bit la trovi al seguente link: https://support.microbit.org/support/solutions/articles/19000008874-calibrating-the-micro-bit-compass-what-does-it-mean-when-the-micro-bit-says-draw-a-circle-or-tilt
Realizzare un programma che permette, una volta che la scheda è stata puntata verso il NORD magnetico la rilevazione dello spostamento destra/sinistra
Lo svolgimento di questo esercizio è simile al precedente con la differenza che il controllo della temperatura viene effettuato con una istruzione “if condizione then istruzione” in cui non è presente l’alternativa else. Per evidenziare un messaggio di avvertimento, nel caso la temperatura superi i 20° C, viene utilizzata l’istruzione “for..do” che dato una variabile indice che varia da 0 a 4 ripete per 4 volte le istruzioni contenute all’interno del “do“, che nell’esempio è stato realizzato con la visualizzazione di due immagini che appaiono a distanza di mezzo secondo.
Realizzare un programma che permette di rilevare la rotazione e l’inclinazione, nel caso non venga rilevato nessun movimento visualizzare una linea orizzontale piatta, nel caso venga rilevato un movimento visualizzare un simbolo che identifica un’onda