■ホビーロボット部品の製造・販売 
  モータコントローラ、センサ、音声、画像、無線モジュールなど、
■ホビーロボット制作記事のページ (各種マイコン、PCとの接続事例)
■特殊メイク、特殊材料の販売 ※特殊メイクのコーナーはこちらに移りました。
Top(お知らせ) 製品紹介 使い方とサンプルプログラム通信販売 リンク ロボット掲示板 会社案内
 Easy Robotics for all enthusiastic people!!!  ---HOBBY ROBOT PARTS SHOP ASAKUSAGIKEN---   Since 2003...

DCモータコントローラ AGB65-DCM の紹介





<概要>

■シリアル通信によりDCモータを駆動するボード

AGB65−DCM (DC Motor controller) は1つのシリアルラインで制御できるモータコントローラです。
制御できるモータ電圧最大25V、最大供給電流は2A(各チャンネルごと)。マブチモータなどの、一般的にホビーで使われている小型モータのほとんどに対応できます。

■2モータまでの回転方向と出力調整
出力チャンネルは2つあり、それぞれの回転方向と出力を制御できます。個別駆動、2つ同時駆動が可能。出力はPWMにより0〜100%の1%単位での指定が可能。

■マイコンやPC、Linuxボードと簡単接続
シリアル通信は5Vレベルなので5V系のマイコンと直結して使うことができます。又、オプションの使用により、RS232C、USB、Bluetoothでの通信も可能です。よって、シリアル通信の機能が使えるものなら、PC、マイコンを問わず簡単にモータを操作することができます。

■1ライン最大8個までのモータを制御可能
本製品はジャンパ設定のID切替により4台までを同一シリアルラインに接続することができます。つまり、1つのシリアルポートで
4×2=8個のモータ制御が可能です。

■ロータリエンコーダ入力
インクリメンタル式のロータリエンコーダを接続することができ、パルス数指定による位置制御が可能です。
※チューニング作業が必要です。モータ制御に関する知識が必要です。


■他のAGR65シリーズに接続可能
他のAGB65シリーズのセンサやコントローラと同じシリアルラインを共有できます。AGB65シリーズについては「ロボット神経システムAGB65シリーズの説明」のページを参照願います。

■最大460Kbpsの高速通信が可能!
通信速度は最大460.8Kbpsに対応し、高速にデータを送信することが出来ます。(初期設定は115.2Kbps)
注)PCは115kbpsの速度を出せるものがほとんどですが、マイコンの場合はクロックによっては正確な115Kが出ないものがありますので注意してください。クロックの選択は各マイコンのデータシートを参照願います(H8TinyやPICなどの低速マイコンの場合は115200の倍数のクロックを使う必要があります。) 。浅草ギ研製Bluetooth無線と接続し、460.8Kbpsで通信することが可能です。

■電源搭載で外部に電源回路不要!バッテリ駆動が可能!
ボード上に電源回路を内蔵し、外部に電源回路が不要で、バッテリなどで駆動することができます。


■40x50mmの超小型設計!
ロボットなどに基板を搭載する場合はその大きさがネックになりますが、本製品は極力小さい部品で構成されており、実装面積が小さくて済みます。また、基板の4角には取り付け穴があります。(穴系2.2mm、M2ネジ用)



<使用上の注意(必ずお読み下さい)>

・このボードは電子機器です。取扱い、輸送時には静電気対策を行ってください。ICの足や、各ピンを直接手で触ったりすると静電破壊される場合があります。

・バッテリ使用時には電源ラインをショートさせると、バッテリが破裂・発火する可能性があります。作業中にはショートさせないよう十分注意して下さい。また、取り付け後も、あいている電源ラインに導電物質が触らないように注意して下さい。

・このボードは他の浅草ギ研製品とは違い、大電流が流れる可能性があります。取扱を間違えるとモータやコイルなどのアクチュエータ、コントローラ自体、バッテリなどの電源が燃えたり破裂したりする可能性が非常に高いので、仕様するモータ、アクチュエータの仕様をよく読み、また下記事例などを十分参照した上でお使い下さい。


<仕様>

基板用電源
 +7.0〜+35V (*1)  コネクタ:日圧B2B-EH  (9V電池ケーブル付属)
基板消費電流
 80mA
