Mizar32, la scheda interattiva dei sistemi embedded

005_mizar_stacking

Nell’ambito dei sistemi embedded l’attenzione si pone su Mizar32, la scheda interattiva che raggiunge un elevato livello d’innovazione per aprirsi al mercato mondiale. A distinguerla da altri prodotti la possibilità di programmazione in diversi linguaggi (lua, lisp, C, BASIC, Scheme e Forth), la semplicità di utilizzo, la potenza del microcontrollore AVR32 a 32 bit e una capacità RAM di 32 MB, ma soprattutto l’opportunità di effettuare programmazione interattiva ed incrementale attraverso un potente editor, IDE GO@ (Goat), punto di congiunzione tra hardware e software (emulatore di terminale, dfu-programmer, eccettera). Mizar32 è un prodotto ideato dalla SimpleMachines, associazione no profit che sviluppa hardware e software libero di utilità sociale.

La storia dell'informatica ci insegna che le innovazioni tecnologiche nascono sempre da grandi idee. Queste, però, devono essere accessibili a tutti. Una visione, già divenuta in parte realtà, che potrebbe portare ad una rivoluzione del settore embedded si cela dietro il progetto della scheda Mizar32, nato dall'associazione catanese no profit SimpleMachines, il cui obiettivo è quello di diffondere l'hardware e il software libero. Questa bella premessa ha condotto il team di SimpleMachines alla realizzazione della sopracitata piattaforma hardware a 32 bit, il cui nome, in persiano antico, fa riferimento ad una stella binaria del firmamento avente il significato di "cavallo". Mizar32 è una delle poche board nella sua area di attuazione, quella dei sistemi embedded (sistemi elettronici concepiti per una determinata applicazione), a permettere un rapido sviluppo software ed una prototipizzazione veloce per conseguire nel ristretto tempo di giorni ciò che, avvalendosi di altri metodi (compilatori C, toolchain e nell'hardware varie componenti difficili da saldare), sarebbe possibile soltanto in mesi. «Mizar32 è stata una delle prime soluzioni di prototipizzazione rapida (RAD) a 32 bit, quando ancora le uniche disponibili erano solamente le 8 bit, come nel caso della "Arduino"» spiega Sergio Sorrenti, presidente della SimpleMachines, poi continua: «Questa piattaforma hardware nasce con installato all'interno un software libero, facilmente modificabile, da utilizzare sia per gli sviluppatori che per gli hobbisti. Permette di conseguire in pochi giorni soluzioni che hardware e software tradizionali a 32 bit permetterebbero di realizzare soltanto in mesi. La specialità di questa scheda è, infatti, la presenza di 32 MB di RAM, il che la rende il punto di partenza ideale per firmware con uso intensivo di RAM che agiscono da interpreti interattivi dei linguaggi di programmazione più comuni.» Alcor6L, che prende anch'esso il nome da una stella del firmamento e che, tradotto dal persiano, indica "cavaliere", è il software collocato in Mizar32. Si tratta di un fork (processo di diramazione da un esistente progetto a codice aperto) multilinguaggio di eLua (linguaggio di programmazione Lua dinamico per il mondo embedded), in grado di regalare allo sviluppatore il controllo diretto sull'hardware e sulle periferiche supportate da quest'ultimo, celandone le sottostanti complessità. Alcor6L consente, come essenziale novità rispetto al progetto madre, di programmare oltre che in Lua, in C o Lisp e sono in via di sviluppo BASIC, Scheme e Forth; tuttavia, è oltremodo fattibile riprogrammare la memoria flash di cui dispone Mizar32 con altri linguaggi di scripting o con varianti del firmware eLua. Antonio Cingolani, vice presidente della SimpleMachines, ci tiene a sottolineare che «questa scheda in realtà serve per aggirare i problemi di programmazione. Se per esempio bisogna progettare una componente meccanica, la quale richiede anche una parte software, quest'ultima può essere gestita da Mizar32 in modo semplice ed intuitivo. Se hai un'idea, affrontando un qualunque nuovo progetto, Mizar32 diminuisce drasticamente il tempo che occorre per la stesura o la realizzazione di un programma comunemente sviluppato attraverso i microcontrollori (evoluzione alternativa dei microprocessori, utilizzata soprattutto per i sistemi embedded).»

