Theremino è un sistema diverso da Arduino e, se vogliamo, complementare ad esso. Anche questa piccola scheda, con i suoi software, apre possibilità nuove e sorprendenti alla didattica.
In questa pagina alcuni appunti schematici. Tentiamo di racchiudere tutto in un'unica pagina, al fine di mostrare la semplicità del sistema.
Ciò che ci ha sempre trattenuti dall'acquisto di questa scheda è stata la presenza di progetti di contatori Geiger, rilevatori di raggi Gamma, geofoni... poco confortanti per chi vuol solo giocherellare con lucine e robottini! Poi è sorta l'esigenza di acquistare un MakeyMakey, quindi c'è stata la casuale gioiosa scoperta che con Theremino si risparmiavano 40 euro ottenendo la stessa cosa, quindi ancora l'acquisto e infine la scoperta della semplicità e accessibilità del sistema anche a normodotate cortecce cerebrali.
Si rimanda al sito e al blog ufficiale per approfondimenti e informazioni più complete, si declina ogni responsabilità per un uso improprio o per fini non consentiti dalla legge (!) o per danni a cose persone edifici ecce ecce... www.theremino.com
come si inizia
Si acquista la sola scheda Theremino Master a 10 euro
Si scarica il programma* HAL e si lancia l'eseguibile. Cliccare Riconosci . Attenzione che in Theremino gli Slot, identificativi dei Pin, possono non coincidere con i pin fisici (es. Pin1-Slot20).
Si connette la scheda al Pc col cavetto.
Si possono aggiungere a volontà altre schede per aumentare il numero di pin (quelle chiamate "slave" offrono 10 pin, le "master" invece 6 pin).
Si possono aggiungere a volontà altre applicazioni, tutte portatili (lasciando sempre HAL in funzione).
* tutte le applicazioni Theremino sono programmi portatili, ossia non necessitano di installazione e non c'è rischio, pertanto, di ingolfare il Pc. Si scarica una cartella zippata, da scompattare in una qualsisasi posizione. I programmi si avviano molto velocemente.
esempi di attività immediate:
giochi di luci
Si collegano direttamente uno o più led ai pin (senza alcuna resistenza). Necessari due cavetti femmina-femmina per ogni led.
Si seleziona come tipo Pin Pwm_8
Nella casella "value" si possono modificare i valori. *Particolarità: tenendo premuto il tasto del mouse si può modificare il valore numerico muovendo il mouse in su o in giù.
Si può utilizzare la app Theremino_SlotViewer o Theremino_Rgb
giochi con i servomotori
Si collegano direttamente uno o più servomotori. Si notino le triplette di pin comodamente già predisposte.
Si seleziona come tipo Pin Servo_16
Nella casella "value" si modificano i valori col movimento del mouse. Immediatamente si può muovere un braccio meccanico o un robottino
lettura di sensori
Si collega il sensore, fotoresistenza, sensore di temperatura, umidità...
Se ha 3 piedi si connette alla tripletta Signal - +5V - GND
Se ha 2 piedi si connette tra massa e segnale Signal - GND(i due estremi del connettore) lasciando libero il filo centrale che porta la alimentazione 5V
Si seleziona come tipo Pin Res_16
Con un doppio click sulla riga del pin compare un grafico che restituisce in tempo reale la lettura dei dati
Cliccare su Riconosci dopo aver collegato Theremino
Compaiono le righe dei pin disponibili (10 se si possiede solo la scheda Theremino Master). E' importante controllare gli Slot, numeri identificativi dei pin fisici. Al pin 1, ad esempio, posso assegnare lo Slot 20, e nel programma userò tale pin utilizzando appunto l'identificativo 20 - ReadSlot (20) - WriteSlot(20,500).
Cliccando sulla riga di un pin si apre la relativa scheda a destra. Qui bisogna configurare il tipo di pin, secondo l'uso che se ne vuole fare.
tabella dei pin
pin
descrizione
tipo
esempi d'uso
note
Dig_out
Uscita digitale
OUTPUT
accendere un led
3.3 Volt 18mA
Pwm_8
Pwm_16
Uscita PWM
OUTPUT
accendere un led modulandone l'intensità da 0 a un massimo
3.3 Volt 18mA
Servo_8
Servo_16
Uscita per servomotori
OUTPUT
per servomotori
3.3 Volt 18mA
Dig_in_pu
Dig_in
Ingresso digitale
INPUT
per pulsanti
Adc_8
Adc_16
Ingresso ADC per potenziometri e trasduttori
INPUT
potenziometri e trasduttori. Misura la corrente in entrata
Cap_8
Cap_16
Ingresso per tasti capacitivi
INPUT
tastiere capacitive, pomodori e mele
Res_8
Res_16
Ingresso per trasduttori resistivi
INPUT
per misurare il valore di resistenza di un sensore. Per potenziometri
Counter_pu
Counter
Ingresso di conteggio, frequenza e periodo
INPUT
Fast_counter_pu
Fast_counter
Ingresso di conteggio per frequenze molto alte
INPUT
Period_pu
Period
Ingresso per trasduttori speciali
INPUT
Usound_sensor
Ingresso per i sensori di distanza ad ultrasuoni
INPUT
per i sensori di distanza ad ultrasuoni
CapSensor_HQ
Ingresso per i moduli CapSensor
INPUT
per misurare la distanza di un oggetto conduttivo (tipicamente una mano)
→ I pin ad 8 bit hanno minor risoluzione ma maggior velocità di comunicazione rispetto a quelli a 16 bit. Se non serve una grande precisione conviene quindi utilizzare quelli ad 8 bit.
→
I tipi con pullup, il cui nome termina per "_pu", permettono di collegare facilmente interruttori, pulsanti e
dispositivi open-collector, senza dover aggiungere resistori esterni.
→
Il sistema Theremino utilizza un range standard da 0 a 1000, convertendo i valori reali che giungono dai sensori, che possono essere da 0 a 255 (8 bit), da 0 a 65535 (16 bit) oppure da 0 a 1.
Triplette dei pin
Signal
+5V
GND
Segnale
Alimentazione a 5 volt
terra
* in alcuni componenti, come i servomotori, sono contraddistinti dai colori arancione (segnale), rosso (alimentazione), marrone (terra).
Linguaggio di programmazione
Si può programmare in Basic o C#. Si può scaricare il comodo e portatile programma "Theremino Script" o utilizzare un altro compilatore. Guardare come primo esempio "Script Examples/Theremino SLOT Examples/LED Blink.vb". Il codice è diviso in due parti. Nella prima va inserito il nostro programma che opera direttamente su Theremino, nella seconda si può curare l'interfaccia grafica. Per chi proviene dal mondo Arduino questa seconda parte è del tutto nuova, in quanto non esiste interfaccia grafica sul Pc (la si può realizzare, con difficoltà, con Processing). La si può tuttavia trascurare e lasciare quella presente, così come si avverte nei commenti: "LA GESTIONE SEMPLIFICATA FINISCE QUI - MODIFICARE LA PARTE SEGUENTE CON ATTENZIONE". Per chi proviene dal mondo Arduino sarà più familare l'utilizzo del C# con i suoi rassicuranti punti e virgola finali. Però la comunità di sviluppatori di Theremino utilizza il Vb.net, quindi sarebbe preferibile per approfittare di codici già fatti.
Sub PausableExecution()
Dim X as single=readSlot(1)
If X>=0 and X<=250 then
WriteSlot(2,1000)
WriteSlot(3,0)
WriteSlot(4,0)
WriteSlot(5,0)
End if
If X>250 and X<=500 then
WriteSlot(2,1000)
WriteSlot(3,1000)
WriteSlot(4,0)
WriteSlot(5,0)
End if
If X>0 and X<=750 then
WriteSlot(2,1000)
WriteSlot(3,1000)
WriteSlot(4,1000)
WriteSlot(5,0)
End if
If X>750 and X<=1000 then
WriteSlot(2,1000)
WriteSlot(3,1000)
WriteSlot(4,1000)
WriteSlot(5,1000)
End if
End Sub
braccio robotico
Con questo progetto non c'è la parte di programmazione. C'è un programma già fatto, e fatto molto bene, da utilizzare. La parte meccanica è molto semplice, qualche tavoletta di legno da forare a cui avvitare i servo.
C'è però la fase delicata della messa a punto. Qui l'alunno deve regolare i vari parametri sino ad ottenere il risultato. Con Theremino si possono (e quindi si devono!) raggiungere risultati di alto livello. Questo braccio robotico riuscirà a disegnare! E' un'operazione molto delicata che richiede molto tempo.
in costruzione
Nel riquadro "Arm properties" si devono impostare le lunghezze esatte LenX, LenY e LenZ dei quattro Links, misurandole con attenzione tra i centri dei perni dei servi. Nelle quattro caselle "Delta" si deve impostare un angolo di taratura.
Pomodori sonanti
Si emula e si supera il Makey Makey
Si collegano direttamente alcuni cavetti ai pin Signal. A questi si possono collegare oggetti conduttori di qualsiasi natura, per es. banane, pomodori, vaschette d'acqua, piastrine di rame, bulloni...
Si seleziona come tipo Pin Cap_8
Impostare "Proportional area" a 0.
Impostare "Min variation" a 100. Bisogna guardare su HAL i valori della colonna "value". 1000 acceso, 0 spento. Se permangono a 1000 anche senza essere toccati si deve aumentare il "Min variation". Alzando questo parametro, i tasti diventano meno sensibili.
Attenzione: i cavetti devono essere corti, non si devono toccare tra loro, e non devono muoversi. Se si spostano premere il tasto Riconosci e si ri-tara automaticamente il tutto.
Scaricare e avviare Theremino_KeyManager_V1.0 , che permette di assegnare ad ogni pomodoro un tasto della tastiera. Quindi si potrà utilizzare qualsiasi gioco o programma del Pc. Qui abbiamo utilizzato il nostro programmino musicale assegnando ai dieci pin i tasti: Q - W - E - R - T - Y - U - I - O - P
Note sulla taratura: Si può impostare "Min variation" da 5 a 150 e oltre. Bisogna procedere per tentativi. All'inizio conviene mettere tutto a 100. I primi due pin sono un po' più sordi (hanno maggiore capacità) dei pin 3,4,5,6 e dovrebbero ricevere valori diversi, tipo 100 ai primi due pin e 150 agli altri. Per approfondire leggere le pagine 16 e 17 delle istruzioni dell' HAL e http://www.theremino.com/technical/pin-types (le tabelle con le capacità sono a fine pagina).
Il funzionamento "capacitivo" è comodo perché non richiede il filo di massa attaccato al polso (il Makey Makey invece ne ha bisogno).
In alcuni casi (cavi lunghi metri o necessità di poter muovere i cavi) si potrebbe volere un funzionamento "resistivo" uguale al Makey Makey.
Si seleziona come tipo Pin Adc_8
una resistenza da 470k (giallo-viola-giallo) tra Signal e +5V (una resistenza per ogni pin)
Occorre anche il filo di massa attaccato al polso.
E' bene non fare come il Makey che collega direttamente il filo di massa
al polso. Collegare le persone a massa senza limitare la corrente non è carino per la sicurezza.
Meglio interporre un resistore da 100k (marrone-nero-giallo) lungo il filo di massa.
Arduino e Theremino
I nostri due amati aggeggi sono molto differenti l'uno dall'altro. Arduino permette cose che Theremino non può fare (per esempio staccarsi dal Pc) e, viceversa, Arduino non può giungere a livelli di precisione e complessità di Theremino, in quanto non può usufruire della potenza di un computer.
Abbiamo quindi già espresso la fondamentale differenza: Arduino vuole essere un oggetto autonomo, un'entità che si può programmare e che riesce ad essere un minicomputer a tutti gli effetti, dotato di sensori ed attuatori. Ma paga tale autonomia restando appunto un minicomputer, di memoria e capacità di calcolo limitate.
Invece Theremino non può essere staccato dal Pc. Non può essere programmato o, meglio, è già stato programmato in modo definitivo. Ha bisogno di un'applicazione base ( HAL ), che deve essere sempre in funzione, alla quale si possono aggiungerne altre a scopi specifici. Il risultato finale è però quella di una massima ottimizzazione, sia lato Hardware che lato Software. Potremmo dire che è un Arduino altamente performante con la potenza di un Pc.
Guardando dal nostro punto di vista, quello della didattica nella scuola media o quello più generico della programmazione/elettronica per i ragazzi, tentiamo la compilazione di un elenco di attività:
Arduino e Theremino
attività
Arduino
Theremino
apprendimento
richiede un tempo e un percorso di apprendimento preliminare da parte del docente, specialmente se digiuno di programmazione
In un'ora si apprende tutto quel che c'è da apprendere per utilizzare Theremino. Si può non conoscere la programmazione in quanto si è possibile utilizzare applicazioni già pronte.
prime esperienze di interazione: giochi con i LED, lettura di sensori, azionamento di motori, ecc
necessità di approntare Arduino, programmandolo e costruendo il circuito sulla breadboard
Uso immediato, basta solo collegare i sensori o gli attuatori agli spinotti già predisposti.
robottini semplici semoventi
Ideale per robottini poco sofisticati, che richiedano una lettura semplificata dell'ambiente (evitare grossi ostacoli, seguire una linea). Bene anche per comandi radio o infrarossi
il fatto che deve restare attaccato a un computer può essere un limite
robot avanzati
Esistono schede (shield) che espandono le possibilità di Arduino, ma anche queste, oltre ad essere costose, restano comunque di potenza inferiore a quella di un Pc
apre diverse possibilità, tutte quelle permesse da un Pc, per esempio il riconoscimento vocale, la lettura dell'ambiente con tecniche sofisticate di riconoscimento immagini, la stessa possibilità di utilizzare il video, ecc
interfaccia
A meno di non ricorrere a complicate soluzioni con Processing, l'interfaccia rimane limitata alla serie di numeri visualizzati sul monitor seriale o su uno schermo LCD
le applicazioni di Theremino hanno un'interfaccia ricca di comunicabilità, pari a quella del Pc che le ospita. Input a tastiera o con il mouse o con il touchscreen, grafici di risposta, elementi multimediali.
comunità web
vastissima (spesso dispersiva)
attualmente limitata
programmazione
obbligatoria, utilizza un linguaggio proprio, una versione modificata del C++. Esistono però dei software compilatori facilitati (Scratch, Arduinomio)
Per numerosi progetti si utilizzano applicazioni già realizzate. Per quelle personalizzate bisogna conoscere il C# o il Vb net
esperimenti di scienza
A tutt'oggi non si è manifestato interesse in questo campo nelle comunità di Arduino della rete. Comunque non sarebbero possibili delicate misurazioni.
Theremino permette immediati esperimenti scientifici anche di alto livello, in ambito geologico, fisico, biologico...
bracci robotici, macchine a controllo numerico
solo per piccole realizzazioni didattiche, spesso lontane da un vero utilizzo professionale
macchine CNC reali, di buona precisione
costo
economico il kit base, costose le schede aggiuntive (le shield).
economico il kit di base, costosi ovviamente i componenti elettronici per progetti di rilievo (servomotori di qualità, sensori specifici...)
La soluzione ideale, dando uno sguardo alla precedente tabella, è quella di usarli entrambi, cominciando dal più immediato Theremino, divertendosi in un secondo momento con Arduino, per concludere di nuovo con Theremino in progetti di alto livello.
Theremino System
Theremino è un sistema Open Source, per la didattica e le applicazioni scientifiche, che permette di interfacciare facilmente il PC con il mondo esterno. Sono disponibili molti esempi dai più semplici (accendere un led), fino a complesse applicazioni scientifiche (spettrometria gamma). Si possono misurare, con economici sensori, ogni tipo di grandezza fisica, dalla temperatura alle radiazioni, dai campi magnetici ai composti chimici. E si possono pilotare servocomandi, motori, led e lampade, forni, elettro-valvole, relè, controlli di processo, robot etc. www.theremino.com
10 euro il costo della scheda.
Theremino Store
oppure cercare su eBay