Applicazioni di base


Chi utilizza AVG (o altri antivirus simili) potrebAntivirus2.gif (400×400)be subire dei falsi allarmi.

Non utilizzate antivirus commerciali, causano preoccupazioni inutili e poi lasciano passare i veri virus. Leggete questa pagina.

Il nostro consiglio è di utilizzare solo Defender, che non ci ha mai tradito.

Nel caso di falsi positivi controllate i fili scaricati con un servizio on line, ad esempio questo: https://www.virustotal.com/it

Il servizio virustotal consulta circa 60 antivirus ed è abbastanza normale che uno o due di essi possono sbagliarsi. Ma se ce ne sono 58 o 59 che danno un risultato positivo potete fidarvi. Chi proprio non si fidasse può esplorare lui stesso i sorgenti e ricompilarli sul suo computer. In ogni caso state tranquilli, noi abbiamo di meglio da fare che scrivere virus.


HAL – Hardware Abstraction Layer

Theremino HAL

L’HAL mette in comunicazione l’hardware di InOut con il software ad alto livello attraverso USB e Slots

Se si usano i moduli hardware USB, allora l’HAL è indispensabile e deve rimanere acceso, si può minimizzarlo, ma deve restare in funzione.

Se non si usa hardware USB, allora l’HAL non è necessario, le applicazioni del sistema possono comunicare tra di loro, attraverso gli Slot, anche senza HAL.

L’indicazione Rep Freq. (fps) indica valori approssimati. I valori misurati sono abbastanza giusti intorno ai 200 fps e diventano sempre più errati (per difetto e di molto), man mano che gli FPS crescono e si avvicinano a 1000. Non modifichiamo la funzione di lettura perché ormai siamo tutti abituati da anni alle sue indicazioni e modificarle creerebbe troppa confusione. Comunque per tutti gli usi di automazione e di lettura dei sensori una ripetizione superiore a 100 fps è sempre sufficiente.

La applicazione HAL standardizza i dati dei sensori in un range di valori facilmente usabile e fornisce funzioni di test e debugging grafico (oscilloscopio).

    HAL cap keys with velocity - Theremino System

Consigli per iniziare: La applicazione “Theremino_HAL.exe”, non richiede installazione e può essere eseguito in qualunque cartella del sistema – Facendo doppio click su una linea si apre la finestra grafica che mostra l’andamento del segnale su quella linea – Con un click singolo su una linea e con un click su un’altra linea è possibile vederle contemporaneamente  – Tutte le caselle numeriche sono editabili con la tastiera, con il mouse su/giù, con la rotella del mouse e con le frecce alto e basso – Infine, durante le prove, è molto comodo cambiare i valori nella colonna “Value” con il mouse (premere il tasto sinistro su un numero della colonna “Value”, tenerlo premuto e muovere il mouse su e giù)
Errori temporanei causati da sovratensioni sui PIN di Input: A volte, toccando i PIN con le dita, il programma HAL smette di comunicare con l’hardware, scrive una riga rossa con il messaggio “disconnesso” e si deve premere “Riconosci”. Questo si verifica se il corpo è carico di elettricità statica e emette una piccola scarica elettrica. Tutti i componenti sono scelti con cura e non si rompono mai, ma anche se non si vede la scintilla, si tratta sempre di tensioni di molte migliaia di Volt, che mandano in tilt temporaneamente la comunicazione seriale e la porta USB. Durante le prove si faccia attenzione a maneggiare i moduli solo da spenti, oppure a toccare prima la massa (ad esempio il connettore USB). Il progetto finale dovrebbe sempre prevedere un contenitore isolante che impedisca agli utenti di toccare parti metalliche sotto tensione.

– – – – – –

Note sulle versioni di Theremino_HAL

Le note per le versioni precedenti (dalla 2.0 alla 7.4) sono raccolte nei file:
OldVersions_ITA.rtf
OldVersions_ENG.rtf
Versione 7.5
– Aggiunta la calibrazione dello zero all’avvio.
– Corrette label MinValue MaxValue e altre al cambio lingua
– Eliminato errore dei Pins Adc24 in mancanza di configurazione
– Se si prova a editare un file SlotNames non esistente viene creato
– Trimming del valore facendo click su  ogni punto della linea del Pin
– Il nome degli slot (se esiste) viene mostrato nei dettagli del Pin
– Dopo “Edit configuration” la configurazione viene ricaricata correttamente
Versione 8.0
Aggiunto l’antialias nell’oscilloscopio !!!
Aggiunte le regolazioni Min e Max all’oscilloscopio!!!
Eliminato lo sfarfallio della ListView !!!
Eliminato errore CapSensor con firmware 2 e 3 (errore adc24)
Aggiunto menu linguaggi Cinese e Portoghese
Corretto FastPwm con “Ciclo Da Slot” e MaxValue diverso da 1000
Aggiunti SHIFT e CTRL sui TextBox
 – Up/Down = +/-1
 – PageUp/PageDown = +/-10
 – SHIFT = *100
 – CTRL = *10
 – ALT = /10
Eliminata la colonna Dir.
Centrato il testo nei titoli della lista
Aumentata l’affidabilità del Save-Load della configurazione
Gli errori NotConfigured e NotFound vengono riportati correttamente
Aggiornata la documentazione
Versione 8.1
Versione non pubblicata.
Versione 8.2
Corretti i comandi di “Backup della configurazione” che non funzionavano bene.
Migliorati i comandi che si inviano nello “Slot dei Comandi”, e le risposte che si 
possono ottenere.
Ora le applicazioni possono conoscere il numero di Master che sono stati riconosciuti
e anche conoscere se uno di essi smette di funzionare.
Per maggiori informazioni leggere le pagine 5 e 6 dei file di HELP aggiornati (Italiano e Inglese).
Versione 8.3
I tipi di Pin Servo8, Servo16, Pwm8, Pwm16 e PwmFast ora si avviano in Sleep
Lo slot zero è riservato ai comandi e messaggi, per cui non si può più assegnarlo ai Pin per sbaglio.
Quando si imposta un nuovo nome per il modulo, se il profilo è già esistente si viene avvertiti.
Eliminato l’errore che accadeva in alcuni casi assegnando un nuovo nome.
L’icona è migliorata. Tutte le applicazioni del sistema avranno nuove icone, con lettere per distinguerle.
Per vedere il testo delle icone nella barra inferiore di Windows, è necessario creare link alle applicazioni, sul desktop.
Versione 8.5
Eliminati gli errori dai Pin di tipo Period quando a causa di disturbi il tempo diventa inferiore ai 50 uS
Quando si riduce il numero di Pin di tipo Adc24 lo sfondo viene ripulito correttamente.
Versione 8.6
Questa versione permette a Windows di chiudersi senza il messaggio “This app is preventing shutdown”
Versione 8.7
Questa versione ricarica automaticamente il file “SlotNames.txt” quando viene modificato da una applicazione esterna (solitamente SignalScope, SlotViewer o Notepad). 
Versione 8.8
Eliminato il testo nella colonna Notes per gli Encoder_B e ADC24_ch_b
La conversione del valore numerico in arrivo dagli Slot verso gli STEP non da errori anche con numeri molto grandi.
Nel menu di scelta della lingua ora c’è anche il tedesco.

I primi Master (con firmware da 1.0 a 2.0) non funzionano con gli HAL versione 7.x. La versioni di HAL dalla 8.0 in poi, dovrebbero far funzionare anche i Master più vecchi, ma manteniamo anche questa 4.6 per sicurezza. 

Le ultime versioni di HAL utilizzabili con i firmware da 1.0 a 2.0, sono le seguenti:
Theremino_HAL_V4.6.zip 
Theremino_HAL_V4.6_WithSources.zip

Chi avesse ancora i Master con vecchie versioni di firmware può rispedirli a Lello (lello@thereminoshop.com), che li aggiornerà gratis alla versione 5.


Procurarsi i moduli già programmati

Lello (venditore maxtheremino su eBay) vi può fornire i moduli già programmati e vi potrà aiutare a farli funzionare.
eBay-maxtheremino
Mail Lello (ufficiotecnico@spray3d.it)


Downloads di Theremino HAL – Versione 8.8
Theremino_HAL_V8.8
Theremino_HAL_V8.8_WithSources (per programmatori)