«Il microcontrollore della scheda è un AVR 32 bit a 66MHz – specifica Eduardo Iacona, tesoriere dell'associazione – capace di discostarsi da ciò che è disponibile nello scenario della progettazione attuale, grazie alla sua interattività e alle abbondanti dotazioni di memoria. La nostra associazione ambisce, per questo motivo, a porsi come faro dell'innovazione dei sistemi embedded. Mizar32 ne è orgogliosamente un primo passo» conclude Iacona. Difatti, la scheda costituirebbe un passo in avanti anche solo per l'opportunità di sommare oltre l'hardware di base in dotazione (SDRAM da 32 MB, bus per le periferiche a 96 pin, porta USB e slot per la scheda micro SD) moduli aggiuntivi, come ad esempio una scheda VGA con coprocessore Parallax Propeller a 8 core ed Ethernet-RTC, porte seriali RS232, un display LCD a caratteri, un modulo wireless 6LoWPAN con supporto di batterie verdi a litio-ferro-fosfato LiFePo4 (di imminente rilascio) e protoboards SMD e PHT; tutte componenti di tipo "stacked", ossia sovrapponibili alla scheda di base. I programmi da eseguire possono essere semplici files contenuti nella SD card o nella memoria flash del microcontrollore. Essi possono essere file di testo includenti il programma o per esigenza di maggior velocità precompilati in bytecode (da eseguire nella virtual machine). Alla gestione dei programmi concorre anche l’IDE GO@, l'editor innovativo per sistemi embedded, creato dallo sviluppatore Nunzio Raciti: «"The Goat IDE" vuole essere il punto di congiunzione tra hardware e software, in grado di unire le caratteristiche di specifici strumenti software per l'hardware (emulatore di terminale, dfu-programmer, ecc.) con un potente ed altamente personalizzabile IDE (Integrated Development Environment). Goat include, quindi, la capacità di connettersi con la scheda hardware (semplicemente attraverso la porta USB) ottenendo il prompt dei comandi di Mizar32 dentro una finestra figlia ed è capace di inviare i file, senza intermediari, nella SD card di MIzar32. Possiede, inoltre, caratteristiche addizionali tipiche di ambienti IDE blasonati come "l'evidenziazione della sintassi", il "code folding" e il "completamento del codice" basato sullo stesso linguaggio usato da Mizar32.» Sempre Raciti racconta, poi, com’è nata l’idea della scheda e a chi doveva essere rivolta: «Quando quattro anni fa abbiamo avuto l’idea di realizzare Mizar32 avevo in mente una missione ben precisa: permettere all’aspirante sviluppatore o a quello esperto di muoversi facilmente nel mondo dei microcontrollori a 32 bit, come se fossero a 8 bit. Era necessario, quindi, eliminare la necessità di un hardware spesso costoso per la programmazione ed inoltre serviva usare un linguaggio semplice e potente, senza l’esigenza di compilare e aspettare i tempi di programmazione.» Nell’ambito della pubblica illuminazione e della innovazione ed integrazione hardware lanciate da Mizar32, in qualità di segretario della SimpleMachines, è intervenuto l’esperto programmatore ed ingegnere Gaetano Di Stefano: «Mizar32 è un prodotto realizzato in due versioni: A con 512 KB e B con 256 KB di flash memory, utilissima per lo sviluppo delle applicazioni. Definite queste ultime ed effettuando su esse le ottimizzazioni possibili e necessarie, spesso si perviene alla possibilità di sfruttare la versione C con soli 128 KB di flash; Mizar32 C, infatti, è stato creato appositamente per i produttori hardware e l'utilizzo in massa dentro altri dispositivi. Ciò consente una riorganizzazione delle componenti fisiche a prezzi incredibilmente bassi. SimpleMachines utilizza, inoltre, Mizar32 C all'interno del progetto “SpiralCity §” che prevede l’istituzione di una rete mesh wireless con nodi posizionati all'interno di corpi illuminanti a LED ed utilizzati per la pubblica illuminazione. Mizar32 avrà, a ragione di ciò, compiti speciali come riuscire ad interfacciarsi con sensori composti per monitorare la qualità dell'aria per esempio o occuparsi della sottostante automazione che regola e relaziona le parti elettroniche della città.» È d'obbligo constatare che Mizar32, grazie alla notevole versatilità, dotazione RAM, potenza e flessibilità del microcontrollore, capacità del software, possibilità di integrazione hardware, oltre ai costi contenuti e alla semplicità d'utilizzo, sia una piattaforma realmente interessante e innovativa per chi, con un minimo di esperienza, ama programmare in modo conciso, elegante e rapido.

