VS-RC003をシリアルポートで制御する


GitHub – VS-RC003-SerialTest

VS-RC003をシリアルポートで制御する

いろいろ使えそうな気がして、KUMACOにも使っている、Vstone社のVS-RC003をPCから制御してみようと思い、メモリマップをシリアル通信で読み書きできるようにしてみました。
(ちなみに本家には、VS-RC003SDKというものがあるのは知ってます。)

シリアルポート(UART)は、VS-RC003のCN6ポートに接続します。

接続のピンアサインやシリアル通信の手順などは、Vstone社にマニュアルがあります。

こちらを元に接続します。

ちなみに、もちろん純正のシリアル変換アダプタを使うのが王道です。
うちには、たまたまベステクのZigBee用のアダプタが余っていたので流用しました。

レベル変換にFTDIのチップ搭載のものを使うときは、Windowsで、シリアルの待ち時間が標準で16msecに設定されているので、1msecに変更することをお忘れなく。(下図)

いろいろ試行錯誤しながら、任意のメモリマップを書き換え出来るようになりました。

  • データが符号付2バイトで、通信に使われるバイトオーダーがビッグエンディアン
  • 生データではなくアスキーでやりとり(しかもwindows改行で区切り)
  • (愚痴)ことあるごとに(マイナス値のとき)、windowsが32bitにキャストしようとしてくれる

というあたりで若干ハマリましたが、これはもともとターミナルソフトで使う前提で作られた仕様なんでしょうね。

成果物は、GitHubにプログラム上げておきます。

そのままVC++2017でコンパイルすると、下記のような感じになります。

この後の展開としては、ロボットに指示を出すサーバーアプリケーションを作って、アプリと連携してインターフェースの一部としてロボットを活躍させるとか、ROSに繋げるとか、いろいろありかなーと思います。

 

Twitterのモーメントも作ってみました↓

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

アーカイブ

広告

Top