TA的每日心情 | 开心 2013-10-31 08:31 |
---|
签到天数: 16 天 连续签到: 1 天 [LV.4]偶尔看看III
|
在嵌入式开发中我们常常要进行数据分析、算法设计、原型验证、自动化测试、辅助工具设计,每个环节的工作效率对整体的开发都非常重要。选用一个好的辅助开发工具是非常必要的。Python作为一门解释型语言,容易上手,应用广泛,拥有众多功能强大的第三方库,开发平台轻量化,相比VS,非常适合嵌入式开发中的辅助开发。
本文主要介绍使用Python实现一个类似于示波器,能实时观察传感器数据的辅助工具。这个需求源于项目的需要,使用这个工具能实时观察sensor数据的变化,并对实时数据做简单分析,对算法设计有很大的帮助。通过后续更新可以加入算法,实时验证算法,进行原型验证。本文首先介绍需要使用的Python相关库,然后介绍工具的使用情况。
本文实现工具用到的相关Python库
wxPython是Python的一个GUI工具链。Python程序员可以通过wxPython简单、快速的创建强壮的、实用的图形用户界面程序。这个库以Python扩展模块的形式提供,提供非常受欢迎,用C++编写的跨平台的GUI库wxWidgets。
matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。
它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。
工具介绍
本工具实现将sensor x,y,z 三个轴的数据实时绘制到窗口中。
嵌入式设备将采集到的sensor数据通过串口发送给PC,Python在获取到串口数据后经过简单处理然后使用matplotlib库进行绘图。
CH1,CH2,CH3分别代表x,y,z。通过“Set the Y axes scale”文本框来调整Y轴的范围(每格代表的值)。Receive to file 复选框可以设置将接收的数据保存到文件。Avg文本框显示三个轴各自的平均值,Average按钮按下时,将使用2s内的数据重新计算平均值。最下面三个文本框统计三个轴最大的变化范围。窗口中显示的波形是三个轴数据相对于各自平均值的变化情况。
使用本工具需要遵循的数据格式:
ID 07 -0363,-0085, 0223,
ID 07 -0384,-0082, 0046,
ID 07 -0361,-0085, 0228,
ID 07 -0387,-0077, 0040,
包头+空格+编号+3个空格+数据x,数据y,数据z,
其中包头为:ID
编号可以为任意两位数据,与sensor数据之间有三个空格
sensor:使用5位表示,最高位表示符号,正号不显示(但仍然占一位),高位为0则补0.
下载地址:
链接: https://pan.baidu.com/s/1eQiPylO 密码: o1ap |
|