2020年TI杯大学生电子设计大赛 无线运动传感器节点 作品开源( PCB、设备/服务器工程、文档、 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

2020年TI杯大学生电子设计大赛 无线运动传感器节点 作品开源( PCB、设备/服务器工程、文档、

发表时间:2020-10-18

发布人:葵宇科技

浏览次数:163

简介

作者博客主页:
https://blog.csdn.net/weixin_44578655

该文档及相关资料系博主参加2020年TI杯大学生电子设计大赛的作品,关联博客:
https://blog.csdn.net/weixin_44578655/article/details/109020022

资料链接(百度网盘):
链接:https://pan.baidu.com/s/1WnXZ1bDB-cs1LRwfiP6rYg
提取码:iqek

目录:
在这里插入图片描述

原理图、PCB

PCB是使用立创EDA绘制的,文件夹中的AD文件是从立创EDA导出的
导出后边框和字符可能会有点问题。
在这里插入图片描述

推荐使用立创EDA!
由于编辑文档时,立创EDA的工程还未发布:
可以过段时间查看我的LCEDA开源首页:
https://oshwhub.com/doee

  • ADS1292R心电采集模块
  • STM32F103C8T6最小系统模块
  • LMT70模块

板子三部分通过跳线帽连接作为一体使用,也可以掰开单独使用.

单片机的晶振使用的是8M有源晶振,另外晶振可以不用焊,程序默认使用的是内部晶振。

把LMT70的焊盘扩大了,好焊一些,但不知道测温手触摸到焊盘会不会有影响。

为了元器件布局紧凑些,没有留元件字符标号。

服务器端工程源码:

服务器端编译环境为VS2019,语言为C#
如果是初次接触上位机编写,给大家推荐一个基础入门的上位机设计教程:
https://www.cnblogs.com/liaocheng/p/9144317.html

服务器端工程的压缩包包含多个工程:
在这里插入图片描述

最终使用的是上图箭头指向的版本。
在这里插入图片描述

在上图的目录下,有工程生成的exe文件,可以直接运行

由于时间关系,该版本不完善,切换wifi和蓝牙模式时,需要关掉重新打开再切换。

蓝牙映射出的串口默认波特率为115200
windows下如何更改蓝牙虚拟串口的参数,详见:

https://blog.csdn.net/px_528/article/details/70782059
TCP模式下的IP地址需要在源码中更改,所以如果不打算参考源码的话,这个服务器端的软件是没法直接使用的(比赛时间紧张,很多细节无法完善)

设备端各模块

设备端的源码我尽量注释,代码结构尽量弄清晰一些,也就比赛完这段时间有心情去整理了。

设备端源码文档结构

在这里插入图片描述

系统框图:

在这里插入图片描述

软件框架:

在这里插入图片描述

这是在报告里写的,为了高大上一点,就称作“任务”了,不要被误导,并不是多任务!

系统所有模块均运行在main函数的大循环中,通过软件定时,实现各个模块的定时循环运行。
软件定时方法,以按键扫描举例:

	if(sys_tick - key_tick >= 10)	
	{
		key_tick = sys_tick;
		//按键扫描、处理等等
	}

其中sys_tick是全局变量,每1ms会自增1(通过1ms的定时器中断精确计数),用于系统运行计时(一般称为系统时基),有了它可以方便实现软件定时。
上述代码实现的效果是,每10ms,if判断就成立一次,放在大循环里就可以实现10ms的定时,每10ms扫描一次,可以免去按键消抖,同时降低系统运行开销。
每个模块的工作基本都采用这种方式实现软件定时执行,方便设定定时周期。

在这里插入图片描述

关于ADS1292模块

连接线序
VIN—3.3V~5V
3V3—3.3V
GND—GND
DRDY—PA8
CS—PB12
CLK—PB13
DOUT—PB14
SDIN—PB15

其中“3V3”引脚专门为ADS1292模块的数字部分供电,减少对模拟部分的干扰。
提供两种选择:

  1. 使用外部的3.3V,也就是3V3引脚要接外部的3.3V,同时按图示使用跳线帽将两框选引脚短接。
    在这里插入图片描述

  2. 使用系统内部稳压出来的3.3V,这时候3V3引脚可以不接,需要按下图接跳线帽。

在这里插入图片描述

心电电极贴片的位置
购买下图这种导联线的话:

在这里插入图片描述

根据颜色,按下图方式连接,测出的心电波形才是正确的。
在这里插入图片描述

关于陀螺仪模块

陀螺仪模块部分我使用的是一个冷门的模块,这个应用只用到pitch轴,因此使用普通的MPU6050就可以。

陀螺仪模块绑在腿上,实现步数测量,详细内容参见设计报告。
在这里插入图片描述

关于蓝牙模块和上位机

蓝牙模块使用HC05

由于系统最初是使用蓝牙上位机的,因此工程中保留了蓝牙数据发送部分。
在这里插入图片描述

配套的蓝牙调试上位机为:

在这里插入图片描述

相当好用的一款上位机,在应用市场可以搜索到,界面控件可以二次开发,这次电赛有好多做A题的组别都是直接使用的这款上位机,可以说这个APP作者拯救了一大波参加电赛的。

关于LMT70

LMT70可以通过IO口供电,这是手册推荐的。
使用stm32自带的12位ADC,加入均值滤波后数据挺稳的。

关于esp8266

模块的具体型号为esp8266-01s,初始化部分主要为AT指令配置wifi和服务器等。
在这里插入图片描述

esp8266是后期改的,由于板子上原来没有留接口,就只能用蓝牙的接口了,两个模块的供电电压不太一样(蓝牙:3.6-6,esp8266:3.3V),因此加了一块洞洞转接板,板上有稳压模块(不能用AMS1117,由于系统供电是锂电池3.7-4.2V,而1117要求压差比较大,必须使用低压差LDO才可以正常输出3.3V,这里使用的是TPS73233DBVR)
在这里插入图片描述

关于屏幕

链接:
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-22419023648.11.103e497cFxRZgy&id=526022333035
在这里插入图片描述

选“老款不带片选CS”

这种SPI驱动的LCD刷新速度还可以,至少心电波形的实时显示还是可以满足的。

店家提供stm32部分的源码,设计PCB的时候也是按照屏幕例程中的引脚定义来的(使用硬件SPI)。

设备外壳

外壳使用solidworks绘制,材质:亚克力、铜柱,设备:雕刻机、手。
最后一天时间比较急,手残把屏幕的安装孔画错了,也能凑合装。
在这里插入图片描述

设计报告

设计报告我们抽出整整一天来写的,真实反映了作品内容,报告上的相关方案也是实际采用的方案。

word版本的设计报告包含了Fir滤波器理论计算部分(pdf版本是最终提交的版本不含这部分)。队友这块的理论分析写的超认真,但由于最后超页数了,提交之前被我一刀砍了。

制作成本

ADS1292R:30rmb左右一片
stm32f103c8t6: 10rmb
LMT70:10(不好焊) (自己做就别用这个玩意儿啦,换成NTC也可以)
其他元件<30rmb
屏幕:加邮费46
锂电池+充电模块等:< 15rmb (3.7V小电池就行)
蓝牙/WIFI模块:<15rmb
陀螺仪模块:如果使用MPU6050的话,5rmb就可以买到
导联线:加邮费30
心电电极:20
总共200rmb左右,相比电赛期间某宝动辄300+的单独心电模块真是智者见智了。

相关案例查看更多