プログラミング情報
■プチロボX-PC間通信仕様
第1章 通信仕様(WondeRoid Ver.1.0)について
プチロボXはパソコンから、あるルールに添ったデータ(命令)を受けとって動作しています。

プチロボXは、パソコンのRS-232C(低速のシリアル通信規格)通信ポートを使用して、データの送受を行っています。
通信をするためには受け側、送り側でルールを決めて同じルールで行わなければなりません。
以下がプチロボXの通信仕様です。
●RS-232Cの通信仕様
| 通信速度: |
4800bps |
| データ形式: |
バイナリ形式出力 |
| データ: |
8ビット |
| パリティ: |
無し |
| ストップビット: |
1 |
| ハンドシェイク: |
無し |
プチロボX用制御基板(WR-ESIX)の受信ポート仕様は上記のとおりです。
この仕様に合わせて、パソコン側(送信)の設定を合わせる必要があります。
プチロボXの場合は、パソコン(送信)→制御基板(受信)の一方通行です。
よってパソコン側は、送信設定のみを調整します。
上記の通信仕様を合わせることでデータの送受が可能になりますが、これだけではまだプチロボXを動作させることはできません。通信の中身(動作させるためのデータ)が必要です。
プチロボXではモータ番号と回転位置をデータとして送り動作させています。
通信データの中身は下記ルールでパソコンから送信されます。
●通信データフォーマット
データ構成は4バイト固定です。
第1バイト データスタート値
"253" ※常に同じ
第2バイト モータ番号値
"221〜229"
第3バイト 回転位置値
"0〜220" ※"0"はモータOFF
第4バイト チェックサム
"第2バイト-220+第3バイト" |
 |
注意
"CR"、"LF"などの改行コードは不要です。またデータは必ずバイナリ形式で送信してください。テキスト形式では制御できません。
・データスタート値:"253" (データの始まりを表す値です。固定数値です。)
・モータ番号値:動作させるモータ番号を指定します。
221(0番)〜229(8番)となります。
・モータ回転位置値:0=サーボモータ "OFF"(フリーモード)
1〜220 (回転移動位置)
・チェックサム:受信した先でデータが変異していないかチェックするための値です。
(無線送信を想定して付加されているデータです。)
前のバイトに応じて変化します。計算法は下記のとおりです。
チェックサムの計算 第2バイト-220+第3バイト
※-220は加算結果が252を超えないようにするため(253はデータスタート値として使用しているので)
---------------------------------
チェックサム計算例 "253,221,100,"の時
---------------------------------
第4バイトの計算は 221-220+100 = 101となり
送信するデータは "253,221,100,101" の4バイトです。
動作は「モータ番号0番のサーボモータを100の位置まで移動する」ことになります。
●応用:速度制御するには
サーボモータ自身に変速機能が無いため基本的にスピード制御はできません。
下記のように回転位置値を計算して順に送ることで間接的な速度制御が可能です。
例:モータ番号0を「1」から「50」の位置まで移動
速く動かす時
1回目の送信データ "253,221,1,2" 開始位置
2回目の送信データ "253,221,50,51" 終了位置
※一気に終了位置まで移動するのでこれが最速です。
(速度はサーボモータの速度に依存します。)
遅く動かす時
1回目の送信データ "253,221,1,2" 開始位置
2回目の送信データ "253,221,10,11" 中間位置1 (以後位置データを10ずつ加算しています)
3回目の送信データ "253,221,20,21" 中間位置2
4回目の送信データ "253,221,30,31" 中間位置3
5回目の送信データ "253,221,40,41" 中間位置4
6回目の送信データ "253,221,50,51" 終了位置
※サーボモータの動作速度は同じですが目標の終了位置まで何度も止まることで、結果として終了位置に到着する時間が遅れます。分割数を多くするほど遅くなります。
次章ではプログラミング言語を使用してWindowsPCから実際のプログラミングを組んで動作させます。
[このページトップへ ^|サポートページトップへもどる|次章へ >>]