Comunicazioni


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 (gennaio 2015), nessuno ha ancora scritto uno “Sketch”, per far comunicare Arduino, con i nostri Slot. Tutte le informazioni e gli esempi necessari, sono pubblicati, speriamo che qualche esperto di Arduino intervenga – 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:

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

Le applicazioni professionali, scientifiche e musicali, necessitano di un PC. Per lavorare comodi servono anche: vero sistema operativo, un coprocessore matematico, un mouse, e possibilmente più di un 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 conoscenze specifiche e anni di esperienza nella programmazione dei micro-controllori. 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 apposta per lui, 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” permette di 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. Se si sbaglia qualcosa, si degradano 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 fare di più, ma subito, senza passare anni a imparare a programmare, si può usare il Theremino Automation. Un linguaggio semplicissimo, probabilmente il più semplice al mondo (e ne esistono davvero molti).

Per progetti molto complessi, e per coloro che preferiscono usare linguaggi di programmazione standard, è disponibile il “Theremino_Script”, nonché le istruzioni per usare  C++, C#, VbNet , VB6, Python e Pascal.


Componenti hardware

Theremino System Devices


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

Theremino System -

Il Master dispone di 6 Pin generici, contrassegnati con i numeri da 1 a 6. I Pin sono configurabili, sia come digitali che analogici, e sia in ingresso che in uscita. I master programmati, con il firmware versione 3 e successive, hanno altri quattro Pin, nella parte superiore. I particolari di collegamento dei Pin, sono in questa pagina: technical/pin-types


Ogni “Master” può comunicare con uno o più moduli “Slave”
 

 Theremino System -

Lo slave “Servo” ha 10 Pin generici, contrassegnati con i numeri da 1 a 10. Anche i Pin dei “Servo” sono configurabili, sia come digitali che analogici, e sia in ingresso che in uscita. Lo slave “Cap Sensor” non ha Pin generici, ma solo il collegamnto per la antenna. I particolari di collegamento dei Pin, sono in questa pagina: technical/pin-types


Sia il Master che gli “Slave” possono controllare i Sensori e gli Attuatori

Esempi di sensori e 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. Al contrario, Arduino necessita, di una impegnativa fase di programmazione, che implica tempo, esperienza, e strumenti adatti. Theremino dispone di tutte le funzioni, per collegare 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, per mezzo di 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”. Questo permette ogni tipologia di interfacciamento, per le applicazioni scientifiche, didattiche, e artistiche, senza scrivere una sola linea di codice. Per le applicazioni più complesse, è possibile usare Theremino Automation, Theremino Script, ed ogni tipo di linguaggio ad alto livello, C++, VbNet, C#, VB6, Python, Pascal ecc.

Quale che sia il linguaggio prescelto, la comunicazione con il sistema Theremino, è molto semplice e efficiente, grazie alla applicazione HAL (Hardware Abstraction Layer), che si occupa di gestire le particolarità dei sensori, e li presenta al software, 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.

Queste 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.


Il sistema Theremino si distingue per:

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.

I tipi di Pin
I Pin sono 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 sistema 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. 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 – 1000 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 pianificata 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 utili per tutta la comunità, e valide sotto il profilo tecnico.

La possibilità di isolare otticamente la linea di comunicazione
Per applicazioni professionali, è necessario garantire l’isolamento tra le masse dei sotto-sistemi, ad esempio un PC e una macchina utensile. Se le masse elettriche 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.

Il sistema Theremino nasce con il protocollo di comunicazione, predisposto per l’isolamento ottico, per cui l’implementazione è semplice e 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 su una linea seriale, che può essere lunga anche centinaia di metri. Non servono modifiche, per andare lontano basta utilizzare un lungo cavo schermato.

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 oltre 30 anni di esperienza nell’Input-Output per PC. I primo sistemi di In Out, vennero sviluppati nel 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.