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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
开源蓝牙心率防水运动手环
——疯壳·智能穿戴开发系列   
心率监测
" n2 p0 C# c$ u  O

& f9 b% [4 f" _# j
1 {$ K- p) A3 g. a
' j+ |. ]$ `+ E8 H  {) D" n    1心率测量原理简介$ S0 I$ H1 h6 k! `' ]  o+ g" P
' q+ U' T+ }5 e5 o/ W
    我们手环的心率测量, 采用的是 PPG 光电容积脉搏波描记法原理(PhotoPlethysmoGraphy)。简单来说,就是利用血液中透光率的脉动变化,折算成电信号,对应的就是心率。
+ _* f" t  a0 Y1 `- U# {7 }1 T, i) ~( {9 Y    当一定波长的光束照射到皮肤表面时,光束将通过反射方式传送到光电接收器,在此过程中由于受到皮肤肌肉和血液的吸收衰减作用,检测器检测到的广强度将减弱。其中皮肤、肌肉组织等对光的吸收在整个血液循环中是保持恒定不变的,而皮肤内的血液,容积在心脏作用下呈搏动性变化。当心脏收缩时外周血容量最多光吸收量也最大,检测到的反射光强度最小。而在心脏舒张时,检测到的光强度最大,使光接收器接收到的光强度随之呈脉动性变化。最后,我们通过DA14580 的 ADC 采集光接收器的电信号,计算出心率。/ v" x2 r0 R$ ]7 A# B# [3 W7 p
    2硬件设计; N8 t- @! V0 \- P7 Q% X

+ ^8 G5 O- x" h. F/ K9 n# z* {    我们的心率传感器由两部分组成,如下图所示。# Q1 @0 S) p# v$ W
7 q% T' x. C3 A5 c& ^+ ^: }! M9 |4 h
    第一个张图 HY1303 其实是一个 LED 和一个光传感器,将采集到的光强转换成电压,从第 6 引脚输出。然后通过第二张图 HY232 放大电压。
. a+ J7 q/ l, G' L2 x5 i  L
/ V5 c& C! J0 y9 Y1 o! Z9 r3 Z    
  L6 D5 o/ M( t8 b! S7 M    图 1$ C) u) U5 q$ i- l; K5 j

8 ?/ U1 S) w% `  Y
/ M4 k& R4 Z0 p/ ]0 z9 I1 t! c    图 2( ^/ U5 R+ S& y7 h
) O$ d+ |5 u9 K. D
    3软件设计# j3 f3 f; z0 M, h% }/ V( H: s

* G- x& ~# ?" P  H  H- A1 @% E* a; B2 C  i
    第一步,就是系统的初始化。5 k& {. B' D8 l8 j' V9 [) B! Q

% X* e- e8 ?) V- `1 r& d3 l    
7 [% L( [5 J& I- ^1 @7 ~    代码1
# j: I- i  ~! p/ T4 h. e" u2 S6 j; |' `
    由于本次要使用串口打印,我们就设置串口管脚,使能串口,对串口进行初
6 O7 _% j7 W$ S  O
" Z6 P1 ^0 h3 h/ Y9 c9 U' T5 t. o    始化。8 k" {6 _& V, u8 a
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);" E* q& W: I8 M2 k
    GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false);
8 L. V. f! z- Q" j    SetBits16(CLK_PER_REG, UART2_ENABLE, 1);1 e: A% I- {. }5 u4 N" m4 |( ]
    // Initialize UART component * C8 J5 X  n0 s
    uart2_init(UART2_BAUDRATE, UART2_DATALENGTH);
2 _+ }) G( `7 @    我们的心率需要的采样周期是 4ms 到 10ms,这里用 的是 10ms,就需要通过 void my_timer_init(void)开启一个定时器。7 y, x  g  Y7 U

0 o9 a0 _; V: \, E    , g/ u. \8 T' d" B) K2 S
    代码2
: Z  h( N% w  h1 I  c1 A+ |9 J  G2 \9 Y& g3 J; r7 Q. u- L6 d
0 D2 Q) Q" `7 |4 K
    每 过 10ms , 定 时 器 0 就 会 产 生 一 次 中 断 , 进 入 回 调 函 数! C5 W1 o/ }3 z
+ F( a5 f: i, y* e
    timer0_general_user_callback_function,在回调函数中,我们就使用 ADC 采集数据。' `- K* c9 |9 O0 ~1 O
    最后通过函数 ADC_CAPTRUE(adc_heart ,&hr_capture)就可以得到心率值。adc_hreat 是 ADC 数字电压,hr_capture 就是心率值了。
7 F- V& d0 t' a" |) ~
& ]9 [+ r  u6 A6 H% [    
& Q! w# c5 b3 i* k- F* Y4 {% P    代码3/ \5 I$ i$ `/ Y' i
; u0 a, T- T9 B' x) i: N8 L+ V
   
5 c7 j: g& ~  Z7 Y& D7 t: z    代码4. V# ?2 G  k4 F" y0 o0 X

$ ]8 P5 Z0 H7 T: b" B- m    4实验现象: P; J, t; b4 u0 v" Y5 V

% ?! a) T* n$ X# V: ?5 l+ z    首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。
2 N4 L4 o( N. |$ e/ m8 @  u$ K  U, {

0 M( ~& g$ @, U% `1 w4 x7 z    (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。
, P  J2 a; D2 }& L, @1 w$ g6 U. Y1 Q9 e
    (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。
6 f$ `9 M+ }  q' T7 A    (3)点击打开串口。
4 T( m9 o$ r& j- T( Y" M
* l/ f2 q  q7 e- h, ^; B    
1 r; q/ g- G, M) \    图 3
; t" {) J  R1 F8 Y! _) S    配置完串口之后,打开我们提供的代码。# g5 N$ e: d4 \3 p
: B5 q! O" u0 o' T8 b4 g
    (1)点击仿真按键。
/ W5 P+ f1 f6 I- s. T8 v
2 Q3 C7 c. J  S5 [* p8 w   
: V) U* _/ s7 d, M5 L9 i! u7 @    图 4
5 |; H5 Z5 m/ @  s" w    (2)点击运行代码。& `( ^& f- v$ y# N: y
       
% Z+ |$ y0 ]9 d, ?    
. K0 ?0 N* {/ c5 L) x. _    图5. H% l& S7 L" \3 X2 O

* N/ r/ q5 f/ e: h5 v: g4 e) v" j" ]' ?) c
    完成之后,就能看到串口调试助手接收框信息如下。; [5 [) V$ i( H0 V, n$ h
4 P) {; D; E0 a5 E- M" `5 \" }* }5 ~
   
+ l" I+ {6 q9 |6 d6 N% f    图 6
! _$ p6 Z4 K. `1 h' @2 U
. n( m& ]) o$ m8 j4 g# f. V6 L& t% ~. v8 N/ e7 O
* Y3 X  F$ f4 ?1 {+ O+ `# Y# G9 I

0 x$ ^" g, A; A3 S5 F: P文件下载请点击: 7_(100%开源)蓝牙心率防水运动手环_心率监测.pdf (677.56 KB, 下载次数: 0)
) ?8 Q. j/ i& ~. o! I
. J' J  U! V( \4 G% u) r- Z0 q( D( x1 O; z, f: x8 i# u7 X# ?) J
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-26 23:00 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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