串口通信Blender游戏引擎到arduino?

时间:2013-06-29 20:46:35

标签: serial-port arduino communication blender

我需要帮助将来自blender游戏引擎的串行数据传送到 arduino

我正在从blender输入键盘并尝试与 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)运行时,我按下键'a'搅拌机与arduino和LED打开通信。

我做错了吗?

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

1 个答案:

答案 0 :(得分:2)

在你的blender python代码中,你发送一个整数:

x=ser.write(1)   

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

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

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

另外,在将代码绑定到blender中的脚本之前,首先应该在blender之外测试你的python脚本。只需在脚本所在的目录中使用命令行python script.py运行。