Problems communicating with Arduino
in
Integration and Hardware
•
2 years ago
Hi guys, first post here.
My problem is as follows -
I am following an Arduino tutorial with processing and TouchOSC on my iPhone to control an RGB LED. So far, I have the TouchOSC interface created and it can control the Processing sketch (3 simple sliders). However, I run into the following problem when trying to add the Arduino to the equation.
Here is the code for the Procsessing sketch:
The error is as follows:
Exception in thread "Animation Thread" java.lang.ArrayIndexOutOfBoundsException: 0
at Colour_Mixer.setup(Colour_Mixer.java:45)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
I have read that I should perform a println(Arduino.list()), but where can I read the output of this command?
I am running Ubuntu Linux 10.10 Maverick Meerkat 64 bit, Processing 1.5.1, and I have tried uploading both the Standard Firmata and the Standard Firmata For Uno sketches to the Arduino.
Thanks in advance,
Sam
My problem is as follows -
I am following an Arduino tutorial with processing and TouchOSC on my iPhone to control an RGB LED. So far, I have the TouchOSC interface created and it can control the Processing sketch (3 simple sliders). However, I run into the following problem when trying to add the Arduino to the equation.
Here is the code for the Procsessing sketch:
- import cc.arduino.*;
- import processing.serial.*;
- import oscP5.*;
- import netP5.*;
- Arduino arduino;
- OscP5 oscP5;
- float redAmount = 0.0f;
- float greenAmount = 0.0f;
- float blueAmount = 0.0f;
- void setup(){
- size(320, 480);
- background(0);
- oscP5 = new OscP5(this, 8000);
- arduino = new Arduino(this, Arduino.list()[0],57600);
-
-
- }
- void draw(){
- background(redAmount, greenAmount, blueAmount);
-
- fill(0);
- //red rect
- stroke(255,0,0);
- rect(34,39,67,255);
- fill(50,40,40);
- rect(34,39+255,67,-redAmount);
-
- //green rect
- fill(0);
- stroke(0,255,0);
- rect(124,39,67,255);
- fill(40,50,40);
- rect(124,39+255,67,-greenAmount);
-
- //blue rect
- fill(0);
- stroke(0,0,255);
- rect(216,39,67,255);
- fill(40,40,50);
- rect(216,39+255,67,-blueAmount);
-
- //write to arduino
- arduino.analogWrite(11, int(redAmount));
- arduino.analogWrite(10, int(greenAmount));
- arduino.analogWrite(9, int(blueAmount));
-
-
-
- }
- void oscEvent(OscMessage theOscMessage){
- String addr = theOscMessage.addrPattern();
- float val = theOscMessage.get(0).floatValue();
-
- if(addr.equals("/1/red")){ redAmount = val;}
- if(addr.equals("/1/green")){ greenAmount = val;}
- if(addr.equals("/1/blue")){ blueAmount = val;}
-
-
-
- }
The error is as follows:
Exception in thread "Animation Thread" java.lang.ArrayIndexOutOfBoundsException: 0
at Colour_Mixer.setup(Colour_Mixer.java:45)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
I have read that I should perform a println(Arduino.list()), but where can I read the output of this command?
I am running Ubuntu Linux 10.10 Maverick Meerkat 64 bit, Processing 1.5.1, and I have tried uploading both the Standard Firmata and the Standard Firmata For Uno sketches to the Arduino.
Thanks in advance,
Sam
1