4: 2016-12-13 (火) 15:03:21 takaboo ソース 5: 2016-12-13 (火) 15:33:25 takaboo ソース
Line 239: Line 239:
DXLIBのインストールは、ArduinoのIDEの「スケッチ→ライブラリのインクルード→.ZIP形式のライブラリをインストール...」メニューを使用してダウンロードしたZIPファイルを選択するだけです。~ DXLIBのインストールは、ArduinoのIDEの「スケッチ→ライブラリのインクルード→.ZIP形式のライブラリをインストール...」メニューを使用してダウンロードしたZIPファイルを選択するだけです。~
-インストールが完了すると、ユーザーフォルダ配下に「Arduino/libraries/dxlib」が作られ、ライブラリのソースといくつかのサンプルプログラムがその中に展開されます。~+インストールが完了すると、ユーザーフォルダ配下に「Arduino/libraries/dxlib」が作られ、ライブラリのソースといくつかのサンプルプログラムがその中に展開されます。詳しくはサンプルプログラムとライブラリのソースを参照して下さい。~
DXLIB v1.1で使用できるヘッダファイルとAPIは以下の通りです。 DXLIB v1.1で使用できるヘッダファイルとAPIは以下の通りです。
-&color(#0099ff){''dxlib.h''};~ -&color(#0099ff){''dxlib.h''};~
-Dynamixel Protocol V.1のデバイスを対象とする場合に本ヘッダファイルをインクルードします。V.2のヘッダファイルとAPIは共存できませんが、いずれもAPIの定義は互換性があります。+Dynamixel Protocol V.1のデバイスを対象とする場合、'''dxlib.h'''をスケッチにインクルードする事で'''DXLIB'''クラスが利用できるようになります。なお、Arduinoのリソースの都合から、V.2との共存はできません。
 #include <dxlib.h>  #include <dxlib.h>
 DXLIB dxif (true); // select software serial  DXLIB dxif (true); // select software serial
Line 250: Line 250:
 }  }
-&color(#0099ff){''dx2lib.h''};~ -&color(#0099ff){''dx2lib.h''};~
-Dynamixel Protocol V.2のデバイスを対象とする場合に本ヘッダファイルをインクルードします。V.1のヘッダファイルとAPIは共存できませが、いずれもAPIの定義は互換性があります。+Dynamixel Protocol V.2のデバイスを対象とする場合、'''dx2lib.h'''をスケッチにインクルードする事で'''DX2LIB'''クラスが利用できるようになります。なお、Arduinoのリソースの都合から、V.1との共存はできません。
 #include <dx2lib.h>  #include <dx2lib.h>
 DX2LIB dxif (true); // select software serial  DX2LIB dxif (true); // select software serial
Line 257: Line 257:
 }  }
-&color(#0099ff){''DXLIB/DX2LIB'' (bool ss, uint8_t txpin, uint8_t rxpin)};~ -&color(#0099ff){''DXLIB/DX2LIB'' (bool ss, uint8_t txpin, uint8_t rxpin)};~
-ソフトウェアシリアルの使用('''ss''')・送信端子('''txpin''')・受信端子('''rxpin''')を指定した上でオブジェクトを生成します。+ヘッダファイルに応じて'''DXLIB'''ないし'''DX2LIB'''いずれかのクラスが使用できます。同時にソフトウェアシリアルの使用('''ss''')・送信端子('''txpin''')・受信端子('''rxpin''')を指定した上でオブジェクトを生成できます。
-'''ss'''にtrueを指定したら[[ソフトウェアシリアルモード>#ee08b548]]、falseを指定したら[[ハードウェアシリアルモード>#ce79cebb]]にDXSHIELDを設定しなくてはなりません。~ +なお、'''ss'''にtrueを指定したら[[ソフトウェアシリアルモード>#ee08b548]]、falseを指定したら[[ハードウェアシリアルモード>#ce79cebb]]にDXSHIELDを設定しなくてはなりません。~ 
-'''txpin'''と'''rxpin'''はDXSHIELDを使用する限り指定は省略します。+また、'''txpin'''と'''rxpin'''はDXSHIELDを使用する限り指定してはなりません。 
 + #include <dx2lib.h>
 // dxifの名前でDynamixel Protocol V.2 Libraryをインスタンス化  // dxifの名前でDynamixel Protocol V.2 Libraryをインスタンス化
 // ソフトウェアシリアルモードで使用  // ソフトウェアシリアルモードで使用
Line 274: Line 275:
 // ID=1へPingインストラクションパケットを送信  // ID=1へPingインストラクションパケットを送信
 dxif.TxPacket (1, 0x01, NULL, 0);  dxif.TxPacket (1, 0x01, NULL, 0);
--&color(#0099ff){bool DXLIB/DX2LIB::''RxPacket'' (uint8_t *rdata, uint16_t rdatasize, uint16_t *rlen, uint8_t *err)};~ +-&color(#0099ff){bool DXLIB/DX2LIB::''RxPacket'' (uint8_t *rdata, uint16_t rdatasize, uint8_t *rid, uint16_t *rlen, uint8_t *err)};~ 
-ステータスパケットを受信します。成功するとパケット内のパラメータが'''rdata'''へコピーされ、そのパラメータのサイズが'''rlen'''に返されます。なお、ステータスパケットを受信するのに十分なサイズを確保し、そのポインタを'''rdata'''へ、サイズを'''rdatasize'''に指定します。'''err'''にはDynamixelのエラーが返ります。 +ステータスパケットを受信します。成功するとパケット内のパラメータが'''rdata'''へコピーされ、そのパラメータのサイズが'''rlen'''に返されます。なお、ステータスパケットを受信するのに十分なサイズを確保し、そのポインタを'''rdata'''へ、サイズを'''rdatasize'''に指定します。'''rid'''にはID、'''err'''にはDynamixelのエラーが返ります。 
- uint8_t buf[10], err;+ uint8_t buf[10], id, err;
 uint16_t len;  uint16_t len;
 // ID=1へPingインストラクションパケットを送信  // ID=1へPingインストラクションパケットを送信
 dxif.TxPacket (1, 0x01, NULL, 0);  dxif.TxPacket (1, 0x01, NULL, 0);
 // ステータスパケットを受信  // ステータスパケットを受信
- dxif.RxPacket (buf, sizeof (buf), &len, &err)+ dxif.RxPacket (buf, sizeof (buf), &id, &len, &err)
-&color(#0099ff){bool DXLIB/DX2LIB::''ReadByteData'' (uint8_t id, uint16_t addr, uint8_t *data, uint8_t *err)};~ -&color(#0099ff){bool DXLIB/DX2LIB::''ReadByteData'' (uint8_t id, uint16_t addr, uint8_t *data, uint8_t *err)};~
指定されたID('''id''')・アドレス('''addr''')から8ビットのデータを'''data'''へ読み出します。'''err'''にはDynamixelのエラーが返ります。 指定されたID('''id''')・アドレス('''addr''')から8ビットのデータを'''data'''へ読み出します。'''err'''にはDynamixelのエラーが返ります。


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom