:idea:本ページの注意事項は各製品のナレッジベースやマニュアルに準拠します。
各製品のナレッジベースやマニュアルをお読み頂き、ご理解頂いた上で本ページを参考にしてください。

概要 anchor.png

ここではMultifunction I/O moduleを使って、FDIII-HCから外部LEDのON/OFF駆動とPWM信号で輝度を変えて点灯させる方法を紹介します。

Page Top

用意するもの anchor.png

ハンダが苦手という方はブレッドボードを使用しても良いでしょう。

Multifunction I/O moduleの仕様を考慮し適切なLEDと抵抗値を選定してください。

FDIII-HCの変わりにDynamixelコンフィギュレータを使用してパソコンと通信することも可能です。

Page Top

接続 anchor.png

ON/OFF駆動を行う場合は下図の様に配線を行います。

DxIO_21.png

PWM信号で輝度を変えて点灯させる場合は下図のように配線を行います。

DxIO_22.png

Multifunction I/O moduleのCN2のPin1:VOUT(5V)とPin6:PIO4の間にLEDと抵抗を接続します。LEDの向きを間違えないようにしましょう。

LEDのON/OFF駆動ならPIO4~7、輝度を変えての点灯ならPIO4と5が利用できます。

Multifunction I/O moduleのCN2には、VOUTとGND端子が1つずつしかありません。複数台のLEDを接続したり、後でLEDを取り外したりする場合は、ユニバーサル基板とピンヘッダで変換基板を作り、ケーブルと3ピンコネクタでセンサを接続するか、ブレッドボードで配線するなどの工夫が必要です。

変換基板作成例

DxIO_2.png
DxIOsamplecon.png

複数の機器を接続する場合には注意するべき点があります。
Multifunction I/O moduleのCN2のVOUTから供給できる電流は限られています。
VOUTに接続する機器の消費電流が許容量をオーバーすると、Multifunction I/O module自体も同じ電源を使用しているため正常に動作しなくなります。 Multifunction I/O moduleが度々リセットするような場合は、別途電源を用意し外部機器に供給する必要があります。

またPWM駆動のようにPIOをソース源とする場合は1端子あたり30mA以下に抑え、さらに全端子の電流が50mAを超えないように調整してください。

DxIO_3.png

DynamixelケーブルでFDIII-HCとMultifunction I/O moduleを接続します。

Page Top

PIO Configを変更する anchor.png

コントロールテーブルのLEDを接続した端子に対するPIO Configを、ON/OFF駆動させる場合は1、PWM信号で輝度を変えたい場合は4に設定します。

PIO Configの設定は、運用時のプログラム内では設定しないことをお勧めします。 PIO Configを含む電源を切っても保存されるEEPROMエリア(アドレス0~24)の書き換え回数には制限があるためです。

制限といっても普通に使用していれば制限を越えることはまずありません。 しかし誤ってプログラムのループの中で高速に書き換えを行ってしまった場合、あっと言う間に制限を越えてしまう危険性があります。

PIO4 Configを1にするプログラムを以下に示します。

#include <fd.h>

void main (void) {
  fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4);

  fdWait(2000);
  fd_DXWriteByteData (200, 10, 1);
  fd_printf ("Complete");
  fd_SoftReset();
  while (1);
}

一度だけ実行しましょう。
書き換えが終わるとブートローダへ戻ります。
PWM駆動をする場合は以下修正が必要です。

fd_DXWriteByteData (200, 10, 1);

ここでIDが200のMultifunction I/O moduleのアドレス10を1に書き換えています。アドレス10はPIO4 Configです。
PWM駆動をする場合は第3引数は1ではなく4となります。
IDとアドレスは適宜変更してください。

Page Top

プログラミング anchor.png

ここではFDIII-HCのプログラムを作成するための準備や書き込み方法は省略します。

Page Top

ON/OFF駆動 anchor.png

Multifunction I/O moduleのPIO4に接続したLEDを1秒毎にON/OFFを切り替えます。

#include <fd.h>
#define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();}

void main (void) {
  uint8_t DigitalOut = 255;  // アドレス43の値

  fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4);

  while (1) {
    DigitalOut |= (1 << 4);
    fd_DXWriteByteData (200, 43, DigitalOut);
    fd_Wait (1000);
    DigitalOut &= ~(1 << 4);
    fd_DXWriteByteData (200, 43, DigitalOut);
    fd_Wait (1000);
    KEY_QUIT;
 }
}

デジタル出力の設定はアドレス43のDigital Outで行います。Digital Outのビット4を1にするとPIO4がHIGH(LED消灯)、0にするとLOW(LED点灯)となります。

Page Top

PWM駆動 anchor.png

PWM信号のデューティー比を変えるとこで、Multifunction I/O moduleのPIO4に接続したLEDの輝度を変えます。

#include <fd.h>
#define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();}

void main (void) {
  uint8_t Duty = 0;  // デューティー比

  fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4);

  while (1) {
    fd_DXWriteByteData (200, 49, Duty);
    Duty++;
    if (Duty > 255) Duty = 0;
    KEY_QUIT;
  }
}

PIO4のデューティー比はアドレス49です。


Front page   Diff ReloadPrint View   Page list Search Recent changes   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Last-modified: 2010-11-05 (Fri) 19:44:27 (JST) (3274d)