指尖心跳,通过手指测量心率波形

  • 心跳传感器
  • 检测原理
  • 传感器贴膜
  • arduino接线
  • arduino程序下载
  • STM32接线
  • STM32程序下载
  • 上位机查看
  • 总结

原文链接:https://www.yourcee.com/newsinfo/2923956.html

心跳传感器

本期介绍的pulsesensor就是一款心率传感器,是通过光电反射的原理检测人体脉搏的,人体血管在随着心跳跳动的时候的透光率不同进行的测量,传感器将光电采集到的信号经过滤波、放大等一系列电路处理之后输出为模拟电压量,我们通过检测模拟量电压的大小就可以处理计算出心率数据!

检测原理

手指贴在传感器上面输出电压模拟量,我们通过单片机实时检测电压的大小并通过串口将处理好的数据输出到电脑上,电脑再对数据进行处理,生成波形,心跳等参数,这个过程看起来有点复杂,又是单片机处理数据又是电脑处理数据的,不要担心官方有提供多种型号单片机的程序(STM32、arduino、51系列),电脑上的数据处理呢也是开源的,所以我们这里是不需要写程序的,只要会下载就行,看到这里是不是突然就松了口气哈哈!

传感器贴膜

点击图片购买

新传感器到手我们先不要急着接线,先在正面和背面贴个膜和粘扣,一个防止手指流汗到上面的电子器件上,另一个就是避免手指触摸的静电干扰也方便固定,废话不多说,看两张贴好的图片就会了!
贴之前

图1 传感器正面 图2 传感器背面

贴膜之后

图1 正面贴膜 图2 背面粘扣

arduino接线

硬件接线之前我们先介绍一下传感器的引脚,传感器上面有标+,-,S三个引脚丝印,具体对应功能参照下表就好

引脚名称 引脚功能
+ 电源正极(3.3V或5V均可)
- 电源负
S 模拟输出引脚

本期先用arduino去处理心率数据,我们先介绍一下和arduino开发板的接线,使用的是arduino的A0端口检测传感器输出的模拟量,其他的引脚就是供电引脚,引脚较少接线比较简单参考下表和下图接线即可

arduino 传感器
5V +
GND -
A0 S

arduino程序下载

资料里面找下下面文件双击打开即可(arduino软件以及驱动安装百度官网即可,资料很多)


选择好开发板和串口


点击下载,等待下载完


接下来使用不需要使用STM32的可直接跳转到上位机的使用!

STM32接线

我们再看STM32的接线,上面arduino的使用在网上以及产品资料里面都有说明相对来说会比较容易一些,查看资料我们发现STM32的使用只提供了代码并没有文档进行说明如何操作(对了,需要资料可在下方留言邮箱或者私聊),我们这里用STM32F103ZET6的板子就行操作,打开资料,找到下方的32程序的压缩包解压出来

解压出来之后找到工程打开,没有安装MDK5的百度找安装教程即可(网上很多)


打开之后我们先看到主函数部分,下面贴出主函数代码

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_ADC1_Init();MX_TIM3_Init();MX_USART2_UART_Init();HAL_TIM_Base_Start_IT(&htim3);while (1){sendDataToProcessing('S', Signal);     // send Processing the raw Pulse Sensor dataif (QS == true){sendDataToProcessing('B',BPM);   // send heart rate with a 'B' prefixsendDataToProcessing('Q',IBI);   // send time between beats with a 'Q' prefixQS = false;                      // reset the Quantified Self flag for next time}HAL_Delay(20); //delay for 20ms}
}

查看上面代码 MX_USART2_UART_Init(); 可以看到STM32处理传感器之后输出的数据是从串口2输出的,STM32F103 UART2对应TX为PA2,RX为PA3,我们确定串口是从这两个引脚输出之后只需要把这两个引脚连接到USB-TTL之后把数据转换到电脑上即可

USB-TTL STM32系统板
RX PA2
TX PA3

打开函数 MX_ADC1_Init(); 贴出函数部分代码

void MX_ADC1_Init(void)
{ADC_ChannelConfTypeDef sConfig;hadc1.Instance = ADC1;hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;hadc1.Init.ContinuousConvMode = DISABLE;hadc1.Init.DiscontinuousConvMode = DISABLE;hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;hadc1.Init.NbrOfConversion = 1;HAL_ADC_Init(&hadc1);sConfig.Channel = ADC_CHANNEL_0;sConfig.Rank = 1;sConfig.SamplingTime = ADC_SAMPLETIME_13CYCLES_5;HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}

分析上面代码可以看到使用的STM32的ADC1通道0,手册查看ADC管家对照表可以知道ADC1通道0对应的PA0引脚,这个采集就是使用的PA0引脚去采集传感器的信号了,接线参考下表即可

STM32 传感器
3v3 +
GND -
PA0 S

STM32程序下载

接好线之后把供电的数据线、ST-LINK、USB-TTL接到电脑上,然后下载程序进去即可(串口下载和ST-LINK之类都可以),我这里使用ST-LINK下载程序,先在魔术棒里面修改DEVICE为ZE


DEBUG里面按照下图来配置即可



配置完之后我这里使用的是ST-LINK直接在MDK里面点击下载就行


等一会STM32的程序就下载完成了

上位机查看

下载完程序arduino的话直接插到电脑上即可,STM32供好电将之前接好线的USB-TTL插到电脑上,上位机Processing可自行百度下载也可以点击下方链接下载
链接: 点我下载.

下载好之后双击下图所示的打开

进入上位机界面后点击文件,点击打开,找到资料中名称为 PulseSensorAmpd_Processing_1dot1 的文件打开


打开之后先运行一下然后退出来查看串口号


