
1. 项目概述与核心价值如果你对大脑这个“终极黑箱”充满好奇但又觉得专业的脑机接口设备遥不可及——动辄数万美金的价格和复杂的实验室环境让个人探索者望而却步——那么这个项目可能就是为你准备的。今天要聊的是一个我自己动手实践、总成本控制在100美元以内的开源脑电波头带项目。它基于一种名为fNIRS功能性近红外光谱的技术能够非侵入式地测量你前额叶皮层的血氧水平变化从而间接“窥探”大脑的活动状态。这不仅仅是一个极客玩具更是一个绝佳的神经科学教育工具和脑机接口入门实践平台。我是一名电子工程师同时也是个狂热的创客。毕业设计时我面临一个经典难题做什么才能既酷又有意义我的答案是打破壁垒。市面上的脑电设备要么贵得离谱要么封闭如黑盒。于是我决定从头开始打造一个完全开源、易于复现的DIY脑电波头带我称之为OpenHEG项目。它的核心目标很明确让任何对神经科学、生物信号处理或硬件开发感兴趣的人都能以极低的门槛亲手构建并理解一个真正能工作的脑信号采集系统。无论你是想用它来监测自己的专注度变化作为STEM教育的教具还是作为深入脑机接口领域的第一块敲门砖这个项目都提供了一个扎实的起点。接下来我会详细拆解从设计思路、硬件选型、组装调试到数据解读的全过程并分享那些只有亲手做过才会知道的“坑”和经验。2. 技术选型为什么是fNIRS在开始动手之前我们必须先搞清楚一个根本问题为什么选择fNIRS技术而不是更常见的EEG脑电图这背后是一系列工程与实用性的权衡。2.1 fNIRS vs. EEG原理与优劣深度对比EEG测量的是神经元集群放电时产生的头皮电位变化信号直接来源于电活动时间分辨率极高毫秒级。但它有个致命弱点空间分辨率差且信号极易受干扰。你需要涂抹导电膏、精心布置多个电极、还要对抗眼动、肌电等无处不在的噪声对DIY环境极不友好。fNIRS则走了另一条路。它利用近红外光波长通常为700-900纳米穿透生物组织的能力。这个波段的光可以穿透头皮和颅骨到达大脑皮层。当光线在组织中散射和传播时会被血红蛋白吸收。而血红蛋白对光的吸收率取决于其携氧状态——氧合血红蛋白和脱氧血红蛋白的吸收光谱不同。大脑某个区域活跃时神经元耗氧量增加会引发局部血流量和血氧浓度的变化即神经血管耦合效应。fNIRS传感器通过发射近红外光并接收从组织反射回来的光强就能反演出该区域血氧浓度的相对变化从而间接推断神经活动。选择fNIRS的核心理由对运动伪影容忍度高相比EEG微伏级的电信号光信号受头皮肌肉运动、出汗的影响小得多更适合可穿戴、非实验室环境。空间定位相对明确光源和探测器之间的距离决定了光穿透的深度通常设定在3-4厘米能较稳定地探测到大脑皮层特定区域如前额叶的活动。硬件实现相对简单核心元件是红外LED和光电探测器电路设计比高精度、高输入阻抗的生物电放大器更简单成本也更低。安全无创使用的近红外光功率极低远低于安全阈值对人体完全无害。注意fNIRS测量的是血氧动力学响应其信号变化较EEG慢秒级因此不适合需要快速响应的应用如实时拼写。但它非常适合监测持续性的认知状态如专注、放松、疲劳等。2.2 开源生态与项目传承站在HEGduino的肩膀上在项目初期我发现了HEGduino——一个开源的前置式血氧监测项目。它证明了用低成本硬件实现fNIRS测量的可行性。然而该项目近年来已停止维护硬件设计尤其是传感器部分对普通爱好者而言难以复现。我的OpenHEG项目可以看作是对HEGduino精神的继承与硬件层面的全面升级。我重新设计了柔性PCB传感器使其更易于定制化生产采用了更现代的微控制器并构建了完整的3D打印外壳生态系统让整个设备的可及性和可重复性大大提升。开源是这个项目的灵魂。所有设计文件、代码和文档都已公开旨在形成一个持续迭代的社区。3. 硬件系统深度解析与物料准备一个可用的fNIRS系统主要由三部分组成光学传感器、信号处理电路、机械结构与供电。下面我们逐一拆解。3.1 光学传感器柔性PCB的设计奥秘这是整个系统的“眼睛”。我设计了一块柔性PCB印刷电路板上面集成了两个关键元件近红外LED我选择了波长为850nm和760nm的双波长LED。为什么要两个波长因为氧合血红蛋白和脱氧血红蛋白在这两个波长下的吸收特性差异最大。通过双波长测量结合修正后的比尔-朗伯定律可以更准确地分离出氧合血红蛋白和脱氧血红蛋白浓度的相对变化计算出所谓的“血氧依赖信号”。光电探测器我使用了一个集成了跨阻放大器的高速光电二极管。它的作用是将微弱的反射光信号转换为电流再放大为电压信号。这里的关键参数是探测器的灵敏度和响应速度需要与LED的驱动电流和调制频率匹配。柔性PCB的优势相比刚性PCB柔性PCB可以更好地贴合人体前额的不规则曲面确保光学耦合的稳定性这是获得稳定信号的基础。我在PCB背面设计了简单的压敏胶粘贴区并配合3D打印的柔性遮光罩可以有效隔绝环境光的干扰。3.2 主控与电路tinyCore微控制器的核心作用传感器产生的信号是模拟量需要被数字化并处理。我选择了自己设计的tinyCore V2.0作为主控板当然你也可以用其他兼容Arduino的板子但tinyCore的集成度更高。它的核心是一颗ESP32-S3芯片选择它基于以下几点考量双核处理器一个核心可以专用于高频ADC采样和实时信号处理另一个核心运行Wi-Fi/蓝牙协议栈和用户界面逻辑互不干扰。高性能ADCESP32-S3内置的ADC虽然并非顶级但对于本项目信号带宽通常小于10Hz的需求已足够。我在代码中采用了过采样和数字滤波技术来提升有效分辨率。无线连接内置Wi-Fi和蓝牙方便将数据实时传输到电脑或手机进行可视化摆脱线缆束缚。集成电源管理板载锂电池充电电路和3.3V稳压简化了供电设计。在电路连接上LED驱动采用恒流源电路确保发光强度稳定。光电探测器的输出信号经过一级运放放大后直接送入tinyCore的ADC引脚。I2C总线则用于连接一些未来的扩展传感器模块如惯性测量单元用于运动伪影补偿。3.3 机械结构3D打印头带的工程细节舒适、稳定、可调节是头带设计的三大原则。我使用了两类材料进行3D打印PLA聚乳酸用于打印头带骨架、铰链和主板外壳。PLA硬度高能提供稳定的支撑结构。TPU热塑性聚氨酯用于打印柔性卡扣、线缆固定环和传感器遮光罩。TPU具有弹性能适应头围变化并提供舒适的夹持力。关键结构——铰链与弹簧片头带两侧的铰链结构允许传感器模块在一定角度内自适应贴合额头。我额外设计了一个TPU材质的“叶片弹簧”可以卡在头带内侧通过其弹性形变持续给传感器施加一个轻柔而恒定的压力既能保证光学接触又不会让人感到不适。这个细节对长时间佩戴的信号稳定性至关重要。物料清单BOM精讲核心电子件tinyCore V2.0主板 x1 OpenHEG柔性传感器 x1 850nm/760nm红外LED各1颗 光电探测器1个。结构件3D打印的PLA头带骨架、铰链、外壳TPU卡扣、固定环、遮光罩。连接件M3x12mm螺丝螺母若干 100mm长的STEMMA QT连接线4芯I2C线2条。工具焊台、热风枪用于热熔螺母、热熔胶枪、线缆剥线钳。实操心得热熔螺母技巧在PLA零件上安装螺丝直接拧入极易滑丝。正确做法是使用“热熔螺母”。将M3螺母放在预制的孔位上用烙铁头温度约200°C轻轻压在螺母上螺母下沉周围PLA融化并包裹住它冷却后形成极其牢固的金属螺纹嵌件。操作要快避免过度加热导致零件变形。4. 分步组装与焊接实操指南有了所有零件接下来就是动手组装。请遵循静电防护规范尤其是在处理敏感的传感器元件时。4.1 第一步结构件预处理与组装热熔螺母如前所述在头带两侧需要固定螺丝的位置使用烙铁将M3螺母热熔嵌入PLA零件中。确保螺母端面与塑料表面平齐。组装头带骨架将头带的主梁与两侧的弧形带通过铰链零件对齐。先将tinyCore主板放在主梁的卡槽内然后用手拧螺丝穿过侧带、主梁拧入刚刚嵌入的热熔螺母中。不要一次性拧死两边交替进行确保结构平正没有应力扭曲。最后再均匀上紧。安装TPU固定环将打印好的TPU小环套在头带骨架预设的柱子上。这些环用于后续固定和走线。4.2 第二步光学传感器的安装与校准这是最需要耐心和细致的一步直接影响信号质量。传感器定位将柔性PCB传感器弯曲成与前额弧度大致相符的形状。将其放入3D打印的TPU遮光罩内。关键点确保LED和光电探测器正对遮光罩上对应的开孔没有任何偏移。可以用一小片透明胶带在背面临时固定。初步固定在柔性PCB背面非电路区域点少量热熔胶然后将其粘贴到头带前额位置的PLA底座上。按压片刻使其固定。胶量宜少不宜多避免胶体受热膨胀影响位置。连接与走线将两根STEMMA连接线的一端插入柔性PCB上的插座。将线缆穿过TPU固定环沿着头带骨架走向后脑部位的主板。这个布线过程要保证线缆自然、不紧绷避免拉扯传感器。最终固定与遮光将TPU遮光罩盖在已定位好的传感器上四周用少量热熔胶密封。确保遮光罩完全盖住传感器边缘杜绝环境光从侧面漏入。这是屏蔽环境光干扰的生命线。4.3 第三步电路连接与焊接I2C连接一根STEMMA线通常是4芯的用于I2C通信直接插在tinyCore上标有“I2C”的STEMMA QT插座上即可。这是最省事的部分。模拟信号连接另一根STEMMA线承载的是光电探测器输出的模拟信号。你需要剥开线缆找到对应的芯线根据你的线序定义。通常需要连接三根线信号线来自光电探测器- 焊接至tinyCore的某个ADC引脚如GPIO9。LED驱动控制线- 焊接至tinyCore的某个数字输出引脚如GPIO10用于以PWM方式控制LED亮度。参考地GND- 与tinyCore的GND焊盘相连。 我强烈建议在tinyCore上先焊接一个排母然后用杜邦线连接这样便于调试和修改。如果追求稳固也可以直接焊死。电源连接将一块3.7V的锂电池连接到tinyCore的电池接口。主板会为其充电并输出稳定的3.3V为整个系统供电。焊接注意事项焊接柔性PCB时使用尖头烙铁温度控制在300°C左右快速焊接避免长时间加热导致焊盘脱落。给导线镀锡后再焊接确保连接牢固。焊接完成后用万用表通断档检查所有连接确保没有短路或虚焊。5. 固件烧录、软件配置与数据可视化硬件就绪后我们需要赋予它“灵魂”。5.1 开发环境搭建与固件编译安装Arduino IDE从官网下载安装。虽然PlatformIO更强大但Arduino IDE对新手更友好。添加ESP32-S3板支持在“文件-首选项”的附加开发板管理器网址中添加https://espressif.github.io/arduino-esp32/package_esp32_index.json。然后在“工具-开发板-开发板管理器”中搜索并安装“esp32”。选择板卡和端口在“工具”菜单下选择开发板为“ESP32S3 Dev Module”并根据实际情况选择正确的串行端口。下载并打开项目代码从项目GitHub仓库下载OpenHEG_v4_4.ino文件。用Arduino IDE打开。配置网络参数在代码中找到Wi-Fi设置部分修改ssid和password为你本地网络的凭证。这允许头带将数据通过Wi-Fi发送出去。编译与上传点击“上传”按钮。首次上传可能需要按住tinyCore上的“BOOT”按钮再点击“RST”进入下载模式。上传成功后打开串口监视器波特率115200你应该能看到启动日志和尝试连接Wi-Fi的信息。5.2 数据采集与可视化工具固件运行后头带会开始采集数据并通过Wi-Fi以WebSocket或HTTP POST的形式发送。我提供了两种方式查看数据方案一Python数据收集器推荐给开发者我写了一个Python脚本WebDataCollectorv4.5.py使用Matplotlib进行实时绘图。它需要安装websocket-client,matplotlib等库。运行后它会连接头带的IP地址实时绘制原始光强信号、滤波后的信号以及计算出的血氧依赖信号。这个脚本结构清晰你可以很方便地修改它尝试自己的滤波算法或特征提取逻辑。方案二Electron图形界面推荐给普通用户我在GitHub上还提供了一个基于Electron的桌面应用程序。它拥有更友好的界面能图形化显示心率、心率变异性以及专注度/放松度的相干性分数。使用方法git clone 仓库地址 cd OpenHEG-UI npm install # 安装依赖 npm start # 启动应用应用启动后确保头带和电脑在同一网络应用会自动搜索并连接设备随后就能看到动态更新的脑信号图表。5.3 信号处理流程解读固件内部理解代码在做什么能帮你更好地解读数据ADC采样以数百赫兹的频率读取光电探测器的电压值。数字滤波带通滤波首先用一个高通滤波器如截止频率0.5Hz去除因呼吸、缓慢身体移动造成的基线漂移。带阻滤波然后用一个陷波滤波器如50/60Hz去除工频干扰。低通滤波最后用一个低通滤波器如截止频率5-10Hz去除高频噪声保留血氧变化的有效信号。锁相放大为了从强噪声中提取微弱的有效光信号固件中实现了数字锁相放大技术。它通过以特定频率调制LED的亮度并在接收端以同频参考信号进行解调能将信号从噪声背景中分离出来大幅提升信噪比。血氧计算利用双波长光强数据根据修正的比尔-朗伯定律计算氧合血红蛋白和脱氧血红蛋白浓度的相对变化量。特征提取与传输计算心率通过光电容积脉搏波信号、心率变异性以及反映前额叶激活水平的“相干性”分数最后将这些数据打包通过Wi-Fi发送。6. 数据解读、应用场景与项目优化方向设备跑起来了屏幕上跳动着曲线但这些数据意味着什么6.1 如何解读你的脑信号原始光强信号会看到有节奏的脉搏波叠加在一个缓慢变化的信号上。脉搏波来自头皮血管而缓慢变化部分可能反映大脑血氧的整体趋势。滤波后的血氧信号经过处理后的信号会更平滑。当你进行一项需要持续专注的任务如心算、阅读复杂文本时前额叶的血氧信号通常会呈现上升趋势。当你放松、冥想时信号可能会下降或保持平稳。相干性分数这是一个衍生指标用于量化大脑特定频段如与专注相关的频段信号的规律性。更高的相干性分数通常被解释为更好的专注状态或认知效率。但必须注意这是一个相对指标个体差异极大切勿将其作为绝对的“注意力分数”来跨人比较。重要提醒DIY的fNIRS设备输出的是相对变化值而非医院里fNIRS仪器提供的绝对量化值。它的核心价值在于观察趋势和相对变化而不是获得临床诊断级别的数据。请以研究和教育的心态对待它。6.2 潜在的应用场景神经反馈训练将血氧信号或相干性分数可视化尝试通过主观意识如调整呼吸、集中思绪来影响这些信号训练大脑的自我调节能力。这是脑机接口交互的雏形。认知状态监测长时间工作或学习时监测前额叶激活水平的变化探索个人专注力起伏的规律作为调整工作节奏的参考。STEM教育神器在生物、物理、计算机科学课堂上这是一个绝佳的跨学科项目。学生可以学习光学原理、信号处理、嵌入式编程和3D建模。艺术与交互装置将脑信号映射为音乐、灯光或图形变化创作独特的生物反馈艺术装置。6.3 当前局限与未来优化方向坦白说这个V4版本的原型还有很多可以改进的地方这也是开源项目的魅力所在硬件升级专用ADC芯片目前使用ESP32内置ADC噪声和精度有局限。未来可以集成如MAX86141这类专用于生物传感的AFE模拟前端芯片它集成了LED驱动、光电接收和高速高精度ADC能极大提升信号质量。多通道与空间分辨率目前是单通道一个探测点。可以设计多组光源-探测器对排列成阵列实现简单的大脑活动成像。运动补偿集成一个IMU惯性测量单元实时监测头部运动在算法中补偿运动带来的信号伪影。算法优化个性化校准开发一个简单的校准流程让用户在不同状态下静息、专注记录数据建立个人化的基线模型提升状态识别的准确性。更先进的机器学习尝试使用轻量级机器学习模型如运行在ESP32上的TinyML直接在设备端进行更复杂的认知状态分类如专注、放松、疲劳。工业设计与用户体验可调节性与舒适度重新设计头带结构使其能适应更广泛的头围并且佩戴更舒适、更稳固。无线充电与一体化将电池和电路进一步集成实现无线充电提升产品的完成度。这个项目就像一颗种子我提供了土壤、水分和最初的设计而它的成长和开花需要社区的力量。如果你对硬件、算法、设计或应用有任何想法欢迎到GitHub仓库提交Issue或Pull Request。也欢迎在项目Discord群里交流想法分享你的制作成果和数据。脑机接口不应该只是实验室里的昂贵设备通过开源和DIY我们每个人都可以成为探索大脑奥秘的参与者。