数字系统实验–第16周任务(大综合3)
- 实验指导书
-
- 0.简介
- 1. 传感器数字采集系统实验3
- 1.A级任务1(100%)
- 2. 完成 告并提交
- 传感器数字采集系统实验3
-
- 一、 实验资源
- 二、 实验日志
- 三、 实验过程
-
- 1、 实验环境搭建
- 2、 ui 界面的绘制
- 3、 直接使用 Qtuic 来将上面制作的 ui 界面转化为 py 文件
- 4、 串口通信功能的实现
- 5、 数据图像显示
- 四、 利用 pyinstaller 将 py 文件打包生成 exe 文件
- 五、 小结
- 传感器数字采集系统实验- 实验总结
最开始的那个版本放的是最后交上去的限制页数的版本,最近又找到了但是写的第一版实验 告,比较详细,图片也比较清晰,放出来供大家参考
工程链接:https://pan.baidu.com/s/1b6N0djLRpl_25lDw_0eUVg
提取码:cvqn
包含实验==综合实验1、2、3的工程
仅供参考!
实验指导书
0.简介
初步设计一个复杂数字系统-传感器数字采集系统,理解扩展接口的超声波测距和通用USB-TTL串口电路原理;实现其实作模块功能验证;分层次编写VHDL完成系统模块优化方案,验证平台,FPGA串口与PC上位机软件(可选),并验证调试。
1. 传感器数字采集系统实验3
时间:1周
环境:VS2010、编程语言:C#或其他
步骤:搭建桌面开发环境,选题并完成设计
注:博主选的就是这个实验,自己做一个上位机
2. 完成 告并提交
告要求:
学生信息、实验目标与资源、设计思路、验证以及结果分析,从人文、知识、技能三个方面完成本期实验总结。
大综合实验依据难度分为:大综合1(80%)、大综合2(90%)、大综合3(100%),最后提交 告和工程各自选择,如做完大综合3需要提交:大综合1、2、3次的 告和工程。
大综合作业请于6月14日晚23:59分之前提交(PDF文件和工程文件,PDF文件名和工程文件压缩包,请注明自己的名字),文档正文不超过6页,大小不超过5MB。
2、 ui 界面的绘制
界面如下图所示,这是最终版,中间修改过好多次,包括把图像显示板块里的初始化功能给删除了(实在没有能力实现)
由五个板块组成,包括串口通信的设置、发送、接收、串口状态以及图像处理;
除了处理部分,前面的通信部分基本上与教学资源的串口助手功能一致;
数据收发都支持 16 进制;
①首先利用虚拟串口打开虚拟串口通道
②将串口助手与编写的上位机软件设置好,波特率为 9600,数据位为 8,打开两个串口;
5、 数据图像显示
这一部分 上也很没有直接讲如何讲串口接受的数据转化成图像的,我是先学习了如何根据一组数据绘制图像以及如何将图像内嵌到上位机界面中之后自己编写的代码;
1) 在上位机界面中加入用于图像显示的窗体 Widget
②令 x 轴显示时间并动起来
X 轴显示时间,matplotlib 提供了 plot_date 方法;
设计一个线程,用于产生数据和绘图,根据功能单一原则,需要将产生数据和绘图分成两类来实现,一个数据处理类,一个画板类。
③在 MplCanvas 类中使用 FigureCanvas 和 Figure 类创建 plot 绘制窗口(画板)
里面的这一句表示将接受的数据从 byte 转化为 int,也就是说串口助手需要 hex 发送才可以正确显示;
而接受数据的类我是写在了 secendstep.py 文件中的,如何让 mplCanvasWrapper.py 文件中的类来使用它呢,很简单直接开一个新的 py 文件用于保存这些量,让其他文件直接 import这个文件即可,里面的数据将变成公用的(上右图);
到这里所有功能就全部实现了,接下来验证图像显示。
3) 图像显示验证
①打开串口助手与写好的上位机软件,令串口助手 hex 的形式一个一个数据发送;
②在上位机软件中选择 hex 接受并且开始绘图;
②在发送的过程中更改串口助手发送的数据,观察图形的显示;
图像是一个动态过程,这里不方便显示出它的过程,详见工程文件的上位机软件成品。

生成的 exe 文件体积过大,我尝试用很多方法包括在虚拟环境中(纯净 python 没有那么多杂库)进行打包生成、使用 UPX 进行压缩等等方法,最后 exe 文件的体积完全没有减少,保持在 74M 左右(比教学资源上的串口助手要大一倍,可能是因为添加了图形显示的原因),因此我的工程包 exe 软件较大。
经过验证,exe 文件的功能与 py 文件的相同。
五、 小结
做上位机软件我一共花了 1 个星期的时间,这个星期真的非常的充实。刚开始时只有一个星期,那个时候觉得绝对做不完,然后现在在写 告的时候发现有的时候确实太小瞧自己了,只要把自己的精力全部投入进来很多事情还是可以做到的。其实对于数字系统这门实验我是有过抱怨的,毕竟今年受疫情影响好多教学计划都变更了,那么短的时间去完成这样的实验真的很难;后来经过教学组的老师们的解惑以及时间的延迟又给了我继续做下去的动力,还好没放弃,不然不会知道自己的极限在哪里。
传感器数字采集系统实验- 实验总结
从人文方面看,这学期的实验算是逐层加深难度并且层层相扣,从最开始的三位数码管到串口通信、FIFO存储,再到最后的这个传感器数字采集系统实验,为我们展开了非常丰富的数字世界,虽然并不是非常深入的学习,但也了解了很多,可以说是为了后面的课程打下了基础吧。
此外,这一个学期新的知识是学习了很多的,包括数码管显示原理、串口通信原理、FIFO存储原理等等。这些知识有的很晦涩难懂,但是真正学懂后又会觉得十分的精巧。教学组提供的课后思考题和相关资源十分全面,帮助我们更好的理解和消化这些知识。
当然,技能方面也收获颇丰。这一学期首先掌握了proteus的使用方法,并且主要加深了quartus的应用技巧,三位数码管里的修正输出的电路设计和实验最后的分频电路都非常有趣并且十分有用,我相信这些技能将来即使用不上也能开拓思路。可惜的是这学期在家学习没能用上学校的实验板,最后的倒车雷达没办法实操,好在教学组通过protues仿真的方式弥补这一缺憾。最后当然是制作上位机界面软件这一过程上学到的各种技能了,这两个星期成长了太多太多。
数字系统实验圆满结束,感谢教学组精心准备的scrom资源以及每周的任务说明,一个学期让我学到了很多新的东西。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览212892 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!