资讯详情

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

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

介绍心率测量原理 我们手镯的心率测量, 采用的是 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)选择串口号,我们的图是 COM根据实际情况选择这一点。 (2)配置串口参数,波特率为 115200,数据位 8,停止位 1.与下图一致,无验证位置和控制流。 (3)点击打开串口。

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

标签: hr系列传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台