Archivi categoria: i miei allievi

BBC micro:bit – Disponibile Javascript Blocks in versione standalone per Windows 10

Disponibile la versione standalone per Windows 10 del Javascript Blocks.
Oltre alle funzioni già presenti nella versione on-line, molte le novità introdotte, tra le più importanti la possibilità di programmare il micro:bit via USB senza la necessità di dover trascinare il programma direttamente sul micro:bit inoltre disponibile la capacità di leggere dati dalla seriale, funzionalità interessantissima che sto provando in questo momento è quella della lettura via USB dei sensori o comandare da PC azioni sul micro:bit, ma vi saprò dire meglio nel breve.

Di seguito per completezza la procedura di installazione che segue i medesimi passi per qualsiasi app su Windows 10.

Selezionare: “Get it from Microsoft”

Click su “Ottieni”

Click su “Apri Microsoft Store”

Click su “Accedi”

Click su “Ottieni”

Vi verranno richiesti nome utente e password di accesso

Dopo l’immissione dei vostri dati si avvierà il download

Al termine si avvierà l’applicazione che potrete gestire allo stesso modo della versione on-line

La procedura di programmazione in Blocks o Javascript è la medesima

Un click su “Download” per trasferire direttamente il programma sul micro:bit

Buona sperimentazione 🙂

Errori comuni nell’uso di Arduino – confondere uguaglianza con assegnamento

Durante le attività di formazione e la correzione dei compiti dei miei studenti sull’uso di Arduino ho l’abitudine di documentare gli errori per poi segnalarli all’interno delle mie dispense. Poiché sto sistemando il percorso che svolgo nelle classi 3’ Automazioni presso l’ITIS G.B. Pininfarina di Moncalieri (To) incomincio a pubblicare su questo sito le brevi note collezionate nel mio Evernote, faranno parte di una lezione più ampia, ma ho necessità che vengano usate subito dai ragazzi. Quindi nei prossimi giorni ritroverete su questo sito piccole “pillole” che costituiranno qualcosa di più esteso a scuola e durante i corsi per gli adulti.

Errore: confondere uguaglianza con assegnamento

E’ probabilmente uno degli errori più frequenti, confondere in C l’operatore di assegnamento =  con quello di uguaglianza ==

Con le impostazioni di default dell’IDE Arduino, nella sezione Compiler warning, l’errore non verrà rilevato:

quindi nell’utilizzo di una istruzione if :

If (pippo = pluto)

In questo caso accadrà che il compilatore assegnerà il valore di pluto  a pippo , inoltre bisogna ricordare che in C il valore 0   viene utilizzato per indicare uno stato logico FALSO e qualsiasi altro numero viene utilizzato per identificare un valore VERO, pertanto se il valore di pippo  è diverso da 0 (perché pluto  diverso da 0), la condizione dell’if sarà sempre vera, quindi le istruzioni all’interno dell’if saranno sempre eseguite.

Provate ad eseguire lo sketch che segue, dovreste notare, che pur avendo usato l’operatore di assegnamento, la stringa: Stampo questo messaggio perché l’if è sempre vero  viene stampata sulla Serial Monitor:

int pippo;
int pluto = 1;


void setup() {
  Serial.begin(9600);
}

void loop() {
  if (pippo = pluto) {
    Serial.println("Stampo questo messaggio perché l'if è sempre vero");
  }
}

Allo stesso modo se provate ad eseguire lo sketch che segue, l’istruzione contenuta nell’if non verrà mai eseguita, mentre l’istruzione fuori dall’if sarà sempre eseguita:

int pippo;
int pluto = 0;


void setup() {
  Serial.begin(9600);
}

void loop() {
  if (pippo = pluto) {
    Serial.println("Stampo questo messaggio perché l'if è sempre vero");
  }
  Serial.println("Non eseguo le istruzioni dell'if perchè la condizione è sempre falsa");
}

Per avere una segnalazione da parte del compilatore, sempre dalle impostazioni, nella sezione Compiler warning, selezionate “All”:

Compilando nuovamente uno degli sketch proposti sopra potrete visualizzare il warning, ma ricordate che il programma verrà comunque eseguito:

Buona sperimentazione 🙂

Corso in presenza: Coding a scuola con BBC micro:bit

Ancora un altro corso sull’uso di BBC micro:bit questa volta in presenza a Torino presso il Laboratorio di Informatica dell’IIS Gobetti Marchesini Casale Arduino Via Figlie dei Militari, 25 Torino.

Gli argomenti svolti saranno i medesimi di quelli offerti per il corso in Webinar di Tecnica della Scuola, però con sperimentazioni pratiche “costruisci e programma”, tanta didattica della robotica, uso di micro:bit per effettuare sperimentazioni scientifiche ed utilizzo di micro:bit con altri linguaggi di programmazione.

Saranno ammessi uno/due docenti per Istituzione Scolastica fino ad esaurimento dei 15 posti disponibili.

L’elenco degli ammessi sarà pubblicato il 9/11/2018 sul sito http://www.necessitaeducativespeciali.it

Calendario degli incontri: 15/11, 22/11, 26/11, 28/11 dalle ore 15.00 alle 17.30

