Project

General

Profile

Funciones.py

Funciones del robot - ariel colque, 12/13/2024 01:40 AM

Download (2.26 KB)

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