Micropython + ESP32-Pro + Control Servo
2026-10-17

import os
f=open("servo.py", "w")
f.write("""
from machine import Pin, PWM
class Servo:
def __init__(self, pin: int or Pin or PWM, minVal=2500, maxVal=7500):
if isinstance(pin, int):
pin = Pin(pin, Pin.OUT)
if isinstance(pin, Pin):
self.__pwm = PWM(pin)
if isinstance(pin, PWM):
self.__pwm = pin
self.__pwm.freq(50)
self.minVal = minVal
self.maxVal = maxVal
def deinit(self):
self.__pwm.deinit()
def goto(self, value: int):
if value < 0:
value = 0
if value > 1024:
value = 1024
delta = self.maxVal-self.minVal
target = int(self.minVal + ((value / 1024) * delta))
self.__pwm.duty_u16(target)
def middle(self):
self.goto(512)
def free(self):
self.__pwm.duty_u16(0)""");
f.close()
def servo_Angle(var1, angle):
if angle < 0:
angle = 0
if angle > 180:
angle = 180
var1.goto(round(angle * 1024 / 180))
from machine import Pin, SoftI2C, ADC, PWM, UART
from time import sleep,sleep_ms, sleep_us
#import tm1637
import network
import math
from servo import Servo
servo=Servo(32)
for i in range(10):
servo_Angle(servo, 0)
sleep(1)
servo_Angle(servo, 180)
sleep(1)