Voila j'avance de plus en plus sur mon robot avec processing mais je me heurte à un petit problème. J'essayse de recuperer plusieurs variable (valeur) que mon arduino envoie mais j'ai une erreur dès la deuxieme valeur recuperer.
Coté Processing
import processing.serial.*; Serial myPort; int temperature; int Ultrason1; void setup() { size(640, 360); String portName = Serial.list()[1]; println(Serial.list()); myPort = new Serial(this, portName, 9600); textFont(createFont("Arial",10)); } void draw(){ background(0, 0, 0); text("Capteur distance 1 : "+Ultrason1, 10, 330); text("Capteur distance 2 : ", 10, 340); text("Capteur distance 3 : ", 10, 350); text("Température : "+temperature, 150, 330); } void serialEvent(Serial port) { String input = myPort.readStringUntil('*'); if (input != null) { println( "Receiving:" + input); input = trim(input); int[] vals = int(splitTokens(input, "*")); Ultrason1 = vals[0]; temperature = vals[1]; } }
Coté arduino
int Ultrason1; int temperature; void setup() { Serial.begin(9600); Ultrason1=10; temperature=120; } void loop() { Serial.print(Ultrason1); Serial.print("*"); Serial.print(temperature); Serial.print("*"); }
coté processing dès que je commente le temperature = vals[1]; cela fonctionne sans problème.
Avez vous une idée ?
error, disabling serialEvent() for //./COM8 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at processing.serial.Serial.serialEvent(Unknown Source) at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732) at gnu.io.RXTXPort.eventLoop(Native Method) at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575) Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at Kbot.serialEvent(Kbot.java:58) ... 8 more
Cordialement,
bypbop