This commit is contained in:
Valér Jakubčo 2025-04-17 14:18:02 +02:00
parent 71dbde7c15
commit 00dcc90fda

32
src/servo.py Normal file
View 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()