PD実践:TOPPERS/EV3RTプログラミング演習(モータ)

  • モータ関連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)を設定する。
      • 戻り値: 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ビットの符号付き整数型
        • モータの回転角(単位は度),マイナスの値は逆方向に回転されたことを示す。
  • サンプルプログラム
    •  /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に表示する。
  • 演習:2番と5番は全員が実施する。5番はレポート2となる。その他は班で協力して実施すること。
    1.  モータLまたはモータMをEV3(ポートA)に接続した後、サンプルプログラム(motor_m_1, motor_l_2)をEV3にアップロードし、動作を確認してください。
    2. 下図のモータの組立例1~4を組立ててください。班として組立例1から4を全て実施する(班員が3名の場合は組立例1から3を実施する)。ただし、各組立例のうちどちらか一つを選ぶ。つまり、一人1個組立て、サンプルプログラム(motor_m_1, motor_l_1)で動作を確認してください。
    3. モータLをEV3(ポートA)に接続した後、サンプルプログラム(motor_l_2)をEV3にアップロードし、動作を確認してください。
    4.  サンプルプログラムmotor_l_2を改造し、以下の機能を実現してください。
      『モータを回転させ、360度回転したら、モータを停止する。』
    5. レポート2演習。このリンクの演習を実施し、レポートを作成し、期日までに提出する。
  • モータ組立例
    • 組立例1
      • 44_motor.lxf:簡単シンプルカー。モータとタイヤを直結した車。
      • 46_motor.lxf:ギア減速カー。一組のギアでスピードを落とし、トルクを大きくした車。
    • 組立例2
      • 48_motor.lxf:ウォームギア前方向回転タイプ
      • 49-1_motor.lxf:ウォームギア上方向回転タイプ
    • 組立例3
      • 50-2_motor.lxf:振れ幅調整のできる上下反復運動タイプ
    • 組立例4
      • 51_motor.lxf:水平往復運動タイプ
      • 51_1_motor.lxf:サーボモータMとウォームギアを用いた横方向回転タイプ

終わり

コメント

Folding@home Kanazawa (ID 257261)

みんなのためにおうちで新型コロナウイルスを解析しよう!

タイトルとURLをコピーしました