完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
心跳传感器
本期介绍的pulsesensor就是一款心率传感器,是通过光电反射的原理检测人体脉搏的,人体血管在随着心跳跳动的时候的透光率不同进行的测量,传感器将光电采集到的信号经过滤波、放大等一系列电路处理之后输出为模拟电压量,我们通过检测模拟量电压的大小就可以处理计算出心率数据! 检测原理 手指贴在传感器上面输出电压模拟量,我们通过单片机实时检测电压的大小并通过串口将处理好的数据输出到电脑上,电脑再对数据进行处理,生成波形,心跳等参数,这个过程看起来有点复杂,又是单片机处理数据又是电脑处理数据的,不要担心官方有提供多种型号单片机的程序(STM32、arduino、51系列),电脑上的数据处理呢也是开源的,所以我们这里是不需要写程序的,只要会下载就行,看到这里是不是突然就松了口气哈哈! 传感器贴膜 新传感器到手我们先不要急着接线,先在正面和背面贴个膜和粘扣,一个防止手指流汗到上面的电子器件上,另一个就是避免手指触摸的静电干扰也方便固定,废话不多说,看两张贴好的图片就会了! 贴之前
硬件接线之前我们先介绍一下传感器的引脚,传感器上面有标+,-,S三个引脚丝印,具体对应功能参照下表就好 [tr]引脚名称引脚功能[/tr]
[tr]arduino传感器[/tr]
arduino程序下载 资料里面找下下面文件双击打开即可(arduino软件以及驱动安装百度官网即可,资料很多) 选择好开发板和串口 点击下载,等待下载完 接下来使用不需要使用STM32的可直接跳转到上位机的使用! STM32接线 我们再看STM32的接线,上面arduino的使用在网上以及产品资料里面都有说明相对来说会比较容易一些,查看资料我们发现STM32的使用只提供了代码并没有文档进行说明如何操作(对了,需要资料可在下方留言邮箱或者私聊),我们这里用STM32F103ZET6的板子就行操作,打开资料,找到下方的32程序的压缩包解压出来 解压出来之后找到工程打开,没有安装MDK5的百度找安装教程即可(网上很多) 打开之后我们先看到主函数部分,下面贴出主函数代码 int main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_ADC1_Init(); MX_TIM3_Init(); MX_USART2_UART_Init(); HAL_TIM_Base_Start_IT(&htim3); while (1) { sendDataToProcessing('S', Signal); // send Processing the raw Pulse Sensor data if (QS == true) { sendDataToProcessing('B',BPM); // send heart rate with a 'B' prefix sendDataToProcessing('Q',IBI); // send time between beats with a 'Q' prefix QS = false; // reset the Quantified Self flag for next time } HAL_Delay(20); //delay for 20ms }} 查看上面代码 MX_USART2_UART_Init(); 可以看到STM32处理传感器之后输出的数据是从串口2输出的,STM32F103 UART2对应TX为PA2,RX为PA3,我们确定串口是从这两个引脚输出之后只需要把这两个引脚连接到USB-TTL之后把数据转换到电脑上即可 [tr]USB-TTLSTM32系统板[/tr]
void MX_ADC1_Init(void){ ADC_ChannelConfTypeDef sConfig; hadc1.Instance = ADC1; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.NbrOfConversion = 1; HAL_ADC_Init(&hadc1); sConfig.Channel = ADC_CHANNEL_0; sConfig.Rank = 1; sConfig.SamplingTime = ADC_SAMPLETIME_13CYCLES_5; HAL_ADC_ConfigChannel(&hadc1, &sConfig);} 分析上面代码可以看到使用的STM32的ADC1通道0,手册查看ADC管家对照表可以知道ADC1通道0对应的PA0引脚,这个采集就是使用的PA0引脚去采集传感器的信号了,接线参考下表即可 [tr]STM32传感器[/tr]
STM32程序下载 接好线之后把供电的数据线、ST-LINK、USB-TTL接到电脑上,然后下载程序进去即可(串口下载和ST-LINK之类都可以),我这里使用ST-LINK下载程序,先在魔术棒里面修改DEVICE为ZE DEBUG里面按照下图来配置即可 配置完之后我这里使用的是ST-LINK直接在MDK里面点击下载就行 等一会STM32的程序就下载完成了 上位机查看 下载完程序arduino的话直接插到电脑上即可,STM32供好电将之前接好线的USB-TTL插到电脑上,上位机Processing可自行百度下载也可以点击下方链接下载 链接: 点我下载. 下载好之后双击下图所示的打开 进入上位机界面后点击文件,点击打开,找到资料中名称为 PulseSensorAmpd_Processing_1dot1 的文件打开 打开之后先运行一下然后退出来查看串口号 在设备管理器里面找到arduino或者STM32对应的端口号,我这里以arduino为例 接下来找到下面这部分代码,COM1、COM5、COM6、COM8对应0、1、2、3,COM5对应1,将Serial.list()[0]中括号中的0修改成1即可对应打开COM5 port = new Serial(this, Serial.list()[1], 115200); port.clear(); port.bufferUntil('n'); 如果前面的步骤没问题打开之后像下面这样把手指放上去就能看到波形,不要绑太紧,压着手指会让心跳测量偏高 总结 操作流程尽量做到细致,长期发布类似文章,欢迎关注,本期指尖心跳就到这里了,欢迎随时留言,需要资料也可以在下方留言! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1649 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1566 浏览 1 评论
994 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
694 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1613 浏览 2 评论
1874浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
660浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
528浏览 3评论
544浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
517浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 16:09 , Processed in 0.947442 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号