pagine varie Theremino
home
compilatore logo Arduinomio
compilatore di programmi per Arduino
laboratorio Theremino
laboratorio
elettricità Theremino
appunti di elettronica/elettrotecnica
Processing logo Processing
compilatore di programmi per Processing
Arduino logo
compilatore di programmi per Arduino
logggin Theremino
accedi o esci

esperimenti senza programmazione

attività immediate

pomodori sonori

led RGB

braccio robotico

robot

tutorials (con programmazione)

luci Theremino

il mio primo led si accende

giochi di luci

un dado elettronico

il semaforo

effetto candela

effetto fading

rosso-verde-blu 1

rosso-verde-blu 2

display a 7 segmenti - conto alla rovescia

display a 7 segmenti bis

sensori

costruiamo una nota

interruttori

pulsanti

tastierino

uso di variabili

uso di variabili

funzioni personalizzate

un robot

servi e luci

la scheda motori

ostacoli

Processing

elettronica

meccanica e dintorni

prontuario

piedinature

collegamenti

i pin di Theremino

HAL

linguaggi di programmazione

elenco applicazioni

resistenze

Scarica Adobe Flash Player

sketches notevoli

circuiti notevoli

tabelle varie

tabella colori

tavola dei simboli

referenze on-line

referenze Theremino

referenze C#

referenze Vb.net

hardware

un kit di base

guida al compilatore

cosa è Theremino?

Arduino inizia il laboratorio

rivedi un laboratorio svolto

il mio account

info

link

contatti

Theremino

Theremino
sommario: come si inizia
attività immediate
HAL
tabella dei pin
la programmazione
braccio robotico
pomodori sonanti
Arduino e Theremino
Theremino System


introduzione

Theremino 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


* 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 Arduino

giochi con i servomotori Arduino

lettura di sensori Arduino Arduino Arduino Arduino



HAL

Arduino
per il download: --> link diretto
--> pagina esplicativa

Le cose essenziali da sapere inizialmente:

Arduino


Arduino


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.


--> esempio completo in Basic
--> esempio completo in C#



Qui una tabella di corrispondenza utile per migrare da Arduino a Theremino
Arduino arduinoarduino Theremino ThereminoTheremino Theremino ThereminoTheremino
invia al Pin DigitalWrite(1,HIGH)
AnalogWrite(1,125)
WriteSlot(1,1000);
WriteSlot(1,500);
WriteSlot(1,1000)
WriteSlot(1,500)
legge dal Pin DigitalRead(1)
AnalogRead(1)
ReadSlot(1); ReadSlot(1)
setup void setup(){
pinMode(1,INPUT);
}
il setup viene eseguito manualmente in HAL
ciclo principale void loop(){
...
}
static void EseguiConPause() {
...
}
Sub PausableExecution()
...
End Sub
pausa delay(200); PausaMS(200); PausaMS(200)
espressione condizionale if(x>125) {
...
}
if x>125
...
End if
ripetizione for(int i=1;i<=3;i++){
...
}
for i1 as int32=1 to 10
...
Next
variabili int x=100; dim x as Integer=100
float x=100.23; dim x as single=100.23








alcuni esempi:

blink


 arduino
 arduino
void setup(){ 
	pinMode(13,OUTPUT);
} 
void loop(){ 
	digitalWrite(13,HIGH);
	delay(500);
	digitalWrite(13,LOW);
	delay(500);
 }
arduino
Theremino
static void EseguiConPause(){
	 	WriteSlot(1,1000);
 		PausaMS(500);
 		WriteSlot(1,0);
		PausaMS(500);
 }
arduino
Theremino
Sub PausableExecution()
	  For i1 As Int32 = 1 to 10
	 	WriteSlot(1,1000)
 		PausaMS(500)
 		WriteSlot(1,0)
		PausaMS(500)
	  Next
End Sub



lettura di sensori

 arduino
 arduino
