我希望这个问题没有得到解决。我找了一会儿。
所以我正在使用Arduino library进行处理,只需让它闪烁我连接到Arduino UNO的LED就可以测试它。我正在关注this tutorial,但遇到的问题与该教程页面上的问题略有不同。这是我的处理代码:
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
int ledPin = 13;
void setup()
{
//println(Arduino.list());
arduino = new Arduino(this, Arduino.list()[0], 57600); //error here
arduino.pinMode(ledPin, Arduino.OUTPUT);
}
void draw()
{
arduino.digitalWrite(ledPin, Arduino.HIGH);
delay(1000);
arduino.digitalWrite(ledPin, Arduino.LOW);
delay(1000);
}
这是我的错误:
IllegalAccessError:尝试从类cc.arduino.Arduino $ SerialProxy
访问类processing.core.PApplet $ RegisteredMethodsStable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
Exception in thread "Animation Thread" java.lang.IllegalAccessError: tried to access class processing.core.PApplet$RegisteredMethods from class cc.arduino.Arduino$SerialProxy
at cc.arduino.Arduino$SerialProxy.<init>(Arduino.java:119)
at cc.arduino.Arduino.<init>(Arduino.java:168)
at sketch_130206a.setup(sketch_130206a.java:29)
at processing.core.PApplet.handleDraw(PApplet.java:2117)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:193)
at processing.core.PApplet.run(PApplet.java:2020)
at java.lang.Thread.run(Thread.java:680)
由于我的错误显然与访问权限有关,我尝试按照我所关注的教程页面中的说法转到/ var / lock文件夹,但/ lock文件夹不存在!我正在使用Mac 10.8.2。我四处搜索并发现这个帖子(arduino dot cc / forum / index.php?topic = 135164.0)并决定在终端尝试“sudo mkdir -p / var / lock”和“sudo chmod 777 / var / lock”,但是它没有改变我在Processing中的错误,即使在重新启动它之后也是如此。我还尝试打开Arduino应用程序并上传在ProcessngxArduino库下载页面(playground.arduino dot cc / interfacing / processing)中提到的StandardFirmata草图,同时尝试运行处理草图,但同样的错误。我使用Arduino UNO代替Duemilanove的事实不应该是问题,因为UNO显然只是它的更新版本。我可以尝试下一步做什么想法?
更新:好的,所以我的代码中突出显示的错误是打开我正在使用的串口,无论如何(在这种情况下我认为是57600位/秒)。所以我认为问题在于前面提到的adrunio x处理信息页面(playground dot arduino dot cc / interfacing / processing)中的指令中的这一特定步骤,步骤3:“为串行配置处理:处理点组织/参考/库/ serial /“...链接进入处理的'串行'参考页面。我对“配置”的含义感到困惑?我究竟如何找出“正确的串口”?我在串行参考页面上完成了其余的说明和示例,但仍然不知道我在寻找什么。
更新#2:我的arduino串口是“/dev/tty.usbmodem1411”。我仍然对如何将其插入到Processing中的代码感到困惑。我在最近2次更新中学到的东西可能与我的错误无关,我仍然不确定。
答案 0 :(得分:1)
问题在于我使用的是测试版的Processing(2.0)。使用最新的稳定版本(1.5.1),它应该可以工作。