查看: 339|回复: 0

嵌入式开发中Python的应用——数据示波器

[复制链接]

主题

好友

1080

积分

进士

  • TA的每日心情
    开心
    2013-10-31 08:31
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2014-6-26 19:42:15 |显示全部楼层
    在嵌入式开发中我们常常要进行数据分析、算法设计、原型验证、自动化测试、辅助工具设计,每个环节的工作效率对整体的开发都非常重要。选用一个好的辅助开发工具是非常必要的。Python作为一门解释型语言,容易上手,应用广泛,拥有众多功能强大的第三方库,开发平台轻量化,相比VS,非常适合嵌入式开发中的辅助开发。
            本文主要介绍使用Python实现一个类似于示波器,能实时观察传感器数据的辅助工具。这个需求源于项目的需要,使用这个工具能实时观察sensor数据的变化,并对实时数据做简单分析,对算法设计有很大的帮助。通过后续更新可以加入算法,实时验证算法,进行原型验证。本文首先介绍需要使用的Python相关库,然后介绍工具的使用情况。
            本文实现工具用到的相关Python库
             
    • wxPython 库
            wxPython是Python的一个GUI工具链。Python程序员可以通过wxPython简单、快速的创建强壮的、实用的图形用户界面程序。这个库以Python扩展模块的形式提供,提供非常受欢迎,用C++编写的跨平台的GUI库wxWidgets。
             
    • matplotlib 库
            matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。
            它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。
             
    • Serial 模块
            工具介绍
            本工具实现将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
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /2 下一条

    手机版|电路城

    GMT+8, 2019-8-24 13:53 , Processed in 0.147050 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部