9: 2011-03-30 (水) 22:52:50 takaboo | 10: 2011-04-02 (土) 18:23:45 takaboo | ||
---|---|---|---|
Line 1: | Line 1: | ||
TITLE:ユニバーサルドライバ3マニュアル | TITLE:ユニバーサルドライバ3マニュアル | ||
- | #norelated | + | f#norelated |
#contents | #contents | ||
[[ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=110]]~ | [[ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=110]]~ | ||
Line 14: | Line 14: | ||
**仕様 [#r881cac5] | **仕様 [#r881cac5] | ||
***同梱内容 [#m79dd66b] | ***同梱内容 [#m79dd66b] | ||
- | |型式 |数量 |備考 | | + | | 型式 | 数量 | 備考 | |
- | |ユニバーサルドライバ3本体 |1 |E093B or E093C | | + | |ユニバーサルドライバ3本体 | 1|E093B or E093C | |
- | |USBケーブル |1 |150cm | | + | |USBケーブル | 1|150cm | |
- | |コネクタキット |1 |Dynamixel I/F(MPU・センサ電源)用 ([[50-37-5043>http://www.molex.com/molex/products/datasheet.jsp?part=active/0050375043_CRIMP_HOUSINGS.xml&channel=Products&Lang=ja-jp]]x1, [[08-70-1040>http://www.molex.com/molex/products/datasheet.jsp?part=active/0008701040_CRIMP_TERMINALS.xml&channel=Products&Lang=ja-jp]]x5)&br;モータ電源用 ([[No.05023>http://kopropo.co.jp/wp/?cat=40&paged=5]]x1)&br;モータ用 ([[No.05001>http://kopropo.co.jp/wp/?cat=40&paged=5]]x2) | | + | |コネクタキット | 1|Dynamixel I/F(MPU・センサ電源)用 ([[50-37-5043>http://www.molex.com/molex/products/datasheet.jsp?part=active/0050375043_CRIMP_HOUSINGS.xml&channel=Products&Lang=ja-jp]]x1, [[08-70-1040>http://www.molex.com/molex/products/datasheet.jsp?part=active/0008701040_CRIMP_TERMINALS.xml&channel=Products&Lang=ja-jp]]x5)&br;モータ電源用 ([[No.05023>http://kopropo.co.jp/wp/?cat=40&paged=5]]x1)&br;モータ用 ([[No.05001>http://kopropo.co.jp/wp/?cat=40&paged=5]]x2) | |
***基本仕様 [#pb0bf34c] | ***基本仕様 [#pb0bf34c] | ||
Line 368: | Line 368: | ||
ユーザは任意のタスクを最大4つまで作成可能で、自動的にマルチタスクで動作する設定になっています。システムで予約されたタスク(TASK5)は自動的に登録されますが、意図的に停止させてしまうと全APIが正常に動作しなくなりますので絶対に停止させないでください。 | ユーザは任意のタスクを最大4つまで作成可能で、自動的にマルチタスクで動作する設定になっています。システムで予約されたタスク(TASK5)は自動的に登録されますが、意図的に停止させてしまうと全APIが正常に動作しなくなりますので絶対に停止させないでください。 | ||
- | ****UD3_INITIALIZE [#bd0f80b9] | + | ****UD3_INITIALIZE (obsolete)[#bd0f80b9] |
- | 一般的なC言語のプログラムで言えばmain関数に相当し、一番最初に実行される初期化関数。タスクの起動やGPIOの初期化等はこの関数内で記述する。 | + | ****main (new) [#v3c21b98] |
- | void UD3_INITIALIZE(void); | + | メインタスクに相当し、一番最初に実行される初期化関数。タスクの起動やGPIOの初期化等はこの関数内で記述する。~ |
+ | なお本タスクは優先度が最上位にあるため、並列で他のタスクを実行する際はUD3_WAIT等を挿入して意図的にタスクスイッチを促すべきである。 | ||
+ | void main (void); | ||
-パラメータ | -パラメータ | ||
~なし | ~なし | ||
Line 378: | Line 380: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) |
{ | { | ||
// 動作環境設定 | // 動作環境設定 | ||
Line 416: | Line 418: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 443: | Line 445: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (2); // タスク2をアクティブ化 | UD3_ACTIVE_TASK (2); // タスク2をアクティブ化 | ||
} | } | ||
Line 469: | Line 471: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (3); // タスク3をアクティブ化 | UD3_ACTIVE_TASK (3); // タスク3をアクティブ化 | ||
} | } | ||
Line 495: | Line 497: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (4); // タスク4をアクティブ化 | UD3_ACTIVE_TASK (4); // タスク4をアクティブ化 | ||
} | } | ||
Line 520: | Line 522: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 545: | Line 547: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 570: | Line 572: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 594: | Line 596: | ||
} | } | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
UD3_ACTIVE_TASK (1); | UD3_ACTIVE_TASK (1); | ||
} | } | ||
Line 609: | Line 611: | ||
uint32_t tm = UD3_GET_ELAPSEDTIME (); | uint32_t tm = UD3_GET_ELAPSEDTIME (); | ||
- | ****UD3_SET_DXPACKETENABLE [#pd1e307a] | + | ****UD3_SET_DXPACKETMODE (new) [#y7012ac0] |
+ | USB・Bluetooth・RS485のシリアルポートの機能を設定する。~ | ||
+ | Bluetoothに関してはブートローダにて設定されるモードが優先される。 | ||
+ | void UD3_SET_DXPACKETMODE (TDxPacketMode mode); | ||
+ | -パラメータ | ||
+ | --TDxPacketMode '''mode''' | ||
+ | ~dxNon: 全ポートをユーザ定義のシリアル通信機能として使用し、Dynamixelパケット処理は行わない~ | ||
+ | dxClient: UD3をスレーブとした全ポートからのDyanmixelパケットに応答する~ | ||
+ | dxHost: RS485ポートのみユーザ定義のUD3をホストとしたDynamixelパケット処理を行い、それ以外のポートはdxNonと同様 | ||
+ | ~デフォルトはdxNon | ||
+ | -戻り値 | ||
+ | ~なし | ||
+ | |||
+ | ****UD3_SET_DXPACKETENABLE (obsolete) [#pd1e307a] | ||
Dynamixelパケット通信機能を開始・停止する。デフォルトで開始されるが、Bluetooth・USB・RS485経由の通信をDynamixelパケットで占有されずにユーザ自らのコンソールとして使用する場合は停止させておく必要がある。 | Dynamixelパケット通信機能を開始・停止する。デフォルトで開始されるが、Bluetooth・USB・RS485経由の通信をDynamixelパケットで占有されずにユーザ自らのコンソールとして使用する場合は停止させておく必要がある。 | ||
void UD3_SET_DXPACKETENABLE (bool mode); | void UD3_SET_DXPACKETENABLE (bool mode); | ||
Line 641: | Line 656: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 652: | Line 667: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 664: | Line 679: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 675: | Line 690: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 687: | Line 702: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 698: | Line 713: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 710: | Line 725: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 721: | Line 736: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 733: | Line 748: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 744: | Line 759: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 756: | Line 771: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 767: | Line 782: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 779: | Line 794: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 790: | Line 805: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 802: | Line 817: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~以下のリストから一つだけ選択出来る。 | ~以下のリストから一つだけ選択出来る。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_ADC (2:アナログ入力)~ | + | 2: GPIO_ADC (アナログ入力)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力) | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力) |
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 813: | Line 828: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 825: | Line 840: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~GPIO端子の動作内容を設定。以下のリストから一つだけ選択出来る。なお、GPIO_ADC(2:アナログ入力)は設定出来ない。 | ~GPIO端子の動作内容を設定。以下のリストから一つだけ選択出来る。なお、GPIO_ADC(2:アナログ入力)は設定出来ない。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 2: 指定不可~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_PWM_CAP (5:パルス幅計測用入力かつプルアップON)~ | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ |
- | GPIO_PWM (6:PWM出力) | + | 5: GPIO_PWM_CAP (パルス幅計測用入力かつプルアップON)~ |
+ | 6: GPIO_PWM (PWM出力) | ||
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 837: | Line 853: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// PWMキャプチャモードに設定 | // PWMキャプチャモードに設定 | ||
Line 849: | Line 865: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~GPIO端子の動作内容を設定。以下のリストから一つだけ選択出来る。なお、GPIO_ADC(2:アナログ入力)は設定出来ない。 | ~GPIO端子の動作内容を設定。以下のリストから一つだけ選択出来る。なお、GPIO_ADC(2:アナログ入力)は設定出来ない。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 2: 指定不可~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_PWM_CAP (5:パルス幅計測用入力かつプルアップON)~ | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ |
- | GPIO_PWM (6:PWM出力) | + | 5: GPIO_PWM_CAP (パルス幅計測用入力かつプルアップON)~ |
+ | 6: GPIO_PWM (PWM出力) | ||
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 861: | Line 878: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// パルス幅計測モードに設定 | // パルス幅計測モードに設定 | ||
Line 873: | Line 890: | ||
--TGPIOMode '''conf''' | --TGPIOMode '''conf''' | ||
~GPIO端子の動作内容を設定。以下のリストから一つだけ選択出来る。なお、GPIO_ADC(2:アナログ入力)は設定出来ない。 | ~GPIO端子の動作内容を設定。以下のリストから一つだけ選択出来る。なお、GPIO_ADC(2:アナログ入力)は設定出来ない。 | ||
- | ~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ | + | ~0: GPIO_IN_PULLUP_OFF (入力かつ内蔵プルアップOFF)~ |
- | GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ | + | 1: GPIO_IN_PULLUP_ON (入力かつ内蔵プルアップON)~ |
- | GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ | + | 2: 指定不可~ |
- | GPIO_OUT_PUSHPULL (4:プッシュプル出力)~ | + | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
- | GPIO_PWM_CAP (5:パルス幅計測用入力かつプルアップON)~ | + | 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ |
- | GPIO_PWM (6:PWM出力) | + | 5: GPIO_PWM_CAP (パルス幅計測用入力かつプルアップON)~ |
+ | 6: GPIO_PWM (PWM出力) | ||
~デフォルトはGPIO_IN_PULLUP_OFF。 | ~デフォルトはGPIO_IN_PULLUP_OFF。 | ||
-戻り値 | -戻り値 | ||
Line 885: | Line 903: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | UD3_INITIALIZE () | + | void main (void) { |
{ | { | ||
// パルス幅計測モードに設定 | // パルス幅計測モードに設定 | ||
Line 963: | Line 981: | ||
-パラメータ | -パラメータ | ||
--uint8_t '''on''' | --uint8_t '''on''' | ||
- | ~0で消灯、1で点灯する。 | + | ~0: 消灯~ |
+ | 1: 点灯 | ||
-戻り値 | -戻り値 | ||
~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ||
Line 1053: | Line 1072: | ||
-パラメータ | -パラメータ | ||
--uint8_t '''mode''' | --uint8_t '''mode''' | ||
- | ~_UD_MOTOR_BRAKE (0:ブレーキモード)~ | + | ~0: _UD_MOTOR_BRAKE (ブレーキモード)~ |
- | _UD_MOTOR_DRIVE (1:ドライブモード) | + | 1: _UD_MOTOR_DRIVE (ドライブモード) |
~デフォルトは_UD_MOTOR_BRAKE。 | ~デフォルトは_UD_MOTOR_BRAKE。 | ||
-戻り値 | -戻り値 | ||
Line 1076: | Line 1095: | ||
// M1を20%のDUTYで動作させます。 | // M1を20%のDUTYで動作させます。 | ||
UD3_SET_M1PWMDUTY (200); | UD3_SET_M1PWMDUTY (200); | ||
+ | |||
+ | ****UD3_GET_M1PWMDUTY (new)[#q5687f5b] | ||
+ | M1の設定済みPWMデューティー比を取得する。~ | ||
+ | int16_t UD3_GET_M1PWMDUTY (void); | ||
+ | -パラメータ | ||
+ | ~なし | ||
+ | -戻り値 | ||
+ | ~-1000~0~1000[‰]。 | ||
****UD3_SET_M2FREQUENCY [#jf15fafa] | ****UD3_SET_M2FREQUENCY [#jf15fafa] | ||
Line 1110: | Line 1137: | ||
-パラメータ | -パラメータ | ||
--uint8_t '''mode''' | --uint8_t '''mode''' | ||
- | ~_UD_MOTOR_BRAKE (0:ブレーキモード)~ | + | ~0: _UD_MOTOR_BRAKE (ブレーキモード)~ |
- | _UD_MOTOR_DRIVE (1:ドライブモード) | + | 1: _UD_MOTOR_DRIVE (ドライブモード) |
~デフォルトは_UD_MOTOR_BRAKE。 | ~デフォルトは_UD_MOTOR_BRAKE。 | ||
-戻り値 | -戻り値 | ||
Line 1133: | Line 1160: | ||
// M2を20%のDUTYで動作させます。 | // M2を20%のDUTYで動作させます。 | ||
UD3_SET_M2PWMDUTY (200); | UD3_SET_M2PWMDUTY (200); | ||
+ | |||
+ | ****UD3_GET_M2PWMDUTY (new) [#hed95d65] | ||
+ | M2の設定済みPWMデューティー比を取得する。~ | ||
+ | int16_t UD3_GET_M2PWMDUTY (void); | ||
+ | -パラメータ | ||
+ | ~なし | ||
+ | -戻り値 | ||
+ | ~-1000~0~1000[‰]。 | ||
****UD3_SET_MOTORREVRSE [#m604c98d] | ****UD3_SET_MOTORREVRSE [#m604c98d] | ||
Line 1207: | Line 1242: | ||
****UD3_SET_PWM8CLOCK [#g666594c] | ****UD3_SET_PWM8CLOCK [#g666594c] | ||
PWM8のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ | PWM8のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ | ||
- | GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWMに設定する必要がある。 | + | GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWMないしGPIO_PWM_CAPに設定する必要がある。 |
int UD3_SET_PWM8CLOCK (uint8_t clock); | int UD3_SET_PWM8CLOCK (uint8_t clock); | ||
-パラメータ | -パラメータ | ||
--uint8_t '''clock''' | --uint8_t '''clock''' | ||
~ベースクロックを0~4で選択。 | ~ベースクロックを0~4で選択。 | ||
- | ~_UD_PWM_CLOCK_24M (0:24MHz)~ | + | ~0: _UD_PWM_CLOCK_24M (24MHz)~ |
- | _UD_PWM_CLOCK_6M (1:6MHz)~ | + | 1: _UD_PWM_CLOCK_6M (6MHz)~ |
- | _UD_PWM_CLOCK_1500K (2:1.5MHz)~ | + | 2: _UD_PWM_CLOCK_1500K (1.5MHz)~ |
- | _UD_PWM_CLOCK_375K (3:375kHz)~ | + | 3: _UD_PWM_CLOCK_375K (375kHz)~ |
- | _UD_PWM_CLOCK_46K (4:46.875kHz) | + | 4: _UD_PWM_CLOCK_46K (46.875kHz) |
-戻り値 | -戻り値 | ||
~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ||
Line 1252: | Line 1287: | ||
****UD3_SET_PWM9CLOCK [#ae26f679] | ****UD3_SET_PWM9CLOCK [#ae26f679] | ||
PWM9のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ | PWM9のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ | ||
- | GPIO9を[[UD3_CFG_GPIO9>#u201f4af]]でGPIO_PWMに設定する必要がある。 | + | GPIO9を[[UD3_CFG_GPIO9>#u201f4af]]でGPIO_PWMないしGPIO_PWM_CAPに設定する必要がある。 |
int UD3_SET_PWM9CLOCK (uint8_t clock); | int UD3_SET_PWM9CLOCK (uint8_t clock); | ||
-パラメータ | -パラメータ | ||
--uint8_t '''clock''' | --uint8_t '''clock''' | ||
~ベースクロックを0~4で選択。 | ~ベースクロックを0~4で選択。 | ||
- | ~_UD_PWM_CLOCK_24M (0:24MHz)~ | + | ~0: _UD_PWM_CLOCK_24M (24MHz)~ |
- | _UD_PWM_CLOCK_6M (1:6MHz)~ | + | 1: _UD_PWM_CLOCK_6M (6MHz)~ |
- | _UD_PWM_CLOCK_1500K (2:1.5MHz)~ | + | 2: _UD_PWM_CLOCK_1500K (1.5MHz)~ |
- | _UD_PWM_CLOCK_375K (3:375kHz)~ | + | 3: _UD_PWM_CLOCK_375K (375kHz)~ |
- | _UD_PWM_CLOCK_46K (4:46.875kHz) | + | 4: _UD_PWM_CLOCK_46K (46.875kHz) |
-戻り値 | -戻り値 | ||
~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ||
Line 1297: | Line 1332: | ||
****UD3_SET_PWM10CLOCK [#cd6005d8] | ****UD3_SET_PWM10CLOCK [#cd6005d8] | ||
PWM10のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ | PWM10のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ | ||
- | GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWMに設定する必要がある。 | + | GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWMないしGPIO_PWM_CAPに設定する必要がある。 |
int UD3_SET_PWM10CLOCK (uint8_t clock); | int UD3_SET_PWM10CLOCK (uint8_t clock); | ||
-パラメータ | -パラメータ | ||
--uint8_t '''clock''' | --uint8_t '''clock''' | ||
~ベースクロックを0~4で選択。 | ~ベースクロックを0~4で選択。 | ||
- | ~_UD_PWM_CLOCK_24M (0:24MHz)~ | + | ~0: _UD_PWM_CLOCK_24M (24MHz)~ |
- | _UD_PWM_CLOCK_6M (1:6MHz)~ | + | 1: _UD_PWM_CLOCK_6M (6MHz)~ |
- | _UD_PWM_CLOCK_1500K (2:1.5MHz)~ | + | 2: _UD_PWM_CLOCK_1500K (1.5MHz)~ |
- | _UD_PWM_CLOCK_375K (3:375kHz)~ | + | 3: _UD_PWM_CLOCK_375K (375kHz)~ |
- | _UD_PWM_CLOCK_46K (4:46.875kHz) | + | 4: _UD_PWM_CLOCK_46K (46.875kHz) |
-戻り値 | -戻り値 | ||
~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ~成功すると0 、パラメータエラーがあった場合は-1が返される。 | ||
Line 1403: | Line 1438: | ||
include <ud3.h> | include <ud3.h> | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
// GPIO8,9をパルス幅計測モードに | // GPIO8,9をパルス幅計測モードに | ||
UD3_CFG_GPIO8 (GPIO_PWM_CAP); | UD3_CFG_GPIO8 (GPIO_PWM_CAP); | ||
Line 1463: | Line 1498: | ||
include <ud3.h> | include <ud3.h> | ||
- | UD3_INITIALIZE () { | + | void main (void) { |
// GPIO8,9をパルス幅計測モードに | // GPIO8,9をパルス幅計測モードに | ||
UD3_CFG_GPIO8 (GPIO_PWM_CAP); | UD3_CFG_GPIO8 (GPIO_PWM_CAP); | ||
Line 1585: | Line 1620: | ||
uint8_t r2 = UD3_GET_PSR2 (); | uint8_t r2 = UD3_GET_PSR2 (); | ||
- | ****UD3_GET_GX [#wa4f160b] | + | ****UD3_GET_GX (obsolute)[#wa4f160b] |
+ | ****UD3_GET_PSGX (new) [#hccd1b38] | ||
SIXAXISのX軸加速度を取得する。 | SIXAXISのX軸加速度を取得する。 | ||
- | uint16_t UD3_GET_GX(void); | + | uint16_t UD3_GET_PSGX(void); |
-パラメータ | -パラメータ | ||
~なし | ~なし | ||
Line 1593: | Line 1629: | ||
~uint16_t 0~1023の範囲でX軸の加速度を返す。 | ~uint16_t 0~1023の範囲でX軸の加速度を返す。 | ||
-使用例 | -使用例 | ||
- | uint16_t gx = UD3_GET_GX (); | + | uint16_t gx = UD3_GET_PSGX (); |
- | ****UD3_GET_GY [#m9f9751e] | + | ****UD3_GET_GY (obsolute)[#m9f9751e] |
+ | ****UD3_GET_PSGY (new) [#rd271105] | ||
SIXAXISのY軸加速度を取得する。 | SIXAXISのY軸加速度を取得する。 | ||
- | uint16_t UD3_GET_GX(void); | + | uint16_t UD3_GET_PSGY(void); |
-パラメータ | -パラメータ | ||
~なし | ~なし | ||
Line 1603: | Line 1640: | ||
~uint16_t 0~1023の範囲でY軸の加速度を返す。 | ~uint16_t 0~1023の範囲でY軸の加速度を返す。 | ||
-使用例 | -使用例 | ||
- | uint16_t gy = UD3_GET_GY (); | + | uint16_t gy = UD3_GET_PSGY (); |
- | ****UD3_GET_GZ [#i5505dd1] | + | ****UD3_GET_GZ (obsolute)[#i5505dd1] |
+ | ****UD3_GET_PSGZ (new) [#ibd2e0bc] | ||
SIXAXISのZ軸加速度を取得する。 | SIXAXISのZ軸加速度を取得する。 | ||
- | uint16_t UD3_GET_GZ(void); | + | uint16_t UD3_GET_PSGZ(void); |
-パラメータ | -パラメータ | ||
~なし | ~なし | ||
Line 1613: | Line 1651: | ||
~uint16_t 0~1023の範囲でZ軸の加速度を返す。 | ~uint16_t 0~1023の範囲でZ軸の加速度を返す。 | ||
-使用例 | -使用例 | ||
- | uint16_t gz = UD3_GET_GZ (); | + | uint16_t gz = UD3_GET_PSGZ (); |
- | ****UD3_GET_GYRO [#pcb0b72f] | + | ****UD3_GET_GYRO (obsolute)[#pcb0b72f] |
+ | ****UD3_GET_PSGYRO (new) [#cd05b422] | ||
SIXAXISの角加速度を取得する。 | SIXAXISの角加速度を取得する。 | ||
- | uint16_t UD3_GET_GYRO(void); | + | uint16_t UD3_GET_PSGYRO(void); |
-パラメータ | -パラメータ | ||
~なし | ~なし | ||
Line 1623: | Line 1662: | ||
~uint16_t 0~1023の範囲で角加速度を返す。 | ~uint16_t 0~1023の範囲で角加速度を返す。 | ||
-使用例 | -使用例 | ||
- | uint16_t gyro = UD3_GET_GYRO (); | + | uint16_t gyro = UD3_GET_PSGYRO (); |
***コンソール関連 [#d0d4a9b4] | ***コンソール関連 [#d0d4a9b4] | ||
- | コンソールとして使用出来るUSB・Bluetooth・RS485のいずれかを介したシリアル通信を行います。デフォルトのコンソールはUSBとなっていますが、いすれかのI/Fからの受信が発生する事でデフォルトコンソールが切り替わります。~ | + | コンソールとして使用出来るUSB・Bluetooth・RS485のいずれかを介したシリアル通信を行います。デフォルトの送信先コンソールは全ポートBとなっていますが、いすれかのI/Fからの受信が発生する事でデフォルトコンソールが切り替わります。~ |
- | なお、USB・Bluetooth・RS485のI/FはDynamixelパケットによる通信に使用されるため、コンソールとしてのみ使用するには[[UD3_SET_DXPACKETENABLE>#pd1e307a]]でDynamixelパケット処理を停止しておく必要があります。その場合はDynamixelパケット処理が行われなくなります。~ | + | なお、USB・Bluetooth・RS485のI/FはDynamixelパケットによる通信に使用されるため、コンソールとしてのみ使用するには[[UD3_SET_DXPACKETMODE>#y7012ac0]]でDynamixelパケット処理を停止しておく必要があります。その場合はDynamixelパケット処理が行われなくなります。~ |
また、コンソールへの送信にはシリアル通信の都合からそれ相応の時間を要します。高速で動作させているタスクの中で高い頻度で送信を行うと処理時間が長くなります。 | また、コンソールへの送信にはシリアル通信の都合からそれ相応の時間を要します。高速で動作させているタスクの中で高い頻度で送信を行うと処理時間が長くなります。 | ||
Line 1650: | Line 1689: | ||
-使用例 | -使用例 | ||
while (UD3_RXBUFF()) UD3_PUTC(UD3_GETC()); | while (UD3_RXBUFF()) UD3_PUTC(UD3_GETC()); | ||
+ | |||
+ | ****UD3_GETS (new) [#lc54c38f] | ||
+ | コンソールからエンター(CRかLF)ないしエスケープ(ESC)コードを受信するまで文字列を取得する。 | ||
+ | int UD3_GETS (char *s, int len); | ||
+ | -パラメータ | ||
+ | --char *s | ||
+ | ~受信文字列を保存するバッファのポインタを指定 | ||
+ | --int len | ||
+ | ~受信文字列の最大バッファサイズを指定 | ||
+ | -戻り値 | ||
+ | ~int 受信文字数 | ||
+ | -使用例 | ||
+ | char buf[30]; | ||
+ | if (UD3_GETS(buf, sizeof(buf))) UD3_PUTS(buf); | ||
****UD3_PUTS [#qc95c51a] | ****UD3_PUTS [#qc95c51a] | ||
Line 1699: | Line 1752: | ||
int i ; | int i ; | ||
while UD3_PRINTF("HELLO! %d\n", i++); | while UD3_PRINTF("HELLO! %d\n", i++); | ||
+ | |||
+ | ****UD3_SCANF (new) [#l1b83762] | ||
+ | コンソールから書式化文字列を受信する。 | ||
+ | int UD3_SCANF (const char *type, void *val); | ||
+ | -パラメータ | ||
+ | --const char '''*type''' | ||
+ | ~書式文字列 | ||
+ | --void '''*val''' | ||
+ | ~格納先変数 | ||
+ | -戻り値 | ||
+ | ~int 入力データの個数。 | ||
+ | -使用例 | ||
+ | int i ; | ||
+ | if (UD3_PRINTF("%d", &i)) UD3_PRINTF("i=%d", i); | ||
**サンプルプログラム [#kf8170aa] | **サンプルプログラム [#kf8170aa] |