Introduction


Possibilità di comunicazione

Grazie alla modularità del sistema Theremino, all’HAL (Hardware Abstraction Layer), agli Slot (Interprocess Communication), all’UDP (Comunicazioni via Rete e Internet) e al protocollo OSC (Open Sound Control), tutti i componenti della prossima immagine possono comunicare tra di loro in modo semplice e immediato, anche se situati su sistemi operativi differenti, quali Windows, Android, Linux, Unix e Mac OSX.

Tutto questo è immediatamente applicabile anche da chi non ha l’esperienza o il tempo per scrivere software di comunicazione. Tutto il software necessario è disponibile in versione “free” e “open” nelle pagine di download.

Questa immagine mostra anche un Arduino che, come ogni altro hardware con connessione USB, può accedere agli Slot del sistema Theremino e quindi beneficiare di tutte le possibilità di comunicazione messe a disposizione dal nostro software. Al momento (aprile 2012) nessuno ha ancora scritto uno “Sketch” per far comunicare Arduino con i nostri Slot (tutte le informazioni e gli esempi necessari sono già pubblicati sul nostro sito e speriamo che se ne occupi qualche esperto di Arduino – difficilmente noi troveremo il tempo di farlo).


Note sulle versioni di Theremino stand-alone

Il sistema Theremino nasce dalla esigenza di fornire un facile e immediato input-output per PC, tutte le scelte di progetto sono mirate a rendere il sistema adatto alle seguenti Applicazioni:

  • Apparecchiature di controllo processo e di collaudo.
  • Banchi di misura da laboratorio.
  • Apparecchiature di controllo per installazioni artistiche.
  • Apparecchiature di comando per sistemi multimediali.
  • Sistemi didattici di input-output facili da assemblare e da capire.
  • Applicazioni per la ricerca scientifica.

Le applicazioni professionali, scientifiche e musicali necessitano di un vero PC e possono sviluppare tutte le loro potenzialità, solo se si dispone di un vero sistema operativo e di uno o più monitor. Questo è l’ambiente per cui è stato sviluppato il sistema Theremino.

E’ possibile riprogrammare il Master per un funzionamento stand-alone, usando il linguaggio C, come si fa con i sistemi Arduino compatibili, ma questa operazione richiede buone conoscenze di programmazione e molta esperienza. La sintassi è la stessa e il compilatore è lo stesso “GCC” valido sia per i processori ATMEL a 8 bit di Arduino, sia per i PIC a 16 bit di Theremino. Arduino compila con un IDE fatto appositamente mentre Theremino usa MPLAB di Microchip. Arduino programma attraverso la porta USB, ma ha bisogno di un programmatore per scrivere il Bootloader, Theremino invece richiede sempre un programmatore (PicKit2, PicKit3 o simili), con un costo aggiuntivo, ma con il vantaggio di avere il controllo completo del micro e non solo delle parti che lo “sketch” lascia vedere.

ATTENZIONE: Non si tratta di un operazione facile. Il firmware del master che si occupa della comunicazione via USB e che effettua il riconoscimento, la configurazione e la comunicazione seriale con gli slave è molto più complesso di un normale “sketch” di Arduino e deve essere scritto con molta cura per non degradare le prestazioni di tutto il sistema.


Modularità del software

Il software del sistema Theremino è modulare. Le applicazioni possono comunicare tra loro, sono componibili come i mattoncini del LEGO®. Anche i moduli hardware sono progettati per essere modulari e componibili.

Queste caratteristiche innovative e inusuali, che possono disorientare gli utenti nelle prime fasi di apprendimento, richiedono di familiarizzare con concetti nuovi come: gli “Slot”, la comunicazione tra processi (InterprocessCommunication e MemoryMappedFiles), l’HAL (Hardware Abstraction Layer), l’UDP (Comunicazioni via Rete e Internet), il protocollo OSC (Open Sound Control) e le eventuali interazioni con PureData, EyesWeb, Max-MSP e Processing.

Una volta compresi i principi base che rendono componibile il sistema Theremino diventa possibile realizzare in pochi istanti ogni tipologia di interfacciamento senza scrivere una sola linea di codice.

Per progetti molto complessi e per coloro che preferiscono usare linguaggi di programmazione standard, nella pagina www.theremino.com/downloads/foundations è disponibile un semplice “Theremino_Script” nonché le istruzioni per usare  C++, C#, VbNet , VB6 e Pascal.


Componenti hardware

Theremino System Devices


Il sistema Theremino è composto da uno o più moduli di tipo “Master”


Ogni “Master” comunica con più moduli “Slave”


Ogni modulo “Slave” può controllare “n” Sensori e “n” Attuatori

Esempio di sensori ed attuatori

Theremino Ultrasuoni

Sensore di distanza a ultrasuoni.                              Sensori di luce.

Sensore di radiazioni composto da tubo Geiger e adattatore allo standard Theremino.

       Theremino Servocomandi

Motore brushless.                                                      Servocomando.


Descrizione del Sistema

