Archivi tag: ide

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 🙂

Programmare una scheda Arduino con l’Arduino Web Editor

Dedico questo articolo ai miei nuovi studenti di 3B Automazione (ITIS G.B. Pininfarina di Moncalieri) con cui ho incominciato a spiegare l’utilizzo di Arduino. Le prime lezioni come sempre sono dedicate all’analisi della scheda elettronica, dei componenti presenti su di essa, al funzione del microcontrollore e primi esercizi di programmazione, cercando di trovare soluzioni divertenti, pensate per le loro competenze di elettrotecnica ed elettronica, quindi semplice accensione di LED per la creazione di modellini di impianti semaforici stampati in 3D in modo da prendere pratico con l’uso dei pin I/O digitali di Arduino.

Parallelamente sto mostrando i diversi ambienti di programmazione e simulazione della scheda. Nelle prime lezioni usiamo l’IDE Arduino standard caricato sui vari PC, ma utilizzeremo anche la versione più pratica e sempre aggiornata dell’Arduino Web Editor versione on-line dell’IDE Arduino.
Ma perché pensare di adottare questa soluzione a scuola?
Banalmente per avere sempre con se, in qualsiasi momento, su qualsiasi computer gli sketch sviluppati.

Il tutorial che segue mostra una procedura guidata relativamente semplice, ma come sempre preferisco non dare mai nulla per scontato, soprattutto con i giovanissimi studenti che incominciano il percorso di Automazione, quindi condurre per mano nel primo mese di scuola in modo che siano poi autonomi e liberi di sperimentare anche a casa.

E’ possibile accedere  all’Arduino Web Editor dalla home page del sito www.arduino.cc: “software > online tools” giungerete alla home page di Arduino Create

oppure direttamente seguendo il link: create.arduino.cc

Su questa pagina selezionate: Arduino Web Editor

Sarete reindirizzati in una pagina di login in cui dovrete inserire nome utente e password, se non avete mai effettuato la registrazione sul sito Arduino procedete come indicato nell’immagine che segue, facendo click su: “CREATE A NEW ACCOUNT”

Continua a leggere

STM 32 Nucleo – Supporto Arduino Core

E’ da tempo che mi ero ripromesso di utilizzare le schede STM32 Nucleo, desideravo svilupparne alcuni moduli didattici, ma la mia attenzione era rivolta verso altre tecnologie, fortunatamente l’incontro dell’amico Giuseppe Treccarichi e la chiacchierata con gli ingegneri di ST (molto gentili e disponibili) durante la recente MakerFaire di Roma mi hanno convinto che spiegare anche l’uso di STM 32 Nucleo può essere un valore aggiunto per i miei allievi, pertanto mi sto dedicando da qualche giorno alla realizzazione di lezioni sull’uso di queste schede.

La linea ST32 Nucleo è ormai sul mercato da lungo tempo, venne presentata nel 2014, però recentemente ST ha reso disponibile l’Arduino Core ST32 che permette la programmazione di diverse schede ST32 Nucleo mediante l’IDE di Arduino, inoltre il processore a 32 bit, le velocità elevate (nella versione da me posseduta un Cortex-M4 a 85 MHz), il basso costo (circa 10 Euro) la rendono una piattaforma estremamente interessante per i miei studenti.
Le varie schede disponibili, di cui trovate una grafica nell’immagine che segue, supportano comunicazioni di tipo: SPI, I2C, USB-OTG, CAN, UART.

Come si evince dall’immagine possiamo distinguere 3 serie:

  • Serie L: Ultra low power a 32 pin
  • Serie F fino a F3: Mainstream da 32 a 64 pin
  • Serie F4 fino a F7: High performance con processore che va dagli 85 Mhz ai 216 Mhz da 64 a 144 pin

ST mette a disposizione diverse shield con molte funzionalità: controllo motori, WiFi, Bluetooth LE, RFID, GPS, sensori di prossimità e molto altro. Di seguito link alla pagina di riferimento delle ST Exspansion Board Continua a leggere

Costruiri un personalissimo IDE web per Arduino sviluppato in Python e Flask