Theremino_HAL_CSharp_V8.8_WithSources (per programmatori C#)
Per tutti i sistemi da Windows XP a Windows 10, sia 32 che a 64 bit (Linux e OSX con Wine)

La versione in C# facilita il “porting”, verso Android e Mac, che preferiscono le sintassi C-Like. Questa versione, funziona esattamente come quella originale. Per l’uso normale, si consiglia però di non usarla, dato che è meno testata e leggermente meno efficiente, a causa della più difficile gestione delle stringhe, nei linguaggi C-Like.

– – – – – –

Aggiornare le proprie applicazioni con l’ultima versione di HAL

Molte applicazioni che usano l’HAL, ad esempio Theremino CNC e Theremino Dolfrang, potrebbero contenere vecchie versioni di HAL. Queste applicazioni possono continuare a usare la versione meno recente senza problemi. Ma se si desidera aggiornarle con la versione più recente di HAL si può farlo facilmente. Si deve solo fare attenzione a non ricoprire anche i propri file di configurazione.

Come aggiornare applicazioni che contengono una versione precedente di HAL:
– Scaricare lo zip dell’ultima versione di HAL.
– Aprire la cartella della propria applicazione da aggiornare.
– Individuare la posizione del file “Theremino_HAL.exe” con accanto la sua cartella “Docs”.
– Rimpiazzare il file “Theremino_HAL.exe” e tutti i file contenuti in “Docs”con quelli dello ZIP.

I file “Theremino_HAL_ConfigDatabase.txt” e “SlotNames.txt” non vanno rimpiazzati perché contengono le proprie configurazioni.

Chi volesse utilizzare Visual Studio per ispezionare, modificare e ricompilare la applicazione, dovrebbe anche sostituire tutti i file della cartella “Sources”.

– – – – – –

     Download della documentazione in formato ODT
Chi conosce bene queste lingue, potrebbe aprire i file con Open Office, correggerli e inviarceli. Per le altre lingue potete prendere il file inglese e farlo tradurre da: onlinedoctranslator che è ottimo, velocissimo e rispetta la formattazione.

ThereminoHAL_Documentation_ENG_ITA_ESP_JPN


ArduHAL – Usare moduli Arduino al posto dei Master 

Theremino ArduHAL

La applicazione ArduHAL permette di utilizzare i moduli Arduino in modo semplice. Tutti i tipi di Input Output più comuni sono già pronti. Per cui non si deve programmare, basta configurare gli ingressi e le uscite e si ha subito il collegamento diretto tra il software sul PC e i sensori.

Arduino Nano

Il modulo Arduino, per mezzo della applicazione ArduHAL, può utilizzare le oltre cento applicazioni del sistema theremino, tutte Open Source e gratuite, per leggere i dati e controllare le uscite. Dagli oscilloscopi ai generatori di segnali, ai termostati, alle applicazioni musicali, ai giochi, ecc..

Per conoscere velocemente le caratteristiche dell’ArduHAL leggete questo articolo. Altrimenti leggete la documentazione che si scarica qui sotto.

ATTENZIONE : Noi utilizziamo i moduli Arduino come dispositivi di ingresso uscita per PC. Quindi le considerazioni che facciamo non sono un giudizio su Arduino ma valgono solo in questo particolare ambito di utilizzo, leggere questo post .

I moduli Arduino che funzionano meglio (nel particolare modo in cui li usiamo noi) sono gli Arduino Nano con il chip CH340. Il chip CH340 è sul lato inferiore del Nano e lo si riconosce perché ha molti meno pin dello FT232 (16 pin contro 28).

Dalla versione 1.4 di ArduHAL si possono utilizzare anche gli Arduino con il chip FT232  ma la frequenza di comunicazione è di un 30% inferiore, perché non li si possono usare in multithread. Leggere pagina otto del file “Theremino_ArduHAL_Help”

ATTENZIONE : Se il modo asincrono non è abilitato e la funzione “loop()” di Arduino contiene codice lento, potrebbe essere impossibile comunicare con Arduino. La lista dell’ArduHAL resterà vuota e quindi non si potrà abilitare il modo asincrono. In questo caso si dovrà commentare tutto quello che c’è nella funzione “loop()” di Arduino, programmarlo e premere “Riconosci”. E infine abilitare il modo asincrono.

L’indicazione Rep Freq. (fps) indica valori approssimati. I valori misurati sono abbastanza giusti intorno ai 200 fps e diventano sempre più errati (per difetto e di molto), man mano che gli FPS crescono e si avvicinano a 1000. Non modifichiamo la funzione di lettura perché ormai siamo tutti abituati da anni alle sue indicazioni e modificarle creerebbe troppa confusione. Comunque per tutti gli usi di automazione e di lettura dei sensori una ripetizione superiore a 100 fps è sempre sufficiente.


Download dei file di documentazione (26/05/2021)
Theremino_ArduHAL_Help_ITA.pdf
Theremino_ArduHAL_Help_ENG.pdf
Theremino_ArduHAL_Reading_I2C_Sensors_ITA.pdf
Theremino_ArduHAL_Reading_I2C_Sensors_ENG.pdf

File di documentazione originali in formato ODT (23/11/2018)
ArduHAL_Docs_ODT.zip


Procurarsi i moduli

Lello (venditore maxtheremino su eBay) vi può fornire i moduli già programmati e vi potrà aiutare a farli funzionare.
eBay-maxtheremino
Mail Lello (ufficiotecnico@spray3d.it)


Note per le versioni di ArduHAL
Versione 1.1 – Questa è la prima versione pubblicata.
Versioni 1.2 e 1.3 – Piccole correzioni
Versione 1.4 – I modi “Async e “Polling” sono comodamente selezionabili dalla applicazione ArduHAL senza dover modificare il firmware e ricompilarlo. Il modo “Polling” permette di utilizzare tutti i tipi di Arduino anche quelli con il chip FT232.
Versione 2.0
Aggiunto l’antialias nell’oscilloscopio !!!
Aggiunte le regolazioni Min e Max all’oscilloscopio!!!
Eliminato lo sfarfallio della ListView !!!
Aggiunto menu linguaggi Cinese e Portoghese
Aggiunti SHIFT e CTRL sui TextBox
 – Up/Down = +/-1
 – PageUp/PageDown = +/-10
 – SHIFT = *100
 – CTRL = *10
 – ALT = /10
Eliminata la colonna Dir.
Centrato il testo nei titoli della lista
Aumentata l’affidabilità del Save-Load della configurazione
Versione 2.1
Corretti i comandi di “Backup della configurazione” che non funzionavano bene.
Migliorati i comandi che si inviano nello “Slot dei Comandi”, e le risposte che si possono ottenere.
Ora le applicazioni possono conoscere il numero di moduli che sono stati riconosciuti
e anche conoscere se uno di essi smette di funzionare.
Per maggiori informazioni leggere le pagine 14 e 15 dei file di HELP aggiornati (Italiano e Inglese).
Versione 2.2
Le nuove parole chiave “genericWriteFloat” e “genericReadFloat”
semplificano il trasferimento dei numeri in virgola mobile.
I Pin impostati come GEN_OUT_xx e GEN_IN_xx non vengono più inizializzati,
quindi è possibile utilizzarli nel firmware di Arduino.
Per maggiori informazioni leggere le pagine sui Pin “Generici” nei file di HELP aggiornati (Italiano e Inglese).
Versione 2.3
I tipi di Pin Servo8, Servo16, Pwm8, Pwm16 e PwmFast ora si avviano in Sleep
Lo slot zero è riservato ai comandi e messaggi, per cui non si può più assegnarlo ai Pin per sbaglio.
Quando si imposta un nuovo nome per il modulo, se il profilo è già esistente si viene avvertiti.
Eliminato l’errore che accadeva in alcuni casi assegnando un nuovo nome.
L’icona è migliorata. Tutte le applicazioni del sistema avranno nuove icone, con lettere per distinguerle.
Per vedere il testo delle icone nella barra inferiore di Windows, è necessario creare link alle applicazioni, sul desktop.
Versione 2.4
L’icona è migliorata. Tutte le applicazioni del sistema avranno nuove icone, con lettere per distinguerle.
Il testo dell’icona è visibile sulla barra inferiore anche se non si ha un link sul desktop.
Versione 2.5
Questa versione ricarica automaticamente il file “SlotNames.txt” quando viene modificato da una applicazione esterna (solitamente SignalScope, SlotViewer o Notepad). 

Download della applicazione Theremino ArduHAL Versione 2.5
Theremino_ArduHAL_V2.5 
Theremino_ArduHAL_V2.5_WithSources (per programmatori)
Per tutti i sistemi da Windows XP a Windows 10, sia 32 che a 64 bit (Linux e OSX con Wine)


Libreria per Arduino
Note per le versioni della libreria per Arduino
Versione 1.0 – Per impostare il modo asincrono era necessario modificare il file “Theremino.CPP”
Versione 1.1 – Per impostare il modo asincrono basta aggiungere la chiamata a setAsyncMode nel file “.ino”. – Leggere i commenti sul modo asincrono nel file README che si trova in “libraries/Theremino/src”
Versione 1.2 – La velocità del modo asincrono è aumentata a oltre 200 scambi al secondo. La stabilità dei segnali dei Servo ora è perfetta anche se si utilizza il modo asincrono.
Versione 1.3 – Le funzioni GenericRead16 e GenericRead24 non riabilitavano le interrupt in uscita. Alcune variabili ora sono dichiarate “volatile” e questo potrebbe, in alcuni casi, aumentare la stabilità del funzionamento. 
Versione 1.4 – I modi “Async e “Polling” sono comodamente selezionabili dalla applicazione ArduHAL senza dover modificare il firmware e ricompilarlo. Il modo “Polling” permette di utilizzare tutti i tipi di Arduino anche quelli con il chip FT232.
Versione 1.5 – La libreria “theremino” ora si trova nel primo livello del file ZIP ed è possibile aggiungerla anche con il comando  “Aggiungi libreria da file .ZIP”.
Versione 1.6 – A partire dalla versione 1.6, i Pin configurati come UNUSED vengono lasciati come sono. Precedentemente venivano impostati come “INPUT”, e questo impediva di utilizzarli come output nel loop di Arduino.
Versione 1.7 – Aggiunta la possibilità di leggere e scrivere anche i numeri in virgola mobile (float), con le istruzioni genericReadFloat e genericWriteFloat.
Versione 1.8 – Risolto un piccolo ma fastidioso problema. In alcuni casi il modulo Arduino non veniva riconosciuto perché la EEPROM conteneva il nome del modulo troppo lungo.

Sostituire la libreria “theremino” con una nuova versione (primo metodo)
– Individuare la locazione della cartella delle librerie di Arduino con il menu “File / Impostazioni”.
– Chiudere l’IDE di Arduino
– Aprire la cartella “libraries” di Arduino e eliminare la cartella “Theremino”
– Estrarre dal file zip la cartella “Theremino” e copiarla nella cartella “libraries”.
– Riaprire l’IDE di Arduino.
Sostituire la libreria “theremino” con una nuova versione (secondo metodo)
– Individuare la locazione della cartella delle librerie di Arduino con il menu “File / Impostazioni”.
– Eliminare la libreria “Theremino”.
– Aggiungere la libreria theremino da file ZIP come spiegato qui di seguito.
Aggiungere la libreria “theremino” alle librerie di Arduino
– Scaricare lo zip “ArduinoLibrary_Theremino_V1.5_zip” e copiarlo in un posto comodo, ad esempio “Documenti”
– Aprire l’IDE di Arduino
– Aprire il menu “Sketch”, seguire “#include libreria” e scegliere “Aggiungi libreria da file .ZIP”
– Aprire la cartella dove si era copiato li ZIP
– Selezionare il file 
“ArduinoLibrary_Theremino_V1.5_zip”

– Premere il pulsante “Apri”

IMPORTANTI MODIFICHE
A partire dalla versione 1.6,  i Pin configurati come UNUSED vengono lasciati come sono.
Precedentemente venivano impostati come “INPUT”, e questo impediva di utilizzarli come output nel loop di Arduino.
A partire dalla versione 1.7,  si possono trasferire anche numeri in virgola mobile (float).
Leggere le pagine sui Pin “Generici” nei file di HEL
La versione 1.8 risolve un piccolo ma fastidioso problema.
In alcuni casi il modulo Arduino non veniva riconosciuto perché la EEPROM conteneva il nome del modulo troppo lungo.

Libreria per Arduino – Versione 1.8
ArduinoLibrary_Theremino_V1.8.zip  (leggere la documentazione di ArduHAL)   


MODIFICARE I COLORI DELL’ IDE DI ARDUINO
I colori del report della compilazione dell’IDE ufficiale di Arduino sono rosso scuro su nero,
la seguente utility li trasforma in colori normali e facilmente leggibili.

Piccolo programma eseguibile per correggere i colori di Arduino IDE 
ArduinoIDE_ChangeColors.zip

ISTRUZIONI
1) Aprire lo ZIP che contiene il file “ArduinoIDE_ChangeColors.exe”

2) Copiare il file “ArduinoIDE_ChangeColors.exe” vicino al file “arduino.exe”
3) Fare click sul file “ArduinoIDE_ChangeColors.exe” con il tasto destro del mouse
4) Dal menu che si è aperto con il tasto destro, scegliere “Esegui come amministratore”

5) Riavviare ArduinoIDE


IotHAL – Comunicare via radio con gli IotModule (ESP32)

IotHAL V0.4

Lo IotHAL mette in comunicazione gli IotModule con il software ad alto livello, via WiFi e rete.

La sigle I.O.T. degli IotModule sta per “Internet Of Things”. E questi moduli, programmabili con lo stesso IDE di Arduino, sono veramente versatili.

Ecco le loro caratteristiche:

– Gestione immediata degli Input-Output, come sempre con il sistema theremino.
– Potenza notevolmente maggiore (240 MHz di clock contro i 16 MHz dei Master).
– Processore Dual-Core a 32 bit (contro i 16 bit dei Master).
– Supporto per operazioni veloci sui numeri in virgola mobile Single e Double.
– Funzionamento via WiFi

– Possibilità di programmarli facilmente per leggere sensori speciali
– Programmabili con lo stesso IDE di Arduino (nota 1)
– Possibilità di usare gli stessi firmware e librerie di Arduino

(nota 1)
Leggete nel paragrafo precedente come cambiare i colori della zona inferiore di Arduino,
da un illeggibile rosso scuro su nero, a colori normali e facilmente leggibili.

– Numero di Pin notevolmente maggiore (28 contro i 12 attuali)
– 8 ingressi ADC a 12 bit (14 sovracampionati) contro i 10 bit attuali (12 sovrac.)
– 2 uscite DAC a 8 bit
– 10 ingressi capacitivi
– 16 uscite PWM
– 3 interfacce SPI
– 3 interfacce UART
– 2 interfacce I2C
– 2 interfacce I2S
– 4 timers a 64 bit
– Memoria flash integrata
– 520 kByte dati e cache
– 4 Mega Byte di programma (flash)
– Possibilità di collegare il modulo theremino ADC24

– Costo dei moduli anche minore dei Master attuali.

Si aprono possibilità non realizzabili con i Master, ad esempio posizionare una camera a ioni o un geiger in locazioni difficili da raggiungere con un cavo di segnale. Oppure costruire veicoli controllabili via Wifi, come si vede nel video Missione su Marte.

– – – – – – –

Iot HAL with 64 Pins

 

In questa immagine si vede lo IOT HAL collegato a un modulo ESP32 che è stato configurato con il massimo numero possibile di Pin.

Sono ben 64 Pin, ma se ne servono di meno è possibile riconfigurare il modulo per usare e vedere solo quelli che servono. Al limite anche un solo Pin.

Tutti questi Pin vengono trasferiti via WiFi, con un singolo scambio e il tempo di trasferimento è praticamente uguale per qualsiasi numero di Pin.

Fate click sulla immagine per ingrandirla.

 

 

 

– – – – – – –

L’indicazione Rep Freq. (fps) indica valori approssimati. I valori misurati sono abbastanza giusti intorno ai 200 fps e diventano sempre più errati (per difetto e di molto), man mano che gli FPS crescono e si avvicinano a 1000. Non modificheremo i calcoli perché ormai siamo tutti abituati da anni a queste indicazioni e modificarle creerebbe troppa confusione. Comunque per tutti gli usi di automazione e di lettura dei sensori una ripetizione superiore a 100 fps è sempre sufficiente.

– – – – – – –

    ESP32 PICO V4

– – – – – – –

  • I Pin con l’etichetta IN possono essere programmati come : DigIn, Counter, Period e Encoder.
  • I Pin con l’etichetta IN OUT sono programmabili anche come : DigOut, Pwm e Servo.
  • I Pin con l’etichetta DAC danno in uscita una tensione regolabile da 0 a 3.3 volt.
  • I Pin con la parola ADC cancellata potrebbero essere utilizzati come ADC, ma solo comunicando via USB e disattivando la comunicazione WiFi (nelle versioni attuali non si può fare).
  • I Pin “0”, “1”, “2”, “3” e “12” sono utilizzabili solo con particolari attenzioni, altrimenti il modulo non funzionerà più bene. Vedere la prossima pagina: Collegare i Pin speciali.

I Pin sono configurabili con i seguenti tipi:
– Uscita digitale
– Uscita PWM (da 0.02 Hz a 40 MHz)
– Uscita DAC (tensione di uscita regolabile)
– Uscita per i Servo-comandi
– Uscita per motori Stepper
– Ingresso digitale
– Ingresso di conteggio, frequenza e periodo
– Ingresso per Encoders a due/quattro fasi
– Ingresso ADC per potenziometri e trasduttori
– Ingresso CAP per pulsanti capacitivi
– Adc24


Download dei file di documentazione (20/02/2022) 
Theremino_IotHAL_Help_ITA.pdf
Theremino_IotHAL_Help_ENG.pdf
Theremino_IotHAL_Reading_I2C_Sensors_ITA.pdf
Theremino_IotHAL_Reading_I2C_Sensors_ENG.pdf

File di documentazione originali in formato ODT (20/02/2022)
IotHAL_Docs_ODT.zip


Procurarsi i moduli già programmati

Lello (venditore maxtheremino su eBay) vi può fornire i moduli già programmati e vi potrà aiutare a farli funzionare in tutti i modi (SoftAP, Station DHCP e Station Static) .
eBay-maxtheremino
Mail Lello (ufficiotecnico@spray3d.it)


Download del firmware

Versione 140
Prima versione pubblicata.
Conteneva un difetto che impediva il funzionamento nel modo SoftAP su quasi tutti i dispositivi.
Versione 144
Con questa versione il modo SoftAP funziona su tutti i dispositivi di tipo N, B e anche G, sia con 20 che con 40 MHz di banda.  
Versione 182
La novità più importante sono i motori Stepper.
>>> LEGGETE I FILE DI DOCUMENTAZIONE  <<<
Le novità principali della versione 182 sono nelle pagine seguenti:
Resistori per i PWM (pagina 16 e 30)
Pulldown per gli stepper nella documentazione (pag 17)
Avvertimenti per la VPN come docs di SlosOverNet (pag 66)
Riconnessione automatica (pag 13)
Debuggare con Generic Write (pag 43)
Allocazione di PWM / Stepper / Servo (pag. 27)
SSID and Password list (pag. 59)
Versione 191
Vedere le ultime pagine della nuova documentazione.
Nel file “zip” troverete sei cartelle.
– Il firmware di base è nella cartella “IotModule”
– Le altre cinque cartelle contengono i firmware specifici per i sensori I2C

