Archivi tag: coding

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


Scratch 3: dallo storytelling all’interazione con il mondo reale.
Nuova edizione del corso su Scratch 3 che condurrò a partire dalla prossima settimana per 4 lezioni da due ore nelle seguenti date:

  • Lunedì 20 gennaio 2020 – Ore 17.00/19.00
  • Lunedì 27 gennaio 2020 – Ore 17.00/19.00
  • Mercoledì 29 gennaio 2020 – Ore 17.00/19.00
  • Venerdì 31 gennaio 2020 – Ore 17.00/19.00

Sempre numerose sono le richieste che fanno riferimento all’uso di BBC micro:bit e Lego Mindstorms EV3 con Scratch 3 pertanto mostrerò un numero superiori di attività didattiche laboratoriali che fanno uso di questi dispositivi. Tante le richieste in cui mi si chiede di mostrare attività di robotica da sviluppare con Scratch 3 ed alcune fanno esplicito riferimento alla costruzione di dinamiche di gara simili a quelle di ROB-O-COD, però sviluppando un percorso di Coding con Scratch 3 che conduce come fase conclusiva alla realizzazione di un contesto di gara simile a quello che viene svolto nella trasmissione di Rai Ragazzi, pertanto mostrerò come, dal mio punto di vista ciò possa essere realizzato a scuola.
Se siete curiosi vi rimando al link su Rai Play della stagione 1 della trasmissione. In queste settimana si stanno svolgendo le registrazioni della stagione 2 e come per la precedente edizione mi sto occupando della progettazione dei campi gara e del supporto tecnico in trasmissione.

Per maggiori informazioni sui contenuti del corso e sulle modalità di iscrizione vi rimando al sito di Tecnica della Scuola.

Programmare Arduino con Platform IO

L’IDE di programmazione Arduino è notoriamente semplice da utilizzare, possiede le funzionalità minime per poter scrivere, compilare e caricare sulla scheda il codice prodotto, però le operazioni messe a disposizione sono minime e solamente nella versione che è stata presentata durante la scorsa MakerFaire di Roma, di cui avevo dato notizia in un precedente post, sono state aggiunte una serie di funzionalità di editing che tendono a farlo diventare un editor di programmazione professionale.
Attualmente il nuovo IDE è ancora in versione Beta quindi si dovrà attendere qualche tempo.
Esistono molti ambienti di sviluppo professionali che aggiungono modalità di autocompletamento, facile accesso ad ogni parte del codice, numerose scorciatoie da tastiera. Tra gli abbienti più diffusi che farò sicuramente utilizzare ai miei studenti vi è Visual Studio Code di Microsoft che con l’estensione Platform IO, sviluppato in Python, fornisce un set di strumenti di nuova generazione per lo sviluppo di sistemi embedded in C / C ++. L’estensione è gratuita ed Open Source.
Le schede supportate sono moltissime, ad oggi sono 769, tra cui ESP32, ESP8266, schede della famiglia ST Nucleo e tutte le schede della famiglia Arduino.
Platform IO può essere eseguito su Windows, Mac e Linux e su piccoli computer basati su architettura ARM come: Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK, ecc. Platform IO viene fornito con numerosi esempi e librerie.

Vantaggi

  • completamento automatico del codice C / C ++
  • Smart Code Linter che non è presente nell’IDE Arduino.
  • Supporto del tema scuro e chiaro
  • Smart Code Navigations
  • Formattazione del Codice
  • Cross-platform build system indipendente dal sistema operativo
  • File Explorer che aiuta organizzare i file.
  • Comodo gestore delle librerie, Serial Monitor evoluto e molto altro.

L’uso di PlatformIO è molto semplice e richiede pochi passaggi per l’installazione.

Installazione

Dal sito di riferimento: https://platformio.org/

far click su “install PlatformIO Now”

Sarete reindirizzati sulla pagina di riferimento di PlatfprmIO IDE

Prelevare Visual Studio Code facendo click su “Install for VSCode”, sarete reindirizzati sulla pagina di riferimento. Selezionate il sistema operativo del vostro computer e fate click su Download:

