在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给出错误,因为整数对象不可迭代)