回転センサーなしモーター

pupmotors

図 1 Powered Up 回転センサーなしモーター。矢印はデフォルトの正方向を示しています。

Asimple motoronwith forward
class DCMotor(port, positive_direction=Direction.CLOCKWISE)

LEGO® Powered Up 回転センサーなしモーター。

パラメータ:
  • port (Port) -- モーターが接続されているポート。

  • positive_direction (Direction) -- 正のデューティ比の値を与えたとき、モーターがどの方向に回転すべきかを示します。

simple motor50%power atduty cycle
dc(duty)

指定のデューティ比(「パワー」とも言います)でモーターを回転させます。

パラメータ:

duty (Number, %) -- デューティ比 (-100.0 から 100 の間)。

simple motorcoaststop
stop()

モーターを停止し、惰性で回転するままにします。

モーターは摩擦により徐々に停止します。

simple motorbrakestop
brake()

モータに受動的にブレーキをかけます。

摩擦による停止に加え、モータが動いている間に発生した電圧で停止します。

settings(max_voltage)
settings() Tuple[int]

モータの設定を行います。引数を与えない場合は、現在の値を返します。

パラメータ:

max_voltage (Number, mV) -- すべてのモーターコマンドの間、モーターにかかる最大電圧。

サンプルコード

トレインを動かし続ける

from pybricks.pupdevices import DCMotor
from pybricks.parameters import Port
from pybricks.tools import wait

# モーターを初期化。
train_motor = DCMotor(Port.A)

# トレインの「電圧」レベルを指定。負の値は逆方向を意味する。
train_motor.dc(50)

# 何もしない状態を維持。トレインはひたすら走り続ける。
while True:
    wait(1000)

モーターを前後に動作

from pybricks.pupdevices import DCMotor
from pybricks.parameters import Port
from pybricks.tools import wait

# ポート A に繋いだ回転センサーなしモーターを初期化。
example_motor = DCMotor(Port.A)

# 70%のデューティ比(「70%の電圧」)でモーターを時計回り(正転)に回転させる。
example_motor.dc(70)

# 3秒待機。
wait(3000)

# 70%のデューティ比(「70%の電圧」)でモーターを反時計回り(後転)に回転させる。
example_motor.dc(-70)

# 3秒待機。
wait(3000)

正方向の変更

from pybricks.pupdevices import DCMotor
from pybricks.parameters import Port, Direction
from pybricks.tools import wait

# ポート A に繋いだモーターについて、反時計回りを正方向を
# とするように初期化。
example_motor = DCMotor(Port.A, Direction.COUNTERCLOCKWISE)

# 正の速度値を指定すると、モータは今度は反時計回りに回転。
example_motor.dc(70)

# これは、モーター(トレイン)が逆向きに取り付けられている場合や、逆さまに取り付け
# られている場合に有効です。正方向を変更することで、正の速度値でトレインやロボットが
# 前進するようになり、スクリプトが読みやすくなります。

# 3秒待機。
wait(3000)

始動と停止

from pybricks.pupdevices import DCMotor
from pybricks.parameters import Port
from pybricks.tools import wait

# ポート A に繋いだモーターの初期化。
example_motor = DCMotor(Port.A)

# 始動と停止を10回繰り返す。
for count in range(10):
    print("Counter:", count)

    example_motor.dc(70)
    wait(1000)

    example_motor.stop()
    wait(1000)