-
Notifications
You must be signed in to change notification settings - Fork 0
Examples
vihaanvp edited this page Jul 4, 2026
·
4 revisions
import time
from megawrapper import Board
board = Board("/dev/ttyUSB0")
motor = board.attach_motor(
2, # Direction pin 1
4, # Direction pin 2
11, # PWM pin
)
motor.forward(100) # full speed forward
time.sleep(2)
motor.backward(50) # half speed backward
time.sleep(2)
motor.stop() # coast to stop
board.close()import time
from megawrapper import Board
board = Board("/dev/ttyUSB0")
left = board.attach_motor(2, 4, 11, name="left")
right = board.attach_motor(5, 3, 10, name="right")
# Go straight
left.forward(100)
right.forward(100)
time.sleep(2)
# Turn right
left.forward(100)
right.forward(50)
time.sleep(2)
# Stop
board.stop_all()
board.close()import time
from megawrapper import Board
board = Board("/dev/ttyUSB0", stby=6)
motor = board.attach_motor(2, 4, 11)
motor.forward(100)
time.sleep(2)
board.sleep() # driver disabled
time.sleep(1)
board.wake() # driver re-enabled
motor.backward(100)
time.sleep(2)
board.close()from megawrapper import Board
with Board("/dev/ttyUSB0") as board:
motor = board.attach_motor(2, 4, 11)
motor.forward(100)
input("Press Enter to stop...")
# board.close() called automaticallyfrom megawrapper import Board, Servo, delay
Board("/dev/ttyUSB0")
servo = Servo()
servo.attach(9)
servo.write(90) # centre
delay(1000)
servo.write(0) # minimum
delay(1000)
servo.write(180) # maximumfrom megawrapper import Board, Servo
Board("/dev/ttyUSB0")
servo = Servo()
servo.attach(9)
servo.move_smooth(180) # smooth 1°/step, 15 ms between stepsfrom megawrapper import Board, Servo, delay
Board("/dev/ttyUSB0")
servo = Servo()
servo.attach(6)
while True:
# Slow sweep up
for angle in range(0, 181):
servo.write(angle)
delay(15)
# Fast return
for angle in range(180, -1, -5):
servo.write(angle)
delay(5)import time
from megawrapper import Board, Servo, delay
board = Board("/dev/ttyUSB0")
# Motor
motor = board.attach_motor(2, 4, 11)
motor.forward(100)
# Servo (uses the same board automatically)
servo = Servo()
servo.attach(9)
servo.write(90)
time.sleep(2)
board.close() # stops motor, cleans up everythingfrom megawrapper import Board
board = Board("/dev/ttyUSB0")
motor = board.attach_motor(2, 4, 11)
while True:
cmd = input("f=forward b=backward s=stop q=quit > ").lower()
if cmd == "f":
motor.forward(100)
elif cmd == "b":
motor.backward(100)
elif cmd == "s":
motor.stop()
elif cmd == "q":
break
board.close()from megawrapper import (
Board, MegaWrapperError,
BoardConnectionError,
InvalidSpeedError,
)
try:
board = Board("COM99") # wrong port
except BoardConnectionError as e:
print(f"Connection failed: {e}")
exit(1)
motor = board.attach_motor(2, 4, 11)
try:
motor.forward(-5) # invalid speed
except InvalidSpeedError as e:
print(f"Speed error: {e}")
motor.stop()
board.close()from megawrapper import VL53L0X, delay
sensor = VL53L0X() # auto-creates I2C bus
while True:
dist = sensor.distance
print(f"{dist:.1f} cm")
delay(200)from megawrapper import VL53L0X
sensors = VL53L0X.auto_address([5, 6, 7])
left, centre, right = sensors
while True:
print(f"L:{left.distance:.1f} C:{centre.distance:.1f} R:{right.distance:.1f}")
delay(100)from megawrapper import set_mode, get_mode, Board
set_mode("pyserial") # switch to built-in Firmata client
board = Board("/dev/ttyUSB0")
motor = board.attach_motor(2, 4, 11)
motor.forward(100)
print(get_mode()) # "pyserial"
board.close()Requires
pip install -e '.[pyserial]'. Theset_mode()call must come beforeBoard().