from machine import Pin, PWM
from time import sleep
# Configuración de los servos
servo_pulgar = PWM(Pin(15))
servo_indice = PWM(Pin(16))
servo_medio = PWM(Pin(17))
servo_anular_meñique = PWM(Pin(18))
# Configuración de la frecuencia para los servos
for servo in [servo_pulgar, servo_indice, servo_medio, servo_anular_meñique]:
servo.freq(50)
# Función para mover un servo a un ángulo específico
def mover_servo(servo, angulo):
duty = int((angulo / 180) * 102 + 25)
servo.duty(duty)
# Movimientos definidos
def sujecion():
mover_servo(servo_pulgar, 90)
mover_servo(servo_indice, 45)
mover_servo(servo_medio, 45)
mover_servo(servo_anular_meñique, 45)
sleep(1)
def esferico():
mover_servo(servo_pulgar, 60)
mover_servo(servo_indice, 60)
mover_servo(servo_medio, 60)
mover_servo(servo_anular_meñique, 60)
sleep(1)
def cilindrico():
mover_servo(servo_pulgar, 70)
mover_servo(servo_indice, 50)
mover_servo(servo_medio, 50)
mover_servo(servo_anular_meñique, 50)
sleep(1)
def gancho():
mover_servo(servo_pulgar, 0)
mover_servo(servo_indice, 0)
mover_servo(servo_medio, 0)
mover_servo(servo_anular_meñique, 0)
sleep(1)
def punta():
mover_servo(servo_pulgar, 90)
mover_servo(servo_indice, 90)
mover_servo(servo_medio, 0)
mover_servo(servo_anular_meñique, 0)
sleep(1)
def palmar():
mover_servo(servo_pulgar, 0)
mover_servo(servo_indice, 0)
mover_servo(servo_medio, 0)
mover_servo(servo_anular_meñique, 0)
sleep(1)
# Configuración de botones
boton_sujecion = Pin(10, Pin.IN, Pin.PULL_DOWN)
boton_esferico = Pin(11, Pin.IN, Pin.PULL_DOWN)
boton_cilindrico = Pin(12, Pin.IN, Pin.PULL_DOWN)
boton_gancho = Pin(13, Pin.IN, Pin.PULL_DOWN)
boton_punta = Pin(14, Pin.IN, Pin.PULL_DOWN)
boton_palmar = Pin(15, Pin.IN, Pin.PULL_DOWN)
# Función para verificar los botones y ejecutar el movimiento correspondiente
def verificar_botones():
if boton_sujecion.value():
sujecion()
elif boton_esferico.value():
esferico()
elif boton_cilindrico.value():
cilindrico()
elif boton_gancho.value():
gancho()
elif boton_punta.value():
punta()
elif boton_palmar.value():
palmar()
# Bucle principal
while True:
verificar_botones()
sleep(0.1)