いよいよモーターをうごかす#06

CircuitPython

モーターシールドと電池ボックスの接続

タミヤのカムプログラミングロボットに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度です。頑張ってください。

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