Alcune volte mi domando come trovaresoluzioni nuove per insegnare a programmare e questa volta ci ha pensato l’amico Ludovico Russo, amicodiavventure robotiche 🙂 , che miha regalato una nuova soluzione che senza alcun dubbio da usare a scuola evi invito fortemente a sperimentare. Vi assicuro che seguendo passo passo il suo tutorial, 30 minuti massimo, sarete in grado di creare il vostro IDE web per Arduino.

Ludovico mi ha detto che sta sviluppando il progettoe pi avanti render disponibile una nuova versione, ma se avevate necessit di imparare a programmare in Python e Flask allora questo tutorial vi dar un buon motivo.

Riprendo dal suo sito:


L’idea di base era quella di sviluppare un semplice IDE web per Arduino, che mi permettesse di sviluppare codice su un Arduino direttamente connesso ad un Raspberry Pi (ormai sapete che utilizzo tantissimo entrambi questi Hardware), ma senza la scomodit di dover utilizzare direttamente l’interfaccia grafica del Raspberry Pi per programmare.

Se volete saperne di pi seguite il link: Un IDE web Arduino sviluppato in Python e Flask

Buona sperimentazione a tutti 🙂

compilation

DotBot – avanzamento lavori e sviluppi futuri

Scrivo questo post perché ho ricevuto molte mail in cui mi si chiedeva dove reperire ed acquistare i materiali e quali saranno i futuri sviluppi del progetto, ho raccolto le principali domande che mi sono state poste. Ricordo prima di ogni cosa che il progetto sviluppato da me Michele Maffucci e l’amico Ludovico Russo è assolutamente open sia nella struttura che nelle parti software.

  1. Quali sono gli obiettivi del progetto?
    L’obiettivo principale del progetto è l’insegnamento del coding per ogni grado di istruzione, sono in progetto software e modifiche di struttura a DotBot (anche diverse dall’attuale forma esagonale) pensate per la scuola elementare, media superiore ed università.
  2. Da quante persone è costituito il gruppo di lavoro?
    I fondatori del progetto sono:
    Michele Maffucci, insegnate di scuola superiore e per ora mi sono occupato dello sviluppo della struttura meccanica e implementazione codice per Arduino.
    Ludovico Russo dottorando presso il Politecnico di Torino e si occupa di Robotica e formazione all’interno del Politecnico ed attualmente è concentrato sullo sviluppo software dell’IDE di programmazione in ROS di DotBot. Al gruppo di lavoro si aggiungeranno studenti delle scuole superiori, insegnanti della secondaria di secondo grado e studenti universitari che ci aiuteranno nello sviluppo delle varie parti della piattaforma.
  3. Sono previste modalità di programmazione alla “Scratch” di DotBot?
    Sì, abbiamo implementato una prerelease ancora in alfa, non appena riusciremo ad entrare in versione beta verrà resa pubblica.
  4. Vorrei modificare la struttura di DotBot, posso farlo?
    Assolutamente Sì, ti chiediamo solamente di citare il progetto DotBot nei documenti che produrrai e renderai pubblici.
  5. Vorrei acquistare DotBot con tutti i componenti elettronici, come posso fare?
    Nel prossimo futuro sì. Siamo insegnanti e non ci siamo mai occupati di vendita, quindi stiamo valutando una forma semplice per permettervi di acquistare DotBot. Prossimamente verrà aperto un sito per raccogliere le richieste e permetterci di valutare la modalità più semplice e veloce per fornire DotBot.
  6. Ma dietro a questa azione di formazione si nasconde una forma di business?
    Non nascondiamo nulla, come puoi vedere su questo sito esiste un campo di donazione che mi permette di mantenere questo servizio (dominio, banda usata, tempo, ecc…) e continuare la mia attività di divulgazione che viene fatta per passione e per amore del mio mestiere. Alla stesso modo per portare avanti un progetto di divulgazione scientifica come DotBot sono necessari investimenti in materiali (elettronica, materiale per la stampa 3D, tempo per lo sviluppo, ecc…), quindi sì chi lo vorrà potrà sostenere il progetto con donazione o acquistando i materiali. Secondo noi questo è l’unico modo per portare avanti un progetto di tale entità.
  7. Vorrei usare DotBot nella mia scuola/università attività di formazione all’interno di un CoderDojo, posso farlo?
    Sì, è l’obiettivo principale del progetto, ti chiediamo se possibile di inviarci documentazione (fotografie, filmati, relazione, ecc…) in modo che noi lo si possa mettere in evidenza sul futuro sito dedicato.
  8. Potete fornirci la lista dei materiali elettronici da acquistare?
    Sì, nel breve forniremo la lista dei materiali consigliati che potrete acquistare da chi vorrete.
  9. Vorrei usare DotBot in attività di formazione a pagamento, posso farlo?
    Sì, ti chiediamo di citare il progetto, con link al sito di riferimento di DotBot, per ora, visto che il sito è in costruzione ti chiedo di fare riferimento a questo sito.
  10. Posso vendere DotBot?
    No.
  11. Pensate di dare supporto software per pilotare DotBot?
    Sì, l’obiettivo è quello di implementare una serie di tutorial da cui partire e permettere alla comunità di migliorare quanto da noi proposto e sviluppare altro software.
  12. Esiste un forum di discussione dove chiedere supporto su DotBot?
    Non ancora, nel breve ne verrà aperto uno. Inoltre l’intenzione è quella di implementare una comunità su cui condividere risorse e scaricare liberamente tutti i sorgenti.
  13. Esistono scuole/università che stanno usando DotBot?
    Il progetto è appena nato, poco più di un mese, ma è stato già utilizzato in beta in attività di formazione in alcune scuole superiori, FabLab, e nel breve sarà usato all’università, pubblicheremo lista degli enti che adottano DotBot.
  14. L’uso di schede elettroniche è però un po’ complicato per bambini di scuola elementare, consigli comunque l’uso di DotBot?
    Abbiamo sperimentato l’uso di DotBot con alcuni allievi, motivati, di scuola media è si riesce a predisporre lezioni coinvolgenti. Per quanto riguarda gli allievi di scuola elementare l’idea è quella di implementare una struttura alla “lego” fatta di moduli funzionali, in cui l’elettronica è nascosta e l’allievo assembla e programma il robot con una filosofia molto simile alla programmazione a blocchi di Scratch, questa fase è stata implementata con un prototipo a cui è stato aggiunto un display oled e altoparlante che permette di implementare messaggi emozionali (esperssioni di un viso), di dimensioni ridotte, comandato con una modalità simile al Bee-Bot, si veda la pre-release nelle immagini allegate a questo post.
  15. Esiste un legame tra il progetto DotBot ed EduRobot?
    Sono progetti paralleli, EduRobot ha l’obiettivo di semplificare al minimo i costi di implementazione per sviluppare una didattica della robotica, DotBot è da intendersi come un “forking project” di EduRobot, ma il progetto EduRobot non verrà abbandonato.

