我希望这个确切的问题还没有得到解决。我确实搜索了一段时间。
所以我正在使用Arduino 库进行处理,只需让它闪烁我已连接到我的 Arduino UNO 的 LED 即可对其进行测试。我正在关注本教程,但遇到的问题与该教程页面上的问题略有不同。这是我的处理代码:
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$RegisteredMethods
Stable 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”,但是即使重新启动它,它也没有改变我在处理中的错误。我还尝试打开 Arduino 应用程序并上传 StandardFirmata 草图,如 ProcessngxArduino 库下载页面 (playground.arduino dot cc/interfacing/processing) 中所述,同时尝试运行处理草图,但同样的错误。我使用 Arduino UNO 而不是 Duemilanove 的事实不应该 这不是问题,因为 UNO 显然只是它的更新版本。有什么想法我可以尝试下一步吗?
更新:好的,所以我的代码中突出显示的错误是以任何速率打开我正在使用的串行端口(我认为在这种情况下为 57600 位/秒)。所以我认为问题出在前面提到的 adrunio x 处理信息页面的说明中的这个特定步骤(playground dot arduino dot cc/interfacing/processing),第 3 步:“为串行配置处理:处理点 org/reference/libraries /serial/"... 链接转到处理的“串行”参考页。我对“配置”的含义感到困惑?我究竟如何找出我的“正确的串口”?我浏览了串行参考页面上的其余说明和示例,但仍然不知道我在寻找什么。
更新 #2:我的 arduino 串行端口是“/dev/tty.usbmodem1411”。不过,我仍然对如何将其插入到我的处理代码中感到困惑。我刚刚在最近两次更新中学到的东西可能与我的错误无关,我仍然不确定。