Archivi categoria: programmazione

Avventure robotiche: ROB-O-COD

Ecco svelato l’arcano, avevo accennato su Facebook ma ora posso finalmente rispondere pubblicamente su queste pagine a quanti mi chiedevano cosa stessi combinando in tutti questi mesi con strani esagoni, robot Lego Mindstorms EV3 e draghi 🙂

ROB-O-COD è la riposta

Ora posso parlarne visto che la trasmissione è stata ufficialmente presentata ieri 1/1/19 pomeriggio durante il TG Leonardo, dal minuto 09:32 al minuto 12:55 è possibile guardare la il servizio su ROB-O-COD:

Da alcuni mesi sto collaborando con Rai e da alcune settimane partecipo alle registrazioni della trasmissione ROB-O-COD, primo game show televisivo italiano dedicato al coding e robotica, prodotto dalla Direzione Rai Ragazzi per il canale RAI Gulp per studenti di scuola media di tutt’Italia. l’USR Piemonte qualche mese fa aveva promosso la call per le scuole.

Nello specifico mi sto occupando della progettazione dei campi gara, immaginando percorsi e meccanismi che aggiungono gradi di difficoltà diversi, ovviamente tutto ciò fatto in stretta collaborazione con persone incredibilmente creative: centro Ricerche Rai, autori, scenografi e tantissime altri, un grande lavoro di squadra.
Inoltro sono di supporto ai giovanissimi programmatori che gareggiano.

La trasmissione andrà in onda da febbraio, nei pomeriggi, e tra qualche settimana saranno rese disponibili le date.

Coma già detto ad amici vedere giovani studenti così appassionati riempie il cuore, inoltre la trasmissione evidenzia come lo spirito di squadra è fondamentale per risolvere problemi ed imprevisti, vedere poi che tutto questo pensare e programmare viene svolto sui campi gara che ho contribuito a realizzare mi rende enormemente felice.

Dal punto di vista personale inoltre è una bella occasione per incontrare fisicamente i molti amici/colleghi conosciuti sui social con cui condivido esperienze didattiche, un modo per confrontarsi e per parlare di Coding.

Ovviamente è un mondo totalmente diverso da quello che vivo quotidianamente, osservare ed interagire nelle dinamiche di uno studio televisivo offre spunti interessantissmi per sviluppare contesti didattici e strategie di insegnamento.

Questa esperienza posso riassumerla con una sola frase: “mi sto divertendo da matti” 🙂

I miei corsi per La Tecnica della Scuola – il Coding con il nuovo Scratch 3: per una didattica attiva

Inaugurazione del ciclo dei webinar per il nuovo anno con un corso dedicato a Scratch 3 che uscirà dallo stato di beta version domani.

L’intera azione formativa sarà svolta utilizzando la nuova versione dell’ambiente di sviluppo, si analizzeranno in modo specifico le nuove funzionalità offerte:

  • Creare, condividere e remixare progetti su tablet (oltre che a laptop e desktop)
  • Modalità di gestione tra i numerosi sprite aggiunti, sfondi e suoni
  • Analisi del rinnovato editor per disegnare e manipolare l’audio, in cui è possibile con maggior libertà e semplicità effettuare il remix e manipolare i personaggi creati, musica e suoni
  • Utilizzo delle istruzioni per manipolare applicativi e hardware esterno con cui gli studenti potranno programmare dispositivi fisici come BBC micro:bit, Lego Mindstorms EV3, Lego WeDo 2.0, Lego Boost, ma anche servizi web come come Google Traduttore

Il corso ha l’obiettivo di fornire le competenze per sviluppare in autonomia un percorso laboratoriale di Coding per all’apprendimento dell’uso di Scratch 3 secondo modalità attive e inclusive attraverso la realizzazione di progetti di storytelling, giochi didattici ed esercizi interattivi.
Verranno fornite schede di lavoro, immediatamente spendibile in classe, che guideranno il docente alla sviluppo di esercitazioni con possibilità di personalizzazione in funzione delle esigenze didattiche.
Durante il corso verranno analizzate anche le precedenti versioni di Scratch 1.4 e Scratch 2.

Saranno svolti 4 incontri in webinar di 2 ore ciascuno per un totale di 10 ore di formazione:

  • Mercoledì 9 gennaio 2019 – Ore 17.00/19.00
  • Lunedì 21 gennaio 2019 – Ore 17.00/19.00
  • Martedì 22 gennaio 2019 – Ore 17.00/19.00
  • Lunedì 28 gennaio 2019 – Ore 17.00/19.00
  • Martedì 29 gennaio 2019 – Ore 17.00/19.00

Per maggiori informazioni sui contenuti, sulle modalità di iscrizioni e sui costi seguire il link allegato al sito di Tecnica della Scuola.

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 🙂

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 🙂

Fare coding a scuola con BBC micro:bit – seconda edizione


Parte domani la seconda edizione del corso sull’uso di BBC micro:bit a scuola che svolgerò per Tecnica della Scuola. Molte le novità introdotte in questa edizione, analizzeremo la nuova interfaccia di programmazione introdotta ufficialmente la  scorsa settimana, mostrerò le possibilità di programmazione del micro:bit offerte anche da altri ambienti di sviluppo che supportano micro:bit tra cui Scratch 3. Verranno dati suggerimenti per lo sviluppo di attività pratiche utilizzando anche altri dispositivi collegabili al micro:bit vedremo come, con semplici materiali di recupero è possibile implementare un semplice percorso di didattica della robotica.

Durante l’attività di formazione utilizzerò una nuova collezione di schede di lavoro, che si aggiungono a quelle proposte nel precedente corso, schede immediatamente spendibile in classe, utilizzabili per un percorso di Coding che potrete in piena libertà modificare ed espandere in funzione delle vostre esigenze.

Saranno svolti 4 incontri in webinar di 2 ore ciascuno per un totale di 8 ore di formazione:

  • Lunedì 5 novembre 2018 – Ore 17.00/19.00
  • Venerdì 9 novembre 2018 – Ore 17.00/19.00
  • Lunedì 12 novembre 2018 – Ore 17.00/19.00
  • Venerdì 16 novembre 2018 – Ore 17.00/19.00

Nel caso foste interessati è possibile ancora iscriversi, per maggiori informazioni sui contenuti e sulla modalità di iscrizione seguite il link sul sito di Tecnica della Scuola.