-
Notifications
You must be signed in to change notification settings - Fork 0
Motor API
The Motor class controls a DC motor connected through an H-bridge driver that uses 2 direction pins + 1 PWM pin (e.g. L298N, TB6612FNG, L293D, MX1508).
You never create a Motor directly — use board.attach_motor().
Motor.forward(speed: int | float = 100) -> NoneRotate the motor forward at the given speed.
| Parameter | Type | Default | Description |
|---|---|---|---|
speed |
int/float |
100 |
Speed percentage (0 = stop, 100 = full). |
Raises: InvalidSpeedError if speed is not a number or outside 0–100.
motor.forward() # full speed
motor.forward(75) # 75% speedMotor.backward(speed: int | float = 100) -> NoneRotate the motor backward. Same parameters and validation as forward().
motor.backward(50) # 50% speed backwardMotor.stop() -> NoneCoast to a stop (both direction pins LOW, PWM = 0).
motor.stop()Motor.brake() -> NoneBrake by shorting the motor terminals (both direction pins HIGH, PWM = 0). Stops more abruptly than stop().
motor.brake()Motor.set_speed(speed: int | float) -> NoneChange speed without altering direction.
| Parameter | Type | Description |
|---|---|---|
speed |
int/float |
New speed (0–100). |
motor.forward(100)
motor.set_speed(30) # now going forward at 30%Motor.speed -> intCurrent speed (0–100). Readable and writable (setter calls set_speed()).
print(motor.speed) # e.g. 75
motor.speed = 50 # same as motor.set_speed(50)Motor.direction -> strOne of: "forward", "backward", "stopped", "braked".
print(motor.direction) # e.g. "forward"Motor.name -> str | NoneThe optional name given at creation time.
motor = board.attach_motor(2, 4, 11, name="left")
print(motor.name) # "left"repr(motor) # e.g. "Motor(direction='forward', speed=75)"