2016-06-10 147 views
1

我通過USB端口將Arduino Board連接到樹莓。使用處理代碼,我想讀取arduino發送的70個字節。如果我在我的PC窗口上使用該程序,它可以工作,但是使用Raspberry,我從Processing獲得的數據與Arduino發送的數據不同。這是讀取串口的處理代碼:樹莓派串口數據錯誤

import processing.serial.*; 
Serial uart; 
byte[] codice= new byte[70]; 

void setup() { 
    uart= new Serial(this, Serial.list()[1], 9600); 
} 

void draw() { 
    if (uart.available()>0) { 
    codice=uart.readBytes(); 
    println(codice); 
    } 
} 

在我的情況下,串口是「dev/ttyUSB0」。我也試圖用這種方式與python:

>>> import serial 
>>> ser = serial.Serial('/dev/ttyUSB0', 9600) 
>>> while True: 
...  print ser.readline() 

另外在python中也有相同的錯誤。我也嘗試改變波特率(115200),結果相同。

+0

不同如何......? –

+0

@marc例如,我應該有20和22之間的值,但在樹莓上,我的值在10到40之間 – andrsimo

+0

發送的數據看起來是什麼樣的(70字節)? –

回答

0

拔下Arduino的插頭,用ls /dev/tty*搜索並插入。
如果現在再次搜索ls /dev/tty*,您將看到一個新設備,例如/dev/ttyACM0。此外,您需要arduino驅動程序來模擬COM端口sudo apt-get update && sudo apt-get install arduino

Arduino的代碼

void setup(){ 
    Serial.begin(9600); 
} 

void loop(){ 
    Serial.println(「Hello Raspi」); 
    delay(3000); 
} 

樹莓派代碼片段

import serial 
ser = serial.Serial('/dev/ttyACM0', 9600) 

試試這個頁面上的Python的例子:How to attach an Arduino?

+0

謝謝你的答案,我找到的唯一設備是'/ dev/ttyUSB0'。系統已更新,並且arduino也是最新版本 – andrsimo

+0

我找到了對/ dev/ttyUSB0的引用,例如FT232RL芯片的設備名稱。設備參考是好的。 – codeflag