モータ用電源
 2.5〜20V
モータ用電流
 各チャンネル2Aまで出力可能
チャンネル数
 順方向/逆方向電流制御ポート × 2チャンネル
PWM分解能
 1〜100%までの1%単位の出力設定
PWM周期
 任意の周期に可変。
通信設定
 8ビット、ノンパリ、ストップ1ビット フロー制御なし 非同期通信
通信規格
 TTLレベルEIA232C準拠 (*2)
通信速度
 9600bps/115200bps/460800bps (ジャンパで切替)
固有ID
 28〜31 (IDについては下記取扱い説明を参照)
寸法/重量
 寸法40x50mm 重量:9g
付属品
 ■AGB65電源ケーブルx1 (基板と9V乾電池をつなぐケーブル)
 ■電源延長ケーブルx1 (二台目のAGB65と電源を共有するケーブル)
 ■通信ケーブルx1 (二台目のAB65と通信ラインを共有するケーブル)
 ■モータ用電源ケーブルx1 (モータ用電源を接続するケーブル)
 ■ジャンパピンx1 (電源バイパス用)
(*1)高い電圧になるほど効率が落ち、発熱量が増えます。12V以下での使用を推奨。
(*2)5V系のマイコンと直結できます。PCなどと接続する場合は別売のオプションが必用になります。


<ピン配列>


   



※各コネクタ用のケーブルは、商品に添付されています。(5V電源出力コネクタを除く)




<DCモータと電源の接続>


 本コントローラは、コントローラ自体の電源は7〜35V、モータの電源は2〜25Vになっており、基本的にはコントローラ用とモータ用の2つの電源が必要です。但し、モータ用電源が7〜25Vの場合は、コントローラ用電源と同じ電圧となるため、モータ用電源のみで動かすことも可能です。


<2電源方式>
 
 マブチモータなどは通常は3V駆動なので、コントローラ用とモータ用の電源は別になります。この場合は下記のようにモータとバッテリをつないでください。




    




<1電源方式>

 モータが7V以上で駆動できる場合は、「BY」に付属のジャンパピンをさすと、モータ用電源がコントローラにも供給されます。



    



<ロータリエンコーダの接続>


 ロータリエンコーダを接続して、位置制御することも可能です。ロータリエンコーダはA/B相があるインクリメンタル方式のものに対応しています(電子部品店などで売られている)。この場合の接続は次のようになります。


    


 ロータリエンコーダで制御する場合は、シリアル通信で、パルス数と回転方向を指定すると、PID制御により目的の回転位置までモータを回すように制御します。
  エンコーダ入力の回転速度の上限は2000pps(puls/sec)です。よって、モータ軸に直接エンコーダがついているような高速のシステムには使えませんので注意してください。ギアドモータの途中軸又は最終軸にエンコーダがついているようなシステムでの使用を想定しています。
 モータ、ギアなどは色々な種類がありますので、エンコーダを使用する場合はチューニングが必要です。本ボードでは、PWM出力変化によるPID制御で目的パルスまでの回転制御を行いますので、P・I・D値及びPWM周期が調整できるようになっています。PID制御、PWM出力についてはこちらでは説明できませんので、書籍又はインターネット情報などを参照願います。完全な知識は不要ですが、ある程度の知識が無いとうまくチューニングできない可能性があります。




<価格>
 税込み 6,300円 (本体価格6,000円)


<オプション>

 AGB65−USB 3,780円 (本体価格3,600円)
 (USBで接続する場合に必用です。下記接続例を参照。)

 AGB65−232C 4,725円 (本体価格4,500円)
 (PCのCOMポートと接続する場合に必用です。下記接続例を参照。)

 Bluetooth無線機(本製品と接続するには下記2つが必要です。)
 BlueMaster  12,600円(本体価格12,000円)

 AGB65−BT 2,520円(本体価格2,400円)



<接続例>


<システム構成例>

 


<マイコンとの接続>

 



<USBでの接続>


 



<PCのCOMポート(RS232C)との接続>


 



<Bluetoothでの接続>



 







