DXHUBはPCのUSBポートを介してDynamixelシリーズ向けのRS-485とTTL I/Fを増設し、複数備えたDynamixel用のコネクタに電源を分配する機能を持つ製品です。
また、USBポートとTTL及びRS-485 I/F間は電気的に絶縁されているため、Dynamixel側で発生したサージ電流がUSBポート側に影響するのを軽減できます。
他に汎用のRS-485 I/FやDXHUBに装備されたI/Fで通信できるDynamixel以外のアクチュエータにも適用できます。
なお、BTE068Bの後継機となりますが、USBコネクタ形状・取り付け寸法・Dynamixel用のコネクタ形状に互換性がありません。
型式 | 数量 | 備考 |
本体 | 1 | - |
コネクタキット | 1式 | ハウジング JST VHR-2N x1 コンタクト JST SVH-21T-P1.1 x2 |
商品番号 | BTE068C | |
PCBリビジョン | E148 | |
動作温度範囲 | -40~70℃ 結露なきこと | |
寸法 | 52x33x15mm 取り付け穴:47x28mm 4-φ2.2 | |
重量 | 15g | |
電源 | RS-485及びTTL I/F:USBバスパワー (5V 最大130mA) Dynamixel:外部電源 (6~24V 最大70A) | |
コネクタ等 | USB-C x1 JST B2P-VH x1 JST S4B-EH x6 JST S3B-EH x6 | |
各I/F仕様 | USB | USB 2.0 HS ESD保護 CDM=±1500V, HBM=±2500V |
RS-485 | 複信 半二重 最大通信速度 12Mbps 最大端末数 32台 ESD保護 MM=±15kV, HBM=±15kV 絶対最大定格 -9~14V | |
TTL | 複信 半二重 最大通信速度 12Mbps 最大端末数 32台 ESD保護 ±2kV 絶対最大定格 -0.5~6V | |
絶縁電圧 | 5kV rms 1min | |
絶縁型電源容量 | 650mW | |
環境配慮 | RoHS準拠, 鉛フリー半田 |
USBケーブルは同梱されません。 |
Pats Name | JST Parts Number |
ベース付ポスト | B2P-VH |
ハウジング | VHR-2N |
コンタクト | SVH-41T-P1.1 |
端子番号 | 信号名 |
1 | GND |
2 | VDD |
3 | RS-485 D+ |
4 | RS-485 D- |
端子番号 | 信号名 |
1 | GND |
2 | VDD |
3 | TTL Signal |
FTDI社のUSBシリアル変換ICはチップ内にタイマが内蔵されており、このタイマのタイムアウトにより送受信のイベントが発生します。このタイムアウト時間は提供されるデバイスドライバにて16msに設定されているため、これより短い時間での応答性を得ようとする場合は値を変更しなくてはなりません。
FTDI社のライブラリ等を使用する場合は、専用のAPIで必要に応じて変更する事が可能ですが、WIN32 APIでオープン・クローズ・送受信だけを扱うアプリケーションの場合は、デバイスマネージャの該当COMポートのプロパティから予め任意の値に変更しておく事で対処出来ます。
色々方法はありますが、latency_timerを任意の値へ自動的設定させるには以下の方法が確実です。
「/etc/udev/rules.d/」ディレクトリの配下に以下のコードを「99-e148.rules」として置きます(管理者権限が必要)。ファイル名のプレフィクスに記述する数字は他と重複しないように。
ACTION=="add", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="666", RUN+="/bin/sh -c 'echo 1 > /sys/bus/usb-serial/devices/$kernel/latency_timer'"
後は udevadm に更新を知らせてUSBケーブルを抜き差しするか、OSを再起動すればOKです。
>sudo udevadm control --reload-rules && udevadm trigger
RS-485とTTL I/Fは最大で12M[bps]まで対応します。
なお、FTDIのUSBシリアル変換ICの仕様として、設定可能なボーレートは次式により導かれます。internal divisiorが0の時は12M[bps]、1の時は8M[bps]固定となります。
actual baudrate = 12000000 / internal divisor internal divisor = n + 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875 (n = 2..16384)
actual baudrate[bps] | internal divisor |
12000000 | 0* |
8000000 | 1* |
6000000 | 2 |
5647059 | 2.125 |
5333333 | 2.250 |
5052632 | 2.375 |
4800000 | 2.500 |
4571429 | 2.625 |
4363636 | 2.750 |
4171913 | 2.875 |
4000000 | 3 |
3840000 | 3.125 |
3692308 | 3.250 |
3555556 | 3.375 |
3428571 | 3.500 |
3310345 | 3.625 |
3200000 | 3.750 |
3096774 | 3.875 |
(中略) | (中略) |
500000 | 24 |
497409 | 24.125 |
494845 | 24.25 |
494308 | 24.375 |
489796 | 24.5 |
487310 | 24.625 |
484848 | 24.75 |
482412 | 24.875 |
480000 | 25 |
477612 | 25.125 |
475248 | 25.25 |
472906 | 25.375 |
470588 | 25.5 |
468293 | 25.625 |
466019 | 25.75 |
463768 | 25.875 |
461538 | 26 |
459330 | 26.125 |
457143 | 26.25 |
454976 | 26.375 |
(中略) | (中略) |
115385 | 25 |
115246 | 25.125 |
115108 | 25.25 |
114970 | 25.375 |
114833 | 25.5 |
114695 | 25.625 |
114558 | 25.75 |
114422 | 25.875 |
(略) | (略) |
*は例外 |
ホストから任意のボーレートを指定すると、デバイスドライバは計算上最も近いボーレートに丸めた値を採用します。
Device Name |
Dynamixel DX・AX・RX・EX・MX・X・PRO・USS3・DXMIOのRS-485ないしTTL I/Fを装備したバージョン |
Molex社のコネクタが装備されたデバイスを接続する場合は、Robot Cable-X3P 180mm (Convertible)ないしRobot Cable-X4P 180mm (Convertible)を使用して下さい。
RS-485 I/FのD+とD-端子間にはFTDI社のライブラリを介してソフト的に挿抜可能な120Ωのターミネータが装備されています。起動直後はACBUS5が入力端子かつプルアップ抵抗がONになっているため、ターミネータはONとなります。
自作のプログラムからターミネーターのON/OFFを制御する場合は、FTDI社のライブラリを用いて以下の様なコードで対処して下さい。
#include "ftd2xx.h" void foo (void) { HANDLE ftHandle; FT_STATUS ftStatus; ftStatus = FT_Open (0, &ftHandle); if (ftStatus == FT_OK) { // ターミネータON (ACBUS5->HIGH (Output & High)) FT_SetBitMode (ftHandle, 0x11, FT_BITMODE_CBUS_BITBANG); // ターミネータOFF (ACBUS5->LOW (Output & Low)) FT_SetBitMode (ftHandle, 0x10, FT_BITMODE_CBUS_BITBANG); FT_Close(ftHandle); } }
WindowsやLinux上で動作する通信プログラムを作る際は、別途用意したライブラリを用いる事でシリアル通信やプロトコルを意識せずにコーディングができます。
APIに対して対象デバイスのID・番地・値といった引数を与えるだけでコントロールテーブルの読み書きが実現でき、マルチスレッド等で複数のデバイスに対して個別にアクセスする様なアプリケーションも容易に構成できます。
なお、Dynaimxelには2種類のプロトコルが存在しますが相互非互換であるため、プロトコルに応じて2種類のライブラリを用意しています。
デバイスのコントロールテーブルの状態をモニタしたりパラメータの変更や動作確認を簡便に行うソフトウェアとして、DYNAMIXEL Wizardを提供しています。
モデルやプロトコルにかかわらず全Dynamixelを一様に扱うことができ、ファームウェアの更新も行えます。
Dynamixelの設定や動作確認を行うツールは、今後RoboPlusからDYNAMIXEL Wizardへ移管していくものと思われます。
ROBOTIS社よりRoboPlusというツールが提供されています。サポートする製品により2種類存在し、インターネット回線を使ったツールの更新やDynamixelのファームウェアを更新する機能を持っています。