嗨,我正在凝視,並已破解從Python發送多位信息到我的Arduino。我現在想從我的Arduino發送信息到python,我看過可能的例子,但它們都發送只顯示一行信息被髮送。Arduino到python串行讀取分割
他是我堅持的東西。Arduino發送一個開始號碼255然後一個ID,然後在終端窗口上看起來像這樣的信息。
255 start chr
1 ch ID
99 Value
我想將它們拆分成python中的單個數組。
感謝您的任何提示。
嗨,我正在凝視,並已破解從Python發送多位信息到我的Arduino。我現在想從我的Arduino發送信息到python,我看過可能的例子,但它們都發送只顯示一行信息被髮送。Arduino到python串行讀取分割
他是我堅持的東西。Arduino發送一個開始號碼255然後一個ID,然後在終端窗口上看起來像這樣的信息。
255 start chr
1 ch ID
99 Value
我想將它們拆分成python中的單個數組。
感謝您的任何提示。
最簡單的方法是使用專用分隔符(例如逗號)並相應地拆分字符串。那就是:以這樣的方式編寫代碼的Arduino一側,以便在Python端解析變得容易。
不知道你的意思,但我的arduino Serial.print(data0)Serial.print(data1)Serial.print(data2) – 2013-02-23 13:43:02
@jamesjordan:'print'或'println'?該代碼會產生'255199',這是不可能解析的。 – Eric 2013-02-23 14:22:31
打印Arduino的項目與一個分隔符的線路,如像這樣一個逗號:
Serial.print(VALUE 1);
Serial.print((" , "));
Serial.print(VALUE 2);
Serial.print((" , "));
Serial.println(LAST VALUE);
使用的println最後值將所有以前的打印組合成一條線。隨着Arduino的串行監視器結果是這樣的:
VALUE 1 , VALUE 2 , LAST VALUE
您可以在python容易分裂的價值觀和可變分配給每個值像數組取值:
SERIALDATA= sensorData.readline() #Read line of text from Arduino
DATASPLIT= SERIALDATA.split(' , ') #Splits the line of text into array of strings composed of each individual sensor data
pyVALUE1= DATASPLIT [0]
pyVALUE2= DATASPLIT [1]
pyFINALVAL= DATASPLIT [2]
是實際輸出'Arduino的「開始chr」?值之間有兩條新行嗎?或者你收到'255199'? – Eric 2013-02-23 09:55:13
它只是在單獨的行上輸出255 1 99。我想讓他們進入data0 data1 data2。 – 2013-02-23 13:36:46