2020年TI杯大学生电子设计大赛 无线运动传感器节点 作品开源( PCB、设备/服务器工程、文档、测试视频、设计报告)
简介
作者博客主页:
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模块的数字部分供电,减少对模拟部分的干扰。
提供两种选择:
-
使用外部的3.3V,也就是3V3引脚要接外部的3.3V,同时按图示使用跳线帽将两框选引脚短接。
-
使用系统内部稳压出来的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: 10rmbLMT70:10(不好焊) (自己做就别用这个玩意儿啦,换成NTC也可以)
其他元件<30rmb
屏幕:加邮费46
锂电池+充电模块等:< 15rmb (3.7V小电池就行)
蓝牙/WIFI模块:<15rmb
陀螺仪模块:如果使用MPU6050的话,5rmb就可以买到
导联线:加邮费30
心电电极:20
总共200rmb左右,相比电赛期间某宝动辄300+的单独心电模块真是智者见智了。