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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
开源蓝牙心率防水运动手环
——疯壳·智能穿戴开发系列   
心率监测   
& w, I/ b( }9 H8 k& r6 B% a

# t' E3 m( L. K9 L9 H% V6 i
3 @9 O6 V4 p" q( I; W( T% ^
$ I6 [$ {4 Z+ W) B" I' |    1心率测量原理简介
+ I" X. J8 ]8 n* r
& {) l7 p. n" B  Z7 }    我们手环的心率测量, 采用的是 PPG 光电容积脉搏波描记法原理(PhotoPlethysmoGraphy)。简单来说,就是利用血液中透光率的脉动变化,折算成电信号,对应的就是心率。+ r5 f$ ^" t1 n, Q+ d# p. e  e
    当一定波长的光束照射到皮肤表面时,光束将通过反射方式传送到光电接收器,在此过程中由于受到皮肤肌肉和血液的吸收衰减作用,检测器检测到的广强度将减弱。其中皮肤、肌肉组织等对光的吸收在整个血液循环中是保持恒定不变的,而皮肤内的血液,容积在心脏作用下呈搏动性变化。当心脏收缩时外周血容量最多光吸收量也最大,检测到的反射光强度最小。而在心脏舒张时,检测到的光强度最大,使光接收器接收到的光强度随之呈脉动性变化。最后,我们通过DA14580 的 ADC 采集光接收器的电信号,计算出心率。
# O; x$ R1 Y. t; B6 O6 \7 K# Y    2硬件设计: b3 ^' E3 Y+ o( V
7 G" I: D( B: i5 P% b, s/ w/ ]" c
    我们的心率传感器由两部分组成,如下图所示。2 O- K. I/ z3 i! T1 _  {+ b' X

2 w; ^& G7 S0 c    第一个张图 HY1303 其实是一个 LED 和一个光传感器,将采集到的光强转换成电压,从第 6 引脚输出。然后通过第二张图 HY232 放大电压。
+ ~$ S8 X! e1 c! d" J" M, l* f: n
$ u% b) h: @1 i( d9 R4 X   " j, ]# Q0 }7 W! n0 U, `
    图 13 w# j6 n( r9 ~( Z
& j) V6 O+ N- Q9 n! _
   
" s2 Z/ u  A$ R6 e" _1 S& t    图 2
1 b, W, a* Q# a+ h4 e' c$ c6 H7 p" F# V& P. `5 q7 {
    3软件设计
% E9 Y1 W( w1 a, X0 m; N) A& A! ?! _
( O5 ?0 E2 L( R' v( w( m2 v
$ \1 O+ x: D" J! L$ K- |# S# h    第一步,就是系统的初始化。
1 \0 J! ?3 W5 \8 L2 X7 |/ z, d4 @4 p
! Z7 l) O+ ~! X1 B    
  b4 J* W  k. [* Q" d    代码1$ e: |  ?" [0 I3 {7 M

- C/ [4 D; F, e6 i5 ^    由于本次要使用串口打印,我们就设置串口管脚,使能串口,对串口进行初
# P# O1 m) N( A+ L
3 a. s/ f! E. {    始化。: S& @& _3 H. E" v  \1 h3 Y+ \# x& V" j
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);
% r# a/ ^. U# \  y5 U5 I6 A    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false); . |$ \1 U) h1 S. Q* d! W
    SetBits16(CLK_PER_REG, UART2_ENABLE, 1);
& ^% W  _  @9 T+ b% q/ i    // Initialize UART component
. k  h, t) p' L8 ~8 {; B4 |4 ~    uart2_init(UART2_BAUDRATE, UART2_DATALENGTH);, [3 N' d% i: W
    我们的心率需要的采样周期是 4ms 到 10ms,这里用 的是 10ms,就需要通过 void my_timer_init(void)开启一个定时器。
* q4 f5 T9 s' U, O5 _% {- _2 D9 |, w) x
   
  \: v% u& E/ L) B    代码2
8 q) [/ y, t. ^: ^$ B) }. `
( r3 R2 M% t/ t$ R9 U6 E( o: [, k+ k5 d( \2 _8 u: x7 D: w
    每 过 10ms , 定 时 器 0 就 会 产 生 一 次 中 断 , 进 入 回 调 函 数
" h8 F) Y9 o+ X$ a) F* s
5 f+ G7 Q" m4 p3 J6 i! @* n    timer0_general_user_callback_function,在回调函数中,我们就使用 ADC 采集数据。
2 U- X" I) u3 _+ H7 l! X    最后通过函数 ADC_CAPTRUE(adc_heart ,&hr_capture)就可以得到心率值。adc_hreat 是 ADC 数字电压,hr_capture 就是心率值了。
/ k5 r. q! i1 S* ]6 z0 O$ @5 F, w+ Z( v
    $ i1 k% R* g5 F+ A: w: {5 _6 y4 T
    代码3) [. e! C7 @6 m' e4 m
% R1 G# @6 h, u' J( y* q
   
& ]/ n2 h( v0 ]" D    代码4* y/ Z1 l! K2 D7 X$ X

8 p5 e4 j# Q8 O    4实验现象0 s- H3 K8 T9 T8 k5 k

6 Y' q/ L  M, R2 S    首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。4 ~! g8 m* U( T0 i% P& k; C! o
/ C4 \. P- S! O3 B
3 C8 D: A! a8 B( _
    (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。
4 W( P" n, i, D* y& `3 q. J2 K
    (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。
7 |- \% j* m7 x4 h    (3)点击打开串口。
/ \7 E& {" |. ~% z5 r# Z) X4 o: _" Q9 Z+ [6 d6 }
   
; Y* L* N: W# ~0 I1 S    图 3
4 W+ ?# u6 _" Q  j0 }  R    配置完串口之后,打开我们提供的代码。
: V/ p! ^7 a0 [
. m" h. q/ q6 }/ [. I! c1 g    (1)点击仿真按键。
3 {! b; g  E" k- K# y8 V0 w1 J4 z( P' [! O2 w1 u
   
0 J% f" w" r& x% N# t0 B( A    图 4
* K* y/ c' o. r/ V" s2 c* N7 v    (2)点击运行代码。3 @2 a2 ]& z$ S8 _1 ~
        - A$ b+ D! \1 D* s" \
    # x' P1 j5 M8 G
    图55 C0 \" b* M) i1 o
1 n8 b8 q3 }0 s- Y

; o( l. w/ @) v    完成之后,就能看到串口调试助手接收框信息如下。! a3 k/ i( P+ j. @) W7 K

! G7 [2 l: T. p    
: _2 q! q* e. r3 _# y4 w    图 6
, M) T" i2 h# ]8 G* n: S
4 I% P# b4 v# l! t# Z* W
' v& a8 C: v8 T+ W) P. ~. ~/ U. o3 D1 J7 [0 {; i" b9 [
如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系
# M& N5 D' `. I9 |
) K# \2 _7 H+ h- B0 c
: t+ [9 B; b& i; y! T) i文件下载请点击: 7_(100%开源)蓝牙心率防水运动手环_心率监测.pdf (677.56 KB, 下载次数: 0)
) Y" w/ }4 ]# f% C% J
0 y$ Q; b. I" W: M- a4 w
+ q! L( T2 `+ n, r, I7 r1 r
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-23 23:30 , Processed in 0.078125 second(s), 27 queries , Gzip On.

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

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

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