1: 2018-12-13 (Thu) 14:06:51 yoshida source Cur: 2018-12-13 (Thu) 14:19:34 yoshida source
Line 2: Line 2:
#norelated #norelated
#contents #contents
-[[ショップページへ>http://www.besttechnology.co.jp/modules​/onlineshop/index.php?fct=photo&p=220]]+[[ショップページへ>http://www.besttechnology.co.jp/modules​/onlineshop/index.php?fct=photo&p=???]]
#ref(E133C_3D.png) #ref(E133C_3D.png)
-**概要 [#i9b1c92f+**概要 [#pa5b2c3d
-DXSHIELDはDynamixelシリーズと通信するためのI/F(RS-485・TTL)をArduinoに増設するシールドです。両I/Fのコネクタに電源を分配する機能も合わせ持ちます。~ +[[DXSHIELD>BTE074B]]・Arduino・[[Dynamixel XL430-W250-T>XL430-W250]]・電源をセットにした入門キットです。 本キットに関する基礎知識、ソフトウェアの導入方法、C言語プログラミングの基礎、ロボット制作ガイドまで、図解で解りやすく解説した学習ガイドを用意しましたので、プログラミング未経験の方でも始められます。 学習ガイドでは実用的な例を用い、目標実現に必要な知識を学んで行くことで、よりイメージしやすくスムーズな学習を助けます。
-また、DXSHIELDのI/Fで通信できるデバイスであれば、Dynamixel以外のサーボモータにも適用できます。+
-※本製品は半田付け作業を要求します。~ +**仕様 [#bd27d832]
-※旧バージョンの[[BTE074]]に対してジャンパの追加やI/F部分のモジュール化などの仕様変更がなされています。+
-**仕様 [#w1fc9eab] +***同梱内容 [#o9d779cc]
-***同梱内容 [#t8074694]+
| 型式等 | 数量 | 備考 |h | 型式等 | 数量 | 備考 |h
-|本体 | 1|E133C | +|DXSHIELD | 1|[[BTE074B]] | 
-|I/Fボード | 1|[[TTL2DXIF]] | +|Arduino| 1|[[NerO-SP1>https://www.ftdichip.com/Products/Modules/NerO.htm]] | 
-|電源コネクタキット | 1式|ハウジング [[JST VHR-2N>http://www.jst-mfg.com/product/pdf/jp​n/VH.pdf]] x1&br;コンタクト [[JST SVH-21T-P1.1>http://www.jst-mfg.com/prod​uct/pdf/jpn/VH.pdf]] x2&br;ベース付ポスト [[JST B2P-VH-B>http://www.jst-mfg.com/product/​detail.php?series=262]] x1&br;ジャック [[CUI PJ-047AH>https://www.cui.com/product/resource/pj-047ah.pdf]] x1+|Dynamixel | 2|[[XL430-W250-T>XL430-W250]] | 
-|シールド用ピンソケット| 1式|6P x1, 8P x2, 10P x1 | +|USBケーブル| 1| | 
-|ジャンパ| 3個| | +|電源| 1| |
- +
-***基本仕様 [#k2975a33] +
-|BGCOLOR(#d0d8e0):CENTER:|LEFT:|LEFT:|c ​+
-|品番|BTE074B |<| +
-|PCBリビジョン|E133C (2層) |<| +
-|動作温度範囲|0~60℃ 結露なきこと|<| +
-|外形寸法|約52x53mm |<| +
-|重量| |<| +
-|電源|CN1:DC6~24V (Dynamixelが要求する電源)&br;内部ロジック:DC5V±5% (Arduinoより供給) |<| +
-|コネクタ等|JST B4B-EH x5&br;JST B3B-EH x5 |<| +
-|各I/F仕様|[[TTL2DXIF]]に準拠 |<| +
- +
-***内部簡略ブロック [#gbb4d2b7] +
-#ref(E133C_block.png,60%) +
- +
-***外観・レイアウト [#k37b8ee0] +
-| top | side |h +
-| #ref(E133C_TOP.png,27%) | #ref(E133C_SIDEp.png,27%) | +
-| 3D |<|h +
-| [[E133C 3D pdf>http://www.besttechnology.co.jp/down​load/3D/E133C_3D.pdf]]&br;※ダウンロードした上でAcrobat Readerで閲覧の事 |<| +
-※出荷時にピンソケット・電源用コネクタ・TTL2DXIFは未装着 +
- +
-#ref(E133C_LAYOUT.pdf,100%) +
- +
-***回路図 [#k1a3e31b] +
-#ref(E133B_SCH.pdf) +
- +
-※D1・D2・U1・J1~8・CN1・CN12・CN13~16・C2は未装着 +
- +
-***各機能詳細 [#r071b4b9] +
-****J1,J5 [#j5c9c0ef] +
-#ref(E133C_J1_5.png) +
--2.54mmピッチ 10ピンシングルラインヘッダ用ランド +
--J1とJ5の各端子は相互に接続 +
--Arduinoと接続する際はJ1に任意のピンソケット等を装着 +
-| Pin No. | Name | Used in DXSHIELD |h +
-| 1 |IO8| ''yes'' | +
-| 2 |IO9| ''yes'' | +
-| 3 |IO10/SS| no | +
-| 4 |IO11/MOSI | no | +
-| 5 |IO12/MISO | no | +
-| 6 |IO13/SCK | no | +
-| 7 |GND| ''yes'' | +
-| 8 |AREF| no | +
-| 9 |AD4/SDA| no | +
-| 10 |AD5/SCL| no | +
- +
-****J2,J6 [#o639f73a] +
-#ref(E133C_J2_6.png) +
--2.54mmピッチ 8ピンシングルラインヘッダ用ランド +
--J2とJ6の各端子は相互に接続 +
--Arduinoと接続する際はJ2に任意のピンソケット等を装着 +
-| Pin No. | Name | Used in DXSHIELD |h +
-| 1 |IO0/RX| ''yes'' | +
-| 2 |IO1/TX| ''yes'' | +
-| 3 |IO2| no | +
-| 4 |IO3| no | +
-| 5 |IO4| no | +
-| 6 |IO5| no | +
-| 7 |IO6| no | +
-| 8 |IO7| no | +
- +
-****J3,J7 [#l3a39046] +
-#ref(E133C_J3_7.png) +
--2.54mmピッチ 8ピンシングルラインヘッダ用ランド +
--J3とJ7の各端子は相互に接続 +
--Arduinoと接続する際はJ3に任意のピンソケット等を装着 +
-| Pin No. | Name | Used in DXSHIELD |h +
-| 1 | - | no | +
-| 2 |IOREF | no | +
-| 3 |RESET | no | +
-| 4 |3V3 | no | +
-| 5 |5V | ''yes'' | +
-| 6 |GND | ''yes'' | +
-| 7 |GND | ''yes'' | +
-| 8 |Vin | ''yes'' | +
- +
-****J4,J8 [#b2714017] +
-#ref(E133C_J4_8.png) +
--2.54mmピッチ 6ピンシングルラインヘッダ用ランド +
--J4とJ8の各端子は相互に接続 +
--Arduinoと接続する際はJ4に任意のピンソケット等を装着 +
-| Pin No. | Name | Used in DXSHIELD |h +
-| 1 |AD0 | no | +
-| 2 |AD1 | no | +
-| 3 |AD2 | no | +
-| 4 |AD3 | no | +
-| 5 |AD4/SDA | no | +
-| 6 |AD5/SCL | no | +
- +
-****U1 [#gc6655a5] +
-[[TTL2DXIF]]装着前のDXSHIELD~ +
-#ref(E133C_U1.png) +
-[[TTL2DXIF]]装着後のDXSHIELD~ +
-#ref(E133C_E150.png) +
--向きを間違えないように[[TTL2DXIF]]のJ1とJ2の全てのランドを実装 +
--[[TTL2DXIF]]のCN1とCN2にコネクタが実装されている場合でも、それらを使用する事は可能 +
--[[TTL2DXIF]]をDXSHIELD以外で使用する場合は、J1とJ2に着脱式のコネクタを装備すると良い +
- +
-****JP1 [#a37455c9] +
-#ref(E133C_JP1.png) +
--DXSHIELDの電源をArduinoの外部電源として供給する場合に使用 +
--ショート:[[CN1>#f7942cf7]]もしくは[[CN12>#m09c89fc]]から供給された電源をArduinoのVinに分配~ +
-[[CN1>#f7942cf7]]もしくは[[CN12>#m09c89fc]]に供給する電圧はArduinoのVinが許容する電圧範囲を守る事 +
--オープン:[[CN1>#f7942cf7]]もしくは[[CN12>#m09c89fc]]から供給された電源とArduinoのVinを切断~ +
-[[CN1>#f7942cf7]]もしくは[[CN12>#m09c89fc]]とArduinoのVin各々に電源を供給するか、USBバスパワーで動作するArduinoであればPCとArduinoをUSBケーブルで常時接続する事 +
- +
-|CENTER:BGCOLOR(red): :idea:|JP1をショートした状態でArduinoのVinから電源を供給してはならない。&br;CN2~CN11の電源がJP1を介してArduinoより供給されるため、使用デバイスの負荷条件によってはJP1等の許容電流を超え基板が損傷する。| +
- +
-|CENTER:BGCOLOR(red): :idea:|JP1をショートした状態でCN1もしくはCN12とArduinoの外部電源に各々個別の電源を供給してはならない。&br;両電源が短絡するため、電源や負荷の条件によってはJP1や基板のみならず電源までが損傷する。| +
- +
-****JP2 [#weaf917b] +
-#ref(E133C_JP2_3.png) +
--[[SW1>#g3d6a682]]で選択された送信端子と[[TTL2DXIF]]のRXDを接続 +
--ショート:I/FボードのRXD端子にDXSHIELD上の信号を接続~ +
-[[SW1>#g3d6a682]]の機能が利用可能 +
--オープン:I/FボードのRXD端子をDXSHIELD上の信号から切断~ +
-[[SW1>#g3d6a682]]は一切機能しない +
--2ピン側に[[TTL2DXIF]]のRXD端子が接続 +
- +
-****JP3 [#sf2421be] +
-#ref(E133C_JP2_3.png) +
--[[SW1>#g3d6a682]]で選択された受信端子と[[TTL2DXIF]]のTXDを接続 +
--ショート:I/FボードのTXD端子にDXSHIELD上の信号を接続~ +
-[[SW1>#g3d6a682]]の機能が利用可能 +
--オープン:I/FボードのTXD端子をDXSHIELD上の信号から切断~ +
-[[SW1>#g3d6a682]]は一切機能しない +
--2ピン側に[[TTL2DXIF]]のTXD端子が接続 +
- +
-****SW1 [#g3d6a682] +
-#ref(SW1.png) +
--3Tスライドスイッチ +
--シリアル通信に使用するArduinoの送受信端子を3パターンから選択~ +
-詳細は[[こちら>#c8763faf]] +
--SW1の機能を使用する場合は[[JP2>#weaf917b]]及び[[JP3>#sf2421be]]はいずれもショート状態である事 +
- +
-****CN1 [#f7942cf7] +
-B2P-VH-Bを実装して使用。[[CN12>#f7942cf7]]を同時に実装する事はできない。 +
-#ref(CN1.png) +
--[[JST B2P-VH-B>http://www.jst-mfg.com/product/​detail.php?series=262]] +
--[[JP1>#a37455c9]]をショートするとArduinoのVin端子へ本電源が接続~ +
-その場合はArduinoのVinが許容する電圧範囲である事 +
--[[CN2~6>#w4e5b4bc]],[[CN7~11>#q21ef0ec]​]のVDD/GND端子へ接続 +
-#ref(PWR_connector.png) +
- +
-|CENTER:BGCOLOR(red): :idea:|電源の逆接続は電源回路の即時破壊・全損扱いとなる。| +
- +
-****CN12 [#m09c89fc] +
-BPJ-047AHを実装して使用。[[CN1>#f7942cf7]]を同時に実装する事はできない。 +
-#ref(CN12.png) +
--[[CUI PJ-047AH>https://www.cui.com/product/res​ource/pj-047ah.pdf]] +
--対応プラグ外形5.5mm, 内径2.1mm +
--極性 センタープラス +
-#ref(E133C_CN12Pole.png) +
--[[JP1>#a37455c9]]をショートするとArduinoのVin端子へ本電源が接続~ +
-その場合はArduinoのVinが許容する電圧範囲である事 +
--[[CN2~6>#w4e5b4bc]],[[CN7~11>#q21ef0ec]​]のVDD/GND端子へ接続 +
- +
-****CN2~CN6 [#w4e5b4bc] +
-#ref(E133C_CN2_6.png) +
--[[JST B3B-EH>http://www.jst-mfg.com/product/de​tail.php?series=58]] +
--TTL I/Fを搭載したDynamixelシリーズ用のコネクタ +
--5つのコネクタの各端子はいずれも内部で並列に接続 +
--TTL I/Fと電源は以下の端子に接続 +
-#ref(DXLSHARE/jst_B3B-EH.png,100%) +
-| 端子番号 | 信号名 |h +
-| 1 |GND +
-| 2 |VDD | +
-| 3 |SIGNAL(BIDIRECTION) | +
- +
-****CN7~CN11 [#q21ef0ec] +
-#ref(E133C_CN7_11.png) +
--[[JST B4B-EH>http://www.jst-mfg.com/product/de​tail.php?series=58]] +
--RS-485 I/Fを搭載したDynamixelシリーズ用のコネクタ +
--5つのコネクタの各端子はいずれも内部で並列に接続 +
--RS-485 I/Fと電源は以下の端子に接続 +
-#ref(DXLSHARE/jst_B4B-EH.png) +
-| 端子番号 | 信号名 |h +
-| 1 |GND | +
-| 2 |VDD | +
-| 3 |RS-485 D+ | +
-| 4 |RS-485 D- | +
- +
-****ユーザランド [#jfa751e7] +
-#ref(URAND.png) +
--2.54mmピッチランド +
--工作用 +
--5V0のシルクの囲みはArdunioから供給される5V、GNDのシルクの囲みはGNDに接続済~ +
-それ以外のランドはフリー +
-****C2 [#vfde0bbb] +
-#ref(E133C_C2.png) +
--必要に応じてデカップリングコンデンサを装備~ +
-100uF以上の容量を推奨+
**使用方法 [#be654865] **使用方法 [#be654865]
- 
-***対応するデバイス [#r3b9fa50] 
-| I/F |  Device Name |h 
-|TTL|Dynamixel AX・MX(TTL版)・XLシリーズ全般・XM(TTL版), DXMIO(TTL版), ToFセンサ(TTL版) | 
-|RS-485|Dynamixel DX・RX・EX・MX(RS-485版)・XM(RS-485版)・XH・PROシリーズ全般, UD3, UD3.5, UD4, USS3, DXMIO(RS-485版), ToFセンサ(RS-485版) | 
-要求される電源電圧と対応するプロトコルが同じであれば、I/Fを問わず同時に使用できます。 
***接続方法 [#g7d8744a] ***接続方法 [#g7d8744a]
Line 259: Line 57:
   // put your setup code here, to run once:    // put your setup code here, to run once:
 }  }
 + 
 void loop() {  void loop() {
   // put your main code here, to run repeatedly:    // put your main code here, to run repeatedly:
Line 271: Line 69:
***ソフトウェア [#v2bf51a5] ***ソフトウェア [#v2bf51a5]
-****Dynamixel Configurator, RoboPlus[#va576864] 
-DXSHIELDを[[USBパススルー>#c1027f1a]]に設定にする事で、Dynamixelのコントロールテーブルの状態をモニタしたりパラメータの変更や動作確認を簡便に行うソフトウェアである[[Dynamixel Configurator>DXCONF]]が利用できます。~ 
-公開されているバージョンはWindows版のみとなります。 
-#ref(dxconf.png,100%) 
-Dynamixel Configuratorの詳細は[[こちら>DXCONF]]にて。 
- 
-またROBOTIS社提供の[[RoboPlus 1.0]]と[[RoboPlus 2.0]]が一部使用できます。 
-#ref(RoboPlus 2.0/r+2_top.png,40%) 
-一部というのは、ArduinoのUSBシリアル通信機能は過度なトラフィックがかかるとデータがドロップするのと、RoboPlusにおいて検索を行わせている最中にボーレートの切り替えが発生するとArduinoが再起動する場合がある事がわかっていますので、USBパススルーモードでのRoboPlusの使用は推奨できません。 
- 
****Dynamixel Library for PC [#x91df052] ****Dynamixel Library for PC [#x91df052]
DXSHIELDを[[USBパススルー>#c1027f1a]]にする事で、Dynamixel Libraryを併用してシリアル通信やプロトコルを意識せずにPCから制御する事ができます。 DXSHIELDを[[USBパススルー>#c1027f1a]]にする事で、Dynamixel Libraryを併用してシリアル通信やプロトコルを意識せずにPCから制御する事ができます。
Line 287: Line 75:
なお、ArduinoのUSBシリアル通信機能は過度なトラフィックがかかるとデータがドロップするため、運用には予め十分な検証を行っておくべきです。 なお、ArduinoのUSBシリアル通信機能は過度なトラフィックがかかるとデータがドロップするため、運用には予め十分な検証を行っておくべきです。
- 
-****Dynamixel Library for Arduino [#t98a44bc] 
-#include(DXLIB_Arduino,notitle) 
**その他 [#w7e62a68] **その他 [#w7e62a68]
-***DXSHIELDのTTL・RS-485 I/Fについて [#k759b64e] 
--送信はTTL・RS-485の両I/Fに対して同時に行われ、受信はTTL・RS-485の両I/FがOR接続されているため同時に受信できない。 
--Arduino側では送受信の切り替えタイミングを意識する必要はないが、半二重通信である事は十二分に意識する必要がある。 
--TTL・RS-485のいずれのI/Fにかかわらず同じIDを持ったDynamixelが存在してはならない。 
--TTLとRS-485のI/F間をまたいだ送受信はできないため、TTL・RS-485の両I/FにDynamixelが接続された環境において一部のインストラクションが正常動作しない。 
- 
-***Arduino MEGAでの使用 [#z23d4b7d] 
-少しの改造でDXSHIELDをArduino MEGAで使用する事ができます。DXSHIELDは次の図の位置に装着します。 
-#ref(E133C_mega.png,80%) 
- 
-****ハードウェアシリアルモード(Serial0以外) [#aaf5bd9a] 
-Serial0を利用する限り[[UNOと同様の運用>#ce79cebb]]になります。MEGAに備わっているSerial1~Serial3のハードウェアシリアルポートを利用する際は以下に従います。 
--[[JP2>#weaf917b]]と[[JP3>#sf2421be]]はオープンにする。 
--[[SW1>#g3d6a682]]はどの位置にあっても構わない。 
--Serial3を利用する際は、DXSHIELDのJP3-2とMEGAのIO15(RX3)、JP2-2とMEGAのIO14(TX3)を各々ジャンパ線等でつなぐ。~ 
-Serial2ならJP3-2とIO17(RX2)、JP2-2とIO16(TX2)をつなぐ。~ 
-Serial1ならJP3-2とIO19(RX1)、JP2-2とIO18(TX1)をつなぐ。 
-#ref(E133C_mega_hard.png,80%) 
--使用するSerial??に合わせてクラスの初期化を変更(DXLIB v1.2以降でサポート)。 
- DXLIB dxif (false, &Serial3); 
- 
- DX2LIB dxif (false, &Serial3); 
- 
-****ソフトウェアシリアルモード [#b9557fa4] 
-MEGAの仕様上IO8がソフトウェアシリアルとして使用する事ができないため、[[UNOで想定するソフトウェアシリアルモード>#ee08b548]]で運用する事ができません。それでもソフトウェアシリアルで使用する場合は、[[MEGAのハードウェアシリアルモード>#aaf5bd9a]]と同様にJP2-2とJP3-2を直接MEGAのソフトウェアシリアルとして利用できる任意の端子に直結します。~ 
--[[JP2>#weaf917b]]と[[JP3>#sf2421be]]はオープンにする。 
--[[SW1>#g3d6a682]]はどの位置にあっても構わない。 
--接続した端子に合わせてクラスの初期化を変更。~ 
- DXLIB dxif (true, NULL, 10, 9); // rxpin IO10, txpin IO9 
- 
- DX2LIB dxif (true, NULL, 10, 9); // rxpin IO10, txpin IO9 
- 
-****USBパススルーモード [#f2ca6d5c] 
-[[UNOのUSBパススルーモード>#c1027f1a]]と同様です。 
- 
***注意事項 [#o2f97e11] ***注意事項 [#o2f97e11]
--いずれの端子も絶縁されていない。そのためArduinoとPCをUSBケーブルで活線接続した際に、突入電流などでPCがArduinoを認識しない問題が生じる事がある。そういった場合は、[[USBISO]]でPCのUSBポートを絶縁する事で解消する。 +-a
--Dynamixelシリーズがサポートする2M[bps]を超えるボーレートは、Arduino UNOの機能に依存するため使用できない。必ず2M[bps]以下で運用する事。 +
--[[USBパススルー>#c1027f1a]]を積極的に使用したいのであれば、Arduino UNO互換の[[NerOモジュール>https://www.ftdichip.com/Products/Modul​es/NerO.htm]]をお勧めする。~ +
-USBシリアル変換チップにATmega16U2ではなくFT231Xが搭載されているので、バッファフローの問題解消や最大通信速度の向上が期待できる。+


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)