-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMotor_Serial.py
65 lines (50 loc) · 1.73 KB
/
Motor_Serial.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#######################################################################
# Selector de orden de objetivos empezando por el centro de la imagen #
#######################################################################
import cv2 as cv
import numpy as np
import Utiles
import Config
import Selector
import serial
from serial.tools import list_ports
import time
pos = [0, 0] # Posicion
def desplazamiento(arduino, punto):
"""Ordena a arduino por serial que mueva los motores hacia el punto"""
global pos
x = punto[0] - pos[0]
y = punto[1] - pos[1]
x_step = x * Config.Motor.pixeles_a_step
y_step = y * Config.Motor.pixeles_a_step
pos = [pos[0]+x_step, pos[1]+y_step]
arduino.write(f"{x_step} {y_step}\n".encode())
return punto
def disparo(orden_objetivos, objetivos_destruidos):
"""Dispara cuando esta cerca del objetivo, debería activar un interruptor
En la implementacion real debe activar el disparo (relay o pulso)"""
objetivos_destruidos.append(orden_objetivos[0])
# print(orden_objetivos.shape)
orden_objetivos = orden_objetivos[1:]
return orden_objetivos
def conexion_serial():
"Genera una conexion serial para la comunicacion"
plist = list_ports.comports()
print(plist[0][0])
print(plist[-1][0])
return serial.Serial(
# port=plist[0][0], # El ultimo de la lista
port=plist[-1][0], # El ultimo de la lista
baudrate=Config.Serial.baudrate,
parity=Config.Serial.parity,
stopbits=Config.Serial.stopbits,
bytesize=Config.Serial.bytesize)
if __name__ == "__main__":
# DEBUG Prueba de las funciones (No se usara, Archivo usado como libreria)
titulo = "Motor Serial"
arduino = conexion_serial()
punto = [0, 0]
# punto = [100, 100]
desplazamiento(arduino, punto)
data = arduino.readline()
print(data)