Download del firmware IotModule Versione 191
Theremino_IotModuleFirmware_V191

Per programmare il modulo leggete la documentazione. 


Download della applicazione IotHAL

Versione 1.1
Questa è la prima versione ma l’abbiamo controllata a lungo e comprende anche la gestione completa dell’Adc24.
Le configurazioni sono migliorate e si possono configurare in molti modi nel file Setup.h.
Versione 1.3
Versione da usare con il nuovo firmware V182
La novità più importante sono i motori Stepper.
>>> LEGGETE LA DOCUMENTAZIONE  <<<
Versione 1.4
Questa versione ricarica automaticamente il file “SlotNames.txt” quando viene modificato da una applicazione esterna (solitamente SignalScope, SlotViewer o Notepad). 
Versione 1.5
– Riconosce Communications-options Names anche con lettere maiuscole minuscole.
– Funziona anche con valori ADC uguali a zero.

Download della applicazione Theremino IotHAL Versione 1.5
Theremino_IotHAL_V1.5
Theremino_IotHAL_V1.5_WithSources (per programmatori)

Per tutti i sistemi da Windows XP a Windows 10, sia 32 che a 64 bit (Linux e OSX con Wine)


NetHAL – Comunicare via radio con i NetModule

Theremino NetHAL

Il NetHAL mette in comunicazione i NetModule con il software ad alto livello, via WiFi e rete.

Si aprono possibilità non realizzabili con i Master, ad esempio posizionare una camera a ioni o un geiger in locazioni difficili da raggiungere con un cavo di segnale. Oppure costruire veicoli controllabili via Wifi, come si vede nel video Missione su Marte.

L’indicazione Rep Freq. (fps) indica valori approssimati. I valori misurati sono abbastanza giusti intorno ai 200 fps e diventano sempre più errati (per difetto e di molto), man mano che gli FPS crescono e si avvicinano a 1000. Non modifichiamo la funzione di lettura perché ormai siamo tutti abituati da anni alle sue indicazioni e modificarle creerebbe troppa confusione. Comunque per tutti gli usi di automazione e di lettura dei sensori una ripetizione superiore a 100 fps è sempre sufficiente.

– – – – – – –

     

Il progetto del circuito stampato del NetModule, che comprende anche le immagini 3D e gli schemi elettrici del NetModule e del WemosD1 mini, si scarica con questo link:
NetModuleV1.zip

– – – – – – –

– ATTENZIONE –
Se si utilizza un modulo Wemos D1 mini, senza il circuito stampato del NetModule,
si deve aggiungere un resistore da 4.7 k tra D0 e massa,
altrimenti il modulo si avvierebbe sempre nella modalità SoftAP.

– ATTENZIONE –
Il nostro firmware non ha nessuna relazione con quello che si trova in rete
per lo ESP8266 (NodeMcu, Lua, Arduino, Zbasic, Python e simili).
Abbiamo scritto da zero il firmware in base alle specifiche del costruttore ExpressIf,
per cui tutto quello che si legge in rete sullo ESP8266 è inutile e fuorviante.

– ATTENZIONE –
Se il modulo si collega, ma non appare nelle liste del NetHAL e del NetModuleProgrammer,
oppure il sistema operativo non crea una porta COM quando lo si collega alla porta USB,
seguite i consigli dell’ultima pagina del documento Theremino_NetHAL_Help_ITA.pdf 
(il documento deve essere almeno del 26 gennaio 2018
in caso contrario resettate la cache del browser e riscaricatelo)

– – – – – – –

Un ringraziamento particolare a Fabrizio,
senza di lui tutto questo non sarebbe stato possibile.

– – – – – – –

Il firmware e il software sono finiti e funzionanti al 100%. La documentazione è quasi completa e i componenti hardware sono già disponibili su eBay.

Lello (venditore maxtheremino su eBay) vi può fornire i moduli già programmati e vi potrà aiutare a farli funzionare in tutti i modi (SoftAP, Station DHCP e Station Static) .
eBay-maxtheremino
Mail Lello (ufficiotecnico@spray3d.it)


La documentazione è quasi completa, pubblicheremo ancora un file di aiuto per chi avesse difficoltà con il Firewall.

Theremino System - Download dei file di documentazione (18-10-2018)
Theremino_NetHAL_Help_ITA.pdf   
Theremino_NetModuleFeatures_ITA.pdf
Theremino_NetModuleProgrammer_Help_ITA.pdf

Theremino_NetModule_UsbProgramming_ITA.pdf  Theremino_NetModule_FirewallProblems_ITA.pdf
(per scaricare le ultime versioni potrebbe essere necessario azzerare la cache del Browser)

Theremino System - Documentation files download (18-10-2018)
Theremino_NetHAL_Help_ENG.pdf   
Theremino_NetModuleFeatures_ENG.pdf
Theremino_NetModuleProgrammer_Help_ENG.pdf

Theremino_NetModule_UsbProgramming_ENG.pdf  Theremino_NetModule_FirewallProblems_ENG.pdf
(to download the last versions sometimes could be necessary to clear the browser cache)

Theremino System -Theremino System - Documenti originali in formato ODT (18-10-2018)
Theremino_NetModules_Docs.zip


Note per le versioni del NetHAL
Versione 1.0 – Questa era la prima versione pubblicata, mancava ancora la possibilità di utilizzare IP fissi e di programmare il firmware via radio..
Versione 1.3 – IP fissi, DHCP, Software AP e programmazione del firmware via radio. Tutto funzionante. Manca solo la documentazione.
Versione 1.4 – In alcuni casi i moduli venivano listati due volte, con conseguenti messaggi di errore (come si vede in questa immagine). La versione 1.4 elimina questo problema.
Versione 1.5 – I nomi che appaiono nel Firewall ora iniziano con Theremino e quindi è più facile trovarli. Chi avesse già usato le versioni precedenti potrebbe trovare nel firewall i vecchi nomi, ad esempio “Hardware Abstraction Layer for NET and INTERNET” al posto di “Theremino NetHAL”. L’unico modo per convincere Windows a usare i nuovi nomi è aprire RegEdit, cercare la vecchia stringa e eliminarla.
Versione 2.0
Aggiunto l’antialias nell’oscilloscopio !!!
Aggiunte le regolazioni Min e Max all’oscilloscopio!!!
Eliminato lo sfarfallio della ListView !!!
Aggiunto menu linguaggi Cinese e Portoghese
Aggiunti SHIFT e CTRL sui TextBox
 – Up/Down = +/-1
 – PageUp/PageDown = +/-10
 – SHIFT = *100
 – CTRL = *10
 – ALT = /10
Eliminata la colonna Dir.
Centrato il testo nei titoli della lista
Aumentata l’affidabilità del Save-Load della configurazione
Versione 2.1
Corretti i comandi di “Backup della configurazione” che non funzionavano bene.
Migliorati i comandi che si inviano nello “Slot dei Comandi”, e le risposte che si possono ottenere.
Ora le applicazioni possono conoscere il numero di moduli che sono stati riconosciuti
e anche conoscere se uno di essi smette di funzionare.
Per maggiori informazioni leggere le pagine 10 e 11 dei file di HELP aggiornati (Italiano e Inglese).
Versione 2.2
I tipi di Pin Servo8, Servo16, Pwm8, Pwm16 e PwmFast ora si avviano in Sleep
Lo slot zero è riservato ai comandi e messaggi, per cui non si può più assegnarlo ai Pin per sbaglio.
Quando si imposta un nuovo nome per il modulo, se il profilo è già esistente si viene avvertiti.
Eliminato l’errore che accadeva in alcuni casi assegnando un nuovo nome.
L’icona è migliorata. Tutte le applicazioni del sistema avranno nuove icone, con lettere per distinguerle.
Per vedere il testo delle icone nella barra inferiore di Windows, è necessario creare link alle applicazioni, sul desktop.
Versione 2.3
L’icona è migliorata. Tutte le applicazioni del sistema avranno nuove icone, con lettere per distinguerle.
Il testo della icone nella barra inferiore di Windows, è visibile anche senza link alla applicazione, sul desktop.
Versione 2.4
Questa versione ricarica automaticamente il file “SlotNames.txt” quando viene modificato da una applicazione esterna (solitamente SignalScope, SlotViewer o Notepad). 

Download della applicazione Theremino NetHAL Versione 2.4
Theremino_NetHAL_V2.4
Theremino_NetHAL_V2.4_WithSources (per programmatori)

Per tutti i sistemi da Windows XP a Windows 10, sia 32 che a 64 bit (Linux e OSX con Wine)


Note per le versioni del NetModule programmer:
Versione 1.0 – Completamente funzionante. Contiene anche i file da usare con il programmatore USB per la prima programmazione (in fabbrica). Manca solo la documentazione.
Versione 1.1 – I nomi che appaiono nel Firewall ora iniziano con Theremino e quindi è più facile trovarli. Chi avesse già usato le versioni precedenti potrebbe trovare nel firewall i vecchi nomi, ad esempio “Hardware Abstraction Layer for NET and INTERNET” al posto di “Theremino NetHAL”. L’unico modo per convincere Windows a usare i nuovi nomi è aprire RegEdit, cercare la vecchia stringa e eliminarla.
Versione 1.2
L’icona è migliorata. Tutte le applicazioni del sistema avranno nuove icone, con lettere per distinguerle.
Per vedere il testo delle icone nella barra inferiore di Windows, è necessario creare link alle applicazioni, sul desktop.

Download della applicazione Theremino NetModuleProgrammer Versione 1.2
Theremino_NetModuleProgrammer_V1.2
Theremino_NetModuleProgrammer_V1.2_WithSources (per programmatori)

Per tutti i sistemi da Windows XP a Windows 10, sia 32 che a 64 bit (Linux e OSX con Wine)


Questo firmware non serve per utilizzare i NetModule – Non scaricatelo –
Potrebbe essere utile solo a chi pensasse di migliorare la nostra implementazione. Chi si accingesse a farlo dovrebbe anche considerare che ogni modifica va poi coordinata anche con la applicazione NetHAL e con la documentazione.

Download dei sorgenti per ricompilare il firmware per Wemos D1 mini e compatibili
MasterESP8266 (0.14B1).zip

 


Inviare comandi agli HAL

Nei file di istruzioni delle applicazioni HAL è spiegato come utilizzare lo “Slot dei comandi”. Normalmente lo “Slot dei comandi” è lo Slot zero, per cambiarlo si dovrebbe modificare manualmente il file di inizializzazione dell’HAL.

Le applicazioni HAL scrivono nello Slot dei comandi i seguenti numeri:

  • -1 ----------------- Il comando “Riconosci” è ancora in esecuzione
  • 0 ----------------- Non sono stati trovati Master, la lista dei Master è vuota
  • Da 1 in su ----------- Il numero di Master che sono stati riconosciuti
  • NAN_MasterError --- Uno dei Master collegati ha smesso di comunicare

Altre applicazioni del sistema possono inviare comandi agli HAL scrivendo nello Slot dei comandi il numero NAN (not a number) corrispondente. Per le applicazione che non possono scrivere i numeri NAN, esistono metodi alternativi descritti nei file di istruzioni. I comandi attualmente implementati sono “Riconosci” e “Calibra”. Per maggiori particolari consultare i file di istruzioni degli HAL.

Esempio di riconnessione automatica dei Master

Il seguente esempio mostra come una applicazione VbNet può riconoscere che un Master si è scollegato e quindi inviare il comando “Riconosci” per ricollegarlo.

Private Sub tmer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmer1.Tick
    If Slots.ReadSlot_NoNan(0) < 1 Then
        Slots.WriteSlot(0, NAN_Recognize)
        Threading.Thread.Sleep(500)
    End If
End Sub

Questo pezzo di codice viene chiamato da un timer (solitamente ogni 100 mS). La prima istruzione condizionale If Slots.ReadSlot_NoNan(0) < 1 Then legge lo Slot zero e esegue le righe seguenti se non c’è almeno un Master collegato e funzionante.

Il comando ReadSlot_NoNan elimina eventuali codici di errore e li trasforma in zero. Per cui, se uno o più Master sono in funzione, leggeremo il loro numero, mentre se c’è stato un errore leggeremo un numero inferiore, oppure zero.

Quindi se la nostra applicazione utilizza più di un Master dovremo scrivere il loro numero. Ad esempio nel caso di tre Master scriveremo If Slots.ReadSlot_NoNan(0) < 3 Then

Se il numero di Master collegati è minore del numero di Master richiesti, allora la riga Slots.WriteSlot invia il comando “Riconosci” e poi la riga Threading.Thread.Sleep(500) attende mezzo secondo, per dare tempo a tutti i Master di rispondere (se sono molti potrebbe essere necessario allungare questo tempo).

 


Il file SlotNames.txt

Theremino HAL With Notes    Theremino SlotViewer With Notes

La applicazione HAL (dalla versione 5.5 in poi) e lo SlotViewer (dalla versione 2.6 in poi), possono visualizzare anche il nome dello Slot (oppure annotazioni o commenti).

I nomi si scrivono in un file, che deve chiamarsi “SlotNames.txt”.

Il file “SlotNames.txt” si edita con NotePad, WordPad o direttamente da dentro le applicazioni HAL, IotHAL, NetHAL, SlotViewer e SignalScope. Se il file “SlotNames.txt” non esiste il campo dei commenti rimarrà vuoto.

