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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
开源蓝牙心率防水运动手环
——疯壳·智能穿戴开发系列   
心率监测   
) a- ~# y* J) q

1 u3 D# _4 p1 ^: u
) t3 _( v' u6 ?4 ^5 E* z! M& i* y5 `/ n( M
    1心率测量原理简介
1 d; D( o( c: V+ [/ a, L6 B9 h
  `  k+ ]# p  [* S1 _# u    我们手环的心率测量, 采用的是 PPG 光电容积脉搏波描记法原理(PhotoPlethysmoGraphy)。简单来说,就是利用血液中透光率的脉动变化,折算成电信号,对应的就是心率。6 T1 v+ O, B& f% V0 I3 n" \
    当一定波长的光束照射到皮肤表面时,光束将通过反射方式传送到光电接收器,在此过程中由于受到皮肤肌肉和血液的吸收衰减作用,检测器检测到的广强度将减弱。其中皮肤、肌肉组织等对光的吸收在整个血液循环中是保持恒定不变的,而皮肤内的血液,容积在心脏作用下呈搏动性变化。当心脏收缩时外周血容量最多光吸收量也最大,检测到的反射光强度最小。而在心脏舒张时,检测到的光强度最大,使光接收器接收到的光强度随之呈脉动性变化。最后,我们通过DA14580 的 ADC 采集光接收器的电信号,计算出心率。2 V( |. N( u5 }7 s3 Y
    2硬件设计
: O  ?% g: b- r5 i
% h: |+ G! }1 a2 Q# {    我们的心率传感器由两部分组成,如下图所示。: _. i2 C& S3 p& a+ }* c, T

# R- q# R: X; `    第一个张图 HY1303 其实是一个 LED 和一个光传感器,将采集到的光强转换成电压,从第 6 引脚输出。然后通过第二张图 HY232 放大电压。3 I* y+ F" G4 e- [# ~+ [

+ k) D2 C, U0 A3 s" M$ s3 \. i  B   ' ]2 Y) Q/ c: K
    图 1
3 `, W4 o9 @- Y1 l8 m6 P
, y. i4 D# C; G. P: @! O! h    
" @9 o- l; L* l4 |' L$ n    图 25 d; [3 h: W' s" A5 W
8 j1 r# Q: D7 Y# a6 _3 t
    3软件设计
! R' s% C5 i, l3 }
. Q4 k( Y- ?8 t0 n4 \* w, o$ R3 t) _0 ?) }! Q  z
    第一步,就是系统的初始化。/ e( e0 \+ d. A' r; y( b5 W
0 X8 z+ n! R/ _, C3 R
   
) p% K' E9 }6 |6 }7 k    代码1
3 c9 j2 M& B3 |/ k& F4 r' O9 v# ]3 Z) ]4 U3 m& z
    由于本次要使用串口打印,我们就设置串口管脚,使能串口,对串口进行初
4 H6 i/ U/ G0 j5 i/ @# o0 C, S1 W/ B; a, ]
    始化。
6 \2 t& k7 q8 V    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);
9 ~4 J* r/ W" `% }+ j    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false); $ H7 K# @* W7 a) ]8 V' `
    SetBits16(CLK_PER_REG, UART2_ENABLE, 1);4 v0 I% n( u" F/ m/ A
    // Initialize UART component 0 q% r% Z  R$ t2 c4 o" z" ~% \
    uart2_init(UART2_BAUDRATE, UART2_DATALENGTH);5 r0 b/ A3 @7 P% r. U$ I
    我们的心率需要的采样周期是 4ms 到 10ms,这里用 的是 10ms,就需要通过 void my_timer_init(void)开启一个定时器。
+ @! p7 U! w2 z' H: C
$ \& b6 m- V* H* Y    , J+ ?" P1 P4 G4 f
    代码2  G3 p. x2 ~+ {# ]0 [
0 l3 L; T' T! X0 N, H- l$ I* b) p

1 G  u" Q. \! S8 R4 B& C! m    每 过 10ms , 定 时 器 0 就 会 产 生 一 次 中 断 , 进 入 回 调 函 数
' P7 J4 j$ `9 w5 e( z" M* D$ E! M- p7 H4 p
    timer0_general_user_callback_function,在回调函数中,我们就使用 ADC 采集数据。
" P  p3 L4 @3 @/ E0 E8 z1 n    最后通过函数 ADC_CAPTRUE(adc_heart ,&hr_capture)就可以得到心率值。adc_hreat 是 ADC 数字电压,hr_capture 就是心率值了。
+ v9 j2 @# c& U$ g9 l3 \" a6 c1 s$ w
    * r# y9 o4 z2 P
    代码3  N0 v2 j, \+ G7 R  Y9 w$ P9 f2 E

4 A& }8 C; p- m  @! t/ a" I    
1 k. h3 D0 `$ v    代码48 M/ l7 l, s0 [5 l6 m

: _: k" I. O$ }. c! W$ P  {    4实验现象- }6 r0 x/ f3 `( f; u6 A8 E( A
, y. O; ?( t4 L9 Q% w6 b
    首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。
! O- S% D" U1 |8 H( e1 F2 H7 o7 q( c* L
3 e) M* V. W7 z2 R9 q
    (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。7 K! O' d* w7 z, f% K

6 |' r& p. D. g/ y    (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。
6 C7 R2 |+ u, `$ V* z    (3)点击打开串口。
# A: D4 F, \, b/ B! J. l: q9 q; I" d; O6 n$ Y# S* J5 a" }
   8 \# D0 y: D+ ]5 R
    图 3
: D( q* r2 [# B8 X; j  V0 r    配置完串口之后,打开我们提供的代码。- k. H; s3 H. F0 F2 W% U* v
: f: K1 J$ T6 i# W3 \  U
    (1)点击仿真按键。' p* u) Z# {) q9 Z2 _% I# t' M0 l

# i; }& X9 V$ Y" W9 a3 M    3 i# w) {2 C0 q8 W8 d
    图 4$ z5 l' u) R- A- A) R) N
    (2)点击运行代码。
3 z' T& p+ A  r! b         6 o: ]% |' q/ ]( V
   
8 U0 z( V: Y2 I; Y/ C+ G    图5
# c" K* f' K9 [8 y8 i9 r
" Z4 }* D9 q  ~
1 s+ F' {; k! P    完成之后,就能看到串口调试助手接收框信息如下。
8 {1 d* B9 J, X( _0 z: X
! b1 B, _" {1 R' E       X9 ~3 i9 t$ q; l
    图 69 z3 |! G2 A! \
( X; p6 [$ f2 B
( _1 [: ~. Q; \9 ?* g* T0 X
3 _, D8 K, c' z3 W  @1 F6 D2 B6 w# n- v
如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系
& X- M; F& E; Q. ~+ E7 ]/ e
. S4 y& |/ q9 v8 V- H6 W3 z) @' L6 L( g( R
文件下载请点击: 7_(100%开源)蓝牙心率防水运动手环_心率监测.pdf (677.56 KB, 下载次数: 0)
4 v& `' G! b# F6 ~* D# y+ t- H
& ?  f; q. U7 t/ G3 I9 P# d4 c9 ]. e  Z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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