金宏和實です。
Spike Primeでロボットを組み立てる場合、左右の二つのモーターでロボットを走らせることが多いだろう。motor_pairモジュールを使うと、左右の2つのモーターをペアにして動かすことができる。今回は一番簡単な例を紹介する。
import motor_pair
from hub import port
import time
motor_pair.pair(motor_pair.PAIR_1, port.C, port.D)
motor_pair.move(motor_pair.PAIR_1, 0)
time.sleep(3)
motor_pair.stop(motor_pair.PAIR_1)
import motor_pairでmotor_pairモジュールをインポートして、motor_pair.pair()でモーターペアを作る。複数のモーターペアを作ることができるので、motor_pair.PAIR_1のようにPAIR_nという定数で連番を指定できる。第二引数、第三引数にport.C, port.Dのように左右のモーターを指定する。move()でロボットは動くが、move()の第二引数はステアリングだ。-100から100の範囲で指定できる。motor_pair.move(motor_pair.PAIR_1, 50)のようにするとロボットは右旋回する。
stop()でロボットは止まる。
move()とstopの間にあるtime.sleep(3)がロボットが走る時間だ。単位はSecond(秒)だが、time.sleep(0.5)のように小数点以下の値を指定することもできる。
time.sleep()にはtime.sleep_ms()というバリエーションもあり、こちらはミリSecondで時間を指定できる。ちなみにtime.sleep_ms(200)は0.2秒スリープする。
motor_pair.move_tank(motor_pair.PAIR_1, 500,0)
time.sleep_ms(500)
motor_pair.move_tank(motor_pair.PAIR_1, 500,500)
time.sleep(2)
motor_pair.stop(motor_pair.PAIR_1)
motor_pair.move_tank(motor_pair.PAIR_1, -500,-500)
time.sleep(2)
motor_pair.stop(motor_pair.PAIR_1)
move_tank()を使うと左右のモーターのスピードを指定することができる。
move_tank(motor_pair.PAIR_1, 500,0)は左側のモーターだけが回るので右折する。
move_tank(motor_pair.PAIR_1, 500,500)は直進する。
motor_pair.move_tank(motor_pair.PAIR_1, -500,-500)は後退する。