Project

General

Profile

Código e Implementación » History » Version 11

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 11 Javier Huanca
h2. +Servidor+
54 11 Javier Huanca
55 10 Javier Huanca
<pre>
56 9 Javier Huanca
import socket
57 9 Javier Huanca
from funciones import *
58 9 Javier Huanca
59 9 Javier Huanca
#se crea un socket
60 9 Javier Huanca
s = socket.socket()
61 9 Javier Huanca
s.settimeout(5)
62 9 Javier Huanca
print("Socket creado")
63 9 Javier Huanca
port = 2222
64 9 Javier Huanca
#se asocia una dirección IP y un número de puerto al socket
65 9 Javier Huanca
s.bind(("", port))
66 9 Javier Huanca
print("El socket se creo con puerto:{}".format(port))
67 9 Javier Huanca
#se comienza a escuchar conexiones entrantes (máximo 5 conexiones pendientes)
68 9 Javier Huanca
s.listen(5)
69 9 Javier Huanca
print("The socket is listening....")
70 9 Javier Huanca
#se acepta la conexión, creando un nuevo socket a partir de la conexion entrante y la dirección del cliente
71 9 Javier Huanca
connect, addr = s.accept()
72 9 Javier Huanca
print("Se conecto a {}".format(addr))
73 9 Javier Huanca
while True:
74 9 Javier Huanca
    #se define el carácter que el socket del cliente recibe como dato
75 9 Javier Huanca
    rawByte = connect.recv(1)
76 9 Javier Huanca
    #se traduce el carácter recibido
77 9 Javier Huanca
    char = rawByte.decode('utf-8')
78 9 Javier Huanca
    if (char == 'w'):
79 9 Javier Huanca
        mover_adelante()
80 9 Javier Huanca
    if (char == 's'):
81 9 Javier Huanca
        mover_atras()
82 9 Javier Huanca
    if (char == 'a'):
83 9 Javier Huanca
        mover_izquierda()
84 9 Javier Huanca
    if (char == 'd'):
85 9 Javier Huanca
        mover_derecha()
86 9 Javier Huanca
    if (char == ' '):
87 9 Javier Huanca
        detener()
88 9 Javier Huanca
    if (char == 'l'):
89 9 Javier Huanca
        lanzar(2)
90 9 Javier Huanca
</pre>