Momentaneamente, verrà aperto su questo sito una sezione (accessibile con bottone in colonna destra) dove reperire tutte le informazioni pubblicate su DotBot.

Entro la prossima settimana verrà resa pubblica la versione 2 del telaio di DotBot a cui sono state fatte alcune modifiche elencate di seguito con dettagli fotografici:

  • struttura per motori passo passo 28BYJ-48
  • struttura per motori passo passo NEMA 17
  • struttura servo motori a rotazione continua (360°) questo per consentire a chi lo vorrà di non utilizzare uno shield motori aggiuntivo risparmiando sulle spese per l’acquisto dell’elettronica.
  • sostituzione dei supporti esagonali metallici da 25 mm con struttura stampata in 3D con fori in ogni direzione in modo da avere un elemento multifunzionale per aggancio di altre strutture, questa modifica ha permesso una riduzione dei costi su viti e dadi e l’aumento della velocità di assemblaggio.
  • Variazioni delle basi di appoggio con fori per: alloggiamenti nuovi motori, sensori per implementare segui linea, passaggio cavi, fissaggio per tutte le tipologie di motori, facilitazione per assemblaggio, predisposizione per terzo livello di DotBot dove poter alloggiare ulteriori elementi (schede elettroniche, adattamenti estetici, ecc…)

Alla nuova versione, con la nuova tipologia di motori, verranno resi pubblici esempi di programmazione.

DotBot-01

DotBot-02

DotBot-03

DotBot-04

Alfa version per studio di fattibilità pensato per bambini di scuola elementare, nella versione successiva i componenti elettronici saranno rinchiusi all’interno di involucri che il bambino assemblerà in modo simile ai mattoncini lego:

pre-release-DotBot-mini-01

pre-release-DotBot-mini-02

pre-release-DotBot-mini-03