构建一个双通道肌电图游戏控制器
想象一下,无需触碰键盘或手柄,仅靠肌肉动作就能操控一款赛车游戏。
在这个项目中,你将构建一个双通道肌电图(EMG)游戏控制器,将前臂肌肉活动转换为键盘输入。通过使用DIY神经科学套件Pro,系统能够检测双前臂的肌肉收缩,并将其映射到不同的键盘按键,从而让你能够自然地操控和驾驶赛车游戏。
控制器识别四种不同的操作:
•右前臂屈曲 → 向右转(D)
•左前臂屈曲 → 向左转(A)
•先同时弯曲双前臂 → 激活前进模式(W)
•下一个同步弯曲 → 切换反向模式(S)
无需手动按键,你的肌肉便成为控制器,展示了生物信号如何被用于创建直观的人机交互(HCI)项目。
注意:本项目由安基特·迪隆制作。
什么是肌电图(EMG)?
肌电图(EMG)是一种用于测量骨骼肌在收缩时产生的电活动的技术。
每当大脑发出信号使肌肉运动时,微弱的电信号会通过运动神经元传递。肌电图传感器可捕捉这些信号,从而使计算机和嵌入式系统能够检测到肌肉活动。
EMG技术广泛应用于:
•假肢控制
•人机交互(HCI)
•手势识别
•机器人技术
•康复研究
•生物医学工程教育
在本项目中,我们使用肌电图信号来替代传统的键盘控制,通过肌肉动作实现操作。
该项目创建了一个双通道肌电图采集系统。
•通道1记录右前臂的肌肉活动。
•通道2记录左前臂的肌肉活动。
Arduino持续处理两个EMG通道,并将肌肉收缩转换为控制赛车游戏的键盘事件。
硬件组装
第一步 – 安装 Muscle BioAmp Shield
将Stack the Muscle BioAmp Shield牢固地安装到Arduino UNO R4上。
第二步 – 连接 BioAmp EXG 胶囊
使用随附的STEMMA数据线,将BioAmp EXG Pill连接到Muscle BioAmp Shield上的A2端口。
第三步 – 连接电极电缆
将一根BioAmp线缆连接到BioAmp EXG Pill,另一根连接到Muscle BioAmp Shield的JST接口上。
准备肌电图记录
良好的电极接触对于获得清晰的肌电图信号至关重要。
将NuPrep皮肤准备凝胶涂抹于每个电极位置,以去除死皮细胞并降低皮肤阻抗。随后,使用酒精棉片或湿巾清洁该区域,再安装电极。
电极放置:
对于第一通道(右前臂)
•正极(+):右前臂
•负极(−):右前臂
•参考电极:右掌背面
对于第二频道(左前臂)
•正极(+):左前臂
•负极(−):左前臂
•参考电极:左手掌背面
该配置可分别采集每只前臂的肌电信号,从而独立检测左右两侧肌肉的收缩情况。
上传代码:
1. 复制 GitHub 仓库中的代码。
2. 打开Arduino IDE
3. 安装 Arduino UNO R4 板件包:
工具 → 板子 → 板子管理器 → 搜索“Arduino UNO R4 板子” → 安装最新版本。
注意:如果在安装过程中出现任何安装或权限弹窗,请点击“确定”、“安装”或“允许”以继续安装。
4. 创建一个新草图:
转到“文件”→“新建草图”。
5. 移除默认代码:
按 Ctrl + A 选择所有现有代码,然后按 Ctrl + V 拷贝并粘贴。
6. 使用USB线将Arduino板连接到笔记本电脑。
7.选择棋盘:
转到工具 → 板子。
选择 Arduino UNO R4 Minima。
8.选择正确的端口:
转到工具 → 端口。
选择与您的Arduino板对应的端口。
(如果找不到端口,请断开Arduino,然后重新连接)
9.上传代码:
点击 Arduino IDE 中的上传按钮(→)。
请等待上传过程成功完成。
上传完成后,Arduino 就可以运行程序了。
重要提示:为获得最佳信号采集效果,请确保笔记本电脑未连接充电器,并与任何交流电器保持至少5米的距离。
现在测试代码:
1. 打开任意文本编辑器,例如记事本。
2. 弯曲右前臂 → 键 'd' 应按一次。
3. 弯曲左前臂 → 按键 'a' 应按一次。
4. 将双臂同时弯曲(第一次)→ 应连续输入字母“w”。
5. 将双臂同时弯曲(第二次)→ 应连续输入字母“s”。
如果检测不准确,您可能需要根据自身肌肉力量调整阈值。
校准:
按照以下步骤进行校准:
•打开Arduino代码,找到以下这一行:
•取消注释该行,使其变为:
•将修改后的代码上传到Arduino。
•在 Arduino IDE 中打开串口监视器。
•多次弯曲左前臂肌肉,同时观察串行监视器显示的数值,并记录在强力收缩过程中达到的最大峰值值。
•接下来,多次收缩右侧前臂肌肉,并记录该通道的最大峰值值。
•通过取每个通道测得的峰值值的约60%至70%来计算阈值。
•将新计算出的值更新到代码中的阈值。
•再次取消注释校准行:
•将更新后的代码上传到Arduino。
•测试游戏中的控制功能。如有需要,请重复校准过程。
•微调阈值,直到实现可靠的肌肉检测。
测试控制器:
在启动赛车游戏之前,请确认控制器是否正确生成键盘输入。
•打开一个文本编辑器,例如记事本。
•执行以下肌肉动作并观察结果:
•弯曲右前臂 → 按下 D 键一次。
•弯曲左前臂 → 按下 A 键一次。
•同时弯曲双前臂(第一次)→ 持续按下 W 键(前进模式)。
•同时弯曲双前臂(第二次)→ 持续按下 S 键(反向模式)。
如果输出与预期的键盘输入匹配,控制器即可开始游戏。
结论:
这只是一个演示,向您展示如何将两种传感器(BioAmp EXG Pill 和 Muscle BioAmp Shield)结合使用,构建一个双通道的EXG采集系统并进行游戏。在本项目中,我们使用BioAmp EXG Pill来记录肌电图信号,但它也可用于记录其他生物电位信号,例如心电图、眼电图和体表电位等。
本文编译自hackster.io