Durante il download sarete reindirizzati su una pagina che mostra le caratteristiche principali di VSCCode

Non sono necessarie installazioni, è sufficiente un doppio click per avviare l’applicazione:

Selezionate l’icona Extensions (5’ icona)

Inserite nel campo di ricerca Platform IO e troverete immediatamente l’estensione, come potete immediatamente notare VSCode può essere utilizzato per programmare anche in altri linguaggi: C/C++, C#, Python, PHP, Go, JavaScript, TypeScript, Node.js e molti altri.

Click su Install per installare l’estensione.

La fase di installazione durerà qualche minuto ed in questa fase non chiudete la finestra.

Sulla destra della finestra apparirà un messaggio che vi avverte che l’installazione è andata a buon fine, fate click su “Reload Now”

Quando l’installazione è terminata vedrete la seguente interfaccia:

Vi consiglio di riavviare VS Code Editor dopo l’installazione di Platform IO.

Ciò completa la fase di installazione di Platform IO ed è pronto per essere usato.

Realizziamo il primo Sketch ed inizieremo con il solito Blink che scriveremo all’interno di Platform IO.

Fate click su “+ New Project”

Apparirà una finestra in cui dovrete inserire il nome del programma, nel mio caso ho scelto: “blink-PIO”, selezionate poi il tipo di scheda, noterete che mentre scrivete il nome della scheda vi verrà fornito il suggerimento per il completamento, selezionate Arduino Uno, il campo “Framework” viene completato automaticamente:

Il progetto necessita di qualche secondo, giusto il tempo per creare risorse e dipendenze file.

Al termine apparirà la pagina di riferimento del progetto:

Nella struttura ad albero che compare sulla sinistra della finestra selezionate: src e successivamente main.cpp sulla destra vedrete un sketch pronto con le funzioni setup() e loop() vuoti:

Si noti che PlatformIO non ha l’accesso predefinito alle librerie Arduino, quindi ogni volta che si scrive il codice per Arduino bisogna includere sempre all’inizio dello sketch la libreria Arduino.h

#include<Arduino.h>

Incominciate a scrivere il codice, noterete immediatamente la comparsa del menù di autocompletamento:

Nella parte sinistra della finestra, nella sezione “OUTLINE” potrete spostarvi immediatamente tra le funzioni presenti nel codice:

Procediamo ora alla compilazione del codice: fate click su “PlatformIO: Build” al fondo della finestra (fascia azzurra)

Nella parte bassa della finestra trovate le funzioni: Build, Upload, Upload to Remote Device, Clean, Test, Run Task, Serial Monitor, New Terminal inoltre avete anche icone che vi mostrano: warning ed errori.

Procediamo ora alla compilazione e al trasferimento sulla scheda. Collegate la vostra scheda al computer, il riconoscimento della scheda è automatico:

Click su “PlatformIO: Upload” per trasferire il programma sulla scheda.

Se tutto è stato eseguito correttamente il LED L sulla scheda incomincerà a lampeggiare.

Buon Coding a tutti 🙂

La rinascita del Lego Mindstorms NXT 2.0 – programmiamolo in C

Di recente ho scoperto che nella scuola presso cui lavoro sono presenti una serie di Lego Minstroms NXT 2 e come credo sappiate questa versione non può essere più programmata utilizzando l’ultima versione dall’IDE grafico di Lego, quello che attualmente viene utilizzato per per la versione EV3.
In questi giorni ho ripreso in mano la vecchia versione del mattoncino per capire come recuperarlo ed utilizzarlo in ambito didattico. In passati articoli su questo blog avevo segnalato tutti i possibili linguaggi di programmazione che possono essere utilizzati con tutte le versioni di Mindstorms, tra questi però prediligo il linguaggio C in quanto i miei allievi devono utilizzarlo in altri ambiti: microcontrollori, PIC ecc… quindi un primo passo potrebbe essere quello di imparare a programmare in C realizzando robot con l’NXT 2.

Premessa importante.

