|
一覧
検索
最新
ページへ戻る
履歴
FDIII-HCに反射型フォトインタラプタの信号を取り込む
のバックアップソース(No.2)
knowledge
:
FDIII-HCに反射型フォトインタラプタの信号を取り込む
のバックアップソース(No.2)
差分
を表示
現在との差分
を表示
FDIII-HCに反射型フォトインタラプタの信号を取り込む
へ行く。
« Prev
Next »
TITLE:FDIII-HCで反射型フォトインタラプタを使う方法 #norelated #contents |CENTER:BGCOLOR(red):||c | :idea:|本ページの注意事項は各製品のナレッジベースやマニュアルに準拠します。&br;各製品のナレッジベースやマニュアルをお読み頂き、ご理解頂いた上で本ページを参考にしてください。| **概要 [#f76b5f5c] 反射型フォトインタラプタは、赤外線を反射しやすい対象物を検出するセンサで、黒地上の白線検出、ペーパエッジの検出などに利用されます。 反射型フォトインタラプタの出力は、白色検出時にLow(0V)、その他はHigh(入力電圧)という単純なものです。~ それに対しFDIII-HCは、Dynamixelプロトコルに則ったシリアル通信を行うことでDynamxielと通信を行っています。故に反射型フォトインタラプタをFDIII-HCに直接接続して運用することはできません。 そこで必要になるのがDynamixelConverterです。DynamixelConverterは、センサからのアナログ・デジタル信号を取り込み、FDIII-HCへDynamixelプロトコルに則ってその情報を渡す、云わば中継役です。 ここではDynamixelConverterを使って、反射型フォトインタラプタの信号をFDIII-HCへ取り込む方法を紹介します。 **用意するもの [#ia904fd4] -[[FDIII-HC]] -[[DynamixelConverter]] -[[反射型フォトインタラプタ]] -ケーブル -ハンダごて、ハンダ ケーブルには必要に応じてノイズの混入を防ぐためのシールド等の措置を講じてください。また、ケーブルが長過ぎると信号の劣化に繋がります。 FDIII-HCの変わりに[[Dynamixelコンフィギュレータ]]を使用してパソコンと通信することも可能です。 **接続 [#zc590dd4] DynamixelConverterと反射型フォトインタラプタを接続します。 下図の様に、ケーブルをそれぞれの端子にハンダ付けします。~ #ref(figure1.png) 反射型フォトインタラプタのVCCにDynamxielConverterのCN2のPin1:VOUT(5V)を接続し、電源を供給します。これにより反射型フォトインタラプタのOUTから出力されるHigh時の電圧は5Vとなります。 反射型フォトインタラプタのGNDとDynamxielConverterのCN2のPin10:GNDを接続します。 反射型フォトインタラプタのOUTとDynamxielConverterのCN2のPin2:P1を接続します。勿論P2~P8でも構いません。 #ref(figure2.png) DynamxielConverterのCN2には、VCCやGND端子が1つしかありません。複数の反射型フォトインタラプタを接続する場合、1つの端子に何本ものケーブルをハンダ付けするのは危険です。~ 変換基板やコネクタ等を用意し、接続数分の端子を用意するなど工夫をしましょう。 また、いつでも付け替えられるようにしておくとより便利です。 #ref(figure3.png) DynamixelケーブルでFDIII-HCとDynamixelConverterを接続します。 **Modeを変更する [#ycd5aec4] Modeの設定は、運用時のプログラム内では設定しないことをお勧めします。 Modeを含む電源を切っても保存されるEEPROMエリア(アドレス0~24)の書き換え回数には制限があるためです。 制限といっても何十万回という数ですので、普通に使用していれば制限を越えることはありません。 しかし誤ってプログラムのループの中で高速に書き換えを行ってしまった場合、あっと言う間に制限を越えてしまう危険性があるためです。 DynamixelConverterの設定の変更にはDxpacket Configuratorを使用します。 基本的な使い方はDynamixel Configuratorと同じですのでそちらを参考にしてください。 **プログラミング [#k2387ac0] ここではFDIII-HCのプログラムを作成するための準備や書き込み方法は省略します。 DynamixelConverterのP1に接続した反射型フォトインタラプタの状態を取得し、それを表示するプログラムは以下のようになります。 #include <fd.h> #define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();} void main (void) { uint8_t ReadData; // アドレス42の値 bool P1; // アドレス42のビット0の値 fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4); while (1) { fd_DXReadByteData (1, 42, &ReadData); P1 = (ReadData & (1 << 0) ) >> 0; fd_printf ("%d : %d\r", ReadData, P1); KEY_QUIT; } } ---- fd_DXReadByteData (1, 42, &ReadData); DynamixelConverter(ID=1)のDigital In(アドレス42)のデータをReadDataに代入しています。IDを変更した場合は適宜書き換えてください。 ---- P1 = (ReadData & (1 << 0) ) >> 0; Digital In(アドレス42)のデータからビット0の値だけを取り出しています。本来は「P1 = ReadData & 1;」だけで良いのですが、P2~P8の値を取得する場合を想定しこのように表記しています。 それではP3に反射型フォトインタラプタを接続した場合を考えてみます。 P3 = (ReadData & (1 << 2) ) >> 2; P3の値はReadDataのビット2です。ReadDataからビット2の値だけを取り出すには論理積(&)とビットシフト(<<又は>>)を使います。 (1 << 2)は1を左に2ビットシフトさせた値です。2進数で書くと | ビットシフト前 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ''1'' | | 2ビット左へシフト | 0 | 0 | 0 | 0 | 0 | ''1'' | 0 | 0 | となります。 論理積(&)の真理値表は以下になります。 | a | b | a & b | | 0 | 0 | 0 | | 0 | 1 | 0 | | 1 | 0 | 0 | | 1 | 1 | 1 | つまりa,b両方1の時だけ1になります。 この「1を2ビット左へシフトさせた値」とReadDataの論理積(&)を取ることで、ビット2だけを取り出します。 | 適当なReadData | 1 | 0 | 1 | 1 | 0 | ''1'' | 0 | 1 | | 1を2ビット左へシフトした値 | 0 | 0 | 0 | 0 | 0 | ''1'' | 0 | 0 | | ビット2だけを取り出した値 | 0 | 0 | 0 | 0 | 0 | ''1'' | 0 | 0 | あるいは | 適当なReadData | 1 | 1 | 0 | 0 | 1 | ''0'' | 0 | 1 | | 1を2ビット左へシフトした値 | 0 | 0 | 0 | 0 | 0 | ''1'' | 0 | 0 | | ビット2だけを取り出した値 | 0 | 0 | 0 | 0 | 0 | ''0'' | 0 | 0 | となります。 「ビット2だけを取り出した値」を右へ2ビットシフトすることで、ビット2だけの値を取り出すことができます。 | ビット2だけを取り出した値 | 0 | 0 | 0 | 0 | 0 | ''1'' | 0 | 0 | | 右へ2ビットシフトした値 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ''1'' | あるいは | ビット2だけを取り出した値 | 0 | 0 | 0 | 0 | 0 | ''0'' | 0 | 0 | | 右へ2ビットシフトした値 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ''0'' | となります。
« Prev
Next »
FDIII-HCに反射型フォトインタラプタの信号を取り込む のバックアップ一覧
FDIII-HCに反射型フォトインタラプタの信号を取り込む のバックアップソース(No. All)
1: 2010-10-12 (火) 16:00:42
eid7gud
2: 2010-10-12 (火) 18:51:01
eid7gud
3: 2010-10-12 (火) 20:00:55
eid7gud
4: 2010-10-14 (木) 19:39:36
eid7gud
5: 2010-10-25 (月) 13:45:04
eid7gud
6: 2010-10-25 (月) 19:16:25
eid7gud
7: 2010-10-29 (金) 17:31:52
eid7gud
8: 2010-10-29 (金) 19:31:45
eid7gud
9: 2010-11-02 (火) 18:57:56
eid7gud
10: 2010-11-04 (木) 16:18:01
eid7gud
現: 2010-11-05 (金) 19:39:06
eid7gud
Copyright© 1989,2024 BestTechnology Co.,Ltd.
メニュー
トップ
ニュース
お知らせ
新商品情報
更新情報
マニュアル類
技術情報
チュートリアル
FAQ
お問合せ
技術的なお問合せ
その他お問合せ
お見積り
ブログ
会社案内
ショッピング
ご利用案内
検索
カテゴリ 一覧
ロボットキット
Dynamixelシリーズ
マイコンボード
相撲ロボット
センサ
通信機器
お客様ページ