采用arduino UNO和pulse sensor心率传感器进行心率测量

1、准备工作

首先阅读一遍我们编写的pulse sensor心率传感器使用说明书,地址(公开网盘)http://pan.baidu.com/s/1hsi8v5M,充分了解pulse sensor的工作原理。

实验所需设备:

Pulse sensor心率传感器(不含配件版含配件版)、arduino UNO控制板(原版或兼容版)和电脑一台。

此外,如果想做成无线传输的方式,可以附加XM-15B(蓝牙2.1模块)或者XM-26B(蓝牙4.1和2.1双模模块)和USB-TTL模块

实验所用软件:

Arduino IDE 1.8.2

Processing IDE 2.2.1

注意事项:

a.arduino程序文件不要放在很深的文件夹中,容易引起编译错误。

b.arduino程序文件不要放在中文目录下。

2.实验步骤

2.1 给arduino UNO板安装驱动

分为两种情况讨论:

a.使用的是原装arduino uno板

打开arduino软件文件夹,找到driver文件夹,打开看到如下:


如果你是64位系统请点击amd64安装串口驱动,如果是32位系统点击x86。驱动安装完毕,用USB线连接PC,如果驱动安装正常,此时PC机将识别出arduino的虚拟串口,可以在设备管理器查看串口号。

b.使用的是兼容版arduino UNO板

目前国内大部分都是使用的兼容板,其串口芯片已经换为CH340G,所以请将公开网盘中的CH340驱动文件(位于公开网盘\Pulse sensor心率传感器\驱动及工具\CH340驱动)下载下来并安装。成功后如下图所示:

2.2 给arduino UNO板下载程序

首先下载arduino软件(可以到公开网盘\Pulse sensor心率传感器\配套软件和资料里寻找),并安装好。

然后下载本次实验程序PulseSensor V1.5.RAR(公开网盘\Pulse sensor心率传感器\配套软件和资料或者私密网盘中寻找)并解压。解压后的文件夹不要放在中文路径或者很深的路径下并且不要随意更改文件夹内的任何文件!

解压后如下图所示:


直接双击红圈文件或者先打开打开arduino软件,点击菜单栏的文件->打开,选中红圈文件。之后程序被arduino软件显示。在下载程序之前我们需要选择正确的板子型号和串口号。点击工具->开发板,选择你所使用的arduino型号(下图以UNO板为例):


再点击工具->端口,选择相应arduino串口号(设备管理器里可以查询)。


选择正确后,点击上传upload按钮,如下图:

程序下载成功后,下面将显示:

到此,arduino程序下载成功。

