如何使用Hexabitz单导联EXG监测模块和Arduino Uno捕获和可视化生物信号
扫描二维码
随时随地手机看文章
使用Arduino接收来自Hexabitz单导联EXG监视器的肌肉信号数据。处理和可视化数据与LED指示灯。
在这个项目中,我们将使用Hexabitz单导联EXG监测模块(H2BR0)捕获肌肉信号数据,并使用Arduino Uno进行处理。目标是创建一个易于使用和视觉上吸引人的生物信号可视化工具。
单引脚,EXG监视器(H2BR0x):
Hexabitz单导联EXG监测模块(H2BR0)是一种可以记录来自心脏(ECG),大脑(EEG),眼睛(EOG)和肌肉(EMG)的出版级生物电位信号的模块之一。
是什么让它与众不同?
记录出版质量的生物电位信号,如ECG, EMG, EOG或EEG。
小尺寸允许易于集成到移动和空间有限的项目。
H2BR0基于STM32G0单片机。
使用我们易于使用的api编写高级C代码。
您可以连接到外部硬件或与其他Hexabitz模块组合!
一步一步的指示:
设置Hexabitz EXG监控模块:
请查看本文,了解如何使用STM32CubeIDE编写代码。
ExG模块主代码:
此代码设计用于与肌电传感器的接口,读取肌肉信号并通过串行通信将其传输到树莓派(它初始化传感器,读取样本并将其发送到端口P3)
UserTask函数是主要的用户定义任务。
它使用‘ EXG_Init(EMG) ’初始化EMG(肌电)传感器。
在无限循环中,我们使用‘ PlotToTerminal ’读取emg样本。
设置硬件:
将Hexabitz EXG监视器模块连接到Arduino Uno上的TX/RX引脚(数字引脚0和1)。
将led连接到Arduino Uno上的数字输出引脚(例如,引脚6)。
使用USB线或外部电源为Arduino Uno供电。
初始化串行通信:
打开Arduino IDE并创建一个新的草图。
在setup()函数中初始化波特率为921600的串行通信。
读取和处理数据:
从Hexabitz EXG监视器模块读取传入数据。
可视化数据:
控制led以显示信号强度。
使用Arduino IDE中的串行绘图仪以图形格式可视化数据
代码
解释:
该代码处理从Hexabitz EXG监控模块传入的串行数据,以控制led的亮度,提供生物信号强度的视觉表示。它首先初始化led作为输出并设置高速串行通信。当数据到达时,它被存储在缓冲区中,直到检测到消息的结尾。消息的最后四个字节被提取为ascii编码的数值,转换为浮点数,并映射以确定应该点亮多少个led。这种映射反映了信号的强度,led作为被监测生物信号的视觉指示器。代码优雅地处理较短或无效的消息,确保其操作的可靠性。
功能概述:
1. 从串口读取数据字节。
2. 缓冲最多63字节的数据。
3. 将最后4字节(60-63)合并为单个值(' sensorValue ')。
4. 使用‘ sensorValue ’来确定应该点亮多少led,将传感器值映射到led的数量。
5. 将组合的传感器值打印到串行监视器。
项目测试
结论:
本项目演示了如何使用Hexabitz单导联EXG监测模块和Arduino Uno捕获和可视化生物信号。通过LED和串行绘图仪将数据可视化,我们可以创建一个有效的生物信号分析工具。
本文编译自hackster.io