Il corso è gratuito.
Per le modalità di iscrizione seguire il link.

MicroPython – Python per microcontrollori – usarlo su BBC micro:bit – lezione 3

Disegnare immagini statiche è divertente, ma ancora più divertente è farle muovere e fare questo con MicroPython è molto semplice, è sufficiente indicare un elenco di immagini, in questa lezione vedremo come fare.

Per capire come animare una serie di immagini abbiamo necessità di utilizzare le liste.

Lista della spesa:

Uova
Prosciutto
Pomodori

Questo è il modo per rappresentare una lista in Python:

spesa = ["Uova", "Prosciutto", "Pomodori" ]

Abbiamo creato un elenco chiamato spesa   che contiene tre elementi. Python sa che è un elenco perché è racchiuso tra parentesi quadre ([  e ] ). Gli elementi nella lista sono separati da una virgola (, ) e in questo caso gli elementi sono tre stringhe di caratteri: “Uova”, “Prosciutto” e “Pomodori”. Sappiamo che sono stringhe di caratteri perché sono racchiusi tra virgolette .

Nota

I numeri non hanno bisogno di essere inseriti all’interno delle doppie virgolette, in quanto rappresentano un valore (piuttosto che una stringa di caratteri).

Quindi 2  senza virgolette rappresenta il valore numerico 2 mentre 2 tra virgolette “2”  rappresenta il carattere/cifra che rappresenta il numero 2.

È possibile memorizzare elementi di diverso tipo all’interno della stessa lista:

lista_mista = [“ciao!”, 1.234, Image.HAPPY]

Notate che l’ultimo elemento è un’immagine!

E’ possibile dire a MicroPython di animare un elenco di immagini. Fortunatamente sono disponibili un paio di elenchi di immagini già integrate, si chiamano Image.ALL_CLOCKS  e Image.ALL_ARROWS :

from microbit import *

display.show(Image.ALL_CLOCKS, loop=True, delay=100)

Verrà visualizzata una lancetta che girerà in senso orario, l’intervallo di accensione dei tre LED è di 100 millisecondi.

Come abbiamo visto per la visualizzazione di una sola immagine usiamo display.show  per mostrarlo sul display del micro:bit. Quando diciamo a MicroPython di usare Image.ALL_CLOCKS  ci verranno mostrate in sequenza tutte le immagini della lista, inoltre nell’istruzione con il parametro loop=True  indichiamo che la lista delle immagini deve scorrere per sempre e con l’argomento delay=100  indichiamo che ogni immagine deve essere visualizzata per 100 millisecondi (1/10 di secondo).

  • Avete capito come animare la lista Image.ALL_ARROWS  ?
  • Come si evita il loop infinito?
    (suggerimento: l’opposto di True  è False  sebbene il valore predefinito per loop sia False )
  • Potete cambiare la velocità dell’animazione?

Vediamo come creare un’animazione di un’esplosione di luci, una sequenza che parte con l’accensione del LED centrale per espandersi verso il perimetro con differenti intensità luminose dei LED

from microbit import *

luce1 = Image("00000:"
"00000:"
"00900:"
"00000:"
"00000")

luce2 = Image("00000:"
"09990:"
"09590:"
"09990:"
"00000")

luce3 = Image("00000:"
"05550:"
"05350:"
"05550:"
"00000")

luce4 = Image("09590:"
"93339:"
"93039:"
"93339:"
"09590")

luce5 = Image("03330:"
"30003:"
"30003:"
"30003:"
"03330")

luce6 = Image("00000:"
"00000:"
"00000:"
"00000:"
"00000")

luci = [luce1, luce2, luce3, luce4, luce5, luce6]
display.show(luci, delay=200)

 

Questo è il modo con cui funziona il programma:

  • creiamo sei immagini luce  nello stesso modo descritto sopra.
  • Poi le inseriamo tutte in una lista chiamata luci .
  • Infine chiedo a display.show  di animare la lista con un ritardo di 200 millisecondi.
  • Poiché non abbiamo impostato loop=True  vedremo l’animazione una sola volta.

Proviamo ora a creare una sequenza che si ripete ciclicamente, in questo caso sarà sufficiente inserire il codice all’interno di un blocco while

from microbit import *

ritardo=100

luce1 = Image("00000:"
"00000:"
"00900:"
"00000:"
"00000")

luce2 = Image("00000:"
"09990:"
"09590:"
"09990:"
"00000")

luce3 = Image("00000:"
"05550:"
"05350:"
"05550:"
"00000")

luce4 = Image("09590:"
"93339:"
"93039:"
"93339:"
"09590")

luce5 = Image("03330:"
"30003:"
"30003:"
"30003:"
"03330")

luce6 = Image("00000:"
"00000:"
"00000:"
"00000:"
"00000")

luci = [luce1, luce2, luce3, luce4, luce5, luce6]

while True:
    display.show(luci, delay=ritardo)

Come si nota è stato inserito all’interno di un loop infinito: while True  l’istruzione display.show(luci, delay=ritardo) . Rispetto alla versione precedente è stata anche parametrizzato il valore del delay , inserito come parametro ritardo  all’inizio del codice, ciò permetterà di variare ad inizio programma la velocità con cui apparirà la sequenza delle sei immagini.

