Buonasera,
sono nuovo del forum ed ormai ho fatto i miei primi esperimenti con arduino (mega 2560)e fin qui tutto bene.
Da un pò di giorni sto cercando di provare Processing ma con tutte le guide che ho letto ho fatto (credo) molta confusione......
C'è una buon anima in grado di spiegarmi quali sono i passi da eseguire per utilizzare processing e arduino?
In certi forum ho letto che bisogna scaricare in arduino standardfirmata e poi non toccare più arduino....altri propongono codici diversi..Ho fatto molte prove ma senza ottenere grandi risultati
per iniziare vorrei soltanto eseguire uno degli esempi base che trovo in processing (es. simplewrite)
per le mie prove utilizzo Ubuntu 10.04 oppure windows xp
Ringrazio già in anticipo chiunque possa darmi una mano
Ciao,
io con Processing giocherello, ma lato Arduino no ho avuto bisogno di fare nulla di quello che dici (firmata).
Con Processing mi interfaccio con Arduino semplicemente via comunicazione seriale.
Per esempio, nell'esempio SimpleWrite che tu citi: http://processing.org/learning/library/simplewrite.html
vedrai che oltre alla prima parte, che è il programma in Processing, c'è una parte commentata (racchiusa in /* */).
La prima riga dice:
// Wiring/Arduino code:
ecco, questa è la parte di codice Wiring che andrai a caricare su Arduino.
Puoi utilizzare l'IDE Processing
per la scrittura e compilazione/esecuzione della parte di Processing,
e l'IDE Arduino
per la scrittura, compilazione e caricamento su Arduino della parte di Wiring.
Ciao avevo già provato questo esempio,
dopo la tua risposta ho ritentato
ma ancora niente....
sono riuscito a far funzionare almeno una volta quando ho commentato la riga (riesco ad accender il led la prima volta e poi rimane sempre acceso) //myPort.write('L');
se tolgo il commento e lancio il programma senza modificare niente non funziona...
qualcuno sa dirmi perchè??????
almeno sono sicuro che il problema non è di configurazione di seriale
Ciao,
se commenti la riga
myPort.write('L');
il led non si spegnerà mai.
Ho provato lo sketch processing in questione, e il problema risultava essere l'apice singolo (') con cui erano racchiuse le stringhe.
Se lo cambi con apice doppio (") vedrai che problemi non ce ne saranno più.
Ti riposto il codice con le modifiche degli apici e con una piccola e veloce ulteriore modifica per ottimizzare le write su seriale (senza tale modifica, il traffico su seriale è ininterrotto:)
import processing.serial.*;
Serial myPort; // Create object from Serial class
int val; // Data received from the serial port
boolean cStatus; //variabile di controllo per evitare continuo write su seriale
void setup()
{
size(200, 200);
// I know that the first port in the serial list on my mac
// is always my FTDI adaptor, so I open Serial.list()[0].
// On Windows machines, this generally opens COM1.
// Open whatever port is the one you're using.
//String portName = Serial.list()[0];
String portName = "/dev/ttyUSB0";
myPort = new Serial(this, portName, 9600);
cStatus = false;
}
void draw() {
background(255);
if (mouseOverRect() == true) { // If mouse is over square,
fill(204); // change color and
if (!cStatus) {
myPort.write("H"); // send an H to indicate mouse is over square
cStatus = true;
}
}
else { // If mouse is not over square,
fill(0); // change color and
if (cStatus) {
myPort.write("L"); // send an L otherwise
cStatus = false;
}
}
rect(50, 50, 100, 100); // Draw a square
}
boolean mouseOverRect() { // Test if mouse is over square
return ((mouseX >= 50) && (mouseX <= 150) && (mouseY >= 50) && (mouseY <= 150));
}
come ti ho detto nell'altro post, se vuoi continuare con Processing ti consiglio di affrontare anche i fondamenti di Java.
Ciao ho provato ad eseguire il codice che ho copiato dal tuo post e questi sono gli errori che sono usciti:
Stable Library
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
java.lang.NullPointerException
at processing.serial.Serial.write(Unknown Source)
at processing.serial.Serial.write(Unknown Source)
at sketch_jan10a.draw(sketch_jan10a.java:46)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
java.lang.NullPointerException
at processing.serial.Serial.write(Unknown Source)
at processing.serial.Serial.write(Unknown Source)
at sketch_jan10a.draw(sketch_jan10a.java:53)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
credo e dimmi se sbaglio sono legati alla porta seriale!