車両を動かす
次に、車両を動作させる方法を説明します。
“RasPythonカー”は2輪駆動方式の車両ベースであり、左右に1つずつのタイヤが装備されています。それぞれを駆動するモーターは、回転方向を個別にコントロールできます。
各モーターの制御も、ヘッドライトLEDの時と同様に専用の関数を使います。
ここでの説明ではモーターの回転方向は「正転」「逆転」と呼びます。車軸の向きが左右で違うので、モーターの右回り・左回りは進行方向とは一致しませんが、簡単にするため、左右それぞれ「車両が前進する方向」のことを「正転」、反対に「車両が後退する方向」のことを「逆転」と呼ぶことにします。
前進する
左右両方のモーターを「正転」とすることで、車両は前進します。前進を行うには、下記の関数を呼び出します。
-
wr.mc.front()
……前進
後退する
左右両方のモーターを「逆転」とすることで、車両は後退します。後退を行うには、下記の関数を呼び出します。
-
wr.mc.back()
……後退
これらの関数を実行中に、もし車両がまっすぐ前進・後退しない場合は、基板上の「回転速度微調整ボリウム」で回転速度を微調整してください。
- 右輪モーター:VR5、左輪モーター:VR6
- 時計回し (F側) で速く、反時計回し (S側) で遅くなります。
回転する
左右モーターを片方ずつ「正転」「逆転」とすることで、車両はその場で回転し、進行方向だけが変わります。
「左逆転・右正転」とすれば左回り、「左正転・右逆転」とすれば右回りとなります。回転を行うには、それぞれ下記の関数を呼び出します。
-
wr.mc.turn_left()
……左回り -
wr.mc.turn_right()
……右回り
また、左右のうち片方のモーターを「停止」とした上で他方を「正転」または「逆転」とすることで、停止側の車軸を中心として曲がりながら走行させることができます。その際は、それぞれ下記の関数を呼び出します。
-
wr.mc.front_tl()
……左折前進 -
wr.mc.front_tr()
……右折前進 -
wr.mc.back_tl()
……左折後退 -
wr.mc.back_tr()
……右折後退
停止する/ブレーキをかける
左右両方のモーターを「停止」、あるいは「ブレーキ」をかけるには、下記の関数を呼び出します。この両者は挙動が若干異なり、走行中に停止をした場合は惰性でしばらく動き続けるのに対し、ブレーキはすぐに止まります。
-
wr.mc.stop()
……停止 -
wr.mc.brake()
……ブレーキ
ここまでの関数を使用した動作例を、CODE5 に示します。
CODE5これ以外にもヘッドライトLED同様、文字列引数で動作を指定する関数や、真偽値で直接モータードライバーIC出力論理を指定する関数などがあります。
詳しくは関数リファレンスページを参照してください。
モーターの速度を調節する
車両ベースのモーターは、動作速度を百分率で指定し、調整することができます。 速度設定は2輪で共通となっています。(左右個別調整はできません)
このモーターの調速機能は、PWM (pulse width modulation) 制御によるものです。停止状態である 0% と、最高速度である 100% の間の中間出力は、運転・停止を高速に切り替えることでつくられています。この運転と停止の比率を調整することで、モーターの速度が変化します。
-
wr.mc.speed(value)
-
引数
value
には、運転速度の百分率を 0.0~100.0 の数値で指定します。
value
の値を小さくしすぎると、DCモーターが回転しなくなりますので注意してください。また、タイヤの接地面の材質によっても状態が変わります。カーペットの上などでは、ゆっくり回転させるのは困難です。
-
引数