0

在 Python 中,我编写了一个脚本来读取游戏的指针,它通过 python 控制台读取和输出数据。现在我正在尝试将该数据发送到 Arduino 并移动类似于速度计的伺服电机。

我遇到的问题是伺服电机在从 python 接收数据时没有正确移动。有时卡住,有时没有反应。有点奇怪,因为我试图手动将伺服电机从 python 移动到 arduino 并且它响应,但延迟 0.5 秒,即使我尝试使用 LED,它也会立即响应。

这是Arduino的代码

#include <Servo.h>

int angulo = 0;
Servo miServo;

void setup() {
  miServo.attach(3);
  Serial.begin(9600);
}

void loop() {
  if(Serial.available() > 0)
  {
    angulo=Serial.parseInt();
    angulo=constrain(angulo,0,180);
  }
  miServo.write(angulo);
}

这是我从 python 执行的代码

# memreading it's from a module that i've created
import memreading, serial

# PLANTILLA
###################################################
proceso = 'or2006c2c.exe'
velocidad = 0x07806A4

# CODIGO COMUNICACION SERIAL
###################################################   
ser = serial.Serial('COM3', 9600)

# CODIGO LECTURA DE MEMORIA
###################################################
mem = memreading.MemReading()

processHandle = mem.openProcess(mem.attachToProcess(proceso))

def lecturaMemoria():
    data = mem.readMemory(processHandle, velocidad)
    data = int(float(data)/1.59)
    return str(data)

while True:
    try:
        ser.open()
        dato = lecturaMemoria()
        print dato
        ser.write(dato)
    except KeyboardInterrupt:
        ser.close()
        break

这是在内存中读取的代码https://gist.github.com/PPastene/f955a80abc55964733accc9d9133b488

我不会解释该代码,但数据会从 mem.readMemory() 函数以字符串形式返回。它被解析为整数,因为它需要计算然后再次解析为字符串(我不能将整数值放入循环中,python 给出错误,因为整数对象不可迭代)

4

0 回答 0