Home Digital World Un’estate Firmata da Arduino

Un’estate Firmata da Arduino

by Psydis
Firmata

Firmata è un protocollo pensato per permettere la comunicazione tra un microcontrollore ed un software su un computer. Il protocollo è abbastanza generico da poter essere implementato sul firmware di qualsiasi microcontrollore e sul software di un qualsiasi computer. E’già implementato in Arduino ed è disponibile su tantissimi linguaggi di programmazione, come Python o javascript in Node … e ovviamente C#.

Grazie al framework Universal Windows Platform e Windows Remote Arduino Experience è possibile facilmente creare una piccola app per qualsiasi componente che supporti Window 10: dai PC, ai Surface, fino ai Raspberry!

Ed è per “colpa” di Luca Sacchi Ricciardi, complice anche un libro su Arduino preso in biblioteca, se di colpo ho rallentato lo studio del C per i microcontrollori elementari, in favore di un protocollo semplice e leggero che può essere montato su un Atmega328p. Tutto è infatti iniziato con un particolare emulatore Raspberry per PC che mi ha segnalato!

Ho lanciato l’app di prova ed anche compilato un piccolo codice per fare accendere e spegnere tre led, inserendo anche la lettura di un LDR analogico. Tutto molto bello, ma dovrei spendere davvero troppo tempo dietro ai nuovi concetti di formattazione della GUI che seguono tutti gli standard e canoni XAML. Sicuramente pian piano potrei anche integrare questi concetti, ma al momento preferisco seguire una via grafica più semplice e concentrarmi sul codice C#.

Mi sto quindi concentrando su alcune soluzioni classiche che mi permettano di usare la modalità console o Framework, mantenendo la stabilità dello StandardFirmata di Arduino mediante librerie open source trovate su Github. Vi sono alcune vie di mezzo, ma nulla che mi dia la possibilità di partire con il piede giusto per fare piccoli progetti sensati senza dovermi limitare a semplici istruzioni di lettura e scrittura di PIN, perchè in realtà la potenza del Firmata si dovrebbe vedere proprio espandendo le sue possibilità mediante l’interconnessione trasparente con attuatori e sensori di terze parti.

Il problema più grande al momento è che una delle soluzioni migliori omette la possibilità di inviare un messaggio Sysex personalizzato che possa essere implementato anche nello sketch di Arduino, accrescendo il codice del microcontrollore che ha fisiologicamente una memoria limitata. Quello che mi servirebbe è la possibilità di spedire un semplice dato esadecimale per sfruttare il ciclo dei comandi esistenti, permettendo ad un ciclo di intercettarlo insieme a quelli predefiniti.

Sembra che esista anche una fork del progetto che sfrutti addirittura Core 3.1, ma al momento ho avuto alcuni problemi a compilarla dovendo gestire nella stessa solution di Visual Studio sia Core, che Framework che .Net Standard 2.0 che non permette l’utilizzo di alcuni utili variazioni della versione 8.0 di C#. Per far coesistere tutte e tre gli ambienti e poter sviluppare multi piattaforma occorre mantenere i limiti imposti da Microsoft almeno fino alla versione ufficiale 5.0 di Core.

Quindi tra una simulazione su Proteus e lo studio dei microcontrollori, sto valutando le migliori soluzioni implementative con il protocollo Firmata lottando nel contempo per riuscire a compilare la vecchia documentazione, oltretutto imprecisa e incompleta, con Sandcastle che è attualmente incompatibile con Core, provando a migrarla in Doxygen. Una volta avuta la documentazione e creata la DLL partirà la sperimentazione vera e propria.

In attesa dello stage, sarà un lunga estate Firmata da Arduino e C#!

 

 

0 comment
0

You may also like

Leave a Comment