2011-04-10 88 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