Theremino permette di collegare facilmente qualsiasi tipo di sensore e di attuatore. Mentre Arduino, necessita di una impegnativa fase di programmazione che implica tempo, esperienza e strumenti adatti. Theremino dispone di tutte le funzioni di collegamento a sensori e attuatori già programmate e pronte per l’uso.

L’intero sistema è stato progettato per essere completamente modulare e permette di comporre complessi sistemi di controllo, selezionando facilmente le funzioni con programmi ad alto livello sul PC. I dispositivi collegabili vanno dai più semplici, come un potenziometro o un servocomando, ai più complessi, come un sensore di distanza capacitivo, un braccio robotico, un contatore Geiger o un analizzatore multicanale per la spettroscopia Gamma.

Theremino è immediatamente interfacciabile con i noti programmi “PureData”, “EyesWeb” “Max-MSP” e “Processing”, in modo da permettere ogni tipologia di interfacciamento e di applicazione scientifica, audio e video, senza scrivere una sola linea di codice. Per le applicazioni più complesse, è possibile usare ogni tipo di linguaggio ad alto livello, C++, VbNet, C#, VB6, Pascal ecc.

Utilizzando diversi linguaggi di programmazione, la comunicazione con il sistema Theremino è molto semplice e efficiente grazie al sistema HAL (Hardware Abstraction Layer), che si occupa di gestire le particolarità dei sensori e li presenta al software ad alto livello in modo semplice ed omogeneo, tramite gli “Slot”.

Infine tramite i protocolli UDP e OSC (Open Sound Control), si possono mettere in comunicazione gli “Slot”, con altri “Slot” situati su altri computer, via rete locale o Internet e con qualunque applicazione, su qualunque sistema operativo: Windows, Linux, Mac OSX, Unix e Android.

Quest e possibilità sono reali e immediatamente applicabili, scaricando il software free e open-source dalle pagine di “Download” e senza scrivere una sola riga di codice. (parte del software, sopratutto per Mac e Android, è ancora da completare, scrivete sul Blog le richieste urgenti e vedremo di privilegiarle)


Vantaggi del sistema Theremino e confronto con sistemi simili

Esistono molti sistemi simili: Arduino_duemilanove, Arduino_diecimila, Arduino_Uno, Arduino_Mega, Arduino_Nano, Arduino_Mini, ArduPilot, DIY-Duino, DuinoStamp, Duinomite, eauDuino, Freeduino, FreeduinoEpic, Funnel I/O, Hack The Badge, Illuminato Genesis, JeenodeWirelessFreeduino, Labjack, Lightuino, Netduino, Olimexino, PaperDuino, Phidgets, Photoduino, Pinguino, ProtoDuino, R-duino, RoboDuino, Sanguino, SeeeDuino, Severino, Space-duino, StickDuino, uDuino, ecc…

Nella sostanza, questi sistemi sono tutti piuttosto simili tra loro: si tratta sempre di un micro-controllore montato su un circuito stampato, con attorno alcuni connettori per collegarsi ai suoi pin. Quindi perché proporne ancora uno? Per il suo approccio innovativo, che lo rende applicabile immediatamente, senza programmare il firmware.


Il sistema Theremino si distingue per:

I Pin di Ingresso-Uscita configurabili
Nel sistema Theremino ogni Pin è configurabile singolarmente. Gli altri “n”Duini invece hanno i Pin con tipo e posizione prefissati.

Il vasto numero di tipi di Pin
I Pin configurabili in oltre venti tipi pre-programmati possono comunicare direttamente con sensori e attuatori di ogni genere. Gli altri “n”Duini invece hanno generalmente solo quattro tipi di Pin: Digital-In, Digital-Out, AnalogIn e PWM.

La modularità hardware
A differenza degli altri “n”Duini i moduli del Theremino comunicano tra loro e sono immediatamente componibili, come il LEGO®, senza necessità di programmazione.

La modularità software
Anche i programmi ad alto livello comunicano tra loro e sono modulari. Tutto il software per audio, video e funzioni speciali è già scritto con tecnologie molto efficienti.

La comunicazione su un solo filo
Comunicare su un solo filo rende possibile usare i comodissimi cavetti a tre fili che sono ormai uno standard per Aeromodelli, Servocomandi, Accelerometri, Bussole, Motori brushless, Elicotteri, Droni e Robot. Le funzioni di comunicazione sono pre-programmate, basta connettere i moduli del sistema Theremino ed essi si auto-riconoscono e auto-configurano.

La comunicazione USB
A differenza degli altri “n”Duini, il Theremino NON usa una seriale virtuale per la comunicazione USB per cui non richiede l’installazione di un driver e può comunicare molto più velocemente (scambio dati e rinfresco di tutti i moduli fino a 500 volte al secondo).

La facilità di uso
E’ possibile assemblare rapidamente sistemi molto complessi, con un numero praticamente illimitato di moduli hardware e software, che comunicano tra loro senza scrivere una sola riga di firmware o di software.

Le funzioni pre-programmate
A differenza di tutti gli altri “n”Duini, il sistema Theremino dispone di tutte le funzioni basilari per la comunicazione e per gli Input/Output pre-programmate.

