Archimede è uno starter kit molto interessante, semplice e completo. Si tratta di un progetto Open Source ed Open Hardware che si propone come la piattaforma perfetta per tutti gli appassionati di domotica e automazione. Comincia oggi una breve serie di articoli in cui ci occuperemo di prender confidenza, prima, e metter le mani sopra, poi, per spiegare al meglio cos'è Archimede e perchè lo conideriamo una scelta tanto valida.
Archimede, come dicevamo in apertura e come si legge nella documentazione ufficiale, è una piattaforma Open-source (e anche Open-hardware) basata sul firmware della scheda Cerberus della GHI Electronics.
L'obiettivo alla base della nascita di questa piattaforma è stato quello di fornire all'utente tutte le potenzialità delle relative espansioni, imparando ad impiegarle, da un lato, non appena servissero e, dall'altro, creando una struttura che fosse facile da programmare.
Per ottenere questo è stata fatta una scelta abbastanza interessante: sfruttando l'onda del successo del framework .NET rilasciato da Microsoft anni addietro, la scelta è ricaduta sul .NET micro framework facendo anche in modo da avere hardware pronto per l'uso.
A tal proposito, con questo kit, e qualche piccola espansione, sarete presto in grado di dar vita a progetti domotici di gran pregio.
Dal momento che si tratta di un controllore di periferiche universale, componibile e piuttosto versatile, le possibilità, come vedremo, soprattutto per quanto riguarda l'hardware, sono tantissime e troverete il kit molto utile anche se vorrete fare semplici esperimenti rimanendo degli hobbisti. Quando avrete preso confidenza con la programmazione, oltre che con l'hardware, però, sarà certamente interessante spingere al massimo il tutto e lanciarvi verso il suo campo più "nobile": naturalmente parliamo di building automation.
Ed ora vediamo di capirci sui termini usati: stiamo parlando di kit, così come da dicitura ufficiale, perchè la scheda è configurabile e componibile, come abbiamo accennato, per soddisfare ogni esigenza. L'architettura è piuttosto semplice: c'è una baseboard che può ospitare una scheda CPU e fino a ben 12 schede di espansione o 12 relè e/o 24 ingressi digitali opto-isolati. Questa architettura è stata una scelta che ha reso l'intero sistema molto ben adattabile praticamente ad ogni esigenza.
Archimede starter kit è solo la versione "base", in realtà; è indispensabile per imparare ad usare tutte le potenzialità del sistema, che peraltro è programmabile in ambiente Visual Studio. E se proprio non sapete da dove cominciare, una breve serie di codici di esempio e demo vi daranno la spinta che vi serve. Troverete programmi ed applicativi tra i più svariati nonchè librerie in C# e Visual Basic per .NET.
Vediamone, ora, brevemente le caratteristiche fondamentali:
- CPU: 32-bit ARM Cortex-M4 microcontroller;
- Velocità: 168MHz;
- Dimensione FLASH: 384 KB;
- Ram: 112 KB;
- 24 I/O generici;
- 11 Canali analogici a 12 bit;
- 2 DAC a 12 bit;
- 24 canali 1-wire;
- 2 USART (fino a 3Mbit);
- 1 canale SPI 4 fili;
- 1 RTC con batteria a tampone;
- 2 PWM hardware fino a 1MHz.
Le caratteristiche in potenza della scheda sono:
- Tensione di alimentazione: 12V;
- Consumo di corrente: 300mA (MAX).
Il kit vi arriva con la seguente composizione:
- scheda base predisposta per alloggiare 12 moduli di interfaccia;
- scheda CPU;
- modulo di interfaccia seriale RS232;
- modulo di interfaccia con 2 ingressi analogici;
- modulo di interfaccia (1-Wire);
- cavo d'alimentazione;
- 6 morsetti a 3 vie (femmina);
- CD di documentazione ed esempi.
Solo per citare alcune delle interfacce già disponibili sulla scheda, facciamo riferimento a:
- Doppio Ingresso A/D;
- Doppia Uscita DAC;
- PWM di potenza;
- RS232;
- I2C.
Volete usare questa scheda? Bene, allora prima di tutto date un'occhiata ai requisiti di sistema. Per poter iniziare al meglio avrete bisogno di:
- Windows XP, Vista, 7 o 8 (32 o 64bit) -> Raccomandati: Windows 7 o 8;
- Processore a 1.6Ghz o superiore;
- 1 Gb di RAM;
- Almeno 3Gb di spazio su hard disk per l'installazione dell'ambiente di sviluppo e dei vari SDK.
Giust'appunto, a proposito di SDK, se volete sapere come fare a procurarvi l'occorrente, c'è un comodo link predisposto per il download. Ci arrivate direttamente dal sito oppure facendo semplicemente click qui.
Esiste già un notevole numero di schede di I/O utilizzabili insieme al kit e lo sviluppo continua ma, d'altronde, lo abbiamo detto: tutto questo è Open Source. Pare una sfida interessante sviluppare il vostro firmware per questa piattaforma, gestendo anche delle schede di espansione, non vi pare?
Bene, per oggi abbiamo finito. Speriamo di avervi interessato a sufficienza. Come vi avevamo preannunciato, di articoli a riguardo di Archimede ne usciranno altri, ce ne occuperemo ancora e ve la faremo vedere all'opera.
Nel frattempo, per tutti voloro che ne siano già interessati, vi ricordiamo che questa scheda è già tra i premi finali del nostro contest. Già perchè se andate a dare un'occhiata lo troverete tra i premi che verranno assegnati alla chiusura del concorso, ovvero a dicembre.
Per chi non volesse aspettare l'assegnazione dei premi di dicembre, o volesse comunque informazioni in merito, troverete tutto a questo indirizzo. E, peraltro, proprio in questo periodo è scontato del 35%!
Ciao
direi che è uno starter kit decisamente interessante, poi per quanto mi riguarda dipende dal costo…
Mi sa che, forse, ho trovato la soluzione ad una mia vecchia idea di “controllare” l’intera abitazione (e anche il laboratorio che è l’appartamento di fronte).
L’idea è questa: sensori in ogni stanza che controllano se c’è o no movimento, se non c’è deve spegnere le eventuali luci accese ed abbassare o spegnere il riscaldamento della stanza.
La mattina deve accendere il riscaldamento in bagno e la macchinetta del caffè ad orario prefissato.
In caso di assenza per molti giorni, dovrebbe simulare la presenza di persone in casa, accendendo e spegnendo le luci in modo casuale.
Ed altro che non sto qui ad elencare…
Pensate che sia una cosa fattibile con questo starter kit? oppure è una cosa fattibile con altre schede più economiche (non conosco il suo prezzo, mi informerò), o ancora è un’idea di difficile realizzazione?
Grazie in anticipo
È mooolto interessante…. !
Avere così tanti I/O disponibili, sia per Il sensing che per l’attuazione, è una cosa che fa senz’altro la differenza in un sistema di building automation. E poi, quando insieme all’I/O hai anche degli ADC , PWM, un orologio e vari bus di comunicazione praticamente hai (quasi) tutto quello che serve.
Ciononostante, a mio modestissimo parere, quello che potrebbe “remare contro” è la mancanza di canali di comunicazione wireless, almeno così mi è parso.
Quando la casa è su più piani (o comunque grande), la scomodità di avere una centralina è il cablaggio dei vari sensori/attuatori: se non stai ristrutturando o costruendo ex-novo, dovresti fare tracce nei muri o montare delle canaline. Non è proprio il massimo. Se ci fosse stato il supporto nativo per il wireless sarebbe stato più semplice e meno vincolante montare degli elementi periferici. Ma immagino che sia comunque possibile realizzarsi (o trovaree in commercio) un modulo di espansione per la ricezione di segnali radio. Del resto, oggi come oggi un treno che tira molto è il controllo della casa da remoto tramite un browser web….
Ad ogni modo, la board di per sè sembra davvero interessante, almeno per la sua espandibilità.
Ultimamente di sistemi e schede per la domotica se ne vedono parecchie. Di questo sistema la cosa originale sta nel fatto che la “mother board” sta in una scatola a guida DIN (almeno così mi sembra di intravvedere nella foto del kit) pur essendo modulare. Questo ti permette di configurare il tuo controller con le periferiche che ti servono. Peró! Quello che mi fa storcere la bocca è il fatto che usa .NET. Questo significa visual studio ecc. ecc. ecc. Cioé M$. Negli ultimi tempi sono rimasto spesso scottato specialmente in fatto di compatibilità con i SW di Redmond. Secondo: Per un SW real time non userei mai il .net proprio per questioni di velocità. Sarebbe stato meglio adattare una IDE come quella di arduino per la versione 2 visto che i compilatori sono free con licenza GPL. In sostanza l’idea di una scheda modulare su scatola din mi piace molto ma l’ambiente di sviluppo per il SW lo boccio in pieno.
Mi associo in pieno con te, l’oggetto è davvero interessantissimo, e già ho in mente come mi piacerebbe utilizzarlo. Ho sempre desiderato avere una casa in cui la luminosità e gli elettrodomestici vengano gestiti in modo del tutto automatizzato, un oggetto di questo tipo farebbe di sicuro al caso mio. La scheda non costa neppure tanto (99 $ sono davvero pochi e anche i moduli di espansione sono interessanti e a prezzi davvero ragionevoli). Ma quella del framework .NET rappresenta, secondo me, un po’ una limitazione.
Detto ciò, quando mi cimenterò a domotizzare la mia casetta, il mio primo pensiero andrà sicuramente a questo bel sistemino dalle mille possibilità!
Concordo sul fatto che .NET Micro implichi M$. Del resto, è la risposta di Microsoft allo sviluppo embedded (dopo i tentativi non proprio brillanti della piattaforma Windows CE di qualche anno fa…).
In fondo, è una pura operazione di marketing: si sfrutta “l’affezionamento” di molti ad una data tecnologia (ad es. .NET) per entrare in un recente segmento di mercato che tira sempre di più. E vedrai che, fra un po’ di tempo, la cosa non sarà poi così disdegnata. Facendo un parallelo con ciò che è successo con Arduino, Rasperry, BeagleBone etc., con tali tecnologie si è permesso a molti utenti di poter entrare in un mondo “di nicchia” quale quello dell’embedded senza dover scendere eccessivamente nei dettagli elettronici di un dato HW. Come a dire, facciamo concentrare l’utente più su quello che deve fare e meno sul come va fatto. Esempio classico: da quando c’è Arduino, chi si occupa più di settare i fuses di un micro? O di segnalare al compilatore del micro codice (o, meglio, al preprocessore) la frequenza di oscillazione del quarzo montato a bordo?
Se è stato adottato il .NET micro, ci sarà stato senz’altro un precedente accordo commerciale tra Microsoft e l’azienda produttrice di Archimede volto a fare soldi. È il mercato….. 😉
Riguardo la questione della velocità, dato che ci si rivolge all’ambito domotico forse l’overhead introdotto dall’adozione di un framework “in mezzo” non è così elevato. In genere i sistemi di domotica si limitano a misurare delle grandezze, attuare dei comandi e presentare a richiesta dei dati attraverso un bus di comunicazione. Una forte velocità , od una grossa potenza di elaborazione, non è un vincolo così stringente come avviene invece ad esempio in sistemi real time di elaborazione dei segnali (far partire la serranda motorizzata ad una certa ora è un compito molto più tranquillo di distinguere un volto in un sistema di video sorveglianza , da cui le diverse potenze impiegate ed anche le diverse quantità di energia richieste dai rispettivi HW). Però sicuramente la domotica di domani sarà molto più vorace di quella di oggi, percui questioni come i comandi vocali o l’apprendimento automatico di certi compiti porteranno molto probabilmente all’impiego di HW con maggiori prestazioni. E lì vedremo come si porrà l’utenza verso Microsoft (e viceversa….).
Bella, poi, la struttura di montaggio su guida DIN….per quanto resta il problema dei cablaggi ex-post se non stai ristrutturando casa…..dai GHI Electronics, metteteci pure il wireless !!!
Buongiorno a tutti, scrivo per rispondere a un po’di dubbi e perplessità che mi pare di percepire all’interno dei post, quindi tenterò di rispondere in maniera esaustiva a ciascun post.
Innanzitutto, come è buona norma mi presento: sono uno dei progettisti di Archimede.
Non conoscendo le richieste specifiche, non posso affermare a priori che sia totalmente fattibile o non fattibile dipende da quanti sensori o I/O servono. Sicuramente da un punto di vista applicativo è fattibile. Un punto forte in un’applicazione del genere è la possibilità d’uso della programmazione parallela. Si può quindi ipotizzare un’applicazione con diversi task indipendenti o cooperanti che gestiscono le varie situazioni essendo Archimede un sistema multi tasking per sua natura.
Capisco perfettamente l’obiezione mossa a riguardo del wireless e posso spiegare le scelte strategiche fatte a riguardo.
Si è appositamente scelto di non realizzare un modulo wi-fi dedicato per una questione di costi, infatti la reliazzazione e produzione di un PCB con modulo wi-fi avrebbe portato ad un prezzo di vendita troppo alto per renderlo un modulo “appetibile”. Basta guardare quanto costano i vari shield wi-fi per le varie piattaforme…
Ciò NON significa che Archimede non possa funzionare senza fili, infatti abbiamo già realizzato con successo soluzioni in cui da un tablet o smart-phone interagiamo col sistema tramite rete wi-fi semplicemente montando un modulo ethernet (più economico del wi-fi) e colledandolo direttamente ad un access point wi-fi. Nelle realtà da noi viste o è già presente un AP nelle vicinanze oppure lo si aggiunge con una spesa veramente esigua.
Sono contento che la scelta del modulo da barra DIN sia piaciuta e se mi permettete vorrei spiegare la scelta dell’adozione dell’amato/odiato .NET micro framework.
Archimede nasce prima di tutto per sopperire alle richieste di applicazioni custom ma anche per essere un sistema utile per la didattica e semplice da utilizzare per l’hobbista. Insomma abbiamo tentato di fare un prodotto che potesse essere appetibile per un ampia gamma di clienti e soprattutto che fosse aperto.
Scegliere il .NET micro framework non è stata una questione di “credo religioso” o di accordi commerciali con Microsoft (anzi, se avessimo accordi con Microsoft saremmo così grossi che Archimede sarebbe stato l’ultimo dei nostri progetti ;-P).
La nostra è una piccola azienda che lavora nel settore automazione industriale, domotica, robotica… Come moltissime aziende che stanno sopravvivendo in questa Italia così fortemente depressa economicamente, ci siamo resi conto che sviluppare con strumenti tradizionali genera costi eccessivi che ne noi, ne il cliente è disposto/capace ad affrontare… L’unica soluzione è ridurre i costi, quindi l’adozione di un sistema di sviluppo gratuito (Visual Studio 2010), più che ampiamente diffuso nel mondo, supportato da milioni di sviluppatori e diciamolo pure, lo standard de-facto, ha ridotto di quasi 10 volte i tempi/costi di sviluppo permettendo di fatto di lavorare e continuare ad esistere.
Forti di questa esperienza, dato che VS è gratuito, il .NET micro framework è open-source abbiamo deciso di aprire il sistema e renderlo alla portata di tutti.
In ambito scolastico è stato apprezzato proprio perchè non costa nulla di licenze ed è un valido strumento didattico con cui gli studenti possono entrare in contatto con un ambiente di sviluppo professionale. In campo hobbistico… ditelo voi.
Per quanto riguarda le licenze dell’IDE lo so che VS non è rilasciato sotto GPL ma sinceramente quanti di voi (mega aziende escluse) sono andati a guardare i sorgenti dei vari IDE open-source? Quanti poi li hanno modificati e ricompilati con successo per avere un proprio ambiente di sviluppo? Meglio avere un ambiente stabile, affidabile con framework per unit testing, debugger, refactor del codice, analisi del codice, linguaggi ad oggetti di ultima generazione… o la possibilità di non avere quasi niente di tutto ciò ma poter guardare come è fatto dentro?
Ultima cosa per rispondere ai vostri dubbi: le prestazioni.
Concordo pienamente con chi dice che se si dovesse realizzare un’applicazione real-time il .NET non è la scelta giusta, faccio comunque presente che il framework risiede sulla FLASH del processore la quale può essere spianata è il processore può diventare un normalissimo micro programmabile in modo nativo con i vari ambienti GCC, RVDS, KEIL… in questa modalità, con un processore a 168MHz avrete l’hard real-time con tempistiche dell’ordine dei micro secondi.
Per esperienza la quasi totalità delle applicazioni a noi richieste non necessitano dell’hard real-time, quindi tempi che spaziano da 1 a 10 millisecondi diventano tempi più che ragionevoli e sufficienti per il sistema. A questo punto rinunciamo all’hard real-time per un soft real-time ma grazie all’utilizzo del framework possiamo con poco codice implementare web servers, telecontrolli GSM, utilizzare espressioni regolari per interpretare i nostri protocolli, l’XML, l’accesso al file system, l’utilizzo della reflection e migliaia di altre cose che ci permetteranno di concentrarci esclusivamente su ciò che vogliamo fare e non sul come va fatto. Non mi sembra una così grande limitazione.
Ringrazio tutti per aver commentato l’articolo, questo ci da ancora più forza per andare avanti e milgiorare.
Bene l'open source, bene le applicazioni a basso costo ma quando si parla di domotica dobbiamo per forza considerare la fattibilità in termini pratici e la soluzione cablata soffre di vincoli tali da rendere poi poco pratica la cosa nella maggior parte delle abitazioni che non prevedono a breve ristrutturazioni negli impianti.
La soluzione wirless allora è l'unica soluzione e non è vero che è costosa.
Per esempio ho trovato qui ( http://zwaveit.com/FGBS-001 ) un sensore wireless a soli 40 euro che permette di interfacciare un impianto di antifurto esistente ad un sistema domotico wireless di nuova generazione avendo inoltre ancora disponibile il sensore di temperatura incluso e un contatto di attivazione/disattivazione carichi valido per controllare una luce o il riscaldamento.
Per gestirlo esiste una centralina compatibile con quel protocollo ( http://zwaveit.com/VeraLite ) a soli 170 euro.
Quindi con 210 Euro hai già un accesso da web per fare tutte queste cose. E il sistema è scalabile, puoi quindi comprare pian piano altri accessori, sempre wireless, per espandere il tuo impianto domotico dilazionando i costi.
Per esempio a soli 70 euro hai un sensore che rileva movimento, temperatura, luce e umidità ( http://zwaveit.com/sensors/AEO_DSB05 ) ; lo puoi mettere dove vuoi e non ti devi preoccupare di allacciarlo da nessuna parte!
Eccezionali sono anche le testine termostatiche di Danfoss, anche loro wireless, che ti permettono di regolare la temperatura di ogni ambiente senza stendere un solo metro di filo!!! ( http://zwaveit.com/DAN_LIVC_RAK ).
Immaginate di voler raggiungere ogni termosifone con un cavetto anche se di soli segnali…(tipo bus KNX,ecc) Si fa prima a rinunciare!
Insomma, ciò che voglio dire è che si deve anche guardare alla praticità visto che poi non si parla di investimenti ingenti e che li si può affrontare un pò per volta!