- モータ関連API
-
- モータのパワーを設定する。モータを無限回転するときはこのAPIを使う。
- ER ev3_motor_set_power (motor_port_t port, int power);
- 引数
- 第1引数はmotor_port_t型。以下のポート番号を入れる。
- EV3_PORT_A: ポートA
- EV3_PORT_B: ポートB
- EV3_PORT_C: ポートC
- EV3_PORT_D: ポートD
- 第2引数はint型。モータのパワー(-100~+100)を設定する。
- 第1引数はmotor_port_t型。以下のポート番号を入れる。
- 戻り値: ER型は以下のエラーコードを示す
- E_OK 正常終了
- E_ID 不正のモータポート番号
- E_OBJ モータ未接続
- モータを止める
- ER ev3_motor_stop (motor_port_t port, bool_t brake);
- 引数
- 第1引数はポート番号
- 第2引数はbool型。true(ブレーキモード), false(フロートモード)
- 戻り値
- E_OK 正常終了
- E_ID 不正のモータポート番号
- E_OBJ モータ未接続
- モータを指定した角度だけ回転させる
- ER ev3_motor_rotate(motor_port_t port, int degrees, uint32_t speed_abs, bool_t blocking)
- 引数
- 第1引数はポート番号
- 第2引数は回転角度(マイナスの値で逆方向に回転)
- 第3引数は回転速度(0~+100)
- 第4引数はbool型。
- true(回転完了してからリターン。完了するまでプログラムがブロックされる)
- false(回転操作を待たずにリターン)
- 戻り値
- E_OK 正常終了
- E_ID 不正のモータポート番号
- E_OBJ モータ未接続
- モータ回転角をゼロにリセットする
- ER ev3_motor_reset_counts (motor_port_t port);
- 引数
- port ポート番号
- 戻り値
- E_OK 正常終了
- E_ID 不正のモータポート番号
- E_OBJ モータ未接続
- モータ回転角[deg]を取得する。戻り値はint型。
- int32_t ev3_motor_get_counts (motor_port_t port);
- 引数
- port ボート番号
- 戻り値。int32_tは32ビットの符号付き整数型
- モータの回転角(単位は度),マイナスの値は逆方向に回転されたことを示す。
- モータのパワーを設定する。モータを無限回転するときはこのAPIを使う。
- サンプルプログラム
- /motor_l_1/app.c
- モーターLを1秒間正転→1秒間停止→1秒間反転→1秒間停止の後、終了する。
- /motor_m_1/app.c
- モーターMを1秒間正転→1秒間反転→1秒間停止→1秒間正転の後、終了する。
- /motor_l_2/app.c または/motor_m_2/app.c
- モーター(LまたはM)の回転角度(ロータリーエンコーダー値)をLCDに表示する。
- /motor_l_1/app.c
- 演習:2番と5番は全員が実施する。5番はレポート2となる。その他は班で協力して実施すること。
-
- モータLまたはモータMをEV3(ポートA)に接続した後、サンプルプログラム(motor_m_1, motor_l_2)をEV3にアップロードし、動作を確認してください。
- 下図のモータの組立例1~4を組立ててください。班として組立例1から4を全て実施する(班員が3名の場合は組立例1から3を実施する)。ただし、各組立例のうちどちらか一つを選ぶ。つまり、一人1個組立て、サンプルプログラム(motor_m_1, motor_l_1)で動作を確認してください。
- モータLをEV3(ポートA)に接続した後、サンプルプログラム(motor_l_2)をEV3にアップロードし、動作を確認してください。
- サンプルプログラムmotor_l_2を改造し、以下の機能を実現してください。
『モータを回転させ、360度回転したら、モータを停止する。』 - レポート2演習。このリンクの演習を実施し、レポートを作成し、期日までに提出する。
- モータ組立例
-
- 組立例1
- 44_motor.lxf:簡単シンプルカー。モータとタイヤを直結した車。
- 46_motor.lxf:ギア減速カー。一組のギアでスピードを落とし、トルクを大きくした車。
- 44_motor.lxf:簡単シンプルカー。モータとタイヤを直結した車。
- 組立例2
- 48_motor.lxf:ウォームギア前方向回転タイプ
- 49-1_motor.lxf:ウォームギア上方向回転タイプ
- 48_motor.lxf:ウォームギア前方向回転タイプ
- 組立例3
- 50-2_motor.lxf:振れ幅調整のできる上下反復運動タイプ
- 組立例4
- 51_motor.lxf:水平往復運動タイプ
- 51_1_motor.lxf:サーボモータMとウォームギアを用いた横方向回転タイプ
- 51_motor.lxf:水平往復運動タイプ
- 組立例1
終わり