Código e Implementación » History » Version 10
Javier Huanca, 12/16/2023 05:09 PM
1 | 1 | Javier Huanca | h1. Código e Implementación |
---|---|---|---|
2 | 1 | Javier Huanca | |
3 | 1 | Javier Huanca | h2. +Funciones+ |
4 | 2 | Javier Huanca | |
5 | 7 | Javier Huanca | <pre> |
6 | 2 | Javier Huanca | from ev3dev2.motor import LargeMotor, MediumMotor, OUTPUT_A, OUTPUT_B, OUTPUT_C, OUTPUT_D, SpeedRPM, MoveTank |
7 | 2 | Javier Huanca | from ev3dev2.sound import Sound |
8 | 2 | Javier Huanca | import math |
9 | 2 | Javier Huanca | import os |
10 | 2 | Javier Huanca | import sys |
11 | 2 | Javier Huanca | from time import sleep |
12 | 8 | Javier Huanca | #movimiento simultáneo de las ruedas(rueda izquierda, rueda derecha) |
13 | 8 | Javier Huanca | movimiento_ruedas = MoveTank(OUTPUT_A, OUTPUT_B) |
14 | 8 | Javier Huanca | #movimiento del palo del robot |
15 | 8 | Javier Huanca | mPalo = LargeMotor(OUTPUT_C) |
16 | 8 | Javier Huanca | #movimiento de rotación de las ruedas delanteras |
17 | 8 | Javier Huanca | mRotar = MediumMotor(OUTPUT_D) |
18 | 8 | Javier Huanca | |
19 | 8 | Javier Huanca | |
20 | 8 | Javier Huanca | #función para lanzar un objeto con el palo |
21 | 8 | Javier Huanca | def lanzar(distancia): |
22 | 8 | Javier Huanca | pi = math.pi |
23 | 8 | Javier Huanca | vel_necesaria = math.sqrt((4.9*distancia)/math.cos(pi/4)*math.sin(pi/4)) |
24 | 8 | Javier Huanca | vel_rpm = (60*vel_necesaria)/(2*pi*0.189) |
25 | 8 | Javier Huanca | # Rotar el motor en -180 grados al 6% de velocidad |
26 | 8 | Javier Huanca | mPalo.on_for_degrees(6,-180) |
27 | 8 | Javier Huanca | # Rotar el motor en 225 grados al porcentaje de velocidad de vel_rpm |
28 | 8 | Javier Huanca | mPalo.on_for_degrees(SpeedRPM(round(vel_rpm)),225) |
29 | 8 | Javier Huanca | # Rotar el motor en -45 grados al 6% de la velocidad |
30 | 8 | Javier Huanca | mPalo.on_for_degrees(6,-45) |
31 | 8 | Javier Huanca | |
32 | 8 | Javier Huanca | #función para mover el robot hacia adelante |
33 | 8 | Javier Huanca | def mover_adelante(): |
34 | 8 | Javier Huanca | movimiento_ruedas.on(-100, -100) |
35 | 8 | Javier Huanca | |
36 | 8 | Javier Huanca | #función para mover el robot hacia atras |
37 | 8 | Javier Huanca | def mover_atras(): |
38 | 8 | Javier Huanca | movimiento_ruedas.on(100, 100) |
39 | 8 | Javier Huanca | |
40 | 8 | Javier Huanca | #función para mover el robot hacia la izquierda |
41 | 8 | Javier Huanca | def mover_izquierda(): |
42 | 8 | Javier Huanca | mRotar.on(50) |
43 | 8 | Javier Huanca | |
44 | 8 | Javier Huanca | #función para mover el robot hacia la derecha |
45 | 8 | Javier Huanca | def mover_derecha(): |
46 | 8 | Javier Huanca | mRotar.on(-50) |
47 | 8 | Javier Huanca | |
48 | 8 | Javier Huanca | #función para detener el robot |
49 | 8 | Javier Huanca | def detener(): |
50 | 8 | Javier Huanca | movimiento_ruedas.stop() |
51 | 5 | Javier Huanca | </pre> |
52 | 9 | Javier Huanca | |
53 | 10 | Javier Huanca | <pre> |
54 | 9 | Javier Huanca | import socket |
55 | 9 | Javier Huanca | from funciones import * |
56 | 9 | Javier Huanca | |
57 | 9 | Javier Huanca | #se crea un socket |
58 | 9 | Javier Huanca | s = socket.socket() |
59 | 9 | Javier Huanca | s.settimeout(5) |
60 | 9 | Javier Huanca | print("Socket creado") |
61 | 9 | Javier Huanca | port = 2222 |
62 | 9 | Javier Huanca | #se asocia una dirección IP y un número de puerto al socket |
63 | 9 | Javier Huanca | s.bind(("", port)) |
64 | 9 | Javier Huanca | print("El socket se creo con puerto:{}".format(port)) |
65 | 9 | Javier Huanca | #se comienza a escuchar conexiones entrantes (máximo 5 conexiones pendientes) |
66 | 9 | Javier Huanca | s.listen(5) |
67 | 9 | Javier Huanca | print("The socket is listening....") |
68 | 9 | Javier Huanca | #se acepta la conexión, creando un nuevo socket a partir de la conexion entrante y la dirección del cliente |
69 | 9 | Javier Huanca | connect, addr = s.accept() |
70 | 9 | Javier Huanca | print("Se conecto a {}".format(addr)) |
71 | 9 | Javier Huanca | while True: |
72 | 9 | Javier Huanca | #se define el carácter que el socket del cliente recibe como dato |
73 | 9 | Javier Huanca | rawByte = connect.recv(1) |
74 | 9 | Javier Huanca | #se traduce el carácter recibido |
75 | 9 | Javier Huanca | char = rawByte.decode('utf-8') |
76 | 9 | Javier Huanca | if (char == 'w'): |
77 | 9 | Javier Huanca | mover_adelante() |
78 | 9 | Javier Huanca | if (char == 's'): |
79 | 9 | Javier Huanca | mover_atras() |
80 | 9 | Javier Huanca | if (char == 'a'): |
81 | 9 | Javier Huanca | mover_izquierda() |
82 | 9 | Javier Huanca | if (char == 'd'): |
83 | 9 | Javier Huanca | mover_derecha() |
84 | 9 | Javier Huanca | if (char == ' '): |
85 | 9 | Javier Huanca | detener() |
86 | 9 | Javier Huanca | if (char == 'l'): |
87 | 9 | Javier Huanca | lanzar(2) |
88 | 9 | Javier Huanca | </pre> |