On-line trovate una serie di tutorial per usare il vecchio mattoncino, alcuni consigliano di utilizzare addirittura Windows XP su un vecchio PC o su PC virtualizzato, ovvimente io sconsiglio vivamente questa strategia soprattutto perchè da anni Microsoft non supporta più XP ed inoltre mina seriamente la sicurezza del computer (virus).

Prelevate dal link indicato di seguito l’ultima versione dell’NXT-G rilasciata dalla Lego al cui interno sarà già presente il driver corretto per il vostro sistema operativo Windows 10, driver che per altro sarà indispensabili per chi intende anche programmare in C il mattoncino. Nello stesso link trovate i riferimenti per gli utenti MacOS X.

Nel caso abbiate sul vostro computer una versione precedente dell’NXT-G non più funzionate potete procedere alla sola installazione del driver NXT Fantom Driver che risolve una serie di problemi di comunicazione, inoltre questo driver permetterà di sistemare tutti i problemi che si hanno con altri ambienti di sviluppo come: LejOS, RobotC, ecc…

Pagina di riferimento per il download

Windows 10

MacOSX

Veniamo ora all’ambiente di sviluppo in C.
Vi consiglio di utilizzare Bricx Command Center (BricxCC) ambiente Open Source adatto per tutte le versioni Mindstorms: RCX, NXT ed EV3. L’IDE di programmazione funziona per tutte le versioni di Window a 64 bit.

Nella pagina trovate il link “latest version” che NON dovete prendere in considerazione in quanto vi rimanda ad una serie di versioni NON compatibili con Windows 10.

SEGUITE invece il link test release, il nome è fuorviante, ma è quello giusto.

Dopo una serie di test ho verificato che la versione corretta è quella che fa riferimento al file: bricxcc_setup_33810_20130220.exe

E’ un file autoscompattante, all’interno ritroverete la seguente struttura:

Doppio click sul file BricxCC

Comparirà la finestra “Find Brick”

Queste le impostazioni:

Port: Automatic
Brick Type: NXT
Firmware: “Standard”

Nel caso abbiate la necessità di caricare l’ultima versione del Firmware sul mattoncino potete procedere in due modi:

Modo 1 (consigliato): utilizzate NXT-G ed aggiornate il firmware

Modo 2: da BricxCC, menù Tools > Download Firmware selezionate l’ultima versione che trovate nella cartella BricxCC: lms_arm_nbcnxc_132.rfw

Per quanto riguarda le impostazioni dell’ambiente BricxCC dal menù: Edit > Preferences…

Queste le impostazioni del pannello: Compiler > NBC/NXC

Bene! Il vostro vecchio mattoncino NXT 2 è rinato 🙂 pronto per realizzare tutti i robot che desiderate.

Buon Coding a tutti 🙂

Arduino Pro IDE

Siamo sulla A1 direzione Milano e poi Torino, pilota al comando l’amico Ludovico Russo, con lui e le rispettive mogli abbiamo vissuto una giornata full immersion alla Maker Faire Europe Edition Rome 2019.

Ne approfitto di questo cambio al comando 🙂 per scrivere una breve recensione tratta dal post del sito Arduino e da quanto abbiamo vissuto in diretta io e Ludovico durante il talk di ieri 19/10 di Massimo Banzi.

Dettagli e funzionalità delle nuove schede Arduino nano di cui in luglio avevo dato notizia su questo sito e che ho ricevuto nel mese di settembre, favorevolmente colpito dalla versione Arduino Nano BLE Sense. Prezzi più bassi e performance nettamente superiori.

La notizia che ha entusiasmato tutti i presenti è stato l’annuncio del nuovo Arduino Pro IDE rilasciato in versione Alfa. Nelle funzionalità ricorda Visual Studio Code.

Con il nuovo IDE sono possibili due modalità operative:

  • Modalità Classica (identico all’ambiente classico che conosciamo tutti da circa 15 anni)
  • Modalità Pro che permette la vista del File System.

Rinnovamenti evidenti e funzionalmente più pratici di:

  • Board Manager
  • Library Manager
  • Lista schede
  • Auto completamento del codice (solo per processori ARM)
  • Serial Monitor
  • Modalità Dark dell’interfaccia

