2020年电赛省赛题目A——无线运动传感器节点设计

该博客详细介绍了基于TI ADS1292和LMT70传感器设计的无线运动传感器节点,用于实时采集和记录心电、体表温度和运动信息。心电检测采用ADS1292,通过IIR滤波和滑动平均滤波处理信号,心率计算误差不超过5%。体表温度测量采用LMT70,运动信息通过MPU9250检测。设计中还涉及无线传输、显示屏设计以及电路布局,确保数据的准确性和实时性。
摘要由CSDN通过智能技术生成

题目要求

  1. 任务
    基于 TI 模拟前端芯片 ADS1292 和温度传感器 LMT70 设计制作无线运动传
    感器节点,节点采用电池供电,要求能稳定采集和记录使用者的心电信息、体表
    温度和运动信息。
  2. 要求
    (1)基于 ADS1292 模拟前端芯片设计心电检测电路,完成使用者的心电信
    号实时测量,要求: (30 分)
    ①实时采集和记录使用者的心电信号,实现动态心电图的测试与显示;
    ②分析计算使用者的心率,心率测量相对误差不大于 5%。
    (2)基于 LMT70 温度传感器测量使用者体表温度,要求: (20 分)
    ①实时采集和记录使用者的体表温度,温度采样率不低于 10 次/分钟;
    ②体表温度测量误差绝对值不大于 2℃。
    (3)基于加速度计等传感器检测使用者运动信息,实现运动步数和运动距
    离的统计分析,要求: (20 分)
    ①运动距离记录相对误差不大于 10%;
    ②运动步数记录相对误差不大于 5%。
    (4)无线运动传感器节点能通过无线上传使用者的基本心电信号、体表温
    度和运动信息,并在服务器(手机)端实时显示动态心电图、体表温度和运动信
    息,要求传输时延不大于 1 秒。 (25 分)

设计方案分析

本设计基于TI模拟前端芯片ADS1292、温度传感器LMT70以及MPU9250设计制作无线运动传感器节点,节点采用电池供电。使用ADS1292设计心电检测电路,实时采集和记录使用者的心电信号,实现动态心电图的测试与显示。LMT70用于实时采集和记录使用者体表温度。MPU9250实现运动步数和运动距离的统计分析。将各模块获取数据输入STM32F407单片机进行分析处理,并通过串口屏显示。该装置能通过无线上传使用者的基本心电信号、体表温度和运动信息,并在服务器端实时显示动态心电图、体表温度和运动信息。

心电检测模块方案

采用ADS1292芯片构成心电测量电路,采样频率为1000Hz,对通道返回的3个字节进行处理,用相应的公式得到对应的电压,从而画出心电图。
采用TI公司的集成芯片ADS1292, 它是一款适用于生物电信号采集的芯片。其内置2个24 bit模数转换器, 可以实现心电与呼吸信号双通道采集, 单个通道功耗仅为335μW, 且ADS1292R内置右腿驱动降噪电路和电极脱落检测电路 [8-9] 。信号采用差分输入方式, 两个电极右臂RA (负极) 和左臂LA (正极) 。通道1 (IN1N和IN1P) 用于采集呼吸信号, 通道2 (IN2N和IN2P) 用于
采集心电信号。右腿驱动电路连接到通道2上, 形成负反馈以减少心电信号中共模干扰。呼吸信号和心电信号由电极分别引入通道1和通道2后经过ADS1292R内部可编程放大器 (PGA) 放大6倍, 然后分别经过A/D模数转换, 转换后的数字信号由SPI接口输入到单片机中。单片机控制ADS1292R进行信号采集和AD转换。单片机与ADS1292R通过CS、SCLK、DIN、DUT四线实现SPI串行同步协议通讯。通过向ADS1292R内部寄存器写入相应值以配置相关设置, 比如通道放大倍数、测量通道漂移量、工作时钟选择、导联脱落使能等。

ADS1292的A/D转换计算

ADS1292的每一个通道都有一个24位的模数转换器(ADC)。输入信号与输出信号对应关系如下:

在这里插入图片描述

每次采样信号经过ADS1292内部的A/D模数转换后变成了一个72位的数据包:1100+LOFF_STAT[4:0]+GPIO[1:0]+13个‘0’+24位呼吸数据+24位心电数据。

心电信号的处理

直接获取原始数据,打印图像
在这里插入图片描述

可以看到,该信号有许多噪声,也就是高频信号。采用低通滤波器可将其滤掉。
IIR是无限长单位脉冲响应数字滤波器,其系统对应函数有如下形式:
在这里插入图片描述

在知道滤波器相应的系数b[],a[]后可根据相应的差分方程,完成对数据的滤波,而滤波器的系数可以通过MATLAB滤波器设计和分析工具箱Filter Designer求得。
用MATLAB设计IIR低通滤波器
在这里插入图片描述

滤波器阶数N=3,采样频率Fs=1000Hz,截止频率经过大体估算和反复测试得Fc=8Hz。
通过查看Filter Coefficients可得滤波器系数。
在这里插入图片描述

响应函数:
H(z)= Gain*(1+2Z-1+Z-2)/(1-a1Z-1-a2*Z-2)
上式是从Z域上分析的,因为具体应用在时域上,所以根据响应函数得到对应时域上的差分方程:
a[0]y[i]=Gain(b[0]*x[i]+b[1]*x[i-1]+b[2]*x[i-2])-a[1]*y[i-1]-a[2]*y(n-2)
其中Gain=0.00

  • 15
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 2020电赛A是一道编程,需要编写代码来解决问。由于没有具体的代码内容提供,因此无法给出具体的回答。不过,一般来说,电赛A会考察程序设计和算法能力,涉及的知识点包括数据结构、算法优化、动态规划等。在解过程中,需要仔细审,理解题目要求,分析问设计出合理的解决方案。在编写代码时,需要注意编程语法的规范性和代码的可读性。同时,还要进行测试和调试,确保程序能够正确运行并得到正确的结果。总之,2020电赛A要求学生们具备扎实的编程基础和较强的问分析与解决能力。 ### 回答2: 2020电赛A是一个代码问,由于问描述并未提供详细信息,所以无法给出具体的代码。但是根据一般电赛题目的特点,可以给出一个代码编写的思路。 首先,我们需要分析问要求,明确问的输入、输出和处理逻辑。在了解清楚题目要求后,我们可以开始编写代码。 接下来,我们可以使用合适的编程语言来编写代码。根据个人的偏好和掌握的编程语言,可以选择C、C++、Python等等。 在编写代码的过程中,需要注意以下几个步骤: 1. 接受输入:根据题目要求,接受输入的数据。可以使用标准输入函数(如`cin`或`scanf`等)来获取输入数据。 2. 处理数据:对获取的输入数据进行处理和计算,根据题目要求进行相应的逻辑操作。 3. 输出结果:根据题目要求,输出计算结果。可以使用标准输出函数(如`cout`或`printf`等)来输出结果。 最后,需要测试代码的正确性和效果。可以使用一些样例数据来验证代码的正确性,并检查输出结果是否符合题目要求。 总体来说,根据题目要求和自己的编程能力,合理地组织代码结构,使用合适的算法和数据结构来解决问,完成正确的输入、处理和输出过程即可。希望这个思路对你有所帮助。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值