Il "cavallo" a 32 bit della SimpleMachines è un hardware, ma anche un software, libero destinato ai piccoli produttori interessati ad immettere nuove tecnologie sul mercato. La specificità della scheda risiede, quindi, nel vantaggio di effettuare test costruendo mediante questa veri e propri prototipi di ciò che s'intende progettare e realizzare nella branca dell'informatica riguardante i sistemi embedded, ma evitando i tipici e lunghi cicli di preparazione e sperimentazione. Per la divulgazione di Mizar32, la SimpleMachines ha redatto per chiunque voglia leggerla una guida gratuita in inglese denominata Mizar32-Quick-Start-Guide, reperibile a questo indirizzo. Della guida è naturalmente scaricabile il modello PDF da stampare in formato A4. Il libro spiega, per mezzo di esempi applicativi in ambiente Lua, la struttura dell'hardware e riporta tutte le periferiche del chip AVR32. «Mizar32 è un potente single-board computer» riassume il programmatore volontario più attivo sul progetto Alcor6L, Raman Gopalan, che si sofferma per spiegare in dettaglio l’originale concezione dell’intero progetto: «L’aspetto più bello e interessante è che ogni parte del computer può essere hackerata; è libero. “Free as in Freedom”. Me ne sono innamorato la prima volta che l’ho usato. Potrei dire che è un computer davvero unico, esattamente come un eccellente album di rock progressivo. I calcolatori possono rispondere ad istruzioni scritte in ogni linguaggio di programmazione; il progetto Alcor6L, iniziato dalla SimpleMachines, mostra esattamente questa versatilità e fornisce vari strumenti per svolgere la programmazione in modo interattivo ed incrementale. Il software si può sviluppare con una diversità consistente di linguaggi di programmazione. Immaginate, quindi, di poter scrivere un programma in Lisp per mezzo di un computer come Mizar32 per controllare una saldatrice! Alcor6L supporta, attualmente, Lua (acquisito da eLua; Alcor6L è infatti un suo fork), Lisp (utilizzando il potente dialetto informatico PicoLisp e PicoC) ed un interprete C che gira direttamente a contatto con l’hardware (bare metal). Non siamo lontani dal poter dire che presto verrà supportato in Alcor6L anche Scheme, BASIC e Forth; ma tutto ciò e solo l’inizio. Credo che la combinazione di Mizar32 ed Alcor6L sarà, in sostanza, di grande aiuto per le persone che operano nell’ambito dei sistemi embedded – siano essi studenti, hobbisti o professionisti. Si tratta di un sistema informatico veramente emozionante.» Mizar32 non ha soltanto una generosa dotazione di RAM per un sistema gestito da un microcontrollore, ma grazie a emBLOD (embedded bootloader), ideato su e per Mizar32 dallo sviluppatore volontario svedese Marcus Jansson, si può far risiedere il firmware in esecuzione, di solito contenuto nella flash del microcontrollore, nella SDRAM esterna, caricandolo in pochi secondi all’avvio da SD card. Questo permette l’esecuzione di firmware di oltre 30 MB teorici, naturalmente dovendo sopportare il sacrificio di avere maggior lentezza rispetto all’utilizzo di SRAM interna al microcontrollore e di minor capacità. Mizar32 viene anche usato come sistema embedded di un progetto più grande, SpiralCity §, la città intelligente che va incontro alle necessità dei cittadini, cioè la futura smart city, realizzata interamente con hardware e software libero. Nel perseguimento di questo e altri obiettivi, SimpleMachines rilascia pertanto a sorgenti specifiche o aperte (come ogni suo prodotto) l'hardware di Mizar32 sotto licenza CERN, il software sotto licenza MIT e GPL, mentre la documentazione relativa è rilasciata sotto licenza GFDL (GNU Free Documentation License). La SimpleMachines invita i programmatori di tutto il mondo a partecipare ai suoi progetti software e alla stesura dei dettagli di quelli hardware di prossima uscita. Mira ad acquisire nuovi membri e a far crescere l'associazione in maniera ramificata sui principi che la legano: l'etica hacker, la libertà, l'innovazione e l'utilità sociale. Per maggiori informazioni è consigliabile visitare il sito simplemachines.it o contattare i responsabili del progetto via e-mail.

Alberto Molino

STAMPA     Tags:, , , , , , , ,

8 Comments

  1. adrirobot adrirobot 31 dicembre 2013
  2. CristianPadovano 17 gennaio 2014
  3. ivob 21 dicembre 2013
  4. Emanuele 21 dicembre 2013
  5. Tiziano.Pigliacelli Tiziano.Pigliacelli 21 dicembre 2013
  6. Piero Boccadoro Piero Boccadoro 22 dicembre 2013
  7. Sergio.Sorrenti 4 gennaio 2014
  8. darkstar55 22 dicembre 2013

Leave a Reply