2013-06-29 3 views
1

Мне нужна помощь в передаче последовательных данных с игрового движка blender на arduino.последовательная связь Blender Game Engine с ардуино?

Я делаю ввод с клавиатуры из блендера и пытаюсь связаться с arduino, но он не работает.

Это блендер код

import serial 

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

Logic

Key "а" -> скрипт 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 Game Engine (BGE) работает, и я нажимаю Key 'а' блендер общаться с Arduino и LED включается.

Я делаю неправильно?

Может ли кто-нибудь помочь мне решить эту проблему?

ответ

2

в вашем блендере код питона, вы передаете целое число:

x=ser.write(1) 

в то время как в вашем коде Arduino вы проверяете для ASCII цифры между '0' и '9', то есть числа от 48 до 57

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

либо попробуйте изменить код Python на ser.write('1'), либо измените код arduino на ch >= 0 && ch <= 9, и он должен работать.

Кроме того, прежде чем связывать ваш код как скрипт внутри блендера, вы должны сначала протестировать скрипт python за пределами блендера. просто запустив с помощью командной строки: python script.py, в каталоге, где находится скрипт.

Смежные вопросы