特别注意:给arduino板下载程序时,板子上不可以接其他模块(尤其是蓝牙模块,会造成串口数据冲突

特别说明1:使用其他arduino板,步骤与上面相同,只需要更改板子对应型号即可。

特别说明2:如果你想让传感器工作在5V电压下(推荐),那么程序不需要修改。如果想让传感器工作在3.3v电压下,那么请将下图所示的语句前面的注释去掉,重新编译程序。此外要保证传感器的电源线插入3.3V接口,arduino板子的AREF引脚用导线连接到3.3v(板子默认是不连接的)。


2.3 连接pulse sensor传感器到arduino UNO板

连接关系如下表:

硬件连接关系
pulse sensor心率传感器    arduino uno板
SA0
+5V(或3.3V)
-GND
按照上面关系连接pulse sensor传感器到arduino UNO板,并给arduino UNO板上电,将USB线插入电脑USB口中。

2.4 脉搏波形和心率数值显示

脉搏波形和心率数值在电脑上的显示有两个软件可用。对应的在程序开头首先对两种显示方法进行了宏定义。

第一种,使用Processing软件显示。


更改Arduino程序中的outputType为PROCESSING_VISUALIZER,然后重新编译上传arduino程序到arduino板中。

下载processing软件(到公开网盘\Pulse sensor心率传感器\配套软件和资料里寻找,根据电脑具体配置选择32位版本或者64位版本)并解压。

下载processing程序PulseSensor_Amped_Processing_Visualizer-master.rar(公开网盘\Pulse sensor心率传感器\配套软件和资料或者私密网盘中寻找)并解压。解压后的文件夹不要放在中文路径或者很深的路径下并且不要随意更改文件夹内的任何文件!打开processing软件(使用3.3.3版本或者2.2.1版本),点击菜单栏file->open,选择下图中红框文件,如下图:


此时,可以先点击一下run按钮,上位机的选择端口界面会弹出来,此时需要我们选择开发板在PC机上相应的端口(点击方框),如下图:


如果端口选择正确,将传感器放在手指或耳垂处,就可以看到脉搏波形了。如下图:

第二种,使用arduino软件自带的串口绘图器显示。

更改Arduino程序中的outputType为SERIAL_PLOTTER,然后重新编译上传arduino程序到arduino板中。

然后点击arduino软件中工具->串口绘图器,可以看到脉搏波形,注意右下角波特率选择115200。


至此,在电脑上可以实现脉搏波形和心率数值的显示。

视频演示地址(手指测量手腕测量

3.蓝牙无线传输

在验证了通过有线方式可以成功地得到脉搏波形和心率数值后,针对一些需要远程监控的应用场景,可以考虑添加蓝牙模块,实现脉搏波形和心率数值的无线传输。

目前推荐使用蓝牙2.1模块(这里以XM-15B模块为例),因为传输数据量大,可以很好传输脉搏波形和心率数值。

XM-15B模块是蓝牙串口透传模块,无需用户自己编程,可以当成一根串口线来使用,单片机发送什么数据,蓝牙模块就原样传到接收蓝牙模块上并输出,因此使用上非常简单方便。

3.1使用USB-TTL模块配置蓝牙模块

XM-15B出厂默认配置为从机,波特率:9600,N,8,1。这个配置与我们想要的不一样,所以必须首先进行配置更改,这时需要用到USB-TTL模块。

首先安装USB-TTL模块的驱动(如果之前未安装过),步骤与前面的2.1.b相同。

然后交叉连接USB-TTL模块和XM-15B模块

硬件连接关系
USB-TTL模块XM-15B模块
5V   VCC
GNDGND
TXDRXD
RXDTXD


将USB转TTL模块插入电脑,下载公开网盘中的XM-15B.rar(公开网盘\Pulse sensor心率传感器\蓝牙模块资料)并解压,打开里面的参数设置工具-BTModuleSettings(XM-15B).exe,设置蓝牙模块为从机,115200,0,1,如下图:



与arduino UNO板连接的蓝牙模块要设置为从机。

3.2蓝牙模块与arduino UNO板的连接

硬件连接关系
XM-15Barduino uno
RXDTX
TXDRX
VCC5V
GNDGND

3.3蓝牙模块的配对及传输

上电后,蓝牙模块的LED闪烁,说明还没有配对成功。此时主机侧(电脑、手机或者蓝牙主机模块)需要与蓝牙从机配对,配对成功后,蓝牙模块的LED常亮。此时主机分三种情况讨论:

a.主机是无蓝牙功能的电脑

如果使用的电脑本身没有蓝牙功能,这时一共需要两个XM-15B模块,其中一个模块设置为从机,波特率115200,该模块采用3.2节内容与arduino  uno板连接。另一个模块设置为主机,波特率115200,然后与USB-TTL模块连接,插入电脑,此时USB-TTL的端口号就是蓝牙传输的端口号。

注意,两个蓝牙模块的配对密码一定要相同,这样二者才能自动连接配对。一般默认的配对密码为1234或0000。


使用移动电源给arduino uno板供电,同时将主机蓝牙和USB-TTL插入电脑,两个蓝牙模块上的蓝色LED从闪烁变为常亮,代表两者自动配对连接成功。此时打开电脑上的Processing软件,选择USB-TTL端口号就可以看到脉搏波形和心率数值。

视频演示地址

b.主机是有蓝牙功能的电脑

此时将配置好的从机蓝牙模块连接上arduino uno板并上电,到电脑上完成蓝牙的配对连接,具体步骤可看下面视频:

视频演示地址

c.主机是安卓手机

首先在手机上安装Bluetooth Chat.apk。然后将配置好的从机蓝牙模块连接上arduino uno板并上电,到手机上完成蓝牙的配对连接,具体步骤可看下面视频:

视频演示地址

4.数据保存功能

如果希望传输的大量数据可以保存下来,以后再进行数据分析,可以使用公开网盘里提供的串口助手porthelper.exe(位于公开网盘\Pulse sensor心率传感器\驱动及工具)。

打开porthelper,选择正确的串口号和波特率,在接收区右键并点击启动/停止文本输出(文本接收开启)。


打开串口并接收数据。当接收的数据结束时,再次右键选择点击启动/停止文本输出(文本接收停止)。此时去porthelper所在目录可以找到一个文本文件,里面就是接收的数据,可以根据个人需求导入到不同的处理软件中。

评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值