モータ制御に関するAPI. [詳解]
列挙型 | |
enum | motor_port_t { EV3_PORT_A = 0, EV3_PORT_B = 1, EV3_PORT_C = 2, EV3_PORT_D = 3, TNUM_MOTOR_PORT = 4 } |
モータポートを表す番号 [詳解] | |
enum | motor_type_t { NONE_MOTOR = 0, MEDIUM_MOTOR, LARGE_MOTOR, UNREGULATED_MOTOR, TNUM_MOTOR_TYPE } |
サポートするモータタイプ [詳解] | |
関数 | |
ER | ev3_motor_config (motor_port_t port, motor_type_t type) |
モータポートを設定する. [詳解] | |
ER_UINT | ev3_motor_get_type (motor_port_t port) |
モータポートのモータタイプを取得する. [詳解] | |
int32_t | ev3_motor_get_counts (motor_port_t port) |
モータの角位置を取得する. [詳解] | |
ER | ev3_motor_reset_counts (motor_port_t port) |
モータの角位置をゼロにリセットする. [詳解] | |
ER | ev3_motor_set_power (motor_port_t port, int power) |
モータのパワーを設定する [詳解] | |
int | ev3_motor_get_power (motor_port_t port) |
モータのパワーを取得する [詳解] | |
ER | ev3_motor_stop (motor_port_t port, bool_t brake) |
モータを停止する [詳解] | |
ER | ev3_motor_rotate (motor_port_t port, int degrees, uint32_t speed_abs, bool_t blocking) |
モータを指定した角度だけ回転させる [詳解] | |
ER | ev3_motor_steer (motor_port_t left_motor, motor_port_t right_motor, int power, int turn_ratio) |
2つのモータでロボットのステアリング操作を行う. [詳解] | |
モータ制御に関するAPI.
enum motor_port_t |
enum motor_type_t |
ER ev3_motor_config | ( | motor_port_t | port, |
motor_type_t | type | ||
) |
モータポートを設定する.
モータポートに接続しているモータのタイプを設定する.既に設定した場合も新しいモータタイプを指定できる.
port | モータポート番号 |
type | モータタイプ |
E_OK | 正常終了 |
E_ID | 不正のモータポート番号 |
E_PAR | 不正のモータタイプ |
int32_t ev3_motor_get_counts | ( | motor_port_t | port | ) |
モータの角位置を取得する.
不正のモータポート番号を指定した場合,常に0を返す(エラーログが出力される).
port | モータポート番号 |
int ev3_motor_get_power | ( | motor_port_t | port | ) |
モータのパワーを取得する
不正のモータポート番号を指定した場合,常に0を返す(エラーログが出力される).
port | モータポート番号 |
ER_UINT ev3_motor_get_type | ( | motor_port_t | port | ) |
モータポートのモータタイプを取得する.
port | モータポート番号 |
>=0 | 指定したモータポートのモータタイプ |
E_ID | 不正のモータポート番号 |
ER ev3_motor_reset_counts | ( | motor_port_t | port | ) |
モータの角位置をゼロにリセットする.
モータの角位置センサの値を設定するだけ,モータの実際のパワーと位置に影響を与えない.
port | モータポート番号 |
E_OK | 正常終了 |
E_ID | 不正のモータポート番号 |
E_OBJ | モータ未接続 |
ER ev3_motor_rotate | ( | motor_port_t | port, |
int | degrees, | ||
uint32_t | speed_abs, | ||
bool_t | blocking | ||
) |
モータを指定した角度だけ回転させる
port | モータポート番号 |
degrees | 回転角度,マイナスの値でモータを逆方向に回転させることができる |
speed_abs | 回転速度,モータポートのフルスピードのパーセント値.範囲:0から+100. |
blocking | true (関数は回転が完了してからリターン),false (関数は回転操作を待たずにリターン) |
E_OK | 正常終了 |
E_ID | 不正のモータポート番号 |
E_OBJ | モータ未接続 |
ER ev3_motor_set_power | ( | motor_port_t | port, |
int | power | ||
) |
モータのパワーを設定する
port | モータポート番号 |
power | モータのフルパワーのパーセント値.範囲:-100から+100.マイナスの値でモータを逆方向に回転させることができる. |
E_OK | 正常終了 |
E_ID | 不正のモータポート番号 |
E_OBJ | モータ未接続 |
Start the motor
ER ev3_motor_steer | ( | motor_port_t | left_motor, |
motor_port_t | right_motor, | ||
int | power, | ||
int | turn_ratio | ||
) |
2つのモータでロボットのステアリング操作を行う.
left_motor | 左モータのモータポート番号 |
right_motor | 右モータのモータポート番号 |
power | モータのパワー.範囲:-100から+100.マイナスの値は後退. |
turn_ratio | ステアリングの度合い.範囲:-100から+100.マイナスの値は左への転回,プラスの値は右への転回になる. 具体的に言えば,このパラメータはこの左右モータのパワーの差の度合いである.例えば,turn_ratio は+25である場合, 左モータのパワーはpower で,右モータのパワーはpower の75%になり,ロボットは右へ転回する. |
E_OK | 正常終了 |
E_ID | 不正のモータID |
E_OBJ | モータ未接続 |
ER ev3_motor_stop | ( | motor_port_t | port, |
bool_t | brake | ||
) |
モータを停止する
port | モータポート番号 |
brake | ブレーキモードの指定,true (ブレーキモード), false (フロートモード) |
E_OK | 正常終了 |
E_ID | 不正のモータポート番号 |
E_OBJ | モータ未接続 |