Aggiunte nuovo possibilità:

  • Sincronizzazione degli Sketch Arduino Create Editor
  • Debugger (non attiva per ora nella versione alfa)
  • Possibilità di utilizzare plug-in di terze parti
  • Supporto ad altri linguaggi di programmazione oltre al C++

Il nuovo IDE è basato sulle tecnologie:

  • Arduino CLI funzionante in modalità daemon permette di gestire al meglio tutte le nuove funzionalità del nuovo IDE.
  • Il frontend è basato su Eclipse Theia Open Source IDE.
  • Electron, un framework inserito all’interno di Eclipse Theia, mette a disposizione tutte le tecnologie web in ambiente desktop.

La nuova versione è disponibile per Windows, Mac OS X e Linux64.

Non appena verrà superata la versione Alfa dell’IDE verranno resi disponibili anche i sorgenti.

Per il Download seguire i link:

Per maggiori informazioni e lista di bug seguire il seguente link:

https://github.com/arduino/arduino-pro-ide/issues

Buon Making a tutti 🙂

Coding a scuola con BBC micro: scatolotto:bit

Condivido la scheda di lavoro per la realizzazione di un’attività di Coding con micro:bit che utilizzo durante i miei corsi di formazione per scuole medie ed elementari e durante la formazione per docenti. L’attività è stata sperimentata con allievi di quarta elementare. Attualmente sono in fase di preparazione schede di lavoro per studenti di 3′ media in cui scatolotto:bit diventa sensibile al tocco ciò viene realizzato mediante l’utilizzo di nastro di rame adesivo e inchiostro conduttivo.

L’obiettivo dell’attività è quello di utilizzare come sistema di input il giroscopio e l’accelerometro della scheda.

OBIETTIVO: realizziamo il nostro primo robot con una scatola e facciamolo reagire alle sollecitazioni esterne

PASSO 1

Cancellare l’istruzione forever trascinandola sulla sezioni istruzioni oppure click con tasto destro sull’istruzione e successivamente “Delete Block”

PASSO 2

Dalla sezione Basic selezionare l’istruzione “show leds” trascinatela nell’area di programma all’interno del blocco “on start” e disegnate una faccina che ride:

PASSO 3

Dalla sezione Input selezionare l’istruzione “on shake” e trascinatela nell’area di programma

PASSO 4

Dupilcate quattro volte l’istruzione “on shake” e dal menù a discesa selezionate: “logo down”, “screen up”, “logo up”, “free fall” ed inserite all’interno di ciascuna il disegno di un quadrato, di una faccina triste, di una faccina indifferente, una faccina che ride ed un quadrato grande, così come appare nelle immagini che seguono:

PASSO 5

Fate click su Download per trasferire il programma sul micro:bit

PASSO 6

Inserite il micro:bit all’interno di una scatola e per rendere più stabile il tutto, con dello scotch fissate la batteria ed il microbit come indicato nell’immagine, fate attenzione a non incollare lo scotch sopra la scheda

PASSO 7

Collegate la batteria al micro:bit e provate a muovere il vostro piccolo robot. Ricordate di personalizzare il robot con colori oppure incollando oggetti, potreste ad esempio aggiungere delle braccia e delle gambe, oppure realizzare dei capelli con del filo di lana.

PASSO 8

Aggiungiamo la funzione che aggiunge una faccina triste rivolta a destra e a sinistra quando il robot viene ruotato di 90° a destra o a sinistra. Al programma precedente aggiungere le istruzioni:

Programma completo

Proposte di esercizio

Prerequisiti

Aggiungere un piccolo altoparlante, in alternativa le cuffie del cellulare e collegarlo come riportato nell’immagine che segue tra il contatto 0 e il contatto GND del micro:bit

Esercizi

  • Far emettere una melodia musicale quando si avvia il micro:bit
  • Far emettere una nota musicale diversa per ogni posizione del micro:bit

Suggerimento

Per rendere più agevole l’utilizzo in classe, allego questa scheda di lavoro impaginata in formato PDF.

scheda di lavoro – scatoletta:bit (PDF)

Buon Coding a tutti 🙂