3: 2010-10-14 (木) 19:36:12 eid7gud | 4: 2010-10-25 (月) 13:07:22 eid7gud | ||
---|---|---|---|
Line 12: | Line 12: | ||
それに対しFDIII-HCは、Dynamixelプロトコルに則ったシリアル通信を行うことでDynamxielと通信を行っています。故に反射型フォトインタラプタをFDIII-HCに直接接続して運用することはできません。 | それに対しFDIII-HCは、Dynamixelプロトコルに則ったシリアル通信を行うことでDynamxielと通信を行っています。故に反射型フォトインタラプタをFDIII-HCに直接接続して運用することはできません。 | ||
- | そこで必要になるのがDynamixelConverterです。DynamixelConverterは、センサからのアナログ・デジタル信号を取り込み、FDIII-HCへDynamixelプロトコルに則ってその情報を渡す、云わば中継役です。 | + | そこで必要になるのがDynamixel I/O moduleです。Dynamixel I/O moduleは、センサからのアナログ・デジタル信号を取り込み、FDIII-HCへDynamixelプロトコルに則ってその情報を渡す、云わば中継役です。 |
- | ここではDynamixelConverterを使って、PSD距離センサのアナログ信号をFDIII-HCへ取り込む方法を紹介します。 | + | ここではDynamixel I/O moduleを使って、PSD距離センサのアナログ信号をFDIII-HCへ取り込む方法を紹介します。 |
**用意するもの [#uc8087ab] | **用意するもの [#uc8087ab] | ||
-[[FDIII-HC]] | -[[FDIII-HC]] | ||
- | -[[DynamixelConverter]] | + | -[[Dynamixel I/O module]] |
-[[PSD距離センサ]] | -[[PSD距離センサ]] | ||
-ケーブル | -ケーブル | ||
-ハンダごて、ハンダ | -ハンダごて、ハンダ | ||
+ | |||
+ | あると良いもの | ||
+ | -ユニバーサル基板 | ||
+ | -ピンヘッダ | ||
+ | -[[3ピンコネクタ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=98]] | ||
+ | |||
+ | ケーブルには必要に応じてノイズの混入を防ぐためのシールド等の措置を講じてください。また、ケーブルが長過ぎると信号の劣化に繋がります。 | ||
+ | |||
+ | FDIII-HCの変わりにDynamixelコンフィギュレータを使用してパソコンと通信することも可能です。 | ||
**接続 [#od38be17] | **接続 [#od38be17] | ||
- | ***1個のPSD距離センサを接続する [#e0156c85] | + | 下図の様に配線を行います。 |
- | 下図の様に、ケーブルをDynamixelConverterとPSD距離センサのそれぞれの端子にハンダ付けして接続します。後でセンサを取り外したり複数台のセンサを接続したりする場合は、変換基板やコネクタ等を用意して工夫しましょう。 | + | |
#ref(figure1.png) | #ref(figure1.png) | ||
- | PSD距離センサのVCCにDynamxielConverterのCN2のPin1:VOUT(5V)を接続し、電源を供給します。 | + | PSD距離センサのVCCにDynamixel I/O moduleのCN2のPin1:VOUT(5V)を接続し、電源を供給します。 |
- | PSD距離センサのGNDとDynamxielConverterのCN2のPin10:GNDを接続します。 | + | PSD距離センサのGNDとDynamixel I/O moduleのCN2のPin10:GNDを接続します。 |
- | PSD距離センサのOUTとDynamxielConverterのCN2のPin2:PIO0を接続します。勿論PIO1~PIO7でも構いません。 | + | PSD距離センサのOUTとDynamixel I/O moduleのCN2のPin2:PIO0を接続します。勿論PIO1~PIO7でも構いません。 |
+ | Dynamixel I/O moduleのCN2には、VCCとGND端子が1つずつしかありません。複数台のセンサを接続したり、後でセンサを取り外したりする場合は、ユニバーサル基板とピンヘッダで変換基板を作り、ケーブルと3ピンコネクタでセンサを接続するなどの工夫が必要です。 | ||
+ | |||
+ | ''変換基板作成例'' | ||
#ref(figure2.png) | #ref(figure2.png) | ||
- | DynamixelケーブルでFDIII-HCとDynamixelConverterを接続します。 | + | また複数のPSD距離センサを接続する場合には注意点があります。~ |
- | + | Dynamixel I/O moduleのCN2のVCCから供給できる電流は300mAです。~ | |
- | ***複数のPSD距離センサを接続する [#af62cf20] | + | それに対しPSD距離センサは最大消費電流50mAです。つまり6個接続すると最大300mAになります。よって電源を供給できる台数は、PSD距離センサなら最大6個までということになります。 |
- | + | ||
- | DynamxielConverterのCN2のVCCから供給できる電流は300mAです。~ | + | |
- | それに対し、PSD距離センサは最大消費電流50mAです。つまり6個接続すると最大300mAになります。よって電源を供給できる台数は、PSD距離センサなら最大6個までということになります。 | + | |
7個以上接続したい場合は、別途電源を用意しPSD距離センサタに供給する必要があります。 | 7個以上接続したい場合は、別途電源を用意しPSD距離センサタに供給する必要があります。 | ||
+ | |||
#ref(figure3.png) | #ref(figure3.png) | ||
- | DynamxielConverterのCN2には、VCCやGND端子が1つしかありません。複数のPSD距離センサを接続する場合、1つの端子に何本ものケーブルをハンダ付けするのは危険です。~ | + | DynamixelケーブルでFDIII-HCとDynamixel I/O moduleを接続します。 |
- | 変換基板やコネクタ等を用意し、接続数分の端子を用意するなど工夫をしましょう。~ | + | |
- | また、いつでも付け替えられるようにしておくとより便利です。 | + | |
**PIO Configを変更する [#ea65bbe1] | **PIO Configを変更する [#ea65bbe1] | ||
+ | |||
+ | コントロールテーブルのPSD距離センサを接続した端子に対するPIO Configを3に設定します。 | ||
PIO Configの設定は、運用時のプログラム内では設定しないことをお勧めします。 | PIO Configの設定は、運用時のプログラム内では設定しないことをお勧めします。 | ||
Line 60: | Line 69: | ||
しかし誤ってプログラムのループの中で高速に書き換えを行ってしまった場合、あっと言う間に制限を越えてしまう危険性があるためです。 | しかし誤ってプログラムのループの中で高速に書き換えを行ってしまった場合、あっと言う間に制限を越えてしまう危険性があるためです。 | ||
- | DynamixelConverterの設定の変更にはDxpacket Configuratorを使用します。 | + | Dynamixel I/O moduleの設定の変更にはDxpacket Configuratorを使用します。 |
基本的な使い方はDynamixel Configuratorと同じですのでそちらを参考にしてください。 | 基本的な使い方はDynamixel Configuratorと同じですのでそちらを参考にしてください。 | ||
Line 67: | Line 76: | ||
ここではFDIII-HCのプログラムを作成するための準備や書き込み方法は省略します。 | ここではFDIII-HCのプログラムを作成するための準備や書き込み方法は省略します。 | ||
- | DynamixelConverterのP1に接続したPSD距離センサの状態を取得し、それを表示するプログラムは以下のようになります。 | + | Dynamixel I/O moduleのPIO0に接続したPSD距離センサの値を取得し、それを表示するプログラムは以下のようになります。 |
#include <fd.h> | #include <fd.h> | ||
Line 88: | Line 97: | ||
fd_DXReadWordData (1, 26, &ReadData); | fd_DXReadWordData (1, 26, &ReadData); | ||
- | DynamixelConverter(ID=1)のAD0(アドレス26,27)のデータをReadDataに代入しています。IDを変更した場合は適宜書き換えてください。 | + | Dynamixel I/O module(ID=1)のAD0(アドレス26,27)のデータをReadDataに代入しています。IDを変更した場合は適宜書き換えてください。 |