2013-06-29 158 views
1

我需要從攪拌機遊戲引擎的串行數據通信到arduino串口通訊攪拌機遊戲引擎到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); 
     } 
    } 
} 

其實,當攪拌機遊戲引擎(BGE)的運行,我按下按鍵 '一' 攪拌機與Arduino的溝通和LED點亮。

我做錯了嗎?

任何人都可以幫我解決這個問題嗎?

在攪拌機Python代碼

回答

2

,你發送一個整數:

x=ser.write(1) 

,而在你的Arduino的代碼,你要檢查48和57

之間 '0''9',即數字之間的ASCII數字
if(ch >= '0' && ch <= '9') 

要麼嘗試將您的Python代碼更改爲ser.write('1')或將您的arduino代碼更改爲ch >= 0 && ch <= 9,它應該可以工作。

此外,在將代碼作爲攪拌器內的腳本進行綁定之前,應首先在攪拌器外測試您的python腳本。只需在腳本所在的目錄中使用命令行:python script.py運行即可。