<電源ケーブルの接続>

 AGB65電源ケーブルは、なれないと差し込みづらいので、下の図を参照に、慎重に差し込んでください。まっすぐに挿入すると簡単に入ります。簡単に入らない場合は無理をして端子を曲げないように注意して下さい。尚、逆に挿そうとすると入りません。
 電源ケーブルの逆側には、9V乾電池用のスナップが付いております。これは簡易的なものなので、何回も乾電池を抜き差しするとスナップ部がゆるみますのでご注意下さい。9V乾電池以外の電源を使用する方は、ケーブルを切断してそれぞれの電源に合ったコネクタを取り付けて下さい。電源ケーブルを切断する際は、電源がつながっていないことを十分注意した上で行ってください。通電したまま電源線をカットすると乾電池などが破裂する可能性がありますので注意して下さい。

  



 AGB65同士は、付属のケーブルにより、電源を共有することができます。各AGB65には電源コネクタが2つづつついているので、付属の電源延長ケーブルで、他のAGB65へ電源を供給します。



<シリアルデータ通信による操作>

<データ形式>


 マスタからの指示は、バイトサイズの数値データで送られます。バイトサイズ(8ビット)単位なので、表される数値は0〜255の256種類になります。

 尚、以下特に記述がない場合は、数値は10進数で表しています。

 −基本形−

 データの基本形は次の通りになります。[ ]内は1バイトを表します。()内は送りえる数値の範囲を表します。

 [シンクロバイト(255)] [ID(28-31)] [送信バイト長(1-8)] [命令1] [命令2] [命令3] ...
シンクロバイト データの通信開始を知らせるデータで、常に「255」で始まります。
ID 設定された固有のID。(*)
送信バイト長 送信される命令の(バイト)数。シンクロバイト、ID、送信バイト数は数えません。
命令 動作させたい命令。以下で詳しく説明します。
(*)設定で28-31の4パターンに設定できます。
注)データはキャラクタデータではなく、数値(バイナリ)データで送ります。
例えばマイコンをマスタとし、C言語でプログラムを作る場合に255を送信しようとして(PCや他の言語も考え方は同じ)、

printf("255");

とするのは間違いです。これですとキャラクタデータですので実際には2と5と5を表す3バイトのキャラクタデータが送られてしまいます。数値データに直すと[32][35][35]が送信され(ASCIIコード参照)、[255]ではないことになります。

unsigned char SINC = 255;
printf("%d",SINC);

で、[255]が1バイトだけ送られます。
※お使いのCコンパイラによっては構文がことなるかもしれません(printf関数がないとか、バイトサイズ変数の宣言はcharではなくintやbyteだとか)のでご注意下さい。

−命令一覧−
命令値 動作 方向 フォーマット
  <共通命令>    