Le regole di scrittura sono semplici e sono mostrate nel file di esempio, che si trova nelle ultime versioni di HAL e SlotViewer.

Importante notare che i nomi non sono legati ai Pin fisici, ma agli Slot.

Ogni linea del file inizia con il numero dello Slot, seguito da uno spazio e dal testo da visualizzare. La linea può anche continuare con una parte di commento, che non verrà visualizzata, preceduta da un apice singolo.

Lo SlotViewer utilizza anche i comandi speciali Min=nn e Max=nn che gli indicano il range da utilizzare per ogni singolo Slot. Se il file SlotNames non contiene questi comandi allora lo Slot utilizza i valori che si regolano con le due caselle Min e Max dello SlotViewer.

Se si vuole usare lo stesso file di commenti, sia per l’HAL che per lo SlotViewer e il Signal Scope, si devono tenere i file “SlotNames.txt”, “SlotViewer.exe”, “SignalScope.exe”, “HAL.exe”, tutti nella stessa cartella.


Modularità delle applicazioni

La modularità del software del sistema Theremino si ottiene, in modo non convenzionale, con la esecuzione contemporanea di molte applicazioni. Ogni applicazione si occupa dei soli compiti per cui è stata progettata e li esegue nel modo migliore possibile. In questo modo le applicazioni possono essere semplici, efficienti e con meno difetti. Nel sistema Theremino molte applicazioni semplici comunicano tra loro e cooperano per eseguire compiti complessi.

A seconda delle esigenze si possono usare due metodi diversi:
– Applicazioni isolate
– Gruppi di applicazioni isolate

Questo non vuol dire che le applicazioni isolate non possano comunicare con le altre. La comunicazione modulare è sempre possibile e avviene attraverso gli Slot, che sono in comune per tutte le applicazioni.

Per evitare di usare gli stessi slot per compiti diversi abbiamo definito uno schema di massima.

Experimental 100 slots     000 - 099
- - -
Theremino_Theremin         100 - 199
Theremino_SlotsToMidi      200 - 349
Theremino_MidiToSlots      350 - 499
Theremino_MusicKeys        500 - 549
- - -
250 free slots             550 - 799
- - -
Theremino_OilMeter         800 - 809
Theremino_EEG              810 - 819
Theremino_Meteo            820 - 839
Theremino_Arm              840 - 849
10 free slots              850 - 859
10 free slots              860 - 869
10 free slots              870 - 879
Theremino_EmotionMeter     880 - 889
Theremino_Geiger           900 - 909
Theremino_Bridge           900 - 909
Theremino_GEO              910 - 919
Theremino_GeoPreampTester  920 - 929
Theremino_Radar            930 - 939
10 free slots              940 - 949
10 free slots              950 - 959
10 free slots              960 - 969
10 free slots              970 - 979
10 free slots              980 - 989
10 free slots              990 - 999
Questo schema è solo indicativo. Si possono usare gli Slot a piacere, basta che nello stesso PC non si usi contemporaneamente lo stesso slot, per due compiti diversi. Se si sbaglia non si rompe nulla, ma i dati si sovrappongono con risultati indefiniti.


Applicazioni isolate con HAL privato

Alcune applicazioni del sistema Theremino lanciano una copia privata dell’HAL, situata nella stessa cartella delle applicazione. Questi HAL hanno impostazioni e configurazioni private e, generalmente, sono bloccati con il tasto “Blocca Master” in modo da collegarsi solo ai propri moduli hardware. Per maggiori informazioni leggere le istruzioni dell’HAL.

Le applicazioni più adatte a questa configurazione sono le applicazioni con un compito preciso, come ad esempio: Theremino_Geiger, Theremino_OilMeter, Theremino_Meteo, Theremino_Theremin, Theremino_Arm, Theremino_Geo e Theremino_EmotionMeter.


Gruppi di applicazioni con Theremino StartALL

La applicazione Theremino StartALL avvia tutte le applicazioni con nome “Theremino_xxx.exe” che si trovano a fianco del file “Theremino_StartALL.exe”, o nelle cartelle che si trovano a fianco di esso, nonché in tutte le loro sottocartelle .

Per costruire un “gruppo di applicazioni” si comincia con una cartella principale (con il nome del progetto che si sta creando) All’interno della cartella principale, ciascuna applicazione deve avere la sua cartella specifica con all’interno l’eseguibile, i file di appoggio e le sottocartelle. Se si usano più copie della stessa applicazione è bene aggiungere un numero finale ai nomi delle cartelle. Come illustrato nell’esempio seguente:

Cartella: "MultiPlayer"

      Cartella: "ThereminoSoundPlayer_1"
            Cartella: "Media"
            Applicazione: "Theremino_SoundPlayer.exe"

      Cartella: "ThereminoSoundPlayer_2"
            Cartella: "Media"
            Applicazione: "Theremino_SoundPlayer.exe"

      Cartella: "ThereminoVideoPlayer_1"
            Cartella: "Media"
            Cartella: "Media2"
            Applicazione: "Theremino_VideoPlayer.exe"

      Cartella: "Theremino_HAL"
            Applicazione: "Theremino_Hal.exe"
            File: "Theremino_HAL_ConfigDatabase.txt"
            File: "Theremino_HAL_INI.txt"

      Cartella: "Theremino_Helper"
            File: "CustomControlsLib.dll"
            Applicazione: "Theremino_Helper.exe"

      File: "Theremino_StartALL.exe"

Questa non è l’unica struttura possibile, all’interno della cartella principale si possono creare cartelle e sottocartelle a volontà. L’unico vincolo è che la applicazione Theremino_StartALL.exe deve stare nella cartella principale.

Gruppi di applicazioni come questo possono contenere anche decine di applicazioni. Quando disposte in cartelle separate, ogni applicazione del sistema conserva le proprie impostazioni, e anche le posizioni delle finestre in modo indipendente. Si possono addirittura creare più gruppi di applicazioni ed eseguirli tutti contemporaneamente, mantenendo una separazione adeguata tra le applicazioni e facendo in modo che ogni applicazione comunichi solo con i suoi sensori e i suoi attuatori. Ma nel contempo è anche possibile farle comunicare tutte, o a gruppi, tra di loro. Per comunicare si usano gli Slot, imparare a usare bene gli Slot è fondamentale.


La applicazione “Theremino_StartALL” lancia tutte le applicazioni di un gruppo con un solo click e le richiude anche. Si consiglia di creare sul desktop un collegamento a “Theremino_StartALL.exe”.

Per chiudere tutte le applicazioni che sono state aperte si utilizza la croce che chiude la applicazione StartALL. O in alternativa si potrebbe premere il pulsante centrale del Mouse.

La nuova versione 1.1 ricorda quali applicazioni aveva aperto e chiude solo quelle che aveva aperto lei stessa. In precedenza per chiudere gruppi di applicazioni si usava “Theremino Helper” che chiudeva tutte le applicazioni inizianti con “Theremino_” e che ingombrava lo schermo. Ora invece si fa tutto, e anche meglio, con una applicazione sola.

La nuova versione 1.2 non apre eventuali file EXE che si trovano nelle cartelle “sources” e “obj”. Così è possibile utilizzare le versioni “With Sources” delle nostre applicazioni senza che vengano aperti anche i file usati dal compilatore e dal debugger.

ATTENZIONE – Se il pulsante “Enable shut down windows” è abilitato (cioè di colore rosso), allora dopo aver chiuso tutte le applicazioni viene arrestato anche il sistema operativo Windows.

Nella cartella “AppsToStart” sono già presenti due applicazioni di esempio: “SlotViewer” e “WaveGenerator”, così si può fare doppio click su StartALL.exe, e provare subito il suo funzionamento.

Ricordatevi che le nostre applicazioni non richiedono installazione, ma che dopo averle scaricate bisogna estrarle dal file ZIP.

Applicazione Theremino StartALL V1.2
Theremino_StartALL_V1.2.zip
Theremino_StartALL_V1.2_WithSources.zip
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.


Negli anni passati, al posto della applicazione StartALL, utilizzavamo lo script seguente. La nuova applicazione StartALL è migliore, ma lasciamo anche questo link, per chi lo preferisse o vi fosse affezionato.

Script Theremino Starter
Start_ALL_Theremino_Apps


Theremino SlotViewer

SlotViewer 5.0

Gli slot sono il cuore dalla modularità del sistema Theremino. Spesso è comodo tenere d’occhio il loro valore o modificarlo manualmente. Questo piccolo “esploratore di slot” è molto flessibile, può visualizzare gli slot in vari modi e dimensioni, in verticale o in orizzontale e con lo schema di colori che si preferisce.

Theremino SlotViewer a simple and handy slot explorer and editor.    Theremino SlotViewer a simple and handy slot explorer and editor.

Si possono visualizzare gruppi composti da qualunque numero di slot, anche selezionandoli da zone diverse. Si possono editare i valori con il mouse, i tasti freccia, PageUp, PageDown. I tasti CTRL e SHIFT permettono di variare i valori più velocemente e si può usare anche la rotella del mouse.

Le nuove versioni possono visualizzare e editare anche i Text-Slot

SlotViewer 5.0


Istruzioni

  • FirsSlot – Il numero del primo Slot da visualizzare.
  • NumSlots – Il numero di Slot da visualizzare.
  • MaxValue – Valore massimo per tutti gli Slot che non hanno il comando speciale “Max”.
  • MinValue – Valore minimo per tutti gli Slot che non hanno il comando speciale “Min”.
  • Strings – Quando questo pulsante è premuto (di colore arancio) lo SlotViewer agisce sugli Slot di tipo stringa.
  • Colors – Cambia i colori di visualizzazione in tre modo diversi.
  • SlotFile – Apre il file “SlotNames.txt” per modificarlo.
  • Selective – Quando il pulsante “Selective” è premuto vengono visualizzati solo gli Slot che contengono un commento. Inoltre vengono anche suddivisi in gruppi di 100 su diverse colonne verticali. Questo aiuta a mantenere ordinati gli Slot se si usano, ad esempio, più motori (vedere questo video sulla applicazione Cobot che guida un braccio robotico).
  • Locked – Quando questo pulsante è premuto tutta la applicazione diventa in sola lettura. In questo modo si evita di fare modifiche per sbaglio.
  • Zoom – Regola le dimensioni del testo.
  • Decimals – Numero di cifre decimali da visualizzare.

Se si fa doppio click sulla barra del titolo o si usa il quadrato che dovrebbe massimizzare la finestra allora i comandi spariscono oppure riappaiono.

Lo Slot selezionato viene evidenziato con un riquadro più chiaro e le scritte rosse.

Il primo click su uno Slot non selezionato non modifica il valore. Per cambiarlo si deve fare un secondo click o spostare il mouse.

Premendo il pulsante sinistro del Mouse sulle caselle degli Slot e muovendo il puntatore si può regolare il valore tra Min e Max.

Utilizzando il pulsante destro si regola il valore in circa dieci posizioni, normalmente i valori sono 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, ma se Min e Max non valgono 0 e 1000, allora questi valori vengono ricalcolati proporzionalmente.

Quando si utilizza il pulsante destro si può aumentare il passo di cambiamento di dieci volte tenendo premuto il tasto SHIFT, oppure si può ridurlo di dieci o di cento volte con i tasti CTRL e ALT.

Con le quattro frecce si può cambiare lo Slot selezionato e anche il valore dello Slot.

Quando si cambia il valore di uno Slot, sia con il mouse che con le frecce della tastiera, si possono tenere premuti i tasti SHIFT, CTRL e ALT, che moltiplicano le variazioni per cento, per dieci o per un decimo.


Il metodo Selective

Quando il pulsante “Selective” è premuto vengono visualizzati solo gli Slot che contengono un commento.

In questa immagine si vede un esempio di uso del “Selective” e delle colonne verticali.

Slot Viewer - Selective Mode

Con “Selective” gli Slot vengono anche suddivisi in gruppi di 100 su diverse colonne verticali. Questo aiuta a mantenere ordinati gli Slot se si usano, ad esempio, più motori.

Guardate anche questo video sulla applicazione Theremino_Cobot che guida un braccio robotico,
nella seconda metà del video si vede come sono stati organizzati gli Slot in colonne.


Il file SlotNames

 

 

 

File SlotNames utilizzato come esempio in queste immagini:
SlotNamesExample

 

Lo SlotViewer utilizza anche il file di commenti “SlotNames.txt”, con il quale si può dare un nome ad ogni Slot e anche indicare quale è il valore minimo e massimo da utilizzare.

I comandi speciali Min=nn e Max=nn indicano il range da utilizzare per ogni singolo Slot. Se Min e Max non sono indicati per un certo Slot, allora lo Slot utilizza i valori generici che si regolano con le due caselle Min e Max dello SlotViewer.

Il comando “Hide” nasconde lo Slot nel modo “Selective” anche se ci sono commenti per quello Slot.

Il comando “End” conclude il file SlotNames e disattiva tutte le righe seguenti.

Se non si vogliono visualizzare i comandi speciali nelle applicazioni (SlotViewer, SignalScope e HAL) li si possono “commentare”, cioè si scrive un apice singolo prima della parte che non si vuole visualizzare. I comandi “commentati” non vengono visualizzati ma continuano ad agire.


