from machine import Pin, PWM
from time import sleep
import random
pwm_pin = PWM(Pin(0))
pwm_pin.freq(50)
# Define the PWM range
PWM_MIN = 1000
PWM_MAX = 9000
# Map angle (0-360) to PWM value
def angle_to_pwm(angle):
return int(PWM_MIN + (angle / 360) * (PWM_MAX - PWM_MIN))
def rotate_servo(position):
pwm_pin.duty_u16(position)
sleep(0.1)
# List to store the angles
angle_data = []
# Continuous rotation of the servo
try:
while len(angle_data) < 100:
random_angle = random.randint(0, 360)
angle_data.append(random_angle)
print(random_angle)
# Convert angle to PWM value and rotate the servo
pwm_value = angle_to_pwm(random_angle)
rotate_servo(pwm_value)
sleep(0.1)
except KeyboardInterrupt:
print("Collection stopped.")
finally:
print("Collected Servo Angles:")
for angle in angle_data:
print(angle)