Funciones.py
| 1 |
#!/usr/bin/env python3
|
|---|---|
| 2 |
from ev3dev2.motor import LargeMotor, MediumMotor, OUTPUT_A, OUTPUT_B, OUTPUT_C, OUTPUT_D, SpeedPercent, MoveTank |
| 3 |
from ev3dev2.sound import Sound |
| 4 |
|
| 5 |
# Sonido para alertas
|
| 6 |
sound = Sound() |
| 7 |
|
| 8 |
# Motores
|
| 9 |
ruedas = MoveTank(OUTPUT_A, OUTPUT_B) # Motores para las ruedas izquierda y derecha
|
| 10 |
brazo = LargeMotor(OUTPUT_D) # Motor para el brazo
|
| 11 |
garra = MediumMotor(OUTPUT_C) # Motor para la garra
|
| 12 |
|
| 13 |
# Función para mover hacia adelante por un tiempo específico
|
| 14 |
def Adelante(): |
| 15 |
ruedas.on_for_seconds(SpeedPercent(100), SpeedPercent(100), seconds=1) |
| 16 |
|
| 17 |
# Función para mover hacia atrás por un tiempo específico
|
| 18 |
def Atras(): |
| 19 |
ruedas.on_for_seconds(SpeedPercent(-70), SpeedPercent(-70), seconds=1) |
| 20 |
|
| 21 |
# Función para girar a la izquierda por un tiempo específico
|
| 22 |
def Izquierda(): |
| 23 |
ruedas.on_for_seconds(SpeedPercent(-20), SpeedPercent(20), seconds=1) |
| 24 |
|
| 25 |
# Función para girar a la derecha por un tiempo específico
|
| 26 |
def Derecha(): |
| 27 |
ruedas.on_for_seconds(SpeedPercent(20), SpeedPercent(-20), seconds=1) |
| 28 |
|
| 29 |
def SubirBrazo(): |
| 30 |
print("Subiendo brazo...")
|
| 31 |
brazo.on_for_degrees(SpeedPercent(50), 60, brake=True) |
| 32 |
print("Movimiento completado, brazo detenido.")
|
| 33 |
|
| 34 |
def BajarBrazo(): |
| 35 |
print("Bajando brazo...")
|
| 36 |
brazo.on_for_degrees(SpeedPercent(-50), 60, brake=True) |
| 37 |
print("Movimiento completado, brazo detenido.")
|
| 38 |
|
| 39 |
# Calibrar el brazo a posición inicial
|
| 40 |
def CalibrarBrazo(): |
| 41 |
brazo.on(SpeedPercent(-20)) # Mueve hacia abajo lentamente |
| 42 |
while not brazo.is_stalled: # Espera a que toque el límite inferior |
| 43 |
pass
|
| 44 |
brazo.off(brake=True)
|
| 45 |
brazo.reset() # Establece la posición actual como 0
|
| 46 |
sound.beep() |
| 47 |
|
| 48 |
# Función para agarrar
|
| 49 |
def Agarrar(): |
| 50 |
garra.on_for_degrees(SpeedPercent(50), 90) # Cierra la garra |
| 51 |
|
| 52 |
# Función para soltar
|
| 53 |
def Soltar(): |
| 54 |
garra.on_for_degrees(SpeedPercent(-50), 90) # Abre la garra |
| 55 |
|
| 56 |
def Parar(): |
| 57 |
ruedas.stop() |
| 58 |
brazo.stop() # Detiene el brazo
|
| 59 |
garra.stop() |
| 60 |
|
| 61 |
|
| 62 |
# Bucle principal para pruebas
|
| 63 |
if __name__ == "__main__": |
| 64 |
sound.speak("Iniciando pruebas")
|
| 65 |
CalibrarBrazo() # Asegura que el brazo está calibrado
|
| 66 |
SubirBrazo() # Sube el brazo
|
| 67 |
BajarBrazo() # Baja el brazo
|
| 68 |
Agarrar() # Cierra la garra
|
| 69 |
Soltar() # Abre la garra
|
| 70 |
sound.speak("Pruebas finalizadas")
|