Note per le versioni
Versione 1.6: Nelle versioni precedenti la regolazione degli slot con le frecce della tastiera non funzionava bene, ora è a posto.
Versione 1.7: Cambiando “Num slots” a volte appariva un piccolo riquadro bianco, ora non succede più.
Versione 1.8: Corretti piccoli difetti nati durante il passaggio da XP a Windows7.
Versione 1.9: Modifiche per il funzionamento con Mono in Linux.
Versione 2.0: Notevole riduzione del consumo di CPU per facilitare il funzionamento su Raspberry Pi.
Versione 2.1: Modifiche per un miglior funzionamento con istanze multiple.
Versione 2.3: Migliorato il funzionamento generale e la visibilità delle scritte. Ora si possono impostare il minimo e il massimo (che prima erano fissi a zero e a mille). Si possono anche usare intervalli con numeri negativi (ad esempio da -1000 a +1000), oppure intervalli molto piccoli (da zero a uno), o molto grandi (da – 100 000 a +100 000).
Versione 2.4: Corrette le dimensioni anche su sistemi con dimensione dei caratteri modificata sia a 125% che a 150%.
Versione 2.5: Corrette imprecisioni nella regolazione con il mouse e eliminati i lampeggiamenti all’avvio. Questa versione contiene la nuova classe “Slots”. Nuove possibilità di regolazione fine e veloce, con le frecce SU e GIU, in abbinamento con i tasti ALT, SHIFT e CTRL.
Versione 2.6: A grande richiesta abbiamo implementato anche i commenti. Per le istruzioni leggere QUI.
Versione 2.7: La “CustomControlsLib.DLL” è diventata parte dei sorgenti, così c’è un problema in meno per gli amanti di Linux e MacOsx.
Versione 2.8: Migliorato l’allineamento dei commenti.
Versione 2.9: Aggiunta la visualizzazione del non-numero di segnalazione “NAN_MasterError”. Questo è un meccanismo che permette alle applicazioni di automazione di essere sicure che tutti i Master sono in funzione. In caso di malfunzionamento o disconnessione di uno dei Master l’HAL emette un “NAN_MasterError” nello slot zero.
Versione 3.0: Migliorata la funzionalità delle caselle MaxValue e MinValue. Ora non accade più di far fatica a modificarle scrivendovi i numeri con la tastiera.
Versione 3.1: Migliorata la funzionalità delle caselle numeriche. Si possono utilizzare i tasti CTRL, SHIFT e ALT per modificare la velocità di cambiamento dei numeri. E si possono anche utilizzare PageUp e PageDown che cambiano i numeri di dieci in dieci.
Versione 3.2: Migliorati i messaggi di errore “NoMaster” e “Master Disconnected”
Versione 3.4
– Ora con la regolazione “Zoom” si può ingrandire e rimpicciolire la applicazione a piacere.
– Con “Decimals” si possono regolare le cifre decimali visualizzate.
– Le variazioni con i tasti e con la rotella del mouse sono proporzionali alla scala (MaxValue – MinValue)
– Se si utilizza il tasto destro del mouse, i valori vengono arrotondati a 1/10 di scala
– Se oltre al tasto destro si tiene premuto CTRL, i valori vengono arrotondati a 1/100 di scala
– Se oltre al tasto destro si tiene premuto ALT, i valori vengono arrotondati a 1/1000 di scala
Versione 3.6
– L’icona è migliorata. Tutte le applicazioni del sistema avranno nuove icone, con lettere per distinguerle.
– Ora è possibile tenere più copie di SlotViewer (con nomi Theremino_SlotViewer1.exe   …2.exe   …3.exe) nella stessa cartella e ogni copia utilizzerà un file di inizializzazione separato. 
Versione 3.7
Questa versione ricarica automaticamente il file 
“SlotNames.txt” quando viene modificato da una applicazione esterna (solitamente SignalScope, HAL o Notepad).
Chi avesse scaricato la versione 3.7 il giorno 01/12/2020 farebbe bene a scaricarla nuovamente perché abbiamo aggiornato il file “SlotNames” che ora contiene anche esempi dei comandi speciali (ricordarsi prima di scaricare di svuotare la cache del browser).
Versione 3.8
Questa versione conserva le dimensioni anche chiudendola ripetutamente da minimizzata.
Abbiamo corretto un errore che in alcuni rari casi, durante la modifica dei valori con il mouse, faceva schizzare il valore al massimo e lanciava il cursore del mouse in alto, fuori dalla applicazione.
Versione 3.9
Lo Slot selezionato ora viene evidenziato con un riquadro più chiaro e le scritte rosse.
Il primo click su uno Slot non selezionato non modifica il valore. Per cambiarlo si deve fare un secondo click o spostare il mouse.
Eliminato un errore con nomi maggiori di 999
Versione 5.0
– Lo Slot Viewer può visualizzare e agire anche sugli Slot di tipo stringa.
– Il modo “Selective” permette anche di organizzare gli Slot in gruppi verticali di cento in cento. 

Downloads di Theremino SlotViewer – Versione 5.0
Theremino_SlotViewer_V5.0

Theremino_SlotViewer_V5.0_WithSources
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.


Theremino SlotsOverNet

Theremino SlotsOverNet V1.3

Per questa applicazione dovete ringraziare Fabrizio, che ha potuto renderla così semplice grazie alla sua esperienza decennale sulle reti, e ora la rende disponibile in OpenSource. Se volete scrivergli lo trovate in questa pagina.

Senza Fabrizio questa applicazione non esisterebbe. Non pensavamo potesse esistere una soluzione così efficace, immediata e facile da usare.

Finora per comunicare i valori degli Slot in rete, non avevamo di meglio che il protocollo OSC e applicazioni come MaxMSP. Soluzioni così complesse e difficili da capire, che in pratica non le ha mai usate nessuno.

Questa applicazione mette in comunicazione gli Slot di molteplici PC collegati alla rete locale, anche attraverso il WiFi.

Non servono indirizzi e parole chiave. Basta avviare una applicazione su un computer (come Server) e un’altra su un secondo computer (come Client).

Collegare PC lontani, attraverso Internet è solo leggermente più complesso, si può utilizzare una VPN, come spiegato nel file di documentazione sulle VPN, oppure si imposta l’indirizzo IP e si apre la porta nel firewall, come spiegato a pagina 13 del file di istruzioni.

Poi si scrivono alcune righe di comando, per trasferire i valori degli Slot da un computer all’altro, e gli Slot vengono trasferiti tutti contemporaneamente, fino a 500 volte al secondo.

Download dei file di documentazione (27-11-2020)
Theremino_SlotsOverNet_ITA.pdf
Theremino_SlotsOverNet_ENG.pdf
Theremino_VpnHelp_ITA.pdf
Theremino_VpnHelp_ENG.pdf

Documenti originali in formato ODT (27-11-2020)
Theremino_SlotsOverNet_Docs.zip

Note per le versioni
Versione 2.0
– La 2.0 è la prima versione pubblicata. Prima di pubblicare questa versione abbiamo scritto molte versioni di prova, quindi la 2.0 è ben collaudata e molto affidabile.
Versione 2.1
– Ora SlotsOverNet funziona anche attraverso Internet. Leggete il file di istruzioni.
Versione 3.0
– Ora SlotsOverNet funziona anche attraverso Internet, sia utilizzando una VPN che in modo autonomo.  Leggete il file di istruzioni.

Downloads di Theremino SlotsOverNet – Versione 3.0
Theremino_SlotsOverNet_V3.0

Theremino_SlotsOverNet_V3.0_WithSources
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.


Theremino SignalScope

SignalScope V2.4

Quando il semplice visualizzatore delle applicazioni HAL non basta più, si può usare questo Signal Scope.

Attenzione: Questo non è un oscilloscopio ma un visualizzatore di segnali degli Slot, che hanno una risoluzione massima di un millisecondo e quindi una banda passante massima (teorica) di 500 Hz. In pratica però i fenomeni di aliasing limitano il campo utile delle frequenze a cento Hertz o poco più. Se si desidera un vero oscilloscopio con 22 KHz di banda passante e 192 Khz di campionamento scaricare il “Theremino DAA” da questa pagina.

Caratteristiche del Signal Scope:

  • Memorizzazione dei segnali degli Slot per gli ultimi 30 minuti con la massima risoluzione.
  • Possibilità di scorrere all’indietro i segnali (delta time) per individuare e ingrandire particolari eventi.
  • Due cursori regolabili con il mouse per misurare ampiezze, tempi e frequenze.
  • Sia i cursori che il delta time sono regolabili con il mouse e anche con il TouchScreen.
  • Continua visualizzazione dei valori istantanei e Picco-Picco nella barra di stato.
  • Possibilità di salvare e ripristinare il buffer di eventi.
  • Possibilità di salvare immagini per la documentazione.
  • Memorizzazione di tutte le funzioni e ripristino al riavvio.
  • Possibilità di programmare lo stop del campionamento dopo che si sono verificati un certo numero di eventi, impostando un valore di soglia e un contatore.

Caratteristiche del Signal Scope dalla versione 2.2 in poi:

    • Numero di canali aumentato da 2 a 4.
    • I singoli canali dispongono di una casella per abilitarli.
    • Possibilità di duplicare più eseguibili nella stessa cartella Theremino_SignalScope1.exe / Theremino_SignalScope2.exe ecc.. , in questo caso ogni applicazione userà un suo file di inizializzazione, e quindi ricorderà e ripristinerà le sua configurazione all’avvio.
    • La nuova casella “Clear buffer” consente di azzerare il buffer ad ogni nuova acquisizione, oppure di accodare i nuovi dati al buffer esistente.
    • Nuova casella “Run Slot” per far partire il RUN con il valore di uno Slot (Zero = ferma / Ogni altro numero = avvia).
    • Regolazione dello “Stop delay” che ritarda la fine della acquisizione, dopo che “Run slot” è tornato a zero (in alcuni casi è utile per catturare gli eventi finali i una serie).
    • Nuovi automatismi per salvare il buffer di dati e la immagine quando il valore di uno Slot supera il 500 (i numeri degli Slot da usare si regolano nelle due caselle in alto, a destra delle scritte “save slot”)

Caratteristiche del Signal Scope dalla versione 2.4 in poi:

  • Regolazione della lunghezza del buffer da 1 a 60 minuti. Questo è un grande miglioramento che permette di vedere indietro nel tempo quanto necessario senza creare file troppo grandi e senza rallentare troppo l’avvio e la chiusura della applicazione. Normalmente vedere indietro per qualche minuto è più che sufficiente, ma se necessario si può allungare il buffer fino ad un ora. Comunque non regolatelo troppo corto, scendere sotto i 5 minuti serve a poco e tenete conto che i file di dati che si caricano e si salvano vengono troncati alla lunghezza del buffer attuale.
  • Il DeltaTime viene evidenziato in arancione e per azzerarlo basta fare un doppio-click sulla casella.
  • Possibilità di far convivere più applicazioni con nomi SignalScope1.exe, SignalScope2.exe, ecc.. nella stessa cartella. Ogni applicazione utilizza un file di inizializzazione separato e salverà i dati in cartelle Buffers e Images separati.
  • Aggiunta la data e ora fino ai millisecondi nella visualizzazione ad ogni inizio di registrazione dei dati.
  • Corretti numerosi piccoli difetti e migliorato il funzionamento generale.

Caratteristiche del Signal Scope dalla versione 2.5 e 2.6 in poi:

  • Il file SlotNames viene ricaricato automaticamente quando altre applicazioni lo modificano.
  • Regolando il Buffer (min) a zero si ottiene di svuotare il Buffer ad ogni nuovo RUN

Consigli:

  • Abilitare il “Trigger” solo per segnali ripetitivi veloci, altrimenti la visualizzazione viene molto rallentata.
  • Tenere il “Delta Time” a zero se non lo si usa, altrimenti i segnali non vengono visualizzati subito ma solo dopo i millisecondi impostati. Un doppio click sulla casella DeltaTime lo azzera.
  • Tenere “Stop If” disabilitato se non lo si usa, altrimenti il campionamento potrebbe fermarsi senza volerlo.
  • Editare il file “Slot names” per dare un nome significativo ai propri Slot.
  • Copiare l’eseguibile di questa applicazione accanto all’eseguibile dell’HAL e dello Slot Viewer per condividere gli stessi “Slot Names”.
  • Disabilitare “Interpolate” per segnali on/off rapidi, che altrimenti verrebbero deformati.
  • Regolare la lunghezza del buffer a non più di dieci minuti per non rallentare l’avvio e la chiusura della applicazione e non creare file troppo grandi.

Note per le versioni
Versione 1.2:
 Questa è la prima versione pubblicata. 