在设备管理器里面找到arduino或者STM32对应的端口号,我这里以arduino为例

接下来找到下面这部分代码,COM1、COM5、COM6、COM8对应0、1、2、3,COM5对应1,将Serial.list()[0]中括号中的0修改成1即可对应打开COM5

 port = new Serial(this, Serial.list()[1], 115200);port.clear();  port.bufferUntil('\n');

如果前面的步骤没问题打开之后像下面这样把手指放上去就能看到波形,不要绑太紧,压着手指会让心跳测量偏高

总结

操作流程尽量做到细致,长期发布类似文章,欢迎关注,本期指尖心跳就到这里了,欢迎随时留言,需要资料也可以在下方留言!

指尖心跳,通过手指测量心率波形相关推荐

  1. STM32+ MAX30102通过指尖测量心率+血氧饱和度

    一.前言 重要的事情放在最前面:max30102只适用于指尖手指测量,不适用与手腕手指测量,如需做成可穿戴样式选择传感器的小伙伴请pass掉他,因为他只有红光和红外2种光,不够充足的数据源去运算. 由 ...

  2. 【实测PulseSensor 脉搏传感器】玩的就是心跳 —— 使用 PulseSensor 脉搏传感器测量心率

    https://zhuanlan.zhihu.com/p/27665378 转自:玩的就是心跳 -- 使用 PulseSensor 脉搏传感器测量心率  作者:邵国际  网址:https://zhua ...

  3. 单片机无线调试-看见心跳-手机显示心率波形

    这次带来一篇使用手机观察心率波形的教程,这可能是最后一篇 关于蓝牙调试器的"硬核广告" 了,这几天一直做这个真的做的有些反感了,感觉时间被浪费,如果有人能从中受益就好了,但看起来不 ...

  4. 基于51单片机的脉搏心率心跳血压体温测量检测仿真(仿真+原理图+源码+论文)

     资料编号:057 本设计利用红外光电传感器产生脉冲信号,经过放大整形后,输入单片机内进行相应的控制,从而测量出一分钟内的脉搏跳动次数,快捷方便.测量范围限可以用按键调节,并进行声音报警,测量结果以数 ...

  5. 148、基于STM32单片机的心跳心率波形采集系统

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 一.功能介绍 二.实物图 三.原理图 四.程序 五.资料包括 一.功能介绍 (1)采用MAX30102实时采集人体心率波形,通过OLED显示屏绘制成 ...

  6. 使用 PulseSensor 脉搏传感器测量心率之一:平台搭建

    转自:玩的就是心跳 -- 使用 PulseSensor 脉搏传感器测量心率 作者:邵国际 网址:https://zhuanlan.zhihu.com/p/27665378 写文章 https://pi ...

  7. PPG测量心率和血氧的方法——原理版

    光电容积脉搏波描记法PPG  光学心率传感器,如果带过上述那些智能手表或者智能手环的朋友来说也不算稀奇的事情.就拿AppleWatch来说,测量心率时底部的表盘会发出绿色的灯光,并且测量的时候手腕最好 ...

  8. Android 那些事– 小米手环 测量心率 动画实现

    Android 那些事– 小米手环 测量心率 动画实现 双11的时候,买了一枚小米手环2,据说有测量心率的功能,如下图: 觉得这个心跳图挺好玩,然后琢磨琢磨实现了一下,先上效果图: 第一步:分解动画 ...

  9. PPG测量心率和血氧原理

    光电容积脉搏波描记法PPG  光学心率传感器,如果带过上述那些智能手表或者智能手环的朋友来说也不算稀奇的事情.就拿AppleWatch来说,测量心率时底部的表盘会发出绿色的灯光,并且测量的时候手腕最好 ...

最新文章

  1. sharepoint 2016 开启Project 2016 pwa网站
  2. 一次共享内存引起的线上事故分析
  3. 文档基本结构标签的作用
  4. webapi输出炜json_.Net基于MVC4 Web Api输出Json格式实例
  5. Head First设计模式读书笔记三 装饰模式(个人理解:包装模式)
  6. r语言 新增一列数字类型_R语言实战之R语言基础语法精讲(一)
  7. 【论文笔记】基于强化学习的句子摘要排序
  8. stc和sac_短期成本曲线
  9. ZOJ 1076 Gene Assembly
  10. vue学习笔记-13-侦听器
  11. 两款不错的小软件推荐下载
  12. Adobe Premiere基础-时间重映射(十)
  13. 苏嵌//毛丽媛//2018.7.11
  14. Z3735d android x86,首款搭载Z3735处理器 神秘平板被曝光
  15. C++运行三维人脸重建 VRN
  16. 央视版笑傲江湖的价值观 (转)
  17. 论文阅读——An Interactive MultiTask Learning Framework for NextPOIRecommendation with Uncertain Check-ins
  18. 至尊智能家居项目开发全过程
  19. 最长回文子串(马拉车算法)
  20. 分享几个免费开源api

热门文章

  1. win10怎么新建计算机用户,Win10添加用户教程(Microsoft微软帐户、本地帐户、儿童帐户)...
  2. Spectral clustering(谱聚类)算法的实现
  3. 用PS来制作背景透明的图片
  4. 如何进行AI换脸,AI换脸从 “0“ 到 “1” 详细教程 ——从配置环境开始
  5. 高新计算机考试试题ps,最新版计算机高新考试ps第1单元1-8.pdf
  6. windows 无法更新计算机启动配置,“windows 无法更新计算机的启动配置。安装无法继续”这样解决...
  7. TencentOS-Tiny之GCC
  8. FPGA控制TDC-GPX2时间间隔测量(三)
  9. IPFS 深入浅出:从《黑镜》说起
  10. 将一颗树反转为其镜像