xianii/光学脉搏测量

Created Tue, 10 May 2016 12:00:00 +0800 Modified Mon, 08 Nov 2021 19:21:56 +0000

demo展示

材料准备

硬件

  • windows平台一个(winXP+)
  • arduino开发板一块
    • 至少有一路ADC
    • 至少有一路串口
  • PulseSensor一个
    • 某宝上很多,价格在十几块到二十几块不等
  • 健康人类一只

笔者的演示环境如下:

  • Arduino Leonardo
  • SP4(Windows10 10586.218)

软件

下位机

器件连接

传感器引脚从左往右分别是GND,VCCSIG,分别连接至电源ADC口即可。传感器兼容3.3v-5v的驱动电压。 连接图

代码

由于下位机代码太短,我就直接贴在这里了。

void setup(void)
{
	Serial.begin(115200);
}
void loop(void)
{
	Serial.print("x:");
	Serial.print(analogRead(A0));
	Serial.print(",\n");
	delay(20);
}

功能就是按照一定的频率把A0口的AD值以x:{value},\n的格式通过串口发送至上位机。

上位机

上位机上使用了一款小巧的跨平台开源图形引擎love2d来绘制界面。 你可以很容易的把在上面开发的程序移植到其他平台。

由于love2d引擎使用lua开发,笔者使用了一个luars232库来完成串口通信。

经过笔者测试,这个luars232库有这样的bug,无法打开大于COM9的串口。所以如果你的设备连接上之后如果串口号超过了COM9,请手动改至COM0-9的范围。

上位机经过如下步骤便可得到题图所示的效果:

  1. 下载并安装love2d引擎(32bits)
  2. 下载并安装lua for windows环境
  3. 使用lua中的lua51.dll替换love2d中的dll
  4. git clone 我的demo项目
  5. 将你的开发板连接至电脑,并调整COM口编号至合适范围
  6. 编辑\gui-love2d\main.lua文件,将头部rs232.open()中的COM口改成你所使用的
  7. \gui-love2d\目录下的文件打包成zip(不要打包目录),并更改后缀为.love
  8. 双击运行得到的.love文件即可

你可以先用arduino IDE自带的串口工具查看一下开发板的串口输出是否正常再进行下一步

最终,应该得到如下图所示的结果。

ps. 第7点所述为love2d的打包方法之一,更多运行方法请参见官网
ps.. 第3点是因为love2d使用了luajit,无法正常调用luars232,替换成原生lua即可

本项目Git:[https://github.com/Nigh/pulsesensor-demo]