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")
|