- スケッチをする準備
リファレンスマニュアル - オブジェクトとは
- ボールを移動するスケッチ
ボールを移動するスケッチを分けて説明します。
〇 オブジェクトを設定
Ⅰ)車を前方に移動しボールを感知して停車
Ⅱ)ボールを上にあげる
モータ制御
Ⅲ)180度回転
Ⅲ)ボールを下す
- まとめ
どのように扱うかというと
○ Motor(“F”) でもモータは動きますが、もしもモータのポートを変更した場合は、Motor(“F”)のFの部分を全て新しいポートに書き換えなければなりません。そこで、オブジェクトを用いることでこれに対応することが出来ます。
Motor(“F”) を arm とおく
arm = Motor(“F”) ・・・・ 式(1)
Fポート に接続されたシングルモータ を オブジェクト名 armとしました。これで 違うポートに換えても、式(1)のMotor(“F”)の()内を変更することで、変更したポートに換えれることで対応できます。
Motor(“F”)と オブジェクト名 arm の差し替えると
次のようになります
・コントローラ モーションセンサ オブジェクト名 hub
・走行用 モータ 2個 オブジェクト名 run
・超音波センサ オブジェクト名 sensor
・アームで使用する モータ 1個 オブジェクト名 arm
run.set_default_speed(20)
移動のスピードを選択 設定 20% 出力
arm.set_default_speed(10)
モータのスピードを選択 設定 10% 出力
run.start()
走行開始
sensor.wait_for_distance_closer_than(5,”cm”)
超音波センサが5cm以下になるまで現状維持
run.stop()
走行停止
モータ出力10%にする。
(度、回転方向、モータ出力)の回転方向、モータ出力は省略出来ます。この場合、回転方向は最短経路、モータ出力は100%になります。しかし、上記でモータ出力10%に設定しているため、モータ出力は10%になります。
○ 解説
Motor(“F”).run_to_position(90,’shortest path’, 10)
Fポートのモータを90度の位置に最短経路で出力10%の力で動きなさい
wait_for_seconds(2)
2秒待つ
Motor(“F”).run_to_position(186,’shortest path’, 10)
Fポートのモータを186度の位置に最短経路で出力10%の力で動きなさい
・回転方向
指定された角度に移動する時、
最短経路 | “shortest path” |
時計回り | “clockwise” |
反時計回り | “counterclockwise” |
A点からB点に移動する際、180度以下側が最短経路になります。よってここでは時計回り側がなります。
また、最短経路がdefaultになります。
hub.motion_sensor.reset_yaw_angle()
6軸ジャイロスコープ の yaw を リセット
while hub.motion_sensor.get_yaw_angle()<179:
run.start(100)
179度になるまで小回りで回転する。
run.stop()