| 戻る |
EV3のサーボモータを制御するクラスです。
| メソッド | 概要 | シミュレータ対応 | 備考 |
|---|---|---|---|
| new(port, type) | 指定したポートのモータオブジェクトを生成します。 | ○ | |
| count | モータの回転角度を取得します。 | ○ | |
| reset | モータの回転角度を0°にリセットします。 | ○ | |
| pwm=n power=n |
モータのパワーをセットします。 | ○ | |
| rotate(degrees, speed, blocking) | モータを指定した角度だけ回転させます。 | × | |
| stop | モータを停止します。 | ○ |
指定したポートのモータオブジェクトを生成します。
| 引数 | 概要 | 備考 |
|---|---|---|
| port | EV3のモータポート番号 | EV3RT::PORT_A 〜 EV3RT::PORT_D の範囲で指定します。 |
| type | EV3のモータ種別EV3::NONE_MOTOR: モータ未接続EV3::MEDIUM_MOTOR: サーボモータMEV3::LARGE_MOTOR: サーボモータLEV3::UNREGULATED_MOTOR: 未調整モータ |
ETロボコン大会では EV3::LARGE_MOTOR を使用します。 |
生成したモータオブジェクトを返します。
モータの回転角度を取得します。
なし
モータから取得した回転角度を返します。
順方向の回転角度はプラスの値、逆方向の回転角度はマイナス値となります。
モータの回転角度を0°にリセットします。
なし
nil を返します。
モータのパワーを -100〜100 の範囲で指定します。
プラス値を指定した場合は順方向、マイナス値を指定した場合は逆方向に回転します。
| 引数 | 概要 | 備考 |
|---|---|---|
| n | モータのパワー値 (-100〜100) |
self (モータオブジェクト) を返します。
モータを指定した角度まで回転させます。
このメソッドはETロボコンのシミュレータ環境では動作しません。
| 引数 | 概要 | 備考 |
|---|---|---|
| degree | 現在の回転角度を基準とした目標回転角度 | 順方向の回転角度はプラス値、逆方向の回転角度はマイナス値を指定します。 |
| speed | モータのパワー値 (0〜100) |
回転方向に化からわず絶対値で指定します。 |
| blocking | 回転完了を待つかどうかを指定true: 回転完了を待ってメソッドを終了します。false: 回転完了を待たずにメソッドを終了します。 |
self (モータオブジェクト) を返します。
モータを停止します。
なし
self (モータオブジェクト) を返します。
# モータオブジェクト生成
m_r = EV3RT::Motor.new(EV3RT::PORT_B, EV3RT::LARGE_MOTOR) # 右モータ:モータポートBを使用
m_l = EV3RT::Motor.new(EV3RT::PORT_C, EV3RT::LARGE_MOTOR) # 左モータ:モータポートCを使用
# モータパワーテーブル [r, l]
powers = [[50, 50], [-50, -50], [40, 20], [-40, -20], [-20, -40], [20, 40]]
loop {
# モータパワーテーブルの内容を順にモータにセット
powers.each {|pwr|
m_r.power = pwr[0] # 右モータを回転
m_l.power = pwr[1] # 左モータを回転
EV3RT::Task.delay(1000) # 1秒待つ
}
}