問題は、intの値をSerial.write()する際にUTF-8でどうやらドリトル側が受け取っているらしいということ。そこでいくつか試したけれど、数値を文字列化して送ってやればいいということになった。
まず、arduino_dolittle.pde側(Arduinoのスケッチ)。
34c34
< Serial.write(analogRead(port)/4);
---
> Serial.print(analogRead(port)/4,DEC);
というわけで、Serial.print()命令で、10進の文字列出力することにした。
続いてarduino.ini(ドリトルのオブジェクト定義)側。
26c26
< 「c>0」!なら「(_arduino!(c)値?)!文字コード」そうでなければ「0」実行。
---
> 「c>0」!なら「(0!(_arduino!(c)値?)add)」そうでなければ「0」実行。
変数「c」の値は到着したバイト数を表しているので、「(c)値」でその文字数分だけ読み込んでくれるから、そのままでもよさそうだけれど、念のため数値に変換するつもりで、整数0を足してみた。
一応、以下のような適当なプログラム
システム! "arduino"使う。
a=arduino! 作る "/dev/tty.usbmodem26221"ひらけごま。
アナログ値=フィールド!作る。
pot = a!0 アナログ入力。
タイマー!作る 「アナログ値!(pot!読む)書く」実行。
でなんとかなっている感じ。