Sistema Theremino
Theremino è un sistema Open Source, per collegare i computer con il mondo reale. Le applicazioni vanno dalla musica, alla didattica, alla ricerca scientifica. A differenza dei sistemi similari (ad esempio Arduino), il sistema funziona appena acceso, e non richiede programmazione del firmware.
Il modulo Theremino Master non è una scheda con micro controllore programmabile (come Arduino), ma un dispositivo di Input Output, come un Mouse. E’ comunque possibile utilizzare anche i moduli Arduino. Vedere la applicazione ArduHAL e la sua documentazione.
Il sistema Theremino è applicabile anche a sistemi “embedded”, che richiedono reazioni rapidissime (ad esempio i droni). I FlatPC per applicazioni “embedded” sono piccoli, economici e leggeri, come spiegato in questa pagina.
La architettura di comunicazione è innovativa. Diversa da ogni altro sistema simile. I principi di base sono spiegati nella pagina the-theremino-mission
Lo stesso utente, anche senza conoscere la programmazione, può configurare i moduli, per misurare, grandezze fisiche di ogni tipo: temperature, radiazioni, campi magnetici, terremoti, inquinanti… e per pilotare servocomandi, motori, led e lampade, forni, elettro-valvole, relè, robot, macchine a controllo numerico, stampanti 3D, macchine per il taglio laser e per le incisioni, etc…
La potenza dei Tablet e dei PC, unita alla flessibilità dei moduli di InOut, e ad un intero ecosistema, di oltre cento applicazioni, rende il sistema Theremino “diverso”. Il sistema Theremino, non è una copia di Arduino. Ci teniamo a specificarlo, perché molti sono stati ingannati, dalla forma dei moduli di InOut. I quali, bisogna ammetterlo, assomigliano ai cloni di Arduino.
Anche il nome Theremino, ha involontariamente favorito questo fraintendimento. Questo molti non lo crederanno, ma è la verità. Quando venne scelto il nome, nessuno di noi era al corrente dell’esistenza di Arduino e il nome si riferisce solo, a Leon Theremin e all’Input Output. Cliccando su questa immagine si apre un Doodle di Google che insegna a suonare il Theremin.
Il sistema Theremino è anche un contenitore, per lo scambio di idee, tra appassionati. Nonché un catalogo, di sensori e attuatori, un ausilio didattico, e una collezione di tecnologie per l’Input-Output, la programmazione e l’elettronica open source.
Scopo e filosofia del sistema Theremino sono la didattica e la collaborazione. Il fine non è vendere, ma fare buoni progetti. I collaboratori si occupano solo di ricerca e contribuiscono collettivamente al miglioramento del sistema. I risultati sono condivisi e devono rimanere liberi, come specificato in questa pagina
Indice delle pagine
- Qui ci sono informazioni sul software, consigli su quali computer usare e consigli per i sistemi stand-alone e real-time.
- Per un comodo indice, diviso per argomenti, consultare la pagina delle applicazioni.
- La filosofia di base è spiegata in questa pagina
- Le applicazioni, tutte gratuite e open-source, sono scaricabili dalle pagine di download.
- I moduli hardware si acquistano, da produttori esterni, o si costruiscono, con i progetti open-hardware.
- Qui si trovano le informazioni sui moduli del sistema, e i loro schemi elettrici.
- I trasduttori (sensori e attuatori) e i moduli del sistema, riportano link e consigli, per comprarli al miglior prezzo.
- Nella introduzione, si trovano maggior dettagli sul sistema, e sono disponibili note tecniche, informazioni varie e video esplicativi.
- I Blog più attivi sono: master-and-slaves / multimedia / robotics-and-cnc / gamma-spectrometry / geigers-and-ionchambers.
- Sono disponibili risorse esterne, per l’approfondimento scientifico e didattico: Physics Open Lab / www.mastrohora.it.
- In queste pagine sono disponibili, i dettagli sulla Licenza Creative Commons, sul trattamento dei dati personali, e sulle certificazioni CE e ROHS.
Per individuare singoli argomenti, si consiglia di utilizzare la casella “Search”, che si trova in alto a sinistra. Poi “CTRL-F” nelle singole pagine.
Theremino è simile (o compatibile) con Arduino?
No, sono due sistemi profondamente diversi.
Qui c’è una tabella di comparazione delle caratteristiche.
Arduino è un “Single board micro-controller” che deve essere programmato, di volta in volta, con un firmware ad hoc. Se, ad esempio, si vuole leggere una temperatura, allora si programma il firmware per farlo, se le temperature sono due, si modifica e riprogramma il firmware, per leggerne due.
Theremino è un “dispositivo di ingresso-uscita”, come un mouse o una stampante. Collegando i moduli, funziona immediatamente, senza dover programmare il suo firmware.
Arduino è progettato per eseguire tutto da solo, senza PC e senza sistema operativo.
Theremino sfrutta anche la potenza del sistema operativo, del processore e del coprocessore matematico del PC. La potenza totale combinata, è circa 1000 volte maggiore.
Arduino comunica via USB, ma la trasforma in seriale virtuale, ed è il processore stesso, che deve preparare i dati per la seriale. Per cui i dati subiscono quattro conversioni: da byte a seriale e da seriale a USB, poi nel PC vengono nuovamente convertiti da USB in seriale virtuale. Infine vengono letti dalla seriale virtuale e convertiti nuovamente nei byte originali. Questo rallenta la velocità di comunicazione con il PC.
Theremino comunica via USB nativa e il micro del Master ha al suo interno due sezioni indipendenti, una si occupa di In-Out e l’altra è dedicata alla comunicazione USB. Per cui il collegamento tra PC e hardware è sempre fluido.
Arduino si programma con gli Sketch, si impara quindi un linguaggio specifico, che non potrà essere usato per altro che per i moduli Arduino.
Theremino è un sistema didattico, che insegna a programmare i PC nei principali linguaggi di programmazione (Basic, CSharp, CPP e Phyton). Quello che si impara sarà utile anche in ambito professionale.
E’ comunque possibile utilizzare i moduli Arduino come sottosistema di Ingresso-Uscita per il PC. Vedere la applicazione ArduHAL e la sua documentazione.
Cloni di Arduino
ArduinoDuemilanove, ArduinoDiecimila, ArduinoUno, ArduinoMega, ArduinoNano, ArduinoMini, 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…
Sono tutti simili tra loro, un micro-controllore montato su un circuito stampato, con attorno alcuni connettori per gli Input/Output. Sono già molti, perché proporne un altro ancora?
La spiegazione migliore l’ha data Stefano, un maker, che ha scritto: Chiaramente si inizia sempre da Arduino, ma presto mi sono accorto dei suoi limiti: è un piccolo computer con I/O che va programmato, mentre io voglio un GRANDE computer a cui aggiungere gli I/O!
Cosa rende possibile il funzionamento “NO CODE”
Funzionamento tipo PLC (programmable logic controller)
Dato che la “testa” è il PC il termine tecnico più adeguato è “Soft PLC”.
La applicazione HAL (Hardware Abstraction Layer) rinfresca tutti gli ingressi e le uscite a intervalli regolari (normalmente 500 volte al secondo) e normalizza i dati, semplificando la comunicazione con l’hardware.
Raggruppamento dei trasduttori in macro-categorie
Out Digitale
Out PWM
Out Servo
Out StepMotors
In Digitale
In ADC – tensione
In Cap – capacità elettrica
In Res – resistenza elettrica
In Contatori e frequenzimetri
In Periodimetri
In Encoders
In Ultrasuoni
In CapSensorsHQ – rilevazione capacitiva a grande distanza
Organizzazione gerarchica e modulare
Software modules ….. Applicazioni ad alto livello. La testa pensante del sistema.
Slots …………………….. Comunicazioni tra tutti i componenti del sistema.
HAL application …….. Comunicazioni tra il software e l’USB
Master modules …….. Moduli hardware, connessi all’USB.
Slave modules ……….. Moduli hardware, connessi attraverso la linea seriale DPM.
Pins ……………………… Connettori di Ingresso/Uscita.
Adapters ………………. Adattatori tra i sensori speciali e i Pin standard, del sistema Theremino.
Output transducers .. Servomotori, suoni, video, regolatori di luce, controlli On/Off etc..
Input transducers ….. Sensori di luce, posizione, temperatura, tensione, corrente, capacità etc..
Comunicazione tra i moduli, attraverso gli Slot
Gli Slot (interprocess communication) sono la base del sistema Theremino e lo differenziano da tutti i sistemi similari. Con gli Slot non solo i moduli hardware ma anche le applicazioni possono comunicare tra loro.
Software e firmare configurabili e espandibili in Open Source
Le applicazioni, disponibili in open source, coprono tutte le più comuni operazioni, dal multimedia, alle misurazioni da laboratorio. Nuove applicazioni possono essere sviluppate a partire dal codice Open Source di quelle esistenti, come nuovi mattoni, per ampliare le possibilità del sistema.
Modularità hardware e software
Anche le applicazioni possono essere aggiunte come moduli, più applicazioni possono essere configurate per comunicare tra loro, e collaborare, senza riprogrammarle.
Caratteristiche principali
La modularità del software è un concetto nuovo. Nessun sistema, fino ad ora, ha mai usato la comunicazione e la modularità come il sistema Theremino.
Nel sistema Theremino, ogni applicazione si occupa solo delle sue funzioni specifiche, e più applicazioni collaborano, per ottenere il risultato desiderato. Questo permette di costruire sistemi complessi, con mattoni semplici.
Con Theremino non è necessario essere programmatori esperti, per realizzare le proprie idee. Anche gli artisti, i chimici, i musicisti, i geologi, i climatologi e gli studenti, possono costruire quel che gli serve, unendo i moduli hardware e software preesistenti.
I “Pin” del sistema sono configurabili singolarmente, con un gran numero di funzioni pre-programmate, che coprono ogni esigenza di Input-Output.
Si possono collegare sensori e assegnare nuove funzioni, ai pin di In-Out, anche durante il funzionamento. Si possono aggiungere moduli, e configurarli in pochi secondi. I moduli vengono riconosciuti automaticamente, e comunicano tra loro, attraverso una linea seriale single-wire. Ogni linea supporta fino a 200 moduli e ogni modulo una decina di Pin. Il numero totale di InOut è praticamente illimitato, ed essi possono comunicare tra loro, o con altri applicativi, via HAL (Hardware Abstraction Layer) e Slots (Interprocess Communication). I moduli possono comunicare tra loro, fino a chilometri di distanza, su linea seriale, a grandi distanze su cavi di rete e su WEB. I sistemi operativi usabili sono Windows, Unix, Linux, Mac OSX e Android.
La semplicità, le piccole dimensioni e il basso costo dei moduli, non riducono le prestazioni, anzi è vero il contrario. La semplicità rende il sistema molto robusto, e le prestazioni sono tali, da poter rinfrescare tutti gli InOut contemporaneamente, in modo fluido (fino a 500..1000 volte al secondo).
Applicazioni portatili
Le applicazioni del sistema Theremino sono portatili. Copiate su una memoria esterna e portate su un altro PC, riprenderanno a funzionare, esattamente da dove erano arrivate. Si possono anche duplicare, in numerose cartelle separate, e farle funzionare contemporaneamente, con parametri separati, senza che si disturbino a vicenda.
Questo comporta anche, che il computer non viene alterato (nota 1). Che non si installa niente nel sistema, non si installano Drivers, non si scrive nel “Registro di sistema”, e non si usano data-base in comune. Le applicazioni “thereminiche” non modificano mai nulla, fuori dalle loro cartelle. Altre informazioni in questa pagina.
Nel sistema Theremino, le applicazioni non hanno un indirizzo fisso (una cartella tipo “Programmi/Theremino”), ma possono traslocare, senza dover “registrare”, il loro nuovo indirizzo, presso una unità centralizzata. Gli Slot sono l’unico punto di contatto tra le applicazioni, una specie di cassette della posta.
Il Theremino HAL venne inizialmente concepito come driver, aveva un unico data base, in comune per tutte le applicazioni, e presentava la sua icona nella barra di stato, vicino all’orologio. Ma presto verificammo, che questo rendeva oscuro, e poco trasparente, il suo funzionamento. Chiunque abbia un minimo di dimestichezza, con i problemi dei driver, può confermarlo. Per ulteriori conferme, cercare su YouTube “Drivers Nightmare”: ecco un esempio, e anche altri esempi.
(Nota 1) Il principio base, di non alterare il sistema operativo, è applicabile solo in Windows. Altri sistemo operativi (Linux, MacOsx e Android), pretendono la installazione di drivers e software. Secondo i nostri principi, questo è un errore, una complicazione per gli utenti, e una potenziale fonte di insicurezza. In tali sistemi, agli utenti vengono continuamente richieste, parole chiave e approvazioni. Ma gli utenti non possono individuare i software dannosi, per cui si abituano ad approvare tutto. Le applicazioni diventano ogni anno più complesse, e il controllo umano, non è più in grado di capire, cosa realmente fanno. Deve essere il sistema operativo stesso, ad agire da antivirus, con un antivirus integrato e libero da tentazioni.
Perché i moduli hanno un aspetto così semplice?
Fare click sulle immagini per ingrandirle.
I moduli del sistema Theremino (pur essendo molto flessibili e configurabili), sono progettati con bassa tecnologia e pochi componenti.
La tecnologia attuale, permetterebbe di costruire PCB, con isolamenti di pochi decimi e piste microscopiche. Sarebbe facile rifare i nostri moduli, con queste tecniche. Tollerando di aggiungere, qualche decina di componenti non essenziali, potremmo facilitare la progettazione e costerebbe meno produrli. I produttori sarebbero più contenti e l’aspetto estetico soddisferebbe meglio, gli amanti della miniaturizzazione a tutti i costi.
Ma ci sono validi motivi, per progettare i moduli in stile slow-food thereminico, a bassa tecnologia, con isolamenti esagerati, piste larghe e PCB a singola faccia:
- Aumentare la affidabilità anche in presenza di umidità.
- Poter fare a meno del rivestimento protettivo (chiamato “Solder”).
- Non imporre stringenti tolleranze costruttive e permettere la costruzione anche su piastre mille fori o con fotoincisione (senza fori metallizzati).
- Permettere la costruzione dei PCB con la fresa (isolamenti minimi intorno a 0.8 mm, singola faccia e niente fori metallizzati).
- Permettere di sfilare facilmente i componenti, per sostituzioni, modifiche ed esperimenti, senza rovinare il PCB (piazzole e fori con diametro abbondante).
- Usare solo connettori semplici, strisce a passo 2.54, che tutti hanno nel cassetto, o facilmente riciclabili da apparecchiature obsolete.
- Non esagerare con la miniaturizzazione. I nostri moduli sono già abbastanza piccoli, alcuni hanno scritto che sono fin troppo piccoli. Esagerare rende difficile maneggiarli.
- Mantenere al minimo l’impatto ambientale (minimo numero possibile di componenti e PCB piccoli e a singola faccia, senza metallizzazione).
Sono molti i sistemi con micro USB, micro connettori introvabili e un numero esagerato di componenti, che quasi si toccano tra loro. Ecco qualche esempio (fare click sulle immagini):
Ma il sistema Theremino vuole andare incontro ai veri Makers. Fare progetti con grandi prestazioni, ma usando solo quattro componenti. E permettere, per quanto possibile, l’auto-costruzione, anche a chi non dispone di alta tecnologia. Al limite, anche con il Dremel “a mano libera”, come da esempio seguente:
Ringraziamo Marco Vitangeli per questo splendido esempio.
Per consigli su come attrezzarsi e saldare facilmente anche i componenti SMD, leggere questa pagina: technical/tables-and-notes