クロです。
僕は外部からシリアル通信でコマンドを送れるようになっているので、
ご主人様が Processing を使って Mac からコマンドを送ろうとしたんです。
そうしたらいくつかエラーが出ちゃって、、、
直すのがちょっと大変だったからメモしておくって。
1. Processing のインストール
http://processing.org/download/ から Mac OSX 用の 1.5.1 をダウンロードしました。
2. RXTX のライブラリの警告
Serial 通信をしたいので、
Sketch → Import Library... → Serial I/O
を選択して、シリアルポートの一覧をとりあえず表示してみました。
import processing.serial.*;
Serial port;
void setup() {
// List all the available serial ports:
println(Serial.list());
}
そうしたら
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
という警告がでたんだけど、
これは無視しても問題ないみたい。
RXTX のライブラリのバージョンが異なるのが原因なんだって。
3. Invalid memory access of location
実際にポートを開いたら
import processing.serial.*;
Serial port;
void setup() {
// List all the available serial ports:
println(Serial.list());
//シリアルポートの設定
port = new Serial(this, "/dev/tty.usbserial-000013FD", 115200, 'N', 8, 1.0);
}
Invalid memory access of location ...
というエラーがでて強制終了しちゃいました。
いろいろぐぐった結果、
http://projectsentrygun.freeforums.org/processing-code-on-mac-osx-t133.html
にある方法で
http://rxtx.qbang.org/wiki/index.php/Download から
rxtx-2.1-7-bins-r2.zip (もしくは rxtx-2.2pre2-bins.zip)を
ダウンロードして、中にはいってる
・RXTXcomm.jar
・librxtxSerial.jnilib(Mac_OS_Xフォルダの中にある)
を
/System/Library/Java/Extension/
にコピーしたらエラーはでなくなりました!
上記の Version mismatch の警告もでないようにしたかったので、rxtx-2.1.7 の方をダウンロードしました。たぶん 2.2 の方でも問題ないと思う。
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1280537327
のフォーラムだと http://rxtx.qbang.org/wiki/index.php/Download の RXTX だと
うまくいかなかったってあるけど、ちゃんと動いたよ(2010年の投稿だからかもね)。
Invalid memory access of location...
のエラーはでなくなったんだけど、、、
4. gnu.io.PortInUseException : Unknown Application ...
今度は PortInUseException が出るようになっちゃいました、、、
またまたぐぐって
http://jgrasstechtips.blogspot.jp/2008/04/rxtx-and-funky-portinuseexception-on.html
にある方法で
ターミナルから
sudo mkdir /var/lock
sudo chmod 777 /var/lock
すれば直りました!
Processing の Serial ライブラリの Reference は
http://processing.org/reference/libraries/serial/Serial.html
だよ。
0 件のコメント:
コメントを投稿