1

我需要帮助将串行数据从搅拌机游戏引擎传输到arduino

我正在从搅拌机进行键盘输入并尝试与arduino通信,但它不起作用。

这是搅拌机代码

import serial

ser = serial.Serial("COM6", 9600)
x=ser.write(1)   
print(x)
ser.close()

逻辑

键“a”-> Python 脚本

http://i.stack.imgur.com/fAUfI.png

这是我试图从搅拌机交流的 arduino 代码。

int led = 2;

void setup() {
    Serial.begin(9600);
    pinMode(led, OUTPUT);
}

void loop() {
    if ( Serial.available())
    {
        char ch = Serial.read();
        if(ch >= '0' && ch <= '9')
        {
        digitalWrite(led, HIGH);
        }
    }
}

实际上,当Blender 游戏引擎(BGE) 运行时,我按下 Key 'a' blender 与 arduino 通信并且 LED 亮起。

我做错了吗?

有人可以帮我解决这个问题吗?

4

1 回答 1

2

在你的搅拌机 python 代码中,你发送一个整数:

x=ser.write(1)   

而在您的 arduino 代码中,您正在检查 和 之间的 ASCII 数字'0''9'即 48 和 57 之间的数字

if(ch >= '0' && ch <= '9')

尝试将您的 python 代码更改为ser.write('1')或将您的 arduino 代码更改为ch >= 0 && ch <= 9,它应该可以工作。

此外,在将您的代码绑定为 Blender 中的脚本之前,您应该首先在 Blender 之外测试您的 Python 脚本。只需使用命令行运行:python script.py,在脚本所在的目录中。

于 2013-06-29T23:21:47.157 回答