void setup(){ 
	pinMode(a1,INPUT); 
	pinMode(2,OUTPUT); 
	pinMode(3,OUTPUT); 
	pinMode(4,OUTPUT); 
	pinMode(5,OUTPUT); 
} 
 void loop(){ 
	X=analogRead(a1);
	if(X>=0 && X<=62){ 
		digitalWrite(2,HIGH);
		digitalWrite(3,LOW);
		digitalWrite(4,LOW);
		digitalWrite(5,LOW);
	} 
	if(X>62 && X<=125){ 
		digitalWrite(2,HIGH);
		digitalWrite(3,HIGH);
		digitalWrite(4,LOW);
		digitalWrite(5,LOW);
	} 
	if(X>125 && X<=187){ 
		digitalWrite(2,HIGH);
		digitalWrite(3,HIGH);
		digitalWrite(4,HIGH);
		digitalWrite(5,LOW);
	} 
	if(X>187 && X<=255){ 
		digitalWrite(2,HIGH);
		digitalWrite(3,HIGH);
		digitalWrite(4,HIGH);
		digitalWrite(5,HIGH);
	} 	
 }
 


arduino
Theremino
 static void EseguiConPause(){
	float X=ReadSlot(1);
	if(X>=0 & X< 250){
		WriteSlot(2,1000);	
		WriteSlot(3,0);
		WriteSlot(4,0);
		WriteSlot(5,0);
	}	
	if(X>=250 & X< 500){
		WriteSlot(2,1000);	
		WriteSlot(3,1000);
		WriteSlot(4,0);
		WriteSlot(5,0);
	}	
	if(X>=500 & X< 750){
		WriteSlot(2,1000);	
		WriteSlot(3,1000);
		WriteSlot(4,1000);
		WriteSlot(5,0);
	}
	if(X>=750 & X<=1000){
		WriteSlot(2,1000);	
		WriteSlot(3,1000);
		WriteSlot(4,1000);
		WriteSlot(5,1000);
	}
}
 


arduino
Theremino
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 Arduino

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.

Scarica Adobe Flash Player

in costruzione



qui una spiegazione dettagliata http://it.emcelettronica.com/robot-arm-braccio-robotico-economico-con-meccanica-essenziale


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.

Arduino


Pomodori sonanti Arduino



Si emula e si supera il Makey Makey


Arduino

Arduino





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.

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
Arduino
Theremino
Theremino
apprendimento richiede un tempo e un percorso di apprendimento preliminare da parte del docente, specialmente se digiuno di programmazione Arduino 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. ArduinoArduinoArduino
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 Arduino Uso immediato, basta solo collegare i sensori o gli attuatori agli spinotti già predisposti. ArduinoArduinoArduino
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 ArduinoArduinoArduino il fatto che deve restare attaccato a un computer può essere un limite Arduino
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 Arduino 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 ArduinoArduino
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 Arduino 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. ArduinoArduinoArduino
comunità web vastissima (spesso dispersiva) ArduinoArduinoArduino attualmente limitata Arduino
programmazione obbligatoria, utilizza un linguaggio proprio, una versione modificata del C++. Esistono però dei software compilatori facilitati (Scratch, Arduinomio) ArduinoArduino Per numerosi progetti si utilizzano applicazioni già realizzate. Per quelle personalizzate bisogna conoscere il C# o il Vb net ArduinoArduino
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... ArduinoArduinoArduino
bracci robotici, macchine a controllo numerico solo per piccole realizzazioni didattiche, spesso lontane da un vero utilizzo professionale ArduinoArduino macchine CNC reali, di buona precisione ArduinoArduinoArduino
costo economico il kit base, costose le schede aggiuntive (le shield). ArduinoArduinoArduino economico il kit di base, costosi ovviamente i componenti elettronici per progetti di rilievo (servomotori di qualità, sensori specifici...) ArduinoArduinoArduino

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 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. Theremino
www.theremino.com





10 euro il costo della scheda. Theremino Store
oppure cercare su eBay


indietro torna all'indice avanti esci logout Licenza Creative Commons

Ultima modifica: Ottobre 2016