L’esempio riportato sopra ripeterà ad ogni ciclo la sequenza delle immagini da luce1  a luce6 , nel caso in cui si voglia dare un’effetto di ribalzo sarà sufficiente creare due collezioni luciA  e luciB  i cui la sequenza delle immagini è invertita:

from microbit import *

ritardo=100

luce1 = Image("00000:"
"00000:"
"00900:"
"00000:"
"00000")

luce2 = Image("00000:"
"09990:"
"09590:"
"09990:"
"00000")

luce3 = Image("00000:"
"05550:"
"05350:"
"05550:"
"00000")

luce4 = Image("09590:"
"93339:"
"93039:"
"93339:"
"09590")

luce5 = Image("03330:"
"30003:"
"30003:"
"30003:"
"03330")

luce6 = Image("00000:"
"00000:"
"00000:"
"00000:"
"00000")

luciA = [luce1, luce2, luce3, luce4, luce5, luce6]
luciB = [luce6, luce5, luce4, luce3, luce2, luce1]

while True:
    display.show(luciA, delay=ritardo)
    display.show(luciB, delay=ritardo)

Per avere una struttura compatta del codice, così come mostrato in precedenza, il codice può essere scritto in questo modo:

from microbit import *

ritardo=100

luce1 = Image("00000:00000:00900:00000:00000")
luce2 = Image("00000:09990:09590:09990:00000")
luce3 = Image("00000:05550:05350:05550:00000")
luce4 = Image("09590:93339:93039:93339:09590")
luce5 = Image("03330:30003:30003:30003:03330")
luce6 = Image("00000:00000:00000:00000:00000")

luciA = [luce1, luce2, luce3, luce4, luce5, luce6]
luciB = [luce6, luce5, luce4, luce3, luce2, luce1]

while True:
    display.show(luciA, delay=ritardo)
    display.show(luciB, delay=ritardo)

Buon Coding a tutti 🙂

L’ITIS Pininfarina alla 6° edizione del Festival dell’Innovazione e della Scienza.

L’edizione del Festival dell’Innovazione e della Scienza, che si svolge dal 14 al 21 di ottobre ha come focus: “pensa alla salute”.

Il calendario ricco ed articolato testimonia come la rassegna sia ormai diventata una delle più importanti del territorio nazionale a livello di divulgazione scientifica. Il record di presenze dello scorso anno testimonia come il Festival sia un vero e proprio motore di promozione del territorio. L’edizione 2018 consolida e rafforza le collaborazioni strette in area metropolitana rendendo protagonisti del Festival i comuni di Torino, Caselle Torinese, Castiglione Torinese, Collegno, Grugliasco, Leinì, Moncalieri, Nichelino, Rivoli e San Mauro Torinese.
Dal 14 al 21 ottobre, nella città di Settimo Torinese e nei principali luoghi di aggregazione culturale degli altri comuni coinvolti andrà in scena un programma ricchissimo di incontri, caffè scientifici, eventi, exhibit e laboratori finalizzati ad affrontare e valorizzare a tutto tondo le tematiche e i trend più attuali relativi al tema della salute. Dal corpo all’ambiente, dall’alimentazione alla medicina senza dimenticare lo sport, la prevenzione e il benessere della persona.

Anche quest’anno l’ITIS Pininfarina parteciperà al festival nella giornata del 20 di ottobre con attività condotte da un gruppo di allievi di ogni specializzazione dell’istituto che saranno tutor per gli studenti di scuola media.
Io e l’amico Stefano Mercurio abbiamo la fortuna di essere gli insegnanti degli studenti del Pininfarina e coordineremo le attività.

I laboratori svolti dai nostri studenti metteranno in evidenza come la scuola possa diventare un laboratorio aperto, in cui la creatività dei singoli allievi possa esprimersi, un luogo in cui l’aggregazione e il vivere bene insieme favorisce l’apprendimento e la voglia di essere cittadini attivi.

Luogo

BIBLIOTECA ARCHIMEDE
Piazza Campidoglio 50

Settimo Torinese

Il programma

Due attività di Coding

Attività 1

Mattina dalle 10 alle 12
Titolo: Arduino primi circuiti
Descrizione: Gli studenti insegnano ai bambini a realizzare semplici circuiti con Arduino

Attività 2

Pomeriggio dalle 14 alle 16,30
Titolo: Coding a scuola con BBC micro:bit
Descrizione: Attività di Coding e Making con BBC micro:bit, un piccolo computer (4×5 cm), la piattaforma è ideale per lo sviluppo di attività di Coding con forte interazioni con il mondo reale.

All’interno dell’attività 2 sono previste due azioni

Attività 1: Coding con micro:bit e gare robotiche di caccia al tesore e sumo.
Attività 2: Montaggio ed esposizione di robot e sistemi di automazione realizzati con Arduino. Gare robotiche sumo.

La partecipazione  è gratuita ed è possibile prenotarsi fino ad esaurimento posti attraverso il form allegato.

Vi aspettiamo 🙂