Versione 1.3: All’avvio il pannello dei nomi degli slot è visibile solo se lo spazio le consente.
Versione 1.4: Il parametro “delta” viene azzerato ogni volta che si preme “RUN” così si evita di dimenticarsene.
Versione 1.5: Eliminato l’errore in chiusura nel caso mancasse la cartella “Buffers”.
Versione 1.6: Eliminato l’errore in chiusura nel caso che il tempo di RUN fosse maggiore della durata del buffer che memorizza i dati. Allungato il buffer di memorizzazione a 24 ore. Attenzione che con buffer molto lunghi il tempo di salvataggio caricamento può essere piuttosto lungo.
Versione 1.7: Se i cursori sono abilitati allora viene salvata solo l’area tra i due cursori. Il Trigger è notevolmente migliorato. Eliminata una instabilità della forma d’onda che accadeva casualmente. Il buffer è nuovamente limitato a 1 ora (per loggare si usano le applicazioni Logger). Salvare e caricare i buffer impiega al massimo 2 secondi. Il DeltaTime è modificabile velocemente utilizzando CTRL e SHIFT + Mouse.
Versione 1.8: Eliminato errore con valori di ingresso molto grandi.
Versione 1.9: Aggiunta la possibilità di disabilitare l’interpolazione che in alcuni casi deformava i segnali. Eliminato errore avviando la applicazione minimizzata.
Versione 2.0: Corretto l’errore che si verificava con Min=0 e Max=0.
Versione 2.1: All’avvio della applicazione, la casella dello Slot viene deselezionata. Così si evita di cambiare il suo valore per sbaglio, utilizzando le frecce della tastiera. ULTIMA VERSIONE A 2 CANALI
Versione 2.2
– Numero di canali aumentato da 2 a 4.
– I singoli canali dispongono di una casella per abilitarli.
– La nuova casella “Clear buffer” consente di azzerare il buffer ad ogni nuova acquisizione, oppure di accodare i nuovi dati al buffer esistente.
– Possibilità di usare più copie del SignalScope nella stessa cartella, con nomi Theremino_SignalScope1.exe oppure 2 o 3,
in questo caso ogni applicazione userà un suo file di inizializzazione, e quindi ricorderà le sua configurazione.
– Nuovo automatismo per far partire il RUN con il valore di uno Slot (Zero = ferma / Ogni altro numero = avvia)
– Nuovi automatismi per salvare il buffer di dati e la immagine con il valore di uno Slot (agisce superando il valore 500)
Versione 2.3
– Migliorato il funzionamento del pulsante “Clear buffer”
– La finestra principale viene portata in primo piano ad ogni “Run” comandato da uno Slot
Versione 2.4
– Caselle Min, Max e Center che accettano anche numeri con i decimali.
– Il file LastBuffer.csv viene creato con un prefisso che contiene anche il numero della applicazione.
– Il DeltaTime viene evidenziato in arancione per evitare di dimenticarlo attivo.
– Un doppio click sulla casella DeltaTime azzera il tempo.
– Aggiustati i difetti dello StopDelay che a volte non funzionava.
– La cartelle Buffers e Images cambiano di nome se si utilizzano più SignalScope (SgnalScope1.exe, SignalScope2.exe ecc…)
– Ad ogni nuovo avvio della acquisizione vengono mostrati anche data, ora, minuti, secondi e millisecondi.
– Ora è possibile regolare la lunghezza del buffer da 1 minuto fino a 1 ora.
Versione 2.5
Questa versione ricarica automaticamente il file “SlotNames.txt” quando viene modificato da una applicazione esterna (solitamente HAL, SlotViewer o Notepad). 
Versione 2.6
– Abbiamo risolto un piccolo errore nei file CSV
– Impostando il Buffer(min) a zero si ottiene di svuotare il buffer ad ogni nuovo RUN
Versione 2.7
– Nelle versioni precedenti c’era un errore che rendeva difficile regolare la CenterPosition
Versione 2.8
– Nuovo pulsante “Time” nella barra superiore per eliminare le divisioni verticali con il tempo.
– Caselle Units/div. fino a 5000000

Downloads di Theremino SignalScope – Versione 2.8
Theremino_SignalScope_V2.8
Theremino_SignalScope_V2.8_WithSources


Downloads di Theremino SignalScope – Versione 2.1 (ultima versione a 2 canali)
Theremino_SignalScope_V2.1

Theremino_SignalScope_V2.1_WithSources
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.


Un semplice accesso agli slot con: “WriteSlot” e “ReadSlot”

Per comunicare con gli Slots si chiamano le funzioni: “WriteSlot” e “ReadSlot” e le loro funzioni di inizializzazione.

Download: Una applicazione molto semplice per fare i primi esperimenti, si scarica da qui:
https://www.theremino.com/downloads/notes-on-software#emptyapp

Download: Module_MemoryMappedFiles_VbNet_CSharp_Python_Pascal_VB6.zip
Questo file contiene i moduli per VbNet, CSharp, Python, Pascal e VB6, per il C++ riferirsi agli esempi di MemoryMappedFiles della prossima sezione. Se servono esempi pratici, quasi tutte le applicazioni del sistema Theremino usano le funzioni WriteSlot e ReadSlot.

Download: Class_ThereminoSlots_VbNet_CSharp.zip
Questa è la nuova classe per accedere agli slot. Questa classe è migliore dei precedenti moduli “MemoryMappedFiles”, e verrà gradualmente inclusa, in tutte le nuove versioni delle nostre applicazioni. Comprende solo le versioni VbNet e CSharp, quindi chi usa altri linguaggi, deve arrangiarsi un po’, e fare un mix con le versioni precedenti. Questa classe non necessita di inizializzazione, si inizializza da sola quando si instanzia un oggetto Slots. Le funzioni per accedere agli slots sono diventate Slots.Write() e Slots.Read(). Questa classe include anche le funzioni per creare e confrontare i numeri NAN di segnalazione (operazione che tutti dicevano impossibile, abbiamo cercato sul web per anni e alla fine la soluzione la abbiamo dovuta inventare da zero)


Interprocess Communications e
MemoryMappedFiles

La comunicazione via SLOT è basata sui MemoryMappedFiles (Windows) e sulla SharedMemory (Linux). Questi esempi spiegano il loro funzionamento con dati di ogni tipo.

Per la semplice comunicazione con gli SLOT del sistema Theremino, non usate questi esempi, ma i più pratici WriteSlot e ReadSlot, del capitolo precedente.

Questi esempi mostrano anche come usare stringhe, numeri interi, float a 64 bit e arrays che non servono per comunicare con il sistema Theremino, ma potrebbero essere utili per far comunicare in modo efficiente (pochi microsecondi per ogni trasferimento) diversi programmi creati dagli utenti, anche in linguaggi diversi tra loro.

I sorgenti in C++, CSharp, VbNet e VB6, possono essere utili agli esperti di sistemi non-Windows per fare traduzioni ed esperimenti nelle varie versioni di Linux e Mac.

Si consiglia di cominciare le prove lanciando più versioni di questi programmi in linguaggi diversi, o anche tutte nello stesso linguaggio, e fare esperimenti di comunicazione scrivendo stringhe e numeri, inviandoli con SET e ricevendoli con GET

Le comunicazioni nel sistema Theremino, usano solo numeri “Single” (floating point a 32 bit), nelle posizioni da 0 a 1000 (offset da 0 a 4000), del MemoryMappedFile con nome Theremino1. Le comunicazioni tra applicazioni, potrebbero anche usare file con nomi diversi da Theremino1 e non impegnare gli slot del sistema Theremino.

Download
Theremino_MemoryMappedFiles_V1.3
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.


Software per comunicare con Max/MSP

Questi sono esempi di comunicazione bidirezionale tra gli slot del sistema Theremino e l’ambiente Max/MSP

Help interattivo per Max/MSP versione 4.x


Help interattivo per Max/MSP versione 5.x

Per mezzo di un MXE (modulo External per MAX) si ottiene una comunicazione estremamente veloce (chiamate dirette ad una DLL – pochi microsecondi per ogni trasferimento) 
 
Da notare che attraverso gli Slot del sistema Theremino più Patch di Max/MSP possono comunicare tra di loro in modo molto efficiente Questa possibilità potrebbe essere utile ai creatori di sistemi complessi che, attualmente, per la comunicazione tra Patch hanno a disposizione solo metodi decisamente più lenti. (non siamo grandi esperti di Max per cui se qualcuno conosce altri metodi efficienti ce lo comunichi e correggeremo queste note)


Max Install
In questo file tutto il necessario per far comunicare Max/MSP con gli Slot e i MemoryMappedFiles del sistema Theremino.

Theremino_Max_Installer_V1.0
Theremino_Max_Sources_V1.0 (versione per programmatori)

Usando questi sorgenti è possibile ricompilare la patch Theremino.mxe. Con le necessarie variazioni, dovrebbe essere possibile anche interfacciarsi con PureData  e programmi simili (vvvv, Processing, EyesWeb, etc…)

Per Linux e per MAC  questo progetto dovrebbe essere modificato sia nella parte MemoryMappedFiles che nelle modalità di installazione dei files nelle cartelle di Max/MSP.


Software per comunicare via UDP con messaggi OSC

Questo è un esempio di comunicazione bidirezionale tra gli slot del sistema Theremino e l’ambiente Max/MSP con il protocollo Open Sound Control

Help interattivo di comunicazione UDP – OSC per Max/MSP versione 5.x
 
 

Questo esempio mostra una Patch di Max/MSP che invia sulla porta UDP 7401 la richiesta dei valori degli slot 0 e 56, li riceve dalla porta UDP 7400 e li mostra con due VU-Meters.

L’applicazione Theremino_OSC riceve le richieste dalla porta UDP 7401 e invia i valori degli slot sulla porta UDP 7400

 
 
 
Applicazione che realizza l’accesso agli Slot del sistema Theremino via UDP con messaggi OSC



Il lato destro della Patch di esempio mostra, con un procedimento simile, come scrivere valori numerici negli Slot del sistema Theremino.

Possibilità di comunicazione via UDP
Il protocollo OSC via UDP è più lento rispetto al metodo precedente (con la DLL “External” di  MAX, chiamata MXE) ma permette una comunicazione molto più flessibile, sia sulla rete locale che attraverso Internet

Attraverso i nostri Slot, ThereminoOSC, Max/MSP, Processing e PureData è possibile mettere in comunicazione sistemi operativi e hardware apparentemente incompatibili in modo facile e immediato. Senza scrivere una sola riga di codice.

Con un minimo di esperienza nella programmazione è anche possibile modificare i nostri esempi (tutti freeware e con sorgenti completi) Il nostro software è tutto scritto in modo estremamente semplice e modulare in modo da poter essere una comoda base per lo sviluppo di applicativi con esigenze particolari.

Theremino OSC V1.5 e Patch di esempio per Max/MSP
Theremino_OSC_V1.5
Theremino_OSC_V1.5_WithSources 
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.


Theremino Script


Theremino Script permette di scrivere piccoli programmi in VbNet o in CSharp senza installare VisualStudio.

Questa applicazione utilizza file temporanei nella cartella TEMP,
che spesso gli antivirus identificano erroneamente come positivi
e li cancellano, generando errori nella applicazione.

Per cui consigliamo di usare direttamente Visual Studio (per gli esperti),
o Theremino Automation che è facile da usare. 

Le funzioni di comunicazione e i MemoryMappedFiles (Interprocess Communication) sono implementate a livello di sistema, per cui basta scrivere WriteSlot e ReadSlot per comunicare in modo efficiente (pochi micro secondi) con gli slot del sistema Theremino.

Il linguaggio è compilato e si appoggia a DotNet per cui l’esecuzione è velocissima (dalle nostre prove VbNet è più veloce di CSharp e di C++), inoltre VbNet dispone di un set di funzioni matematiche e grafiche assolutamente completo.

I programmi compilati sono usabili anche senza Theremino_Script e possono essere distribuiti come normali file “EXE”.

Il Theremino_Script è un po’ il figlio minore del Visual Studio Express di Microsoft ma non va altrettanto bene, è più lento, contiene sicuramente più bug e difetti e non ha l’editor visuale dei Form, per cui il programma si scrive tutto in testo. Gli unici vantaggi sono che non si deve installare Visual Studio Express e che scrivere programmi di poche righe sembra, all’inizio, più semplice.

Noi consigliamo di usare il vero Visual Studio che si scarica da qui: downloads/notes-on-software#instruments. Il Visual Studio permette di proseguire facilmente anche quando i programmi diventano grandi. Ma molti utenti hanno chiesto un metodo semplice di accedere agli slot, del Sistema Theremino, per scrivere cose come “Accendo un led – Attendo 10 secondi – Spengo il led”. Quindi abbiamo cercato di semplificare e nascondere al massimo ogni complicazione. Non è detto che questa strada sia valida, provatela e fateci sapere come vi trovate.

Se non vi trovate bene con Theremino Script e non volete usare Visual Studio, allora un’altra buona soluzione, potrebbero essere gli ambienti Max/Msp, PureData e Processing.

Un linguaggio ancora più semplice?
Theremino Automation: downloads/automation

Tradurre gli esempi da VbNet a C#
  – Partire da uno degli esempi C# funzionante
  – Dargli un nuovo nome e salvarlo
  – Prendere (con copia e incolla) le funzioni VbNet cui si è interessati
      (anche più funzioni, ma fare attenzione a controlli e eventi, che vengono tradotti male)
  – Tradurre con questa utility: http://www.carlosag.net/Tools/CodeTranslator
  – Oppure con questa: http://www.developerfusion.com/tools/convert/vb-to-csharp
  – E infine incollare il codice tradotto nella applicazione C#

Note per le versioni
Versione 2.1:
 Prima versione di Theremino_Script con l’accesso agli SLOT integrato.

Versione 2.2: Migliorati i suggerimenti (Intellisense) che ora presentano più scelte.– I suggerimenti si scelgono cliccando sulla lista con un doppio click del mouse.– Editare è più facile e più veloce.– Non succede più di scegliere per sbaglio funzioni dalla lista dei suggerimenti.– Aggiunto un esempio che simula i click di un Geiger con frequenza variabile, utile per provare il programma Theremino_Geiger.
Versione 2.3La rotella del mouse ora scrolla in modo decente, veloce e progressiva.– Aggiunto un esempio che fa lampeggiare un LED connesso allo “Slot 1”, utile per chi fa i primi passi con gli Slot, i Master e il programma Hal.
Versione 2.4:
– Completato l’accesso agli slot sia in VB che in C#
– 
Le funzioni da chiamare per accedere agli slot sono:
— WriteSlot(Slot, Value)
— ReadSlot(Slot)
— ReadSlot_WithNans(Slot)
– In VB la chiamata MemoryMappedFile_Init non serve più (se la si chiama non dà errore).
– In C# tutta
la inizializzazione dei MemoryMappedFile non serve più. Si devono eliminare tutte le righe del blocco di inizializzazione, altrimenti danno errori.
– In C# la classe principale non deve più chiamarsi “class Script” ma “partial class Script”
– Per gli amanti del CSharp e per coloro che erano abituati ad Arduino, abbiamo aggiunto gli esempi: Example1, Example2, Example3 e Example4. Questi esempi spiegano come aggiungere pulsanti e caselle di testo e come usare le loro proprietà e i loro eventi.
Versione 2.5Aggiunto l’esempio “Temp Meter” nella cartella “Theremino SLOT Examples”. Qui lo si vede in funzione: https://www.youtube.com/watch?v=0erUqTAiixs
Versione 2.6:
 Corretti molti piccoli difetti nati durante il passaggio da XP a Windows-7/8.
