import machine
import utime
DIR_PIN = machine.Pin(2, machine.Pin.OUT)
STEP_PIN = machine.Pin(3, machine.Pin.OUT)
def forward(dist):
DIR_PIN.high()
for i in range(dist):
STEP_PIN.high()
STEP_PIN.low()
utime.sleep_ms(1)
def backward(dist):
DIR_PIN.low()
for i in range(dist):
STEP_PIN.high()
STEP_PIN.low()
utime.sleep_ms(2)
def setup():
STEP_PIN.low()
def loop():
# Move 200 steps (one rotation) CW over one second
forward()
# backward(i)
servo_pin = machine.Pin(17, machine.Pin.OUT)
pwm = machine.PWM(servo_pin)
pwm.freq(50)
def set_angle(angle):
duty_cycle = 5000 + (10000 / 180 * angle)
pwm.duty_u16(int(duty_cycle))
def left():
for angle in range(0, 91, 10):
set_angle(angle)
utime.sleep_ms(500)
def right():
for angle in range(90, -1, -10):
set_angle(angle)
utime.sleep_ms(500)
setup()
while True:
dist = int(input("Distance : "))
i = int(input("1(Forward) / 0(Backward) : "))
if i == 1 : forward(dist)
else : backward(dist)
dire = (input("Direction : (l/r) : "))
if dire == 'l' : left()
else : right()