edited
This commit is contained in:
parent
71dbde7c15
commit
00dcc90fda
32
src/servo.py
Normal file
32
src/servo.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import machine
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
|
||||||
|
servo_pin = machine.Pin(15)
|
||||||
|
pwm = machine.PWM(servo_pin)
|
||||||
|
pwm.freq(50)
|
||||||
|
|
||||||
|
def set_angle(angle):
|
||||||
|
pulse_us = 1000 + (angle / 180) * 1000
|
||||||
|
duty = int((pulse_us / 20000) * 65535)
|
||||||
|
pwm.duty_u16(duty)
|
||||||
|
|
||||||
|
def move_servo_smoothly(start_angle, end_angle, step=1, delay=0.02):
|
||||||
|
if start_angle < end_angle:
|
||||||
|
for angle in range(start_angle, end_angle + 1, step):
|
||||||
|
set_angle(angle)
|
||||||
|
time.sleep(delay)
|
||||||
|
else:
|
||||||
|
for angle in range(start_angle, end_angle - 1, -step):
|
||||||
|
set_angle(angle)
|
||||||
|
time.sleep(delay)
|
||||||
|
|
||||||
|
def open_door():
|
||||||
|
move_servo_smoothly(0, 180, step=2, delay=0.03)
|
||||||
|
time.sleep(5)
|
||||||
|
move_servo_smoothly(180, 0, step=2, delay=0.03)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
command = sys.stdin.readline().strip()
|
||||||
|
if command == "run":
|
||||||
|
open_door()
|
Loading…
Reference in New Issue
Block a user