Versione 2.7:
Aggiunto il menu “Files”  “Open application folder”
La finestra di dialogo FileOpen oltre ad aprire i Vb e i C# può anche lanciare i file eseguibili.
Nella finestra di dialogo FileOpen sono permesse anche le selezioni multiple, comode per spostare e copiare i file.
La finestra di dialogo FileOpen non crea più problemi in caso di ThereminoScript multipli in cartelle diverse.
Il menu File Open ora contiene anche la lista MRU, con gli ultimi file usati.
Aggiunto il linguaggio attuale nelle ricerche su Google, Bing e MSDN
Nel pannello SaveAs il path completo rendeva difficile cambiare il nome, ora appare il nome del file senza path.
Le parole chiave del basic vengono automaticamente convertite, con le lettere maiuscole e minuscole.
Versione 2.8: Corretti piccoli difetti e aggiunti molti script di esempio.
Versione 3.0: Migliorati i tre esempi WebBrowser che ora aprono le pagine WEB con meno errori. Inoltre ora i WebBrowser seguono i collegamenti correttamente, quando li si cliccano nelle pagine WEB.

Downloads di Theremino Script – Versione 3.0
Theremino_Script_V3.0

Theremino_Script_V3.0_WithSources (versione per i programmatori)  
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.


Theremino Office

Theremino Slots To Office

Molti conoscono Excel e sanno usare VBA (Visual Basic for Applications). Poter scrivere e leggere gli Slot da VBA apre la strada verso la gestione economica di sensori e attuatori. Basta un modulo Master che si può anche costruire in fai da te e si ottengono gli stessi risultati che in passato necessitavano di costosi sistemi National, MathLab o simili.

Ma più di tutto chi conosce VBA apprezzerà la semplicità di questa implementazione, ci sono solo due funzioni, facilissime da ricordare, “WriteSlot” e “ReadSlot”. Con queste due sole funzioni si accede ai sensori, si muovono servomotori, si comandano relè e i grafici di Excel si muovono comandati dall’esterno in tempo reale.

La velocità di comunicazione è ottima, per scrivere o leggere uno Slot con Libre Office e Open Office si impiegano solo 70 uS, mentre con Microsoft Office soli o.3 uS. Questa velocità può realmente essere utile perché con VBA non si fanno solo grafici. Si possono fare applicazioni vere anche con algoritmi pesanti che necessitano della massima efficienza.


Consigli per i programmatori

Theremino Slots To OfficeTutta la magia si trova nel modulo “ThereminoSlots” che non va mai modificato. Questo modulo espone le due funzioni “WriteSlot” e “ReadSlot” che possono essere utilizzate in tutti i moduli e le macro del documento.

Per ottenere che tutte le macro di tutti i documenti possano utilizzare le funzioni “WriteSlot” e “ReadSlot”, basta copiare il modulo “ThereminoSlots” nelle “Macro personali” o nelle “Macro di Office”

Se si scrive in una cella mentre la macro è attiva Microsoft Excel cerca di fermare la macro (comportamento spiacevole, LibreOffice e OpenOffice non lo fanno). Se la macro contiene un DoEvents e lo chiama molto sovente Microsoft Excel quando cerca di fermare la macro va in errore. La soluzione è chiamare DoEvents a tempi regolari in modo da far avanzare la interfaccia utente ma non troppo sovente, diciamo al massimo ogni 30 millisecondi.


Arduino

Il sistema theremino collega i moduli Arduino direttamente con Excel (e con tutte le altre applicazioni del sistema theremino). Con la applicazione ArduHAL si possono leggere sensori, muovere motori o controllare temperature, direttamente dalle caselle di Excel, o dalle macro delle altre applicazioni Office.


Download

Esempi per Microsoft Office, Libre Office e Open Office:
Theremino_SlotsToOffice.zip

Tutti gli esempi che sono in questo file zip contengono il modulo “ThereminoSlots” che è scritto in modo da poter funzionare su Microsoft Office, Libre Office e Open Office senza modificare nemmeno una virgola.

ATTENZIONE – La nuova versione del file “ThereminoSlots” contiene anche i numeri NANs che servono per comunicare messaggi con l’HAL attraverso lo Slot zero. Questa versione funziona solo su Microsoft Office perché su Libre Office e Open Office non si riescono a inizializzare i numeri NAN. Chi non usa Microsoft Office dovrà fare a meno dei NAN e utilizzare il file “Theremino Slots” che si trova nell’esempio “ThereminoSlots_LibreOffice_OpenOffice.ods”.