全モータ停止 送信 [255][ID(28-31)][バイト長(1)][命令(0)]
PWM駆動(1ch) 送信 [255][ID(28-31)][バイト長(4)][命令(3)][ch(1-2)][方向][出力(0-100)]
PWM駆動(2ch) 送信 [255][ID(28-31)][長(5)][命令(4)][#1方向][出力(0-100)][#2方向][出力(0-100)]

全モータブレーキ 送信

[255][ID(28-31)][長(1)][命令(7)]

10

1モータ駆動(パルス) 送信

[255][ID(28-31)][長(5)][命令(10)][M1/M2][方向][パルス上位][パルス下位]

11

1モータ駆動(時間x10mS) 送信

[255][ID(28-31)][長(5)][命令(11)][M1/M2][方向][時間上位][時間下位]

20

2モータ駆動(パルス) 送信

[255][ID(28-31)][長(5)][命令(20)][M1方向][M2方向][パルス上位][パルス下位]

21

2モータ駆動(時間x10mS) 送信

[255][ID(28-31)][長(5)][命令(21)][M1方向][M2方向][時間上位][時間下位]

30

PID設定 送信

[255][ID(28-31)][長(8)][命令(30)][M1Kp][M1Ki][M1Kd][M2Kp][M2Ki][M2Kd][DEADBAND]

40

PWM周期設定 送信

[255][ID(28-31)][長(2)][命令(40)][設定値(10-230)] *230=1mS

50 パルス数応答 送信 [255][ID(28-31)][長(1)][命令(50)]
    返信 [255][ID(28-31)][長(5)][命令(50)][M1上位] [M1下位] [M2上位] [M2下位]
254 セルフチェック 送信 [255][ID(28-31)][長(1)][254]
    返信 [255][ID(28-31)][長(1)][254]
上以外 無視されます。    

※方向はマスタ側から見たデータの通信方向を表します。「送信」はマスタ−>コントローラへ送る命令、「受信」はコントローラ−>マスタへ返される結果を表します。



【命令0:全モータ停止】


<説明>
ch1及びch2のモータ端子の両端を0Vにします。回転中のモータは停止します。


<送信フォーマット>
[255][ID(28-31)][バイト長(1)][命令(0)]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDはジャンパで設定したIDを指定します。(出荷時はID=28)
・バイト長は1で固定です。
・命令は0で固定です。


<送信データ例>
なにかの原因で、モータ回転中にすぐに停止させたい場合は次ような送信データになります。出荷時設定(115200bps、ID=28)のままとします。
[255] [28] [1] [0]



【命令3:PWM駆動(1ch)】


<説明>
0〜100%の出力指定で、モータを回します。
出力はPWM方式で制御します。電源ON時のPWM周期は0.435mSに設定されています。この周期は命令40で変えることができます(マブチモータなど、一般的なモータを使用する倍は、PWM周期はなるべく変更しないで下さい。)


<PWMの周期とデューティー(出力)>

   

パルス幅が周期の何%かを「デューティー」と言います。例えば、デューティー50%と言うと、パルス幅が周期の50%という意味になります。デューティー50%の場合は普通のアクチュエータは(おおまかに)出力が50%となります。
出力が50%でもモータによっては回転が50%やトルクが50%になるわけでは無い場合もありますので注意して下さい。あくまでデューティーで表される%の供給電力量が供給されます。
RCサーボを駆動する場合も「PWM方式」と表現しますが、厳密に言うとRCサーボの場合はパルス幅を15〜20mSに固定して、0.5〜2mSのパルス幅で制御しますのでここで説明しているような一般的に言うPWM制御とは違います。よってデューティーは15%程度以上にはなりません。つまり、このPWM方式ではRCサーボは駆動できませんので注意して下さい。RCサーボの駆動はAGB65-RSC2を使用してください。

この命令で設定した設定値は保存されません。電源を切ると標準の周期(1mS)に再設定されます。


<送信フォーマット>
[255][ID(28-31)][バイト長(4)][命令(3)][ch(1-2)][方向(0-2)][出力(0-100)]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は4で固定です。
・命令は3で固定です。
・chはch番号を指定します。1にするとch1の出力を、2にするとch2の出力を設定します。その他の値は無視されます。
・方向は次のようになります。 0=停止 1=CW(時計回り) 2=CCW(反時計まわり)
・出力は1%単位で値を設定します。


<送信データ例>
ID=28のボードのch2のモータを出力68%でCW方向に回転させる場合
[255] [28] [4] [3] [2] [1] [68]



【命令4:PWM駆動(2ch)】


<説明>
0〜100%の出力指定で、2つのモータを同時に回します。
出力はPWM方式で制御します。PWMについては命令3を参照願います。


<送信フォーマット>
[255][ID(28-31)][長(5)][命令(4)][ch1方向][ch1出力(0-100)][ch2方向][ch2出力(0-100)]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は5で固定です。
・命令は4で固定です。
・ch1方向は次のようになります。 0=停止 1=CW(時計回り) 2=CCW(反時計まわり)
・ch1出力は1%単位で値を設定します。
・ch2方向と、ch2出力もch1同様です。


<送信データ例>
ID=28のボードのch1のモータを出力65%でCW方向に、ch2のモータを出力75%でCCW方向に回転させる場合
[255] [28] [5] [4] [1] [65] [2] [75]



【命令7:全モータブレーキ】


<説明>
ch1及びch2のモータ端子の両端をHighにします。モータによっては、ブレーキがかかる状態になります。


<送信フォーマット>
[255][ID(28-31)][長(1)][命令(7)]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は1で固定です。
・命令は7で固定です。


<送信データ例>
ID=28のボードの全モータにブレーキをかける場合
[255] [28] [1] [7]



【命令10:1モータ駆動(パルス)】


<説明>
ロータリーエンコーダを使用している場合に、パルス数を指定してモータを回します。モータはPID制御で目的パルスまで回転します。PIDパラメータ設定(命令30)により挙動は変わります。目的パルス近辺になった場合は停止し、その位置を保持しつづけます。位置の保持を解除するには、命令0の停止命令を送ります。


<送信フォーマット>
[255][ID(28-31)][長(5)][命令(10)][M1/M2][方向][パルス上位][パルス下位]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は5で固定です。
・命令は10で固定です。
・M1/M2のところで、1を指定するとch1を、2を指定するとch2を駆動します。
・方向は次のようになります。 0=停止 1=CW(時計回り) 2=CCW(反時計まわり)
・パルス数は2バイトで指定します。「パルス上位」に上位バイトを、「パルス下位」に下位バイトを指定します。


<送信データ例>
ID=28のボードのch1を30パルスCW方向に回転させる場合
[255] [28] [5] [10] [1] [1] [0] [30]

ID=28のボードのch2を1024パルスCW方向に回転させる場合
[255] [28] [5] [10] [2] [1] [4] [0]

※たとえば、一回転の解像度が10bitのロータリーエンコーダが最終軸についている場合、1024パルス分駆動すれば1回転回ることになります。



【命令11:1モータ駆動(時間x10mS)】


<説明>
時間指定でモータをまわします。


<送信フォーマット>
[255][ID(28-31)][長(5)][命令(11)][M1/M2][方向][時間上位][時間下位]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は5で固定です。
・命令は11で固定です。
・M1/M2のところで、1を指定するとch1を、2を指定するとch2を駆動します。
・方向は次のようになります。 0=停止 1=CW(時計回り) 2=CCW(反時計まわり)
・時間は2バイトで指定します。「パルス上位」に上位バイトを、「パルス下位」に下位バイトを指定します。値x10mSの時間回転し、止まります。たとえば、値を100に指定すると10mSx100=1000mS=1秒間回転します。尚、モータによってはすぐに停止しない場合もありますので、1秒を指定してもちょうど1秒で止まるとは限りませんので注意してください。


<送信データ例>
ID=28のボードのch1を1秒間CW方向に回転させる場合
[255] [28] [5] [11] [1] [1] [0] [100]



【命令20:2モータ駆動(パルス)】


<説明>
ロータリーエンコーダを使用している場合に、パルス数を指定してモータを回します。この命令ではch1及びch2を同時に駆動します。モータはPID制御で目的パルスまで回転します。PIDパラメータ設定(命令30)により挙動は変わります。目的パルス近辺になった場合は停止し、その位置を保持しつづけます。位置の保持を解除するには、命令0の停止命令を送ります。


<送信フォーマット>
[255][ID(28-31)][長(5)][命令(20)][M1方向][M2方向][パルス上位][パルス下位]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は5で固定です。
・命令は20で固定です。
・方向は次のようになります。 0=停止 1=CW(時計回り) 2=CCW(反時計まわり)
・パルス数は2バイトで指定します。「パルス上位」に上位バイトを、「パルス下位」に下位バイトを指定します。


<送信データ例>
ID=28のボードのch1をCW方向、ch2をCCW方向に30パルスCW方向に回転させる場合
[255] [28] [5] [20] [1] [2] [0] [30]

 


【命令21:2モータ駆動(時間x10mS)】


<説明>
時間指定でモータをまわします。この命令ではch1とch2のモータを同時に駆動します。


<送信フォーマット>
[255][ID(28-31)][長(5)][命令(21)][M1方向][M2方向][時間上位][時間下位]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は5で固定です。
・命令は21で固定です。
・方向は次のようになります。 0=停止 1=CW(時計回り) 2=CCW(反時計まわり)
・時間は2バイトで指定します。「パルス上位」に上位バイトを、「パルス下位」に下位バイトを指定します。値x10mSの時間回転し、止まります。たとえば、値を100に指定すると10mSx100=1000mS=1秒間回転します。尚、モータによってはすぐに停止しない場合もありますので、1秒を指定してもちょうど1秒で止まるとは限りませんので注意してください。


<送信データ例>
ID=28のボードのch1をCW、ch2をCCWに1秒間CW方向に回転させる場合
[255] [28] [5] [21] [1] [2] [0] [100]



【命令30:PID設定】


<説明>
パルス数指定で駆動する場合はPID制御を行いますが、そのときのPIDパラメータを設定します。


<送信フォーマット>
[255][ID(28-31)][長(8)][命令(30)][M1Kp][M1Ki][M1Kd][M2Kp][M2Ki][M2Kd][DEADBAND]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は8で固定です。
・命令は30で固定です。

<パラメータの説明>
・M1、M2はそれぞれch1及びch2のパラメータを表します。
・Kpは比例制御係数を表し、初期値は5です。値は0〜254に可変です。一般的に比例係数を上げると目的位置までの到達時間が短くなりますが、本ボードの場合はホビー用のモータ中心にチューニングしてあるため、この係数を変えてもあまり変化はありません。
・Kiは積分制御係数を表し、初期値は10です。値は0〜254に可変です。この係数を上げると、目標位置までの到達時間が短くなりますが、オーバーシュートしやすくなります。
・Kdは微分係数を表し、初期値は1です。値は0〜254に可変です。この係数を上げると、外乱に強くなります。Kiのオーバーシュートを押さえる動きや、停止位置からズレた場合にすばやく復帰させるようになります。但し、システム構成によっては発振の原因にもなります。
・DEADBANDはデッドバンドを設定します。初期値は2です。たとえば、値が2の場合はパルスカウントがプラスマイナス2ズレてもそこで停止します。デッドバンドを小さくすると停止位置の精度が上がりますが、発振しやすくなります。デッドバンドを大きくすると発振はしづらくなりますが、停止位置の精度が落ちます。

※パラメータは各システムによってチューニングする必要があります。電源を切り入りすると設定値は初期値に戻りますので、チューニングによって得られた設定値を起動毎に設定する必要があります。

※本ボードでは単純なPID制御だけではなく、一度停止した後に外乱で軸をまわされた場合の制御、など、複数のロジックが入っています。実際の動作については実機を動かしながら挙動を確認してください。


【命令40:PWM周期設定】


<説明>
PWM駆動、又はパルス数指定駆動の場合のPWM周期を設定します。
値230が1mS周期に相当し、1〜254の範囲で設定できます。電源起動時には値100に設定されます。


<送信フォーマット>
[255][ID(28-31)][長(2)][命令(40)][設定値(10-230)] *230=1mS

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は2で固定です。
・命令は40で固定です。
・設定値で周期を設定します。

PWM周期ですが、PWM駆動で一般的なDCモータ(マブチモータなど)を駆動する場合は初期値の設定を変更する必要はありません。パルス駆動の場合、PWM周期を短くして反応を速くしたい場合にこの設定を変更してください。
尚、PWM周期の値を100以下にすると、PWM駆動時の解像度が落ちますので注意してください。パルス駆動の場合、PWMの解像度が下がっても動作にはあまり影響ありません。


<送信データ例>
ID=28のボードのPWM周期を0.1mS周期にする場合
[255] [28] [2] [40] [23]



【命令50:パルス数応答】


<説明>
パルス駆動時に、残りのパルス数を確認する命令です。


<送信フォーマット>
[255][ID(28-31)][長(1)][命令(50)]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は1で固定です。
・命令は50で固定です。

この命令を送信すると、下記のフォーマットで本ボードからの返信があります。


<返信フォーマット>
[255][ID(28-31)][長(5)][命令(50)][M1上位] [M1下位] [M2上位] [M2下位]

・シンクロバイトは255で固定です。(データを送信する先頭は必ず255)
・IDは設定したIDを指定します。(出荷時はID=28)
・バイト長は5で固定です。
・命令は50で固定です。
・パルス数は符号付2バイトの数値で返信されます。CW方向に回転していてまだ目標位置に達していない場合は正の数、CCW方向に回転している途中の場合は負の数が返されます。M1はch1、M2はch2の値です。



<送信データ例>
ID=28のボードの残りパルス数を確認する倍
[255] [28] [1] [50]



【命令254:セルフチェック】

<フォーマット>
[255] [ID(28-31)] [バイト長(1)] [命令(254)]


<説明>
本ボードはこの命令を受け取ると、同じ数値をマスタ側へ返信します。正常に動作しているかどうかはこの命令を実行することにより確認することができます。尚、起動時に正常に動作しているかどうかは、起動時にLEDが3回点滅しますのでそれで判断できます。

<送信データ例>
ID=28のボードのセルフチェックを行うには下のようなデータを送信します。正常動作していれば、同じデータが返されます。
[255] [28] [1] [254]



<サンプルプログラム>


 AGB65シリーズの使い方は、ほぼみな同じです。又、プログラムもほとんど同じになりますので、各種コンピュータとの接続は下記リンクを参照願います。


 ■PCでAGB65−DCMを制御 −> こちらとほぼ同じです。

 ■BASICスタンプからAGB65−DCMを制御−>こちらとほぼ同じです。

 ■H8からDCMを制御−>こちらとほぼ同じです。

 ■PICからDCMを制御−>こちらとほぼ同じです。

 ■AVRからDCMを制御−>こちらとほぼ同じです。




<トラブルシューティングQ&A>

Q:自作回路につないでいるがまったく動かない。ADCが正常に動作しているか確認したい。
A:電源入り時に赤LEDが3回点滅します。これが確認できれば本ボードは正常に動いていますので自作回路の方を重点的に確認してください。 この確認の時は電源以外のケーブルはつながないで下さい。

Q:命令を送ったが返答が無い。
A:下記が考えられます。
・マスタとの間でGNDを接続していない。
・本ボードのTXとマイコンのTXをつないでいる。(TXはマイコンのRXへ、RXはマイコンのTXへつなぎます。接続例の図を参照。)
・電源電圧が不足(バッテリなどの表面の表示値ではなく、テスタで実際に電圧を測って確認して下さい)
・マスタ側の通信速度と速度が合っていない(マイコンで115kbps通信の場合は特に注意)
・データを数値データ(バイナリデータ)ではなく、キャラクタデータで送っている。
・マスタ側から送信する際のIDが間違っている。
・通信中に、本ボードの電源を切ると、その後に電源を入れてもマスタ間の通信が出来ない場合があります。この場合は一度マスタと本ボード両方の電源を切り、本ボード側を先に立ち上げてからマスタ側を立ち上げてください(マイコンがマスタの場合は電源を共通で使用していると思いますので、ソフト的に電源投入後しばらくしてからデータを送るようにプログラムしておけば、単純に電源を切り入りするだけで済みます)。
・本ボードの起動には約2秒ほどかかります。本ボード起動直後に命令を送っても動作しませんので注意して下さい。

Q:PWM制御をしたがモータからキーンという音が出るだけで動かない
A:モータ、ギア構成、電源の種類と電圧によって、モータが回り始めるPWM出力の値が違います。たとえば、マブチモータなどの場合、ギアダウンしない場合は出力30%ぐらいでも回りますが、1/300ぐらいにギアダウンすると出力90%以上でないと回転しない、ということがあります。

Q:パルス数制御で、指定した位置に止まらない
A:本ボードではPID制御で位置制御しています。PIDの場合はパラメータ調整で特性が変わります。設定によっては、目標位置近くでパワーが落ちるため、目標位置まで到達しきらない場合などがあります。パラメータ調整をして下さい。尚、モータとギアのシステム、および動作対象のまさつなどにより、いくらパラメータを設定しても上手く停止しない場合もあるかと思います。この場合はモータ、ギア、モータ用電源を見直す必要があります。

Q:単純にモータのON/OFFをしたいが、そのようなコマンドが無い。
A:単純にモータON/OFFだと、通信が切れた場合にモータがONしっぱなし、という状態になる可能性があり、危険です。よって、本ボードでは、時間によるモータ駆動命令で時間を長めにして命令を実行し、停止命令で停止させる、というやりかたで動かしてください。

Q:パルス数制御を実行すると、回転はするが止まらなくなる。又は回転するが、まったく違うパルス数で停止する。
A:モータの+と−が逆になっているとこのような現象になります。

Q:LEDが点きっぱなしになる。
A:命令を送るときに 間違って少ないバイト数を送ると、受信処理が途中で止まり、LEDがつきっぱなしになることがあります。 この場合は、正しい命令を再度送ることでまた受信できるようになります。
A:通信設定が間違っている場合もLEDがつきっぱなしになる場合があります。 通信設定は電源投入時にだけ有効になるので、bpsのやIDの設定を変更した場合はは電源を一旦切り入りしてください。





(C)Copylight 2003. 有限会社浅草ギ研 | 通信販売の法規(訪問販売法第8条)に基づく通信販売業者の表示