Archivi tag: code

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 🙂

I genitori che insegnano ai propri figli a programmare

E’ fantastico come i figli, ma anche gli allievi ti diano motivo di studio e spesso questa azione giustificata da un deficit dovuto ad una carenza del nostro sistema scuolache va ad una velocit certamente inferiore a quanto svolto in altri stati europei. E’ interessante ad esempio come “l’onda del coding” in Italia sia giunto circa una paio di anni dopo agli Stati Uniti e all’Inghilterra, ora il motto : “W la programmazione” 🙂 basta pensare ad esempio a quello che sta succedendo con micro::bit(che avr la fortuna di usare nelle prossime settimane)nella scuola inglese cosa credo “fantascientifica” da noi,ma in ogni caso nulla di male, l’importante agire per i nostri allievi e cercare sistemi di innovazione didattica che possano pi agevolmente inserirlinel mondo del lavoro.Come genitore spessissimo cerco di “raffinare” quanto gi svolto dai miei figli a scuolee come ogni genitori cerco di aggiungere elementi, a mio avviso essenziali,che per carenze “strutturali”non vengono svolte a scuola.
Mi capita molto spessodi confrontarmi con amici genitori che chiedono i consigli pi disparati:il migliorIstituto in cui iscrivere il figlio, il miglior indirizzo di studio o ancora lamentele o elogi sul tal collega o su un metodo didattico, insommami sento un po’ il parafulmine della situazione e caricato di responsabilit in quantoparliamo del futuro di bambini e ragazzi, ma in ogni caso anche se faticoso, il confronto utile e permette di migliorarti, bello poi quando ricevi mail come quella di Francesco Lacchia, che con il suo contributo attivo cerca di donare ai propri figli, ma anche ad altri qualcosa di pi.

Questa la sua e-mail in merito all’articolo Insegnare ai bambini a programmare:

Mi sto documentando per insegnare un po’ di programmazione ai miei bambini (8-10 anni).

In merito al tuo articolo in oggetto, ho tradotto l’info-grafica in allegato. Se vuoi inserirla nel tuo articolo per chi non ha dimestichezza con l’inglese… e forse proprio chi avrebbe bisogno di essere edotto su questi temi, spesso anche a digiuno di inglese.

Purtroppo vedo che anche molto del materiale interattivo che si trova on-line arriva da oltreoceano e non ha versioni in italiano. Questo un po’ un limite per i bambini italiani. Infatti mi piacerebbe creare un sito per insegnare questi temi ai bambini… ma solo un’idea embrionale… si vedr. Intanto quest’estate metter sotto Sara e Andro come cavie 🙂

Ciao e grazie per tutto il tuo materiale, le idee che fornisci ed induci!

Francesco

Un sincero grazie a Francesco.

Questa l’infografica (un click sull’immagine sul linko sull’immagine per aprire la versione completa).

insegnare-ai-bambini-a-programmare-small

Risorse per fare coding a scuola: Google Computer Science Education

google-CS-education

Google ha appena lanciato un nuovo sito dedicato al mondo scuola: Google Computer Science Education una collezione di risorse e applicativi gratuiti per ogni livello di scuola che a mio avviso dovrebbe essere presa in seria considerazione da tutti i colleghi che intendono realizzare percorsi di coding con i propri allievi.

Allinterno troverete programmi di apprendimento e tool noti come: Blockly, Blockly Games, Coder e Pencil Code e proprio su questultimo vi consiglio di consultare le risorse e il manuale che oltre ad essere un libro uno splendido corso di coding, quindi se necessitate di un percorso didattico gi pronto per voi e i vostri allievi Pencil Code pu essere una buona soluzione.

Oltre ad imparare l’informatica, anche possibile utilizzare questo portale per esplorare le opportunit di borse di studio oppure dal link: Access Career Opportunities verificare le opportunit di lavoro offerte da Google.

Buon lavoro 🙂

Corso di Scratch – Lezione 2

Nel pomeriggio del 16/4 svolgerò la seconda lezione del corso di Scratch.

In questa lezione mostrerò come realizzare un semplice gioco con lo scopo di vedere nel dettaglio come muovere gli sprite sullo stage, come fare interagire gli sprite tra loro, come inviare messaggi tra script diversi, utilizzo di variabili e approfondimento sul controllo di flusso.

In allegato le slide che utilizzerò durante la lezione.

Ho ricevuto in questi giorni diverse mail da utenti che mi chiedevano le soluzioni agli esercizi allegati al fondo di ogni presentazione. Le pubblicherò sicuramente, ma a causa dei miei numerosi impegni a scuola e in corsi di formazione non riesco ad essere celere, perdonate, pian pianino riuscirò.

Risposte ad alcune richieste giuntemi via mail

Domanda
Posso usare nei miei corsi le tue slide?

Risposta
Assolutamente sì, per la didattica liberi di farne ciò che volete.

Domanda
Realizzerai un corso specifico per allievi con bisogni specifici?

Risposta
E’ già realizzato, ma ho necessità di apportare alcune modifiche in quanto dalla sperimentazione ho notato che l’approccio deve essere differenziato in modo opportuno.
Pubblicherò tutto nel corso dell’anno.

Domanda
Potresti realizzare una serie di esercizi che possiamo utilizzare in classe?

Risposta
Sì incomincerò con la soluzione agli esercizi di questo corso. Trovate comunque tantissimo sul sito di riferimento di Scratch.

Domanda
Pensi che i nuovi docenti debbano saper usare Scratch?

Risposta
In generale non solo per i nuovi. Scratch è uno strumento che ritengo utile per insegnare a pensare, in altro modo permette di realizzare attività che vanno sotto il nome di tinkering, quindi, sì è tra gli strumenti che metterei nel “kit degli strumenti del docente”, ma non è il solo.
Giusto per sfatare alcuni miti: “non si diventa più intelligenti se si usa il coding”, ma certamente è uno degli strumenti che può aiutare nell’insegnare a strutturare un pensiero critico ed analitico.

Come sempre grazie a tutti.
Un caro saluto.

Corso di Scratch – Lezione 1

Lo scorso giovedì è partito il corso di programmazione Scratch che si svilupperà in 4 lezioni a cui stanno partecipando insegnanti di ogni ordine e grado.

Il corso intende fornire le competenze di base per insegnare a programmare in modo creativo e mostrare come l’insegnamento dell’informatica possa diventare una strategia per insegnare a progettare il proprio apprendimento e risolvere problemi.

Il corso è un’introduzione alla programmazione con Scratch e le slide della prima lezione sono un’espansione di quanto già implementato con: “Micro Corso di Scratch” sviluppato lo scorso anno.

Tutte le risorse e le soluzione agli esercizi saranno pubblicate su queste pagine ed ulteriori esercizi saranno resi disponibili ai docenti iscritti al corso all’interno dell’aula virtuale predisposta su Edmodo.

Le sperimentazioni giungeranno anche all’interazione dei propri programmi con il mondo reale mediante Arduino, MaKey MaKey, LEGO WeDo e PicoBoard.

Nei prossimi mesi realizzerò un corso indirizzato alla programmazione di Arduino mediante Scratch, un sistema che adottai negli scorsi anni per rendere più semplice l’utilizzo di Arduino per gli studenti più giovani.
Nello specifico verranno realizzati robot programmati mediante Scratch.

In allegato le slide della prima lezione.