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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
开源蓝牙心率防水运动手环
——疯壳·智能穿戴开发系列   
心率监测   
& D6 b. }% k, y) F1 d

/ {+ \# E" o9 w9 H; j* w0 D  Q% U
# ~4 h! t' J2 G, r  g/ v
    1心率测量原理简介
8 d6 j& B6 F2 b- F7 _1 V" V" ~0 x) D" a5 m
    我们手环的心率测量, 采用的是 PPG 光电容积脉搏波描记法原理(PhotoPlethysmoGraphy)。简单来说,就是利用血液中透光率的脉动变化,折算成电信号,对应的就是心率。' w& R* `* v! ~. O+ N7 K& G
    当一定波长的光束照射到皮肤表面时,光束将通过反射方式传送到光电接收器,在此过程中由于受到皮肤肌肉和血液的吸收衰减作用,检测器检测到的广强度将减弱。其中皮肤、肌肉组织等对光的吸收在整个血液循环中是保持恒定不变的,而皮肤内的血液,容积在心脏作用下呈搏动性变化。当心脏收缩时外周血容量最多光吸收量也最大,检测到的反射光强度最小。而在心脏舒张时,检测到的光强度最大,使光接收器接收到的光强度随之呈脉动性变化。最后,我们通过DA14580 的 ADC 采集光接收器的电信号,计算出心率。. _& K* d6 Z- d
    2硬件设计  m$ E6 f- b+ }; A8 D$ Y7 z9 M: r

3 f7 _; F6 F5 ?9 z* b    我们的心率传感器由两部分组成,如下图所示。+ W1 P, |, x( m+ M. y8 e
- U' j' G2 d/ M6 s
    第一个张图 HY1303 其实是一个 LED 和一个光传感器,将采集到的光强转换成电压,从第 6 引脚输出。然后通过第二张图 HY232 放大电压。
1 m2 W8 h  e+ p. ]2 g, P' x8 T6 |
    I- S3 g; R) n" f( w! l+ V( c% f7 c
    图 15 B7 {/ [* H# L. T

" Z% ^* U( X1 f    1 {1 r8 @, G& L
    图 23 J" L6 v9 G2 `  ?, Q

' h2 l  Z" {: Z! I: d    3软件设计
& a- w# f! g' E- _( V1 \; t( n* ~. P& Z# J. [0 f; C$ |
& G  O: m- Z7 [  a* d  n2 e
    第一步,就是系统的初始化。
6 ^1 [5 S4 j* h, T
$ H7 n3 \# \, ]# R# \    ; U4 _& x  F+ o* n( z
    代码1" H) K) Q& o. `3 y; g$ y& R
8 k. @" l  T9 {0 N' U' g
    由于本次要使用串口打印,我们就设置串口管脚,使能串口,对串口进行初
: }, r1 S$ m" [1 T+ a) n8 X
  x0 H, G& F/ z# a) n3 |4 h    始化。7 [4 K1 l" @5 y/ L+ Z
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);( j7 D$ ^! T* [2 F% A6 ~3 \4 S
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false);   \! v* |4 q+ ~9 [% d5 j
    SetBits16(CLK_PER_REG, UART2_ENABLE, 1);
( N+ j  H3 G4 h% g    // Initialize UART component * }% ]/ {. A. f
    uart2_init(UART2_BAUDRATE, UART2_DATALENGTH);& s0 }3 s4 [' t$ S. [  T& |9 N) h
    我们的心率需要的采样周期是 4ms 到 10ms,这里用 的是 10ms,就需要通过 void my_timer_init(void)开启一个定时器。# l5 O3 u5 H) S* w
& t( I  y2 R1 [* ~
   : p: a0 F/ k- H; J6 x/ H- `. E! ]6 A
    代码2- E* T3 l+ t9 U7 z5 y: d
1 s) S; X' s7 b

( C. m  w) P1 [/ N' r    每 过 10ms , 定 时 器 0 就 会 产 生 一 次 中 断 , 进 入 回 调 函 数
+ m2 O& F/ E% m7 `9 E* d* }5 ^. W* l/ s
    timer0_general_user_callback_function,在回调函数中,我们就使用 ADC 采集数据。! a4 F, D# n* K) \
    最后通过函数 ADC_CAPTRUE(adc_heart ,&hr_capture)就可以得到心率值。adc_hreat 是 ADC 数字电压,hr_capture 就是心率值了。1 {5 z* C; o/ |  N% {8 e( c+ M

& v& d* I" E5 N& c3 L6 a    
8 Z; o; `" T, u0 g    代码3! y  U8 h" U4 c: q# b0 W6 j

) M7 B! t+ r- X/ H     / j! N: ]  s0 H% H# c$ V
    代码4" ?+ W: t. X" J6 g! L5 F

8 C& S& d, i. m, [/ O7 V$ Q; r    4实验现象4 a9 B! J- k3 ?/ Y% |

. W) p, F% D6 F& ?3 D' \3 b    首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。# f/ X. o( u: a3 o% ^& _+ i

6 L8 C1 u+ h9 P# Y
( h8 x8 `6 F/ }5 r    (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。
) k3 b( l' B/ w- J5 _. B& X. P3 C% q9 a7 a+ _$ v
    (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。
8 f" P1 n  a5 [1 v9 f    (3)点击打开串口。
- Q4 g) K$ ?6 z3 F/ g2 @6 ^7 O3 u1 k
& T  Z' C, r1 h( K    1 ]+ Z; s. }. o
    图 3( Z( L1 m1 [8 j0 O+ G: }* S
    配置完串口之后,打开我们提供的代码。" j; ~* D& }7 I4 r/ [5 z

' p4 [( a# b" e* z) _    (1)点击仿真按键。
7 X1 H$ E0 g0 s1 n+ k& F/ W  s# n( q; I8 |$ }8 |- `& C5 l# [1 l  n
   
# R9 j4 b' ~+ C3 G) Y    图 4
, o4 S+ R# [- u5 W    (2)点击运行代码。! a* T) A, `* l5 z& {: S" H3 Y
        ! r1 Q# B2 ^8 R+ }
    3 @1 o8 a/ X" c+ a1 V7 R; ~- b2 S
    图57 N. U& V- l% {: n- I

* u$ r) y. m; k3 F# s+ j+ @, _
( \' m% J9 ~0 k* u% i1 b; ]3 s    完成之后,就能看到串口调试助手接收框信息如下。
; y: P" T8 @3 H" Z. d+ I
  n: A8 t6 v2 j  G' U) R     " ]" n! {" @1 k5 G/ w0 ^9 t
    图 6
7 n% U8 B/ N+ u9 A( K/ x* Q: j" g3 H: r5 o0 a) H7 k* C
: L8 `6 @) P1 g) x3 e

4 H  J! |6 C- ~1 Q( O1 Z: a如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系
! B4 n, d+ E; p. r
5 T* i) M; k3 u6 e* J
- t8 u. v) n6 y$ r文件下载请点击: 7_(100%开源)蓝牙心率防水运动手环_心率监测.pdf (677.56 KB, 下载次数: 0)
2 x3 W9 r2 G, [3 v# P6 j! E8 `% t+ y, }% E8 `

# J: n3 F; `& l! T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-25 21:12 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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