找回密码
 注册
关于网站域名变更的通知
查看: 175|回复: 0
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-15 17:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

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

! D' _8 a% X4 q8 X+ b* K5 \
$ ^9 t& |7 t4 n: {' l6 a- E+ U! p3 a; f
. h8 P  N1 A) U' x; k
    1心率测量原理简介
3 d3 E9 q3 |+ Q" r) \
. O" N) R6 ~! e2 ~* Q    我们手环的心率测量, 采用的是 PPG 光电容积脉搏波描记法原理(PhotoPlethysmoGraphy)。简单来说,就是利用血液中透光率的脉动变化,折算成电信号,对应的就是心率。
' I( I9 w, F9 K4 \* i3 K5 |/ X    当一定波长的光束照射到皮肤表面时,光束将通过反射方式传送到光电接收器,在此过程中由于受到皮肤肌肉和血液的吸收衰减作用,检测器检测到的广强度将减弱。其中皮肤、肌肉组织等对光的吸收在整个血液循环中是保持恒定不变的,而皮肤内的血液,容积在心脏作用下呈搏动性变化。当心脏收缩时外周血容量最多光吸收量也最大,检测到的反射光强度最小。而在心脏舒张时,检测到的光强度最大,使光接收器接收到的光强度随之呈脉动性变化。最后,我们通过DA14580 的 ADC 采集光接收器的电信号,计算出心率。& a5 ?( X/ D* M7 W+ B( P
    2硬件设计) M/ y- A# w" a- k: c/ [- }
/ A3 B3 p4 N4 o: z
    我们的心率传感器由两部分组成,如下图所示。
8 k: v, V: O' }2 c) L. {' j, [
7 w+ e+ K+ `/ i1 [/ ?    第一个张图 HY1303 其实是一个 LED 和一个光传感器,将采集到的光强转换成电压,从第 6 引脚输出。然后通过第二张图 HY232 放大电压。6 Z, Z0 j  J- f

# L, e. L* B- v' A& e2 b$ q     9 N' a0 C& L  j1 I/ t
    图 1
: y0 B: w5 ~$ j) U. @7 m& F/ f+ [9 N! ~" }9 X8 s. z' I- Q
. ]5 F! T& {% n6 R
    图 2
/ ]; ?0 r, p; x8 ?( \( [# s/ L+ }' W2 P8 W/ C; b  R% M
    3软件设计$ j2 m& Q: H  M
) k) Q5 A% n2 k# A$ K* f6 B3 Q  B7 m
) T9 B. h* x3 m0 @6 @: K. k
    第一步,就是系统的初始化。
4 T7 g( t& @7 A- N; Z) P( q! ]4 t% z+ M
   - u* @$ `) v" @- T! o
    代码1
& P3 Y# }, p! e+ ]
$ A! u9 [9 @$ j  Y/ e* K1 b0 k    由于本次要使用串口打印,我们就设置串口管脚,使能串口,对串口进行初
$ U6 n+ D1 Q8 b* S) e  g: K; z! ~  f/ t4 @
    始化。
5 P: W% m- _8 N: r    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);+ X: G6 Q1 ~8 S
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false);
1 n* F" G! F- E7 D' Q    SetBits16(CLK_PER_REG, UART2_ENABLE, 1);
+ o/ F; u- c, j$ J/ m    // Initialize UART component
! z% u0 K5 |9 B) J2 \    uart2_init(UART2_BAUDRATE, UART2_DATALENGTH);
# C; |$ k/ _9 ?7 V; R0 S    我们的心率需要的采样周期是 4ms 到 10ms,这里用 的是 10ms,就需要通过 void my_timer_init(void)开启一个定时器。
6 e7 ^% S! S8 {/ B8 _
* }- c# a1 `8 S    
! d7 ?) m" w9 R  l    代码21 ~' |7 a- }/ T. D: S
9 ^- y" _: |4 W" z, i) P2 i
; x0 Q9 i3 T1 o, _' z0 R8 A7 b
    每 过 10ms , 定 时 器 0 就 会 产 生 一 次 中 断 , 进 入 回 调 函 数
% p% K5 _8 C3 v2 o* K6 `5 I# i5 Y& e7 i- s" W& M/ R9 N8 `
    timer0_general_user_callback_function,在回调函数中,我们就使用 ADC 采集数据。
9 A( {% W1 k, b) Z# [    最后通过函数 ADC_CAPTRUE(adc_heart ,&hr_capture)就可以得到心率值。adc_hreat 是 ADC 数字电压,hr_capture 就是心率值了。
7 q, ~# ]) w5 {' j" [0 g1 m5 h' u% ^8 B) g
    $ h; i; _' L- e* [9 b4 X0 _+ y; b
    代码3; Z0 T) m# Y0 L* Z, y% Q

, Z+ E% H8 `" e9 ]# w2 i: C     . k% c* X5 O) R7 U# L
    代码4
/ Z+ M3 f- V. Z+ a, m8 y0 m4 a7 _& ~2 K* G
    4实验现象! e7 M3 M3 V; b7 U

7 o  ?7 g8 B1 T* T    首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。4 Q# g0 Y$ b0 }. }) d( H

7 {+ ^( q/ k9 z
. T, u/ @0 B( u4 M    (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。: \1 W  y3 q, u- y) x

2 T) I( d+ W0 L3 N, P* b9 t" U    (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。
  ?3 \9 U+ Z  p) J7 l- W+ X4 C    (3)点击打开串口。" U& M6 u% v+ ~% V+ C+ B3 s' q
. s8 v& M2 E, ?5 e5 Y
   
4 y/ j  \& V3 D# n# n3 q; ]' x    图 38 |8 t( @) I- x7 G8 r8 X% j- D
    配置完串口之后,打开我们提供的代码。+ T' V6 R* ^6 e' i7 O" i/ o

8 W1 F2 P+ X, c- x    (1)点击仿真按键。  s: T" w" ]  V1 ~' L* O
( q/ ~; }/ s  i3 x) L
  
2 [, U" t1 b+ s+ S9 g* r4 k    图 4
! U" V) U8 F  g* y9 l    (2)点击运行代码。$ E6 ]/ |5 z* v6 g1 _0 Q
        ' w7 A) j$ g# f9 ]' I. E
   
4 e$ r% e/ \  k8 P9 u    图5
, b7 J8 S  f7 \0 m/ N
7 z7 C$ x8 e; H& Y) D
! s3 D: U! F/ u6 C! F    完成之后,就能看到串口调试助手接收框信息如下。
1 K0 e1 }' R" s8 R+ ^/ T9 x6 j
( y" K8 }  Z" m* Y" T4 j7 J     8 @% ]3 \2 H9 c* K* A) u
    图 69 V$ G  V/ l0 c) x$ y; t, A/ J

3 L+ h7 q* z: ?' }$ K/ H0 u2 i
0 N" K& M0 Q2 F- [& Z0 g5 W* j0 o5 y+ \4 r0 q% y) t- h

1 c- Q8 X; V3 B; B" {: J9 `# S' |文件下载请点击: 7_(100%开源)蓝牙心率防水运动手环_心率监测.pdf (677.56 KB, 下载次数: 0) * D# v/ U8 ~5 v, U

0 R: \% ?( }+ T  t' {" r5 x" O, L5 m" [* G- ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-28 19:50 , Processed in 0.156250 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表