anning865 发表于 2015-11-13 10:59:11

【NUCLEO-L476RG开发】使用STM32L4开发板玩转心率传感器

本帖最后由 物我两相忘 于 2015-11-13 10:59 编辑

非常幸运,拿到了STM32社区兑换的NUCLEO-L476RG开发板。STM32L4芯片的低功耗高性能是早就听闻的,这次抽出一些时间简单实现了用开发板连接pulse sensor心率脉搏传感器来实现人体心率的读取。
目前,STM32CUBE库已经是ST官方主推的库,配合CUBEMX软件,可以非常方便已图形形式实现STM32全系列芯片的初始化代码,我个人觉得这个功能非常棒!一旦我们熟悉了库的建构和软件的使用,可以极大提高编程速度,减低上手难度,方便代码移植,可以说我的这个帖子的代码就是从我以前写的STM32F411板子移植过来的,前后不过花了十分钟不到就完成了。而且CUBEMX可以生成KEIL,IAR工程,方便了各类开发人员的使用。闲话少叙,下面讲一下步骤。
首先,介绍一下整体思路。pulse sensor心率脉搏传感器是一种光电反射式的心率传感器,利用550nm绿光来探测皮肤下动脉血管的搏动从而测得心率。该传感器构造简单,原理图和arduino代码都可以从官网(http://pulsesensor.com/products/pulse-sensor-amped)下载到,淘宝上也有卖。STM32L4芯片利用一路AD以500HZ频率来采集脉搏信号,通过计算相邻两个脉搏波之间的时间差来推出心率值,然后将脉搏的数字信号和心率值通过串口传给上位机processing软件显示,完成整个采集、计算、显示的过程。
1.使用CUBEMX软件,安装L4的库。配置ADC1,TIM1,USART2三个。



2.直接生成KEIL工程。打开工程后,只需要在main.c文件中添加自己编写的代码就可以了,这时可以注意一下main文件中的注释,个人代码添加的地方都有相应的注释,比如/*USER CODE BEGIN Includes */和/* USER CODE END Includes */中间就可以添加个人需要的头文件,这样添加个人的代码,不会因为cubemx软件的改动重新生成工程而被去掉,非常方便使用CUBEMX进行反复修改。3.实验过程。
传感器一共三个引脚,其中电源和地分别接开发板的3.3V和GND,信号输出端接开发板的A0模拟输入端。

下载好程序后,打开pulse sensor官网提供的processing上位机软件就可以通过串口数据绘制出心率脉搏波形了。

手腕桡动脉处波形

手指端波形。由于信号太强,顶部被削了,不过不影响心率计算。
最后附上KEIL工程和CUBEMX工程文件。关于引脚、外设、程序的具体设置和编写,可以参照。



yanhaijian 发表于 2015-11-13 11:14:02

很牛逼。

itxuynw 发表于 2015-11-13 13:08:52

感谢分享!

disheng4688 发表于 2015-11-13 13:11:05

心率脉搏传感器,好高端。25美元吗,好贵啊。

anning865 发表于 2015-11-13 13:22:19

disheng4688 发表于 2015-11-13 13:11
心率脉搏传感器,好高端。25美元吗,好贵啊。

去淘宝买国内仿制版,连25元人民币都不到!

安臣 发表于 2015-11-13 15:15:01

这么高端?

wuweijie 发表于 2015-11-13 16:17:42

:funk:好高端的说

Paderboy 发表于 2015-11-13 19:07:43

:loveliness:多谢分享,不错。楼主Arduino的传感器玩的不少啊。。。


花生 发表于 2015-11-14 10:20:20

不错啊,厉害。


沐紫 发表于 2015-11-16 09:17:26

加上了,之前漏掉了:)

春涛 发表于 2022-3-3 17:04:55

多谢分享,不错。楼主Arduino的传感器玩的不少啊。

HANGYUAN 发表于 2023-1-31 05:46:29

111111111
页: [1]
查看完整版本: 【NUCLEO-L476RG开发】使用STM32L4开发板玩转心率传感器