2008-11-01 70 views
4

我試圖從一個光電管電阻和我的Arduino Decimila讀取數據,然後用Processing進行實時圖形化處理。從Arduino發送奇怪的隨機數據到處理

應該是痛苦的簡單;但它對我來說成長爲一場噩夢。

代碼,我在我的Arduino運行:

int photoPin; 

void setup(){ 

    photoPin = 0; 
    Serial.begin(9600); 

} 

void loop(){ 

    int val = int(map(analogRead(photoPin), 0, 1023, 0, 254)); 
    Serial.println(val); //sending data over Serial 

} 

代碼我運行在處理:

import processing.serial.*; 

Serial photocell; 

int[] yvals; 

void setup(){ 

    size(300, 150); 
    photocell = new Serial(this, Serial.list()[0], 9600); 
    photocell.bufferUntil(10); 
    yvals = new int[width]; 

} 

void draw(){ 

    background(0); 
    for(int i = 1; i < width; i++){ 
    yvals[i - 1] = yvals[i]; 
    } 

    if(photocell.available() > 0){ 
    yvals[width - 1] = photocell.read(); 
    } 

    for(int i = 1; i < width; i++){ 
    stroke(#ff0000); 
    line(i, yvals[i], i, height); 
    } 
    println(photocell.read()); // for debugging 
} 

我單獨測試的代碼都位,我知道他們的工作。只有當我嘗試從Arduino輸入Processing時,問題纔會開始。

當我在Arduino的「串行監視器」中查看數據時,我得到一個很好的持續數據流,似乎看起來有效。

但是當我通過處理讀取相同的數據時,我得到了重複的隨機值模式。

Halp?

回答

2

您可以使用Plotly Arduino API傳輸該數據,該文檔和設置隨附here。基本思想:您可以連續傳輸來自Arduino的數據,或傳輸單個塊。

然後,如果你想將它嵌入到一個網站,你要抓住網址,並使用這個片段:

<iframe id="igraph" src="https://plot.ly/~abhishek.mitra.963/1/400/250/" width="400" height="250" seamless="seamless" scrolling="no"></iframe> 

您可以在片段更改寬度/高度尺寸。注意:您需要在那裏交換自己的網址以使其通過。

Here's an example of how it looks to stream Arduino data

enter image description here

全面披露:我爲Plotly工作。

+0

這實際上很酷。謝謝。 – 2014-10-02 22:44:11