从串行端口绘制数据

时间:2011-04-10 19:08:05

标签: .net serial-port arduino

我在.NET中以9600波特率获得了一个串口。传入的数据是 数字,它是电机编码器的2个脉冲之间的时间,它实际上是电机的RPM

如何实时绘制数据?

2 个答案:

答案 0 :(得分:1)

简单的绘图仪很容易做到。你可以花几个小时寻找一个恰到好处的图书馆或程序,或者在相同的时间内自己编写。

以下是我过去的做法

  • 分配循环缓冲区 - 大约2-4K数据点就足够了
  • 将您的串行数据存储在串行缓冲区中
  • 获得一个可绘制区域
  • 将可绘制区域的高度映射到您希望显示的最大值 - 最小值
  • 将可绘制区域的宽度映射到您希望显示的点数
  • 启动一个接收串行数据的线程,解析它并将其放入循环缓冲区,
  • 启动另一个线程,定期检查缓冲区中的新数据,在后台缓冲区的循环缓冲区中绘制数据,然后更新后备缓冲区显示的可绘制区域。

有一段时间我有类似的问题。我寻找一个简单,轻便的程序,可以开箱即用。我终于放弃并使用Win32调用编写了我自己的程序。 .NET实现会更简单。

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

答案 1 :(得分:0)

在arduino游乐场有一个example,你应该检查它。

或者作为一般用途和更多灵活性,您可以使用Firmata,它使您能够从计算机远程控制arduino(digital_write,digital_read,analog_write,analog_read ...),还有{{{ 3}},它是一个.NET组件类库,包含使用Firmata V 2.0协议发送和接收消息的方法,因此您不需要弄脏手,只需在arduino上加载firmata,使用库,以及你已经完成了