开源蓝牙心率防水运动手环
——疯壳·智能穿戴开发系列   
心率监测

1心率测量原理简介
    
    我们手环的心率测量, 采用的是 PPG 光电容积脉搏波描记法原理(PhotoPlethysmoGraphy)。简单来说,就是利用血液中透光率的脉动变化,折算成电信号,对应的就是心率。
    当一定波长的光束照射到皮肤表面时,光束将通过反射方式传送到光电接收器,在此过程中由于受到皮肤肌肉和血液的吸收衰减作用,检测器检测到的广强度将减弱。其中皮肤、肌肉组织等对光的吸收在整个血液循环中是保持恒定不变的,而皮肤内的血液,容积在心脏作用下呈搏动性变化。当心脏收缩时外周血容量最多光吸收量也最大,检测到的反射光强度最小。而在心脏舒张时,检测到的光强度最大,使光接收器接收到的光强度随之呈脉动性变化。最后,我们通过DA14580 的 ADC 采集光接收器的电信号,计算出心率。
    2硬件设计
    
    我们的心率传感器由两部分组成,如下图所示。
    
    第一个张图 HY1303 其实是一个 LED 和一个光传感器,将采集到的光强转换成电压,从第 6 引脚输出。然后通过第二张图 HY232 放大电压。
     
    
    图 1

    
    图 2
    
    3软件设计
    
    
    第一步,就是系统的初始化。
    
    
    代码1
    
    由于本次要使用串口打印,我们就设置串口管脚,使能串口,对串口进行初
    
    始化。
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false); 
    SetBits16(CLK_PER_REG, UART2_ENABLE, 1);
    // Initialize UART component 
    uart2_init(UART2_BAUDRATE, UART2_DATALENGTH);
    我们的心率需要的采样周期是 4ms 到 10ms,这里用 的是 10ms,就需要通过 void my_timer_init(void)开启一个定时器。
    

    代码2
    
    
    每 过 10ms , 定 时 器 0 就 会 产 生 一 次 中 断 , 进 入 回 调 函 数
    
    timer0_general_user_callback_function,在回调函数中,我们就使用 ADC 采集数据。
    最后通过函数 ADC_CAPTRUE(adc_heart ,&hr_capture)就可以得到心率值。adc_hreat 是 ADC 数字电压,hr_capture 就是心率值了。
  
    
    代码3
   
    
    代码4
    
    4实验现象
    
    首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。
    
    
    (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。
    
    (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。
    (3)点击打开串口。



    图 3
    配置完串口之后,打开我们提供的代码。
    
    (1)点击仿真按键。
 
    
    图 4
    (2)点击运行代码。
     
    
    图5
    
    
    完成之后,就能看到串口调试助手接收框信息如下。
 

图 6

【开源教程9】疯壳·开源蓝牙心率防水运动手环-心率监测相关推荐

  1. 【开发教程9】疯壳·开源蓝牙心率防水运动手环-心率监测

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列    心率监测 1心率测量原理简介          我们手环的心率测量, 采用的是 PPG 光电容积脉搏波描记法原理(PhotoPlethysm ...

  2. 【开源教程1】疯壳·开源蓝牙心率防水运动手环-开发套件简介

    开源蓝牙心率防水运动手环  --疯壳·智能穿戴开发系列 开发套件简介 为了方便编写文档教程,以及开发调试,我们拆出了一个手环硬件主板,并焊接上了 jlink 下载线以及 usb 转串口线,如下图所示( ...

  3. 【开发教程10】疯壳·开源蓝牙心率防水运动手环-蓝牙 BLE 收发

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 蓝牙 BLE 收发 1相关简介          DA14580 内部集成了射频模块,同时官方也提供了一套 SDK,里面包含了蓝牙协议栈部分.本节 ...

  4. 【开源教程11】疯壳·开源蓝牙心率防水运动手环-整机功能代码讲解

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 整机功能代码讲解 整机代码 1 软件设计    本节,我们将融合前面的蓝牙收发.三轴记步.电量检测.外部 Flash 读写. 心率检测和 Led ...

  5. 【开发教程11】疯壳·开源蓝牙心率防水运动手环-整机功能代码讲解

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 整机功能代码讲解 整机代码 1 软件设计    本节,我们将融合前面的蓝牙收发.三轴记步.电量检测.外部 Flash 读写. 心率检测和 Led ...

  6. 【开源教程7】疯壳·开源蓝牙心率防水运动手环-电容触摸

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 电容触摸 1相关简介      本次章节,我们将使用到 DA14580 的外部中断,通过触摸手环主板上面的小弹簧,触发中断.   DA14580 ...

  7. 【开发教程7】疯壳·开源蓝牙心率防水运动手环-电容触摸

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 电容触摸 1相关简介      本次章节,我们将使用到 DA14580 的外部中断,通过触摸手环主板上面的小弹簧,触发中断.   DA14580 ...

  8. 【开源教程8】疯壳·开源蓝牙心率防水运动手环-三轴计步伐

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 三轴计步伐 三轴记步     1相关简介          本次,我们将使用 DA14580 的硬件 I2C 读取三轴传感器的步数.        ...

  9. 【开源教程10】疯壳·开源蓝牙心率防水运动手环-蓝牙 BLE 收发

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 蓝牙 BLE 收发 1相关简介          DA14580 内部集成了射频模块,同时官方也提供了一套 SDK,里面包含了蓝牙协议栈部分.本节 ...

  10. 【开发教程8】疯壳·开源蓝牙心率防水运动手环-三轴计步伐

    蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 三轴计步伐 三轴记步     1相关简介          本次,我们将使用 DA14580 的硬件 I2C 读取三轴传感器的步数.          ...

最新文章

  1. 阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析
  2. linux内核 RCU机制概述
  3. 深度探索C++ 对象模型(7)-Data member的布局(虚继承)
  4. Visual studio代码行数统计
  5. Javascript--File对象
  6. android 弹窗 onpause,Android 下拉通知栏时Activity的生命周期——重新理解onPause()
  7. 为什么农村出来的大学生大多混得比较差?
  8. Mybatis中#{}与${}的使用
  9. shell脚本实时监控进程连接数
  10. Linux系统基本操作及命令详解
  11. TMS320DM642调试出现#10247-D creating output section .capChaACrSpace without a SECTIONS 解决办法...
  12. python 运行报错 Process finished with exit code -1073740791 (0xC0000409)
  13. 英特尔无线蓝牙启动服务器,如何在英特尔Edison上部署蓝牙安全网关
  14. 原来这个世界还有这么纯洁的爱情!
  15. 【无人机知识】吐血整理:史上最全最完整的飞机基本参数名称详解
  16. 想成为魅力十足的人的十大习惯
  17. 再谈Revit二次开发的可靠性和前景
  18. html5 商品分类页面效果zepto
  19. 三七互娱php笔试题,三七互娱笔试
  20. 【读书笔记】c和指针

热门文章

  1. ThinkPad系统重装步骤
  2. pfSense®与OPNsense®技术比较
  3. excel报表汇总工具
  4. uint16 java_java解析UINT16
  5. 数据库实体、关系(一对一实现方式、一对多实现方式、多对多实现方式)
  6. 在群辉(NAS)中安装虚拟机套件(Virtual Machine Manager)
  7. PCL 实现 ICP 算法原理源码解析
  8. What is a hardlink and how to create one?
  9. 华为路由器后台登录协议
  10. 【A阶段A+2】-vinc- =-vict- 胜,征服,扩展的单词学会了?