ScratchでKHR-1HVを制御できないか奮闘しています。単なるシリアル通信だとバカにしてかかったのですが、思うようにうまくいきません。
付属のソフトでは問題ないのですが、シリアル通信ソフトなどを利用して真似しても通信が再現できません。
ウェブで参考にしていたRubyの例ではうまくいくのでScratchでもOKだと思ったのですが…
近藤科学KHR-2HVをMac OSX Leopardから操作する
ところが上のページのサンプルを別のPCで動かしてみたら動作しませんでした。
どうやらRCB-3のタイミングが結構厳しいようです。
マイコンボードと通信 sizuのセローに乗ってどこにいこう!/ウェブリブログ
そこで今まで試していたサンプルの各所にDelayを埋め込んだところ、なんとか動作させることができました。
port := SerialPort2 new openPortNamed: '/dev/cu.usbserial-KOS1VRMH' baud: 115200.
port nextPut: 13.
Delay waitMSecs: 10.
a := port readByteArray.
port nextPut: 244.
port nextPut: 1.
port nextPut: 0.
port nextPut: 245.
Delay waitMSecs: 10.
b := port readByteArray.
Delay waitMSecs: 100.
port close.
上記はモーションの1番を実行させる例です。
とりあえず前進できてよかったのですが、機種によってDelayの値が変わりそうで怖いです。