Código Utilizado » History » Version 4
« Previous -
Version 4/10
(diff) -
Next » -
Current version
Melisa Laura, 12/21/2023 04:13 PM
Índice:
Código Utilizado¶
Servidor
import socket from robot import robot server = socket.socket() PORT = 8800 server.bind(('', PORT)) server.listen(1) connection, adress = server.accept() robot = Robot()[[]] actions = { "w" : robot.move_front, "a" : robot.move_left, "d" : robot.move_right, "s" : robot.move_back, "e" : robot.move_punch, } while True: data = connection.recv(1) keyword = data.decode("utf-8") if keyword in actions: actions[keyword]() elif keyword == "q": break
Funciones del Robot
from ev3dev2.motor import (LargeMotor, MoveTank, MediumMotor, OUTPUT_A, OUTPUT_B, OUTPUT_C, OUTPUT_D) from time import sleep class Robot: eje = 0 base = -0.58 MAX_VALUE_EJE = 140 MIN_VALUE_EJE = -140 MAX_VALUE_BASE = 0 MIN_VALUE_BASE = -0.58 SPEED = 100 contaux1 = 0 contaux2 = 0 cont = 1 def __init__(self): self.out_a = LargeMotor(OUTPUT_A) # movimiento pelota self.out_b = LargeMotor(OUTPUT_B) # ruedas de atras, movimiento self.out_c = MediumMotor(OUTPUT_C) # ruedas de rotacion, giro izquierda/derecha self.out_d = MediumMotor(OUTPUT_D) # lanzamiento de pelota # Función para desactivar completamente el robot def off_robot(self): self.out_a.stop() self.out_b.stop() self.out_c.stop() self.out_d.stop() # Función para mover el robot hacia adelante def move_front(self): self.out_b.on_for_rotations(speed = 100, rotations= -2, brake = True, block = True) self.out_b.stop() # Función para mover el robot hacia atras def move_back(self): self.out_b.on_for_rotations(speed = 100, rotations= 2, brake = True, block = True) self.out_b.stop() # Función para mover las ruedas del robot hacia la derecha def move_right(self): if(self.MIN_VALUE_EJE < self.eje): # Se comprueba el eje de las ruedas para no provocar una falla en el robot / para que no se queden pegadas self.out_c.on_for_degrees(speed = 100, degrees = -1.4, brake = True, block = True) self.eje-=1.4 self.contaux1-=1 print(self.eje) self.out_c.stop() # Función para mover las ruedas del robot hacia la izquierda def move_left(self): if(self.MAX_VALUE_EJE > self.eje): # Se comprueba el eje de las ruedas para no provocar una falla en el robot / para que no se queden pegadas self.out_c.on_for_degrees(speed = 100, degrees = 1.4, brake = True, block = True) self.eje+=1.4 self.contaux2+=1 print(self.eje) self.out_c.stop() # Función para ingresar los grados para hacer el golpe def move_punch(self, vel, grad): self.vel = vel self.grad = grad self.out_d.on_for_degrees(speed = 100, degrees=grad) self.out_d.stop() # Función para mover la base de la pelota, hacia adelante def mov_adel(self): if(self.MAX_VALUE_BASE>self.base): # Se comprueba la base de la pelota para que no falle el robot / en este caso para que no se golpee hacia atras self.out_a.on_for_rotations(speed = 100, rotations=-0.0116, brake = True, block = True) self.base += 0.0116 self.out_a.stop() # Función para mover la base de la pelota, hacia atras def mov_atras(self): if(self.MIN_VALUE_BASE<self.base): # Se comprueba la base de la pelota para que no falle el robot / en este caso es para que no se pase hacia adelante self.out_a.on_for_rotations(speed = 100, rotations=0.0116, brake = True, block = True) self.base -= 0.0116 self.out_a.stop() def off(self): if(self.base>-0.58): # Se comprueba si esta en la posicion original la base de la pelota while(True): if(50 == self.cont): return False # Se rompe el ciclo solo si la base tiene 4, donde estara en posicion original else: self.out_a.on_for_rotations(speed = 100, rotations = 0.0116, brake = True, block = True) self.base+=0.0116 self.cont = self.cont + 1 print(self.cont) self.out_a.stop()