用Arduino+金牛座脑波模块,5分钟做个专注度监测小装置(附完整代码)
2026/6/10 11:43:37 网站建设 项目流程

用Arduino+金牛座脑波模块打造专注度监测器的极简方案

脑电波技术曾被视为实验室里的高端研究工具,直到消费级脑电模块的出现打破了这种认知。最近在创客圈热议的金牛座TGAM模块,以其亲民的价格和即插即用的特性,让普通人也能轻松玩转脑电交互。这个火柴盒大小的模块,集成了专业级的信号处理电路,能直接输出专注度/放松度指数,省去了复杂的算法开发环节。

对于刚接触脑电技术的开发者来说,最头疼的往往是信号采集和处理的复杂性。传统方案需要自己搭建放大电路、设计滤波器,还要处理50Hz工频干扰。而金牛座模块内置了12位ADC、硬件滤波和自动增益控制,甚至贴心地集成了50Hz陷波器,这让我们的开发工作可以完全聚焦在应用层逻辑上。下面我将分享如何用最常见的Arduino UNO开发板,配合一个RGB LED灯,在5分钟内搭建出能实时反映专注力状态的趣味装置。

1. 硬件准备与连接

1.1 所需材料清单

  • Arduino UNO开发板(或兼容板)
  • 金牛座TGAM脑电模块(含头戴电极)
  • RGB LED灯(共阴型)
  • 220Ω电阻3个
  • 杜邦线若干
  • 面包板(可选,方便 prototyping)

注:如果使用ESP32等3.3V逻辑电平的开发板,可以省去电平转换电路,因为金牛座模块工作电压正好是3.3V。

1.2 电路连接示意图

将模块与Arduino按照以下方式连接:

金牛座模块引脚Arduino引脚说明
VCC3.3V电源正极
GNDGND电源地
TXRX (D0)模块串口发送端
RXTX (D1)模块串口接收端

RGB LED连接方式:

// 共阴型RGB LED接线 #define RED_PIN 5 #define GREEN_PIN 6 #define BLUE_PIN 9 void setup() { pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); pinMode(BLUE_PIN, OUTPUT); }

注意:部分Arduino板需要先断开RX/TX连接才能上传代码,上传完成后再重新连接。

2. 模块通信协议解析

金牛座模块通过串口发送两种类型的数据包:短包(专注度/放松度)和长包(原始脑波数据)。我们的项目只需要解析短包即可,其数据结构如下:

字节位置内容说明
00xAA包头标识
10xAA包头标识
20x04数据包长度
30x80专注度高位
40x02专注度低位(实际值=0x8002)
50x20放松度高位
60x01放松度低位(实际值=0x2001)
7校验和前面所有字节的累加和取低8位

在Arduino中解析数据包的典型代码如下:

byte payload[8]; int payloadIndex = 0; void parseEEGData() { while(Serial.available()) { byte incoming = Serial.read(); if(payloadIndex == 0 && incoming != 0xAA) continue; if(payloadIndex == 1 && incoming != 0xAA) { payloadIndex = 0; continue; } payload[payloadIndex++] = incoming; if(payloadIndex >= 8) { byte checksum = 0; for(int i=0; i<7; i++) checksum += payload[i]; if((checksum & 0xFF) == payload[7]) { int attention = (payload[3] << 8) | payload[4]; int meditation = (payload[5] << 8) | payload[6]; updateLED(attention, meditation); } payloadIndex = 0; } } }

3. 专注度可视化方案

3.1 LED颜色映射策略

我们可以用RGB LED的不同颜色来表示不同的心理状态:

  • 红色(255,0,0):高专注度(>70)
  • 黄色(255,255,0):中等专注度(40-70)
  • 绿色(0,255,0):低专注度(<40)
  • 蓝色(0,0,255):深度放松状态(放松度>60)

实现代码示例:

void updateLED(int attention, int meditation) { if(meditation > 60) { // 深度放松状态显示蓝色 analogWrite(RED_PIN, 0); analogWrite(GREEN_PIN, 0); analogWrite(BLUE_PIN, 255); } else if(attention > 70) { // 高专注度显示红色 analogWrite(RED_PIN, 255); analogWrite(GREEN_PIN, 0); analogWrite(BLUE_PIN, 0); } else if(attention > 40) { // 中等专注度显示黄色 analogWrite(RED_PIN, 255); analogWrite(GREEN_PIN, 255); analogWrite(BLUE_PIN, 0); } else { // 低专注度显示绿色 analogWrite(RED_PIN, 0); analogWrite(GREEN_PIN, 255); analogWrite(BLUE_PIN, 0); } }

3.2 OLED屏幕增强显示(可选)

对于想获得更详细反馈的用户,可以添加0.96寸OLED屏幕显示实时数值。使用Adafruit_SSD1306库的示例代码片段:

#include <Adafruit_SSD1306.h> Adafruit_SSD1306 display(128, 64, &Wire, -1); void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); } void updateDisplay(int attention, int meditation) { display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.print("Attention: "); display.println(attention); display.print("Meditation: "); display.println(meditation); // 绘制动态进度条 display.drawRect(0, 20, 128, 10, WHITE); display.fillRect(0, 20, map(attention, 0, 100, 0, 128), 10, WHITE); display.display(); }

4. 校准与优化技巧

4.1 电极佩戴要点

  • 前额电极(正极)应放置在发际线以上1-2cm处
  • 耳夹电极(负极)需确保与皮肤良好接触
  • 使用前用酒精棉片清洁接触部位
  • 干电极情况下可轻微湿润接触面提升信号质量

4.2 软件滤波优化

虽然模块已经内置硬件滤波,但在代码中增加简单的移动平均滤波可以进一步提升数据稳定性:

#define FILTER_WINDOW 5 int attentionBuffer[FILTER_WINDOW]; int bufferIndex = 0; int filteredAttention(int raw) { attentionBuffer[bufferIndex] = raw; bufferIndex = (bufferIndex + 1) % FILTER_WINDOW; long sum = 0; for(int i=0; i<FILTER_WINDOW; i++) { sum += attentionBuffer[i]; } return sum / FILTER_WINDOW; }

4.3 常见问题排查

  • 信号不稳定:检查电极接触,远离手机等干扰源
  • 数据全为零:确认串口波特率设置为9600
  • LED不亮:检查共阴/共阳类型是否匹配
  • 模块发热:立即断开电源,检查是否接错3.3V/5V

5. 项目扩展思路

5.1 生物反馈训练系统

通过记录专注度变化曲线,配合蜂鸣器提供实时音频反馈,可以帮助用户进行注意力训练。例如当专注度持续超过阈值时播放激励音效。

5.2 智能家居控制

将专注度数据通过ESP32的WiFi模块上传到MQTT服务器,实现用脑电波控制智能灯光:

// 伪代码示例 if(attention > 80 && lastAttention <= 80) { mqttClient.publish("home/bedroom/light", "ON"); }

5.3 脑控机械臂

结合舵机控制库,可以实现用专注度控制机械臂抓取动作。高专注度时机械臂闭合,放松状态时张开。

这个看似简单的项目,实际上打开了人机交互的新维度。当第一次看到LED随着我的注意力变化而改变颜色时,那种科技带来的奇妙体验令人难忘。建议先用我们的基础版本跑通流程,再逐步添加自己的创意扩展。记得分享你的魔改版本——我见过最酷的改造是把数据实时投射到VR环境中,创造出身临其境的神经反馈训练系统。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询