La possibilità di aggiungere nuove funzioni
Il sistema Theremino comprende funzioni di Input/Output per ogni genere di applicazione e per tutti i sensori di uso comune. Nei rari casi in cui è richiesto un firmware aggiuntivo, il sistema Theremino è comunque programmabile, come tutti i suoi simili “n”Duini. Tutti i sorgenti software sono disponibili liberamente, cosi come i protocolli, gli schemi elettrici e tutte le informazioni utili per fare modifiche hardware e software.

La possibilità di richiedere nuove funzioni
La programmazione del firmware è complessa, richiede molta esperienza e deve essere fatta con cura, pena il degrado dell’efficienza di tutto il sistema. Il team del sistema Theremino è disponibile a sviluppare gratuitamente nuove funzioni, laddove queste siano valutate utili e funzionali, anche per altre applicazioni e valide sotto il profilo tecnico.

La possibilità di isolare otticamente la linea di comunicazione
Per applicazioni professionali è necessario garantire l’isolamento tra il Gnd dei sotto-sistemi, ad esempio un PC e una macchina utensile. Se i Gnd sono in comune, i forti transienti di alimentazione causati, ad esempio, dall’accensione di un motore elettrico, possono mandare in crash il PC, danneggiare i componenti elettronici e generare errori di comunicazione. Isolare otticamente l’USB è praticamente impossibile, i pochi sistemi esistenti sono costosi e complessi.

Effettuare un isolamento ottico con i sistemi “n”Duino è sicuramente possibile, ma non essendo previsto nelle opzioni di base, richiederebbe di tagliare la linea seriale con una modifica al circuito stampato, un impegnativo lavoro di progettazione e una spesa elevata.

Il sistema Theremino nasce invece con il protocollo di comunicazione già predisposto per l’isolamento ottico, per cui la sua implementazione è praticamente immediata.

La possibilità di comunicare a lunga distanza
I collegamenti USB devono essere corti, massimo una decina di metri, per comunicare a lunga distanza è necessario utilizzare una linea seriale.

Anche tutti gli altri sistemi “n”Duino possono comunicare in seriale, ma è necessario costruire dei moduli slave appositi, chiamati shield, montarli e programmarli. Questi moduli devono contenere sia il firmware per comunicare con i sensori che quello per comunicare con l’Arduino. Per implementare un sistema del genere è necessario un discreto tempo di sviluppo e notevoli conoscenze hardware e software.

Il sistema Theremino comunica già normalmente su una linea seriale, che può essere lunga anche centinaia di metri: è quindi sufficiente utilizzare un lungo cavo per i collegamenti.

Le dimensioni
I moduli del sistema Theremino sono molto compatti e la disposizione dei Pin è studiata per contenere al massimo la dimensione dei cablaggi.

L’Affidabilità e il costo
Il sistema Theremino è il frutto di esperienze in oltre 30 anni nell’Input-Output per PC, a partire dal 1981, con brevetti e soluzioni innovative nell’implementazione dei primi sistemi di controllo luci per discoteche, con decine di moduli e centinaia di canali in rete. In tutti questi anni tramite la continua iterazione di progettazioni, revisioni e miglioramenti, abbiamo infine ottenuto un hardware semplicissimo, affidabile e di minimo costo.


Caratteristiche peculiari

  • Pin di Ingresso-Uscita configurabili singolarmente.
  • Vasta scelta di tipi di Pin pre-programmati per sensori e attuatori di ogni tipo.
  • Comunicazione seriale bidirezionale su un solo filo.
  • Auto-configurazione.
  • Auto-riconoscimento dei dispositivi collegati.
  • Numero di dispositivi variabile da 1 a 200.
  • Numero di byte trasmessi e ricevuti variabile a seconda del tipo dei dispositivi.
  • Velocità di trasmissione fino a 4 MegaBit/sec per trasmettere molti dati con cavi corti.
  • Velocità di trasmissione fino a 100 KiloBit/sec per cavi molto lunghi (fino a 10 Km).
  • Alta efficienza di comunicazione (da 10 a 20 volte maggiore rispetto al CAN).
  • Modularità totale di tutti i componenti hardware, firmware e software.
  • Minima dimensione dei moduli e massima compattezza nella disposizione dei Pin.
  • Semplicità e basso costo.


Ottenere i moduli del sistema

Il team del sistema Theremino si occupa solo di ricerca e non vende hardware. Il sistema è completamente “Freeware”, “Open Source”, “No Profit” e “DIY”, ma esistono produttori che possono fornire i moduli assemblati e collaudati a un ottimo prezzo. Difficilmente si potrebbe auto-costruirli spendendo meno. Un elenco dei produttori in questa pagina: www.theremino.com/contacts/producers


Donazioni
 

Il codice sorgente dei nostri programmi non contiene note sul copyright, nomi degli autori e link al nostro sito, per cui potete farne ogni uso, senza limitazioni di alcun genere. Non chiediamo di specificare la fonte originale o il nostro sito ma se sarete contenti del nostro software ricordatevi di noi e fate conoscere questo sito ai vostri amici. Eventuali donazioni, anche piccole, sono molto gradite e possono aiutarci a mantenere il software “free” ed a produrne sempre di nuovo.

Comments are closed.