In realtà non sarà poi molto complesso aggiungere i comandi per gestire Arduino nel programma del simulatore, in quanto basta inserire una sola linea di istruzioni in ogni procedura di itinerario richiamata dall'IF che legge "MOUSEPRESSED". Questo vale sia per il tuo programma che per il mio.
Mi spiego meglio.
Come ti dicevo, Processing non ha i comandi per controllare Arduino. Per renderli disponibili va installata una libreria la quale conterrà i comandi per scrivere e leggere i dati delle porte IN/OUT.
Inoltre, per essere un po' più precisi, la libreria funziona tramite un software chiamato "Firmata" da flashare su Arduino attraverso il suo IDE. Firmata è già presente nell'IDE come tutorial, quindi questa operazione è abbastanza semplice.
A questo punto, con Processing e libreria Arduino installata sarà possibile usare comandi del tipo:
<font face="Courier New"> arduino.pinMode(x, Arduino.OUTPUT);</font id="Courier New">
<font face="Courier New"> arduino.pinMode(x, Arduino.INPUT);</font id="Courier New">
X sta per il numero di ingresso o uscita, OUTPUT setta la modalità uscita e INPUT la modalità entrata.
<font face="Courier New">arduino.digitalWrite(13, Arduino.HIGH); //accende l'uscita digitale 13</font id="Courier New">
oppure,
<font face="Courier New">arduino.digitalWrite(13, Arduino.LOW); //spegne l'uscita digitale 13</font id="Courier New">
Per la lettura di un ingresso digitale la sintassi sarà più o meno così:
<font face="Courier New">variabile==arduino.digitalRead(13)</font id="Courier New">
la variabile conterrà 1 se all'ingresso c'è una tensione di circa 5 Volt e 0 se non c'è tensione.
La prima parte del programma dovrà contenere 3 linnee così composte (commenti esclusi):
<font face="Courier New">/" LUCI CARNATE, COMANDI MANUALI:
Programma per il controllo manuale delle luci del pastico di Carnate pilotate da Arduino, basato su Processing e Firmata.
Controllo completo di 12 uscite (6 analogiche e 6 digitali) in modalità ON/OFF.
L'uscita analogica numero 6 viene comandata tramite un potenziometro lineare simulato.
Eseguire l'ulpoad di Firmata su arduino tramite l'IDE prima di avviare il programma.
(C)2012 Eduz Labs per GAS-TT
Ultimo aggiornamento: 06-09-2012
"/
import processing.serial."; //setup iniziale del programma, importazione porta seriale e abilitazione di qualsiasi porta COM
import cc.arduino."; //importazione della libreria ARDUINO per Processing
Arduino arduino; //abilitazione</font id="Courier New">
e nel VOID SETUP questa linea:
<font face="Courier New"> arduino = new Arduino(this, Arduino.list()[1], 57600); //setup porta seriale COM1 57600 baud</font id="Courier New">
dove 1 sta per il numero della porta COM (USB) usata e 57600 la velocità in Baud.
Questo stralcio è preso dal software scritto per gestire le luci di Carnate e mostra le linee che vanno aggiunte all'inizio di ogni programma per pilotare Arduino tramite Processing.
Come puoi notare, i comandi da e verso Arduino sono semplici come logica; tipo accendi questo, spegni quell'altro e leggi cosa succede.
Poi c'è l'hardware da intefacciare con le porte che fa il resto; se voglio comandare tramite una uscita due deviatoi, un segnale e un sezionamento, dovrò realizzare un circuito elettrico in grado di leggere i 5 Volt dell'uscita per trasformarli negli eventi che mi servono.
Per un segnale a led basta una semplice resistenza, per un deviatoio invece servirà un relè.
In conclusione, con il software possiamo dare libero sfogo alla fantasia per realizzare un qualsiasi impianto limitatamente alle potenzialità dell'harware che intendiamo controllare. Nel senso che possiamo prima fare il simulatore e poi i circuiti per trasformare il simulatore in un impianto funzionante.
Con Arduino Uno abbiamo 16 porte IN/OUT digitali, di cui 6 con funzione analogica. Con Arduino Mega si arriva a 54 porte di cui 16 analogiche.
Ora è uscito Arduino Due che è simile al Mega ma è più veloce, ma in sostanza fa le stesse cose dei modelli precedenti.
Il progetto della stazione in oggetto lo vorrei fare con Arduino Mega, anche perchè l'ho già acquistato
Poi se son rose fioriranno
Ciao