Python在嵌入式开发中的应用

引言

在嵌入式开发中我们常常要进行数据分析、算法设计、原型验证、自动化测试、辅助工具设计,每个环节的工作效率对整体的开发都非常重要。选用一个好的辅助开发工具是非常必要的。Python作为一门解释型语言,容易上手,应用广泛,拥有众多功能强大的第三方库,开发平台轻量化,不想VS,非常适合嵌入式开发中的辅助开发。

1 本文概要

本文主要介绍使用Python实现一个类似于示波器,能实时观察传感器数据的辅助工具。这个需求源于项目的需要,使用这个工具能实时观察sensor数据的变化,并对实时数据做简单分析,对算法设计有很大的帮助。通过后续更新可以加入算法,实时验证算法,进行原型验证。本文首先介绍需要使用的Python相关库,然后介绍工具的使用情况。

2 本文实现工具用到的相关Python库

2.1 wxPython 库

wxPython是Python的一个GUI工具链。Python程序员可以通过wxPython简单、快速的创建强壮的、实用的图形用户界面程序。这个库以Python扩展模块的形式提供,提供非常受欢迎,用C++编写的跨平台的GUI库wxWidgets。

2.2 matplotlib 库

matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。

2.3 serial 模块

3 工具介绍

本工具实现将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.

下载地址:

链接: http://pan.baidu.com/s/1eQiPylO 密码: o1ap

python示波器 波形数据_Python在嵌入式开发中的应用——数据示波器相关推荐

  1. python嵌入式系统开发技术_Python在嵌入式项目中的辅助开发_彭树林

    效率和质量至关重要.本文要介绍的Python脚本语言和众多 第三方函数库就是这样的利器:易学.高效.功能强,值得推 广. 1 Python简介 Python是一种流行的动态脚本语言,经历了十多年的发展 ...

  2. python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中

    直接代码,如有不懂请加群讨论 # *-* coding:utf-8 *-* # import json import requests import pytesseract import time i ...

  3. 嵌入式开发中常用的几种通信接口总结

    关注.星标公众号,直达精彩内容 在嵌入式系统中,板上通信接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线. 以下内容为常用板上通信接口:包括I2C.SPI.UART.1-Wire: I ...

  4. 理解嵌入式开发中的一些硬件相关的概念

    为什么80%的码农都做不了架构师?>>>    做嵌入式系统开发,经常要接触硬件.做嵌入式开发对数字电路和模拟电路要有一定的了解.这样才能深入的研究下去.下面我们简单的介绍嵌入式开发 ...

  5. c语言改变cmd 字体大小_嵌入式开发中常见3个的C语言技巧

    原文:https://www.cnblogs.com/CrazyCatJack/p/6080266.html 1.指向函数的指针 指针不光能指向变量.字符串.数组,还能够指向函数.在C语言中允许将函数 ...

  6. 嵌入式开发中数值常量如何转化为内存地址?

    作者 | 李肖遥       责编 | 欧阳姝黎 最近在使用 Nordic 的最新蓝牙芯片 nRF52832 开发过程中,因为做一些测试涉及到对内存地址的操作,有(*(volatile unsigne ...

  7. 浅析嵌入式开发中的RAM和ROM

    在嵌入式开发中常常会遇到RAM,ROM,flash,内存等等一些问题,先梳理一下备用. 1.ROM:只读存储器.优点:容量大,掉电不丢失:缺点:读取速度慢.事实上,"只读"定义不准 ...

  8. 嵌入式开发中,嵌入式硬件和软件有什么区别?

    嵌入式指的是把软件直接烧录在硬件里,而不是安装在外部存储介质上,就像赋予机器人灵魂,从而方便人类操控.在嵌入式开发中,分为嵌入式硬件和嵌入式软件,大多数人对嵌入式的硬件和软件之间的区别不是很了解,现在 ...

  9. 嵌入式开发中的C语言知识点

    嵌入式开发中的C语言知识点 1.关键字 2.数据类型 3.内存管理和存储架构 4.指针和数组 5.结构类型和对齐 6.预处理机制 1.关键字 几乎每一门语言中都有关键字,具有特殊功能,C语言也不例外, ...

最新文章

  1. 漫画 | 程序员联名把产品经理告上县衙,并列了 8 大罪状
  2. python开发需要掌握哪些知识-Python的8个基础知识点,新手必须背下来!
  3. android studio clone 方法不能先用,Android Studio中使用git功能无法clone原因分析
  4. SAP UI5 debug mode
  5. TFS中的工作项(六)
  6. /etc/fstab 参数详解及如何设置开机自动挂载
  7. 微软将数据保存在玻璃中 可以安全地存储数千年
  8. 2018.5.28 PSOC第一枪:基于cypress的蓝牙开发
  9. 业务逻辑层的Helper基类
  10. Java将excel文件转成json文件(有错误)
  11. 如何将Noteepad++每一行都添加一个逗号
  12. Spring MVC 关于分页的简单实现
  13. 联想如何在桌面显示计算机和网络图标,联想电脑桌面图标字体变小怎么办
  14. 冯诺依曼计算机流程图,基本流程图综述
  15. shell 中柏开机显示efi_公司的中柏笔记本,出现开机无法启动,发出滴滴-滴滴滴-滴的声音(前面的-为停顿),求助大虾们有什么办法解决,谢谢了,我的保修单弄丢了不知道自己能不能解决。...
  16. 整理PC端微信文件夹
  17. WixSharp打包软件安装包入门教程
  18. Windows系统 修改 dns
  19. html第四天网站首页的布局设计到实施
  20. 计算机编码种类(ASCII/gbk/unicode/utf-8)

热门文章

  1. obj-y +=和obj-y :=的区别
  2. (转)MBA案例:Taxi
  3. nyoj304节能(区间dp)
  4. Python 语法(一)
  5. DL基本知识(五)神经网络经典模型
  6. Axure.rp三天学习总结
  7. CSS3 水平垂直居中的6种方法
  8. ADB 操作命令及用法
  9. 【RoE】(1)背景知识
  10. TeamViewer 帐户的“信任设备”