11: 2017-06-25 (日) 12:03:50 takaboo | 12: 2017-06-25 (日) 13:32:38 takaboo | ||
---|---|---|---|
Line 371: | Line 371: | ||
-TTL・RS-485のいずれのI/Fにかかわらず同じIDを持ったDynamixelが存在してはならない。 | -TTL・RS-485のいずれのI/Fにかかわらず同じIDを持ったDynamixelが存在してはならない。 | ||
-TTLとRS-485のI/F間をまたいだ送受信はできないため、TTL・RS-485の両I/FにDynamixelが接続された環境において一部のインストラクションが正常動作しない。 | -TTLとRS-485のI/F間をまたいだ送受信はできないため、TTL・RS-485の両I/FにDynamixelが接続された環境において一部のインストラクションが正常動作しない。 | ||
+ | ***Arduino MEGAでの使用 [#z23d4b7d] | ||
+ | 少しの改造でDXSHIELDをArduino MEGAでも使用する事ができます。 | ||
+ | ****ハードウェアシリアルモード [#aaf5bd9a] | ||
+ | UNO同様にハードウェアシリアルモードではSerialを利用する限りUNOと同様の運用で利用できます。しかしMEGAには追加でSerial1~Serial3のハードウェアシリアルポートが備わっていますので、それらのポートを利用する事で最大のパフォーマンスを発揮できます。 | ||
+ | -例えばSerial3を利用する際は、DXSHIELDのIO8とIO9をMEGAのIO14とIO15にジャンパ等でつなぐ。 | ||
+ | #ref(E133B_mega_hard.png) | ||
+ | - | ||
+ | ****ソフトウェアシリアルモード [#b9557fa4] | ||
+ | 次の作業が必要です。~ | ||
+ | -Arduino MEGAではIO8は[[ソフトウェアシリアルの受信端子>https://www.arduino.cc/en/Reference/SoftwareSerial]]として使用できないため、ジャンパなどでIO8とIO10を短絡。 | ||
+ | #ref(E133_mega_jumper.png) | ||
+ | -入れ替えた端子に合わせてクラスの初期化を変更。~ | ||
+ | DXLIB dxif (true, 10, 9); // rxpin IO8->IO10, txpin IO9 | ||
+ | DX2LIB dxif (true, 10, 9); // rxpin IO8->IO10, txpin IO9 | ||
+ | |||
+ | なお、そもそもArduino MEGAはハードウェアシリアルポートを複数備えていますので、機能の制約が大きいソフトウェアシリアルを利用する利点は皆無です。送受信端子をSerial1(TX:18,RX:19)、Serial2(TX:16,RX:17)、Serial3(TX:14,RX:15)等に割り振り直し、ライブラリを適宜修正する事で最大限のパフォーマンスを発揮できるでしょう。 | ||
***注意事項 [#o2f97e11] | ***注意事項 [#o2f97e11] |