Processing x Funnel x Arduino を試してみた
Funnel 009 がリリースされたので試してみました.
うまくいったこと
FunnelServer.exe を起動せずに Processing から Arduino に接続して examples[Arduino](http://d.hatena.ne.jp/keyword/Arduino)\digitalOut\digitalOut.pde がうまいことうごきました.
うちの PC の場合, Arduino と接続する COM ポートは COM6 になるため, C:\Users\ユーザ名\Documents\Processing\libraries\funnel\library\settings.arduino.txt のポート番号を COM6 に変更する必要がありました.*1
うまくいかなかったこと
FunnelServer.exe を起動した状態で Arduino と接続しようとすると接続できない. 以下のようなエラーメッセージが Processing のコンソールにでて FunnelServer.exe が落ちる.
portStatus[]13 type 3
C:\Users\ユーザ名\Documents\Processing\libraries\funnel\library\settings.arduino.txt
current directory: D:\bin\processing-1.0.3-expert\.
I/Oモジュールと接続中です…
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
エラー:シリアルポートのオープンに失敗しました
gnu.io.PortInUseException: Unknown Application
at gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354)
at funnel.FirmataIO.begin(FirmataIO.java:446)
at funnel.ArduinoIO.<init>(ArduinoIO.java:33)
at funnel.FunnelServer.<init>(FunnelServer.java:131)
at processing.funnel.IOSystem.waitingServer(IOSystem.java:140)
at processing.funnel.Arduino.startingServer(Arduino.java:92)
at processing.funnel.IOSystem.<init>(IOSystem.java:72)
エラー:Arduino I/Oボードをオープンできませんでした at processing.funnel.Firmata.<init>(Firmata.java:20)
at processing.funnel.Arduino.<init>(Arduino.java:44)
at processing.funnel.Arduino.<init>(Arduino.java:60)
at digitalOut.setup(digitalOut.java:38)
at processing.core.PApplet.handleDraw(PApplet.java:1400)
at processing.core.PApplet.run(PApplet.java:1328)
at java.lang.Thread.run(Thread.java:619)
waiting server
waiting server
waiting server
waiting server
waiting server
waiting server
waiting server
waiting server
waiting server
waiting server
waiting server
Check to connect Arduino or settings.txt C:\Users\ユーザ名\Documents\Processing\libraries\funnel\library\settings.arduino.txt
opened host address 127.0.0.1
ececCode /reset
reboot OK
configureation OK
addModule() Arduino
funnelServiceThread start
notify thread start
dispose funnel
funnelServiceThread out
ececCode /quit
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:113)
at processing.funnel.CommandPort.receive(CommandPort.java:127)
at processing.funnel.OSCClient.waitFunnel(OSCClient.java:73)
at processing.funnel.IOSystem.execCode(IOSystem.java:302)
notify thread out at processing.funnel.IOSystem.quit(IOSystem.java:372)
at processing.funnel.IOSystem.dispose(IOSystem.java:218)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
commandPort close at java.lang.reflect.Method.invoke(Method.java:597)
at processing.core.PApplet$RegisteredMethods.handle(PApplet.java:724)
at processing.core.PApplet$RegisteredMethods.handle(PApplet.java:717)
at processing.core.PApplet.stop(PApplet.java:667)
dispose funnel at processing.core.PApplet.run(PApplet.java:1372)
at java.lang.Thread.run(Thread.java:619)
まとめ
Processing x Funnel x Arduino で動かすときは
- FunnelServer.exe を起動しない
- C:\Users\ユーザ名\Documents\Processing\libraries\funnel\library\settings.arduino.txt
とする必要があるようです.