Lo stesso non è possibile per gli esempi per cui abbiamo preparato un esempio per LibreOffice e OpenOffice (con estensione “ods” e alcuni esempi per Microsoft Office (con estensione “xlsm”).

Nel file ZIP troverete anche un file di testo con alcune spiegazioni e un file “TestFunctions” con le funzioni che abbiamo utilizzato per provare la velocità di comunicazione.


Theremino Buttons

Questa applicazione è il metodo più veloce messo a disposizione dal sistema theremino per creare pannelli di comando da utilizzare con il Mouse o con il Touch Screen.

Non è necessario conoscere un linguaggio di programmazione, basta scrivere il testo che deve apparire sui pulsanti e regolare qualche opzione. Tutti possono imparare velocemente a creare nuovi pulsanti e caselle di testo. Nonché cambiare i colori, le dimensioni e anche disporre i controlli su una o più righe e colonne.

Ecco alcuni esempi di pannelli che si possono creare.

Thremino Buttons Examples

Per modificare i controlli si tiene premuto il tasto CTRL sulla tastiera e si fa click con il tasto sinistro del mouse su un pulsante o su una zona libera da pulsanti.

Apparirà la seguente finestra e con i suoi comandi si modificano i controlli, si cambia il testo visualizzato, si cambiano i colori e le proprietà di scrittura e lettura dei segnali degli Slot. Si dispongono i controlli su più righe e colonne, se ne creano di nuovi e li si eliminano.

Theremino Buttons 2.0

La versione 2.0 è notevolmente migliorata. Si possono disporre i pulsanti anche manualmente, trascinandoli con il mouse o utilizzare i tasti freccia con SHIFT per ridimensionarli. Ci sono nuovi tipi di movimento e l’editor permette anche di fare l’Undo per tornare indietro quando si sbaglia. Per scoprire tutte le novità leggete le istruzioni. 


Le istruzioni complete sono nei file di documentazione.

Documentazione in italiano e inglese
Theremino_Buttons_ITA.pdf

Theremino_Buttons_ENG.pdf

Una applicazione di esempio (misuratore di giri per motori a scoppio)
RpmMeter_ITA.pdf
RpmMeter_ENG.pdf

Una applicazione di esempio (un semplice Rover) — IN COSTRUZIONE —
Theremino_Buttons_SimpleRover_ITA.pdf
Theremino_Buttons_SimpleRover_ENG.pdf

Per un esempio di come si può guidare un Rover guardare il video Missione su Marte.
Per questo video abbiamo utilizzato un vecchio Smartphone trasformato in telecamera WiFi per mezzo della App. IP-WebCam. Pagandola due o tre euro le scritte vengono eliminate e la si può utilizzare su tre telefoni. Per utilizzare la App. IP-Webcam la SIM non è necessaria.

Una applicazione di esempio  (BrickRobot) — NON AGGIORNATO A V2.1 —
Questo esempio mostra come comporre un ambiente completo composto da più applicazioni del sistema, avviarle insieme con “Start_ALL.vbs” e chiuderle tutte insieme con il tasto centrale del mouse (grazie alla applicazione Helper).
Theremino_Buttons_V2.0_BrickRobot.zip

In questo video si può vedere il BrickRobot in movimento. Da notare che chiunque può aggiungere pulsanti e servomotori. Si possono anche modificare facilmente i movimenti basta cambiare le destinazioni nei pulsanti. Il tutto senza programmare una sola riga di software. https://www.theremino.com/files/BrickRobot2.mp4


Note per le versioni
Versione 2.2
Aggiunto il nome del file caricato sulla barra del titolo.
Il tipo Pulse è cambiato, con Speed = zero si ha un comportamento ON/OFF, con Speed da 1 in su si ha un impulso della durata Speed in millisecondi”

Attenzione che dalla versione 2.2 in poi il tipo “Pulse” è cambiato: 
– Con Speed uguale a zero, si ha un comportamento ON/OFF,
– Con Speed da 1 in su, si ha un impulso della durata Speed in millisecondi”

Downloads di Theremino Buttons – Versione 2.2
Theremino_Buttons_V2.2.zip
Theremino_Buttons_V2.2_WithSources.zip (versione per programmatori)

Per tutti i sistemi Windows a 32 e 64 bit (per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.  


Theremino SimpleLogger (with Theremino Script)

Questo è uno script di esempio di Theremino Script. Usatelo solo come esempio e come test del visualizzatore KST. Per costruire un Datalogger si consiglia di usare il Theremino Logger che si trova nel prossimo capitolo.

Anche i meno esperti di programmazione possono adattare questo script alle loro esigenze. Il file LOG.csv viene creato nella stessa cartella che contiene i programmi “exe”. Modificando le prime quattro righe del file “ThereminoLogger.vb” si possono variare l’intervallo di acquisizione e i canali da acquisire. Una volta modificato a proprio piacere, si può lanciare direttamente la versione compilata “ThereminoLogger.exe”, senza più passare da “ThereminoScript”.

– Note per la nuova versione –
Sono presenti alcuni esempi di visualizzazione interattiva con KST. Per usare KST prima di tutto si deve installarlo da WEB e poi procedere come spiegato nel file “ReadMe – KST Install Notes.rtf” 

Abbiamo aggiunto anche le versioni compilate (exe), così non si deve nemmeno aprire Theremino Script per compilarle. Le tre versioni precompilate loggano ogni secondo, dieci volte al secondo e cento volte al secondo.
I file di KST permettono di visualizzare i LOG in vari modi, mentre si sta loggando. Sono solo esempi. Con pazienza e informandosi sul WEB si può far fare a KST ogni genere di visualizzazione e filtraggio. Probabilmente è anche possibile usare KST per inviare file MySql su WEB. Usare KST non è per niente facile, è un software grandioso e i grandi risultati si devono pagare con molta pazienza.
– Correzione –
Abbiamo spostato i file KST nella stessa cartella del file LOG.csv. Sembra che KST abbia un difetto che gli impedisce di leggere il LOG se si trova in un altra cartella. Se non avete scaricato quest’ultima versione spostateli manualmente vicino al LOG.csv.

– – – – – –

Downloads di Theremino SimpleLogger – Versione 2.0
Theremino_SimpleLogger_With_KST_Examples_V2.0 
Per tutti i sistemi Windows a 32 e 64 bit. Per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.

– – – – – –

Theremino SimpleLogger – Versione 3.0
Lo script Theremino Logger è stato modificato nella versione 3.0, per raccogliere i dati di alcuni sensori meteo. La versione 3 converte i valori da 0 a 1000, in temperature, indice UV, Millivolt e Volt e si scarica da qui:

https://www.theremino.com/hardware/inputs/meteorology-sensors#logger


Theremino Logger

Theremino Logger V3.3

Questo e un Datalogger semplice da usare ma con grandi prestazioni. La base, sintetica e intuitiva, è stata studiata da Marco Russiani. Poi la abbiamo completata con i calcoli per misurare resistenze e temperature, con le sonde PT100, PT500 e PT1000 a tre o quattro fili.

Il calcolo della temperatura a partire dalla resistenza dei resistori al platino (PTxxx) è fatto per mezzo di una formula polinomiale, con un errore medio assoluto dello 0.015% in tutto il campo di temperature, da -200°C a +850°C.

Sono anche implementati i calcoli per le sonde:

  • LM35 – Da 0°C a 150°C con precisione di +/-0.5°C)
  • TSIC501 – Da -10°C a 60°C con precisione di +/-0.2°C
  • UVM-30A – Indice UV da 0 a 11
  • ML8511 – UV da 0 a 15 mW

Per le sonde LM35, TSIC501, UVM-30A e ML8511 potrebbe bastare un Theremino Master. Ma per misure di alta precisione e soprattutto per le RTD (PT100 e 1000) è bene aggiungere un Theremino Adc24.

Maggiori informazioni sui sensori in queste pagine e nella documentazione dell’Adc24.


LSI Radio DataloggerUn Datalogger controllabile via radio
Con il Theremino Logger su un Tablet TCU si ottiene un sistema simile a questi senza spendere migliaia di euro. Il risultato è un completo datalogger controllabile via radio, che può memorizzare dati per anni, consumando solo 2 Watt (meno di 500 mA a 5 Volt). Il sistema completo può essere racchiuso in un contenitore stagno, senza mai la necessità di aprirlo. Lo si controlla via radio tramite TeamViewer e i dati sono accessibili in rete locale, tramite le cartelle di Windows.


Mini Istruzioni

  • Il file di Log viene scritto a fianco dell’eseguibile e può essere visualizzato con KST (come spiegato nel precedente “Theremino Simple Logger”). Attualmente l’unico che conosce abbastanza bene KST è Marco Russiani, se avete difficoltà a configurarlo scrivetegli.
  • L’intervallo di campionamento può essere molto frequente (attualmente il massimo è 60 campionamenti al secondo) ma sotto al secondo non si ha una grande precisione e si affatica abbastanza la CPU. Per ridurre il lavoro alla CPU è bene tenere la applicazione minimizzata.
  • Ogni riga di LOG (presentata anche nella seconda riga della applicazione), è composta dalla data, seguita dalla data Giuliana (in giorni e frazioni) e seguita dai valori dei sensori abilitati. Il separatore dei campi è il punto e virgola.
  • La riga “Value” mostra le letture dei singoli sensori. Vederli in tempo reale è utile nelle prove.
  • Nella riga “Slot” si impostano gli Slot per i singoli sensori. Questi numeri devono corrispondere ai numeri di Slot che si impostano nell’HAL.
  • Nella riga “Type” si imposta il tipo di sensore.
  • Nella riga “Multiply” si imposta il fattore di moltiplicazione, per la regolazione fine del guadagno (la pendenza della curva di taratura). Normalmente questo valore è “1”. Per gli schemi vedere la documentazione dell’Adc24.
  • Nella riga “Trim value” si imposta il fattore di addizione, per la regolazione fine del valore finale (si sposta la curva di taratura in alto o in basso).
  • I nuovi pulsanti “Set zero” che ci sono dalla versione 3.3 in poi permettono di fare la “tara” facilmente. Più che altro lo si usa per trasduttori lineari e celle di carico. Usarli è facile, si porta il sensore nella posizione di zero e si preme il pulsante.

Note speciali per i canali impostati con i tipi “Res-3” o “Res-4” o “PTxxx”

  • Con questi tipi si usano due Slot.
  • Il primo Slot è scritto nella casella della riga “Slot” (ad esempio 10).
  • Il secondo Slot è lo Slot seguente (ad esempio 11).
  • Il primo slot è il valore della tensione misurata.
  • Il secondo Slot è il valore della corrente misurata diviso per il resistore di misura della corrente (normalmente 10K).
  • Nella riga “Multiply” non si imposta “1”, come per gli altri sensori, ma si imposta il valore del resistore di misura della corrente (solitamente 10000).

Visualizzare i dati con KST

Datalogger visualization with KST    Datalogger visualization with KST

KST è un ottimo visualizzatore OpenSource per i files di LOG. Visualizza i file di log in tempo reale, mentre vengono scritti, come mostrato in questo video.

KST sopporta anche file enormi e li visualizza e filtra in ogni modo possibile. E’ anche facilissimo zoommare e scorrere i file nel passato. La soluzione perfetta per tutte le esigenze di logging di tipo scientifico. Con pazienza, informandosi sul Web e eventualmente chiedendo aiuto a Marco Russiani, si può far fare a KST ogni genere di visualizzazione. Probabilmente è anche possibile usarlo per inviare file MySql su WEB. Usare KST non è per niente facile, è un software grandioso e i grandi risultati si devono pagare con pazienza.


Download della documentazione su KST preparata da Marco Russiani
KST2_Help_for_Theremino_Logger_ENG.pdf


Downloads di Theremino Logger – Versione 3.4
Theremino_Logger_V3.4.zip
Theremino_Logger_V3.4_WithSources.zip (versione per programmatori)

Per tutti i sistemi Windows a 32 e 64 bit (per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione.  


Theremino SeriHAL V2.2

SeriHal V2.2

Theremino_SeriHal consente di inviare agli Slot i dati provenienti da una porta seriale e di inviare alla porta seriale i dati degli Slot. 

La comunicazione SLOTS <-> Seriale (Real o Virtuale) è di tipo bi-direzionale e, in caso sia voluta anche la trasmissione, questa può essere sincrona o asincrona.

Si può quindi collegare al PC una qualsiasi interfaccia Hardware o Software che invii e riceva dati attraverso una porta seriale. E si potranno inviare e ricevere dati numerici ad uno o più Slot. I dati potranno essere poi processati da altre applicazioni del mondo Thereminico e, ad esempio, visualizzati con lo SlotViewer e il SignalScope o registrati con il Theremino_Logger.

Da adesso il mondo thereminico può dialogare non solo con Arduino e Processing, ma anche con Octave (il cugino povero e free di MatLab), con Python ed altri SW ancora: serve solo caricare i loro plugin seriali. Pensate a cosa si può fare gestendo le funzioni di computer vision di OpenCV tramite Python/Numpy e dialogando con gli slot di Theremino-HAL ed i moduli Master/Slave: riconoscimento facciale, inseguimento ottico/meccanico, elaborazione di immagini in tempo reale e altre elaborazioni grafiche di altissimo livello alla portata di (quasi) tutti.
 
Le istruzioni e il protocollo di comunicazione sono nel file “SeriHal_v2.2_ITA” che troverete nella cartella “Docs”.

Anche questa è una geniale applicazione di Marco Russiani. Nella cartella DOCS sono disponibili due piccoli file di istruzioni in italiano e in inglese. Non c’entra niente ma Marco ha da poco scoperto la supernova SN2017gfh. Non capita tutti i giorni di avere un amico che ha scoperto una stella, dovevamo proprio scriverlo!

Claudio S. merita un particolare ringraziamento, per aver rivisto la documentazione aggiungendo alcuni esempi per un uso integrato, via seriale, di varie componenti del mondo Thereminico, tra loro e/o con il “resto del mondo”. Nella cartella DOCS vi sono alcuni esempi per utilizzare Arduino e anche un esempio per controllare la nostra applicazione Theremino SDR dall’esterno con Arduino e Processing.
Note per le versioni
Versione 2.3
– Eliminato l’errore che si verificava premendo “Disconnetti”.
– Migliorata le velocità di ricezione.
– Ridotto il consumo di CPU.
– Se il separatore non viene riconosciuto allora si usa lo spazio.
Downloads di Theremino SeriHAL – Versione 2.3
Theremino_SeriHAL_V2.3_WithSources.zip
Per tutti i sistemi Windows a 32 e 64 bit (per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione
.


Theremino Terminal

Theremino Terminal 2.0

Questa applicazione permette di scambiare caratteri con una porta seriale. Le applicazioni di tipo “Terminal” vengono utilizzate principalmente per comunicare con il firmware dei micro-controllori, durante i test di funzionamento e durante la scrittura del firmware.

Per leggere le brevi istruzioni premete il pulsantino “Help”. 

Durante lo sviluppo del firmware dei NetModule (vedere questa pagina) dovevamo verificare i dati di debug provenienti dal micro, attraverso la seriale virtuale e la porta USB. Inizialmente abbiamo utilizzato applicazioni scaricate da internet come ad esempio “Putty”. Ma sono applicazioni complesse e scomode. Poi abbiamo scritto questa applicazione che ha reso tutto più semplice.

Il theremino Terminal sta in un singolo file eseguibile da 500k, è facile da utilizzare e non richiede installazione. Un buon esempio di semplicità e minimalismo, che sono le caratteristiche principali del sistema theremino.

 – – – – – –

Grandiosi miglioramenti per chi scrive firmware!

Nella versione 1.2 abbiamo introdotto i nuovi comandi “Decode to Slots”. Con questi comandi si possono inviare i valori delle variabili interne del firmware, alle applicazioni del sistema theremino.

Non si tratta solo di leggere i valori nel testo del terminal, come si fa di solito, ma di una vera comunicazione di valori numerici ad alta velocità (fino a quasi un migliaio di linee al secondo e decine di migliaia di singole variabili al secondo). In pratica si riescono a vedere le variazioni delle variabili interne del firmware, come se si collegasse ad esse un oscilloscopio.

Nel firmware si inviano alla seriale i valori delle variabili che si vogliono seguire.  Si inviano i valori tutti su una riga, separati da spazi, punti e virgola, virgole o due punti. La applicazione Terminal interpreta i valori, che possono essere interi o con i decimali, e li invia allo Slot prescelto e ai successivi. Esistono anche tre decodificatori speciali per i due modelli di calibri più comuni e per i comparatori.

Si può quindi utilizzare il Signal Scope (o altre applicazioni del sistema theremino), per vedere la variazione nel tempo dei loro valori. E intanto nella finestra del terminal si ha una lista dei loro valori passati. Una comodità eccezionale, meglio di un debugger hardware!!!

Nella immagine seguente si vedono i valori di comando (in blu) e la risposta meccanica (in rosso) di un servomotore controllato da un PID scritto in un PIC12F1572. L’immagine che si vede nell’oscilloscopio dell’HAL proviene dal segnale di comando (Servo-16) e da un Adc16 collegato al potenziometro di feedback del servomotore. Invece le due tracce della immagine superiore, sono i valori di due variabili interne del PIC.

I valori delle variabili sono passati attraverso la seriale, la applicazione Terminal, gli Slot e infine sono stati visualizzati dalla applicazione Theremino SignalScope.

Sembra di collegare un oscilloscopio dentro al firmware. Per chi utilizza i micro, e soprattutto per chi scrive firmware di controllo dei servomeccanismi, questa è una possibilità eccezionalmente utile!

Nella versione 2.0
Abbiamo migliorato gli algoritmi di ricezione e decodifica, incrementando di molto la affidabilità dei dati ricevuti. Inoltre abbiamo ridotto il carico per la CPU di almeno dieci volte, rendendo possibile la decodifica di decine di migliaia di variabili al secondo anche sui computer più lenti. 

Nella versione 2.1
– Abbiamo corretto un difetto che faceva vedere i dati solo dopo un certo numero di righe in arrivo. Ora si vede subito anche l’arrivo di un singolo carattere.
– Ora è possibile modificare il nome dell’eseguibile e farne funzionare più di uno nella stessa cartella.
(ad esempio Theremino_Terminal1.exe, Theremino_Terminal2.exe, Theremino_Terminal3.exe …)


Downloads di Theremino Terminal – Versione 2.1
Theremino_Terminal_V2.1.zip   

Theremino_Terminal_V2.1_WithSources.zip  (versione per programmatori)
Per tutti i sistemi Windows a 32 e 64 bit (per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione)

.


Theremino ComByTCP

Com By TCP

Questa applicazione mette in comunicazione porte COM tra due PC anche molto lontani. La abbiamo usata tra Italia e Cina e ha funzionato bene.

Per farla funzionare bisogna avere in funzione le porte virtuali che si installano con com0com che trovate nella cartella com0com/Installers.

E’ una applicazione per specialisti, la abbiamo usata poco e ci ricordiamo poco di come funziona. Ma per quel che ne sappiamo fa il suo lavoro.


Versione 1.0
– Questa è la prima versione pubblicata, non la abbiamo provata a lungo ma ha funzionato bene per leggere un modulo GPS che si trovava in Cina. 


Downloads di Theremino ComByTcp – Versione 1.0
Theremino_ComByTcp_V1.0.zip

Theremino_ComByTcp_V1.0_WithSources.zip  (versione per programmatori)
Per tutti i sistemi Windows a 32 e 64 bit (per Raspberry Pi, Linux, Android e OSX, leggere le note di installazione)

Note legali 

ITALIANO – HARDWARE: NEI LIMITI PREVISTI DALLA LEGGE il sistema Theremino VIENE FORNITO “COSÌ COM’È”, E NON RILASCIA GARANZIA ESPLICITA O IMPLICITA, RISPETTO ALLA SUA FUNZIONALITA’, OPERATIVITA’, O USO, INCLUSE, SENZA LIMITAZIONE, LE GARANZIE IMPLICITE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE O VIOLAZIONE. SI DECLINANO ESPRESSAMENTE OGNI RESPONSABILITÀ PER DANNI DIRETTI, INDIRETTI, CONSEQUENZIALI, INCIDENTALI O SPECIALI, INCLUSI, SENZA LIMITAZIONI, MANCATI GUADAGNI, PERDITE DI PROFITTI, PERDITE DERIVANTI DA INTERRUZIONE DI ATTIVITA’ O PERDITE DI DATI, INDIPENDENTEMENTE DALLA FORMA DI AZIONE O TEORIA LEGALE SOTTO CUI LA RESPONSABILITA’ VIENE ASSERITA, ANCHE SE NON INFORMATI DELLA POSSIBILITA’ O RISCHIO DI TALI DANNI.
ITALIANO – SOFTWARE: IL SOFTWARE del sistema Theremino E’ UN SOFTWARE LIBERO: E’ POSSIBILE RIDISTRIBUIRLO E/O MODIFICARLO SECONDO I TERMINI DELLA LICENZA “GNU General Public License” COME PUBBLICATA DALLA “Free Software Foundation”, NELLA VERSIONE 3, O QUALSIASI VERSIONE SUCCESSIVA. È POSSIBILE OTTENERE UNA COPIA DELLA LICENZA “GNU General Public License” DA: http://www.gnu.org/licenses
ENGLISH – HARDWARE: THE PRODUCT Theremino System IS PROVIDED TO YOU “AS IT IS”, AND WE MAKE NO EXPRESS OR IMPLIED WARRANTIES WHATSOEVER WITH RESPECT TO ITS FUNCTIONALITY, OPERABILITY, OR USE, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR INFRINGEMENT. WE EXPRESSLY DISCLAIM ANY LIABILITY WHATSOEVER FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR SPECIAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST REVENUES, LOST PROFITS, LOSSES RESULTING FROM BUSINESS INTERRUPTION OR LOSS OF DATA, REGARDLESS OF THE FORM OF ACTION OR LEGAL THEORY UNDER WHICH THE LIABILITY MAY BE ASSERTED, EVEN IF NOT ADVISED OF THE POSSIBILITY OR LIKELIHOOD OF SUCH DAMAGES.
ENGLISH – SOFTWARE: THE Theremino System SOFTWARE IS FREE SOFTWARE: YOU CAN REDISTRIBUTE IT AND/OR MODIFY IT UNDER THE TERMS OF THE “GNU General Public License” AS PUBLISHED BY THE “Free Software Foundation”, EITHER VERSION 3 OF THE LICENSE, OR ANY LATER VERSION. YOU CAN GET A COPY OF THE “GNU General Public License” FROM: http://www.gnu.org/licenses
 

Comments are closed.