モーターシールドと電池ボックスの接続
タミヤのカムプログラミングロボットにMaker Pi RP2040をつなぎます。左キャタピラをMotor1、右キャタピラをMotor2に接続します。モニターボタンを押してそれぞれM1Aが前進M1Bが後進するように接続。右キャタピラはM2Aを前進、M2Bを後進になるようにつなぎます。バッテリーボックスはスイッチ付き単3×3本タイプを使用。
モーターを制御する
#CircuitPythonでモーターシールドをうごかす
import board
import pwmio
import time
from adafruit_motor import motor
# DC motorsを初期化
m1a = pwmio.PWMOut(board.GP8, frequency=10000)
m1b = pwmio.PWMOut(board.GP9, frequency=10000)
motor1 = motor.DCMotor(m1a, m1b)
m2a = pwmio.PWMOut(board.GP10, frequency=10000)
m2b = pwmio.PWMOut(board.GP11, frequency=10000)
motor2 = motor.DCMotor(m2a, m2b)
while True:
# 50% speedでモーターをうごかす。
motor1.throttle = -0.5 # motor1.throttle 1 or -1まで使えます
motor2.throttle = -0.5
time.sleep(1)
# モーターを止める
motor1.throttle = None # motor1.throttle = None to spin freely
motor2.throttle = None
time.sleep(0.5)
adafruit_motorのmotorを使う
adafruit_motorライブラリのmotorモジュールをインポートします。
GP8,GP9をアウトプットモードにして、motor1に設定。GP10,GP11をアウトプットモードにして、motor2に設定。設定が終わってしまえばmotor1.throttle = -1~1の間の数値を設定すればそのスピードと回転方向で動きます。マイナスの数値だと後退、プラスの数値だと前進です。
回転するには?
360度回転させるにはどうしたらいいでしょう?左は前進、右は後退をかけてみます。何秒間必要ですか?私のマシンではthrottle 1左-0.5、2右+0.5で5秒です。反対に右回りはどうでしょう。throttle1左0.5、2右-0.5で5秒。その場での方向転換に使えますね。
カーブさせてみよう
throttle1左を0、throttle2右+0.5にするとどうでしょう?左にブレーキがかかっていてぎこちない動きになってしまいますね。2左を+0.2くらいにするといいようです。私のマシーンではこの数値3.5秒で90度曲がってくれました。
TAMIYA CAM ROBOTにダンスをさせる
では好きなように動かしてみましょう。
最後に課題を出します。2秒間早く前進ー4秒間ゆっくり後退ー左回転90度ー右回転90度ー右カーブ45度です。頑張ってください。