
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

Salve a tutti!! credo questo sia il mio primo commento dopo tanto leggere e devo fare proprio i complimenti a tutto lo staff!!!
Avrei tante cose di cui parlare ma mi limito solamente a ringraziarvi per la vostra esuastivita nello scrivere e la tempestività con cui ci portate a conoscienza delle novita. Un buon Natale a tutti voi.
Complimenti accettati molto volentieri, sono la nostra benzina 🙂
Buon Natale anche a te e…. fatti sentire nei commenti, viviamo in un mondo dove siamo a costretti a subirci passivamente le informazioni (news o tecniche che siano) ma qui sul blog invece i commenti (opinioni/idee etc.) degli utenti non solo sono possibili, ma anche fondamentali 😉
Wow, non conoscevo questo mondo e devo dire che questo articolo, sicuramente ben scritto, lo ha reso senza dubbio affascinante. Ti faccio i miei complimenti.
Concordo pienamente e rilancio: il vostro feedback è la fonte del miglioramento di una realtà come questa che è più di chi legge che di chi scrive 😀
Auguri a te e a voi tutti 🙂
Complimenti per il progetto!
Una sola cosa: datemi una buona ragione per usare Mizar32 al posto delle oramai numerosissime SK embedded con ARM, e non solo. Da Raspberry PI a Arduino YUM etc.. etc..
Non è una “provocazione”, tutt’altro. E’ proprio un invito ad aiutare chi vuole far qualcosa ma, ovviamente, NON PUO’ PROVARE TUTTE le SK sul mercato; tutte simili e tutte diverse.. E poi, IMPORTANTISSIMO:
Un felice Natale e un Buon inizio d’anno a TUTTI noi quì sul forum
Ciao
Facendo prima di tutti i complementi ad Alberto per l’ottimo articolo, e poi con l’associazione catanese no profit SimpleMachines che ha creato la scheda Mizar32
Non posso però che essere in sintonia con quanto dice darkstar55.
Effettivamente ultimamente stanno nascendo molte schede, oltre a quelle da lui citate, devo aggiungere la scheda Galileo della Intel
http://arduino.cc/en/ArduinoCertified/IntelGalileo
Oppure la prossima Arduino Tre
http://arduino.cc/en/Main/ArduinoBoardTre
Queste si andranno ad aggiungere al già affollato mondo di schede, e credo che quelle che riusciranno a sopravvivere saranno quelle per cui sarà disponibile una più ampia base di esempi di applicazione cui trarre spunto.
Perciò spero, essendo questo un progetto italiano, che la diffusione della scheda sia il più ampio possibile.
Un saluto e Buon Anno
Adriano
Faccio replica al tema sollevato ad Adriano e darkstar55.
Intel Galileo credo sia un ottimo segno di come anche il colosso Intel abbia fatto un device che segue il flusso.
Ma non si deve temere di innovare per avere piu` presenza di mercato anche partendo da posizioni molto differenti. La diversita` nel Free sofware e nei progetti hardware a specifiche libere e` una preziosa risorsa per tutti. Oggi molti progetti fanno uso di risorse libere o di parti di esse. Se fossimo tutti blu non ci riconosceremmo uno con l`altro e i nostri figli sarebbero uguali a noi, non ci sarebbe evoluzione aspetando che una madre sola ne faccia un miliardo alla volta e tutti uguali.
Non vedo una vera competizione tra il bacino dei progetti a specifiche aperte essendo le persone coinvolte piu` abituate alla collaborazione. E` sufficiente credo una discreta accettazione e che le cose arrivino dove devono arrivare. Oggi internet rende questo possibile a tutti, non ha importanza come ci si arrivi se con i soldi di tutti col crowdfunding, se con un milione di dollari dietro o con 100 euro, tramite un no profit sconosciuto o tramite la Intel. Ovvio fa piacere che Arduino che e` un progetto italiano abbia Intel come clienti oggi e riconosciuto il suo form factor libero e il suo Brand apprezzato anche da Intel.
Detto questo ci sono alternative valide in tutti e tre i settori, 8 bit , 32 bit MCU e 32 bit CPU embedded dove gira GNU/Linux. Il Raspberry PI magari si pensa che abbia e avra` piu` penetrazione di quasiasi altro device nella terza classe che ho specificato ma non si conosce esattamente il futuro, questo non possiamo saperlo. Quindi perche` non provare Arduino 3 se tutti hanno il Raspberry PI?
Lo stesso raffronto vale in piccolo per Mizar32.
Si puo` fare un raffronto diverso ma complementare anche con i linguaggi di programmazione, prima si usava l`assembler, poi il C poi il codice C a oggetti, ora (dopo venti e piu` anni dall`introduzione) si parla di linguaggi funzionali avanzati e chi ci lavora gia` da tempo da per morta la programmazione a oggetti. Ovvio che siano una minorita` i programmatori in Lisp, Scheme o Haskell ma se non c`e un seme non ci sara` mai nessuna pianta e nessun albero, quindi nessuna foresta. Forse le cose piu` belle si evolvono lentamente?
La mia opinione e` che non c`e una cosa che e` la migliore, ogni cosa e` adatta piu` o meno a quello che si deve fare con essa e deve esse compatibile (richedendo studi e sacrifici anche se alla fine piacevoli) con il proprio percorso di crescita.
Sulla carenza di esempi, devo darvi ragione, noi cerchiamo infatti di documentare tutto al meglio, lo abbiamo fatto col nostro libro gratuito, prima in Lua e ora negli altri linguaggi supportati da Alcor6L, nelle tecniche di base e di uso di ogni periferica. Ma vi posso assicurare che e` solo un piacere per il programmatore embedded anche alle prime armi trasportare qualcosa scritta per un linguaggio in un altro, se lo facessimo girare cosi` com`e` un esempio, che piacere e apprendimento ci sarebbe?
Un augurio ai frequentatori di EOS.
Sergio
Ragazzi, sto provando a collegare via USB la board per fare le prime prove con i led direttamente su SD ma non viene riconosciuta. Ho installato l’IDE ma nulla. Forse sono impedito io e non riesco a capire come collegarla, ma qualcuno sa qualcosa? 😀