2011-04-10 92 views
0

我以9600波特率在.NET中獲得了一個串口。輸入數據爲 數字,它是電機編碼器的兩個脈衝之間的時間,實際爲電機的RPM從串口繪製數據

如何實時繪製數據?

+1

使用什麼顯示技術繪圖?你在尋找WPF圖表控件,WinForms控件還是你在尋找指導來滾動你自己的?請更具體,以便社區知道如何回答你的問題。 – 2011-04-10 19:18:03

+0

你是否設法獲取某些變量中的數據?你想用什麼技術來繪製它? – 2011-04-10 19:18:15

+0

這裏有一些幫助:傳入的數據不是數字。它們是字節。可能代表ASCII碼的字節很難分辨。 – 2011-04-10 19:25:08

回答

0

在arduino操場上有一個example這樣做,你應該檢查它。

或者作爲一種通用的,你可以使用Firmata更多的靈活性,它可以讓你從您的計算機遠程的Arduino的能力控制(digital_write,digital_read,analog_write,analog_read ......),再加上有FirmataVB,這是一個。 NET組件類庫,包含使用Firmata V 2.0協議發送和接收消息的方法,因此您不需要弄髒手,只需在arduino上加載冷靜,使用庫並完成即可。

1

簡單的繪圖儀很容易做到。您可以花幾個小時尋找一個恰到好處的圖書館或計劃,或者只是在相同的時間寫出自己的書。

這裏是我如何在過去

  • 做它分配一個環形緩衝區 - 約2-4K數據點應該是足夠
  • 把你的串行數據存儲在它的串行緩衝器
  • 獲得可繪製區域
  • 將可繪製區域的高度映射到最大值 - 您希望顯示的最小值
  • 將可繪製區域的寬度映射到要顯示的點的數量
  • 啓動一個接收串行數據的線程,解析並將其放入循環緩衝區中,啓動另一個線程,該線程定期檢查緩衝區中的新數據,並將循環緩衝區中的數據繪製在後臺緩衝區上,然後更新使用後緩衝器顯示的可繪製區域。

有段時間我有類似的問題。我尋找一個簡單,輕便的程序,它可以做到開箱即用。我終於讓步並使用Win32調用編寫我自己的程序。 .NET的實現會更簡單。

http://www.fast-product-development.com/real-time-serial-data-plot.html