mirror of
https://github.com/YuTaoV5/YuEEG.git
synced 2025-09-26 23:09:24 +08:00
Merge branch 'main' of https://github.com/YuTaoV5/YuEEG
This commit is contained in:
commit
1cc29403d1
51
README.md
51
README.md
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<h1 align = "center">🌟YuEEG 8通道脑机接口设备🌟</h1>
|
<h1 align = "center">🌟YuEEG 8通道脑机接口设备🌟</h1>
|
||||||
|
|
||||||
<p align = "center">
|
<p align = "center">
|
||||||
@ -18,6 +17,9 @@
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> 项目尚未完全更新【SSVEP 范式】,建议 Star 后,会添加更多内容。
|
> 项目尚未完全更新【SSVEP 范式】,建议 Star 后,会添加更多内容。
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> 项目尚未完全更新【SSVEP 范式】,建议 Star 后,会添加更多内容。
|
||||||
|
|
||||||
## 概述 🧠🔌
|
## 概述 🧠🔌
|
||||||
|
|
||||||
本项目旨在利用 TI 的 ADS1299 芯片构建一个 8 通道的脑机接口(BCI)设备。项目涵盖硬件电路设计、芯片驱动开发以及数据接收和显示的上位机程序。
|
本项目旨在利用 TI 的 ADS1299 芯片构建一个 8 通道的脑机接口(BCI)设备。项目涵盖硬件电路设计、芯片驱动开发以及数据接收和显示的上位机程序。
|
||||||
@ -55,25 +57,25 @@
|
|||||||
### 电路设计图:
|
### 电路设计图:
|
||||||
|
|
||||||
> 嘉立创链接:[https://oshwhub.com/protodrive000/1299_pro](https://a360.co/3AnxQdK%20)
|
> 嘉立创链接:[https://oshwhub.com/protodrive000/1299_pro](https://a360.co/3AnxQdK%20)
|
||||||
访问密码:yutaov5
|
> 访问密码:yutaov5
|
||||||
|
|
||||||
| 正面 | 反面 |
|
| 正面 | 反面 |
|
||||||
|-|-|
|
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
||||||
|  |  |
|
|  |  |
|
||||||
|
|
||||||
### 外壳模型设计图:
|
### 外壳模型设计图:
|
||||||
|
|
||||||
> 3D 外壳文件:https://a360.co/3AnxQdK
|
> 3D 外壳文件:https://a360.co/3AnxQdK
|
||||||
访问密码:yutaov5
|
> 访问密码:yutaov5
|
||||||
|
|
||||||
| 单外壳 | 外壳+脑电帽 | 仰视图 |
|
| 单外壳 | 外壳+脑电帽 | 仰视图 |
|
||||||
|-|-|-|
|
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
|
||||||
|  |  |  |
|
|  |  |  |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 上位机程序 📊
|
## 上位机程序 📊
|
||||||
|
|
||||||
> 目前仅提供串口通讯的 plot_only.py 界面程序
|
> 目前仅提供串口通讯的 plot_only.py 界面程序
|
||||||
|
|
||||||
### 功能:
|
### 功能:
|
||||||
|
|
||||||
- **数据接收**:通过串口接收来自硬件设备的数据。
|
- **数据接收**:通过串口接收来自硬件设备的数据。
|
||||||
@ -86,10 +88,10 @@
|
|||||||
- **图形库**:pyqt + fluent
|
- **图形库**:pyqt + fluent
|
||||||
|
|
||||||
### 界面截图:
|
### 界面截图:
|
||||||
|正常采集模式|测试信号模式|
|
|
||||||
|-|-|
|
|
||||||
|||
|
|
||||||
|
|
||||||
|
| 正常采集模式 | 测试信号模式 |
|
||||||
|
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||||
|
|  |  |
|
||||||
|
|
||||||
## 使用指南 📚
|
## 使用指南 📚
|
||||||
|
|
||||||
@ -99,9 +101,10 @@
|
|||||||
- USB 接入 XiaoESP32S3 直接供电使用,同时串口发送数据
|
- USB 接入 XiaoESP32S3 直接供电使用,同时串口发送数据
|
||||||
- 背面焊接 TPS63070 锂电池转 5V 模块,然后电源接口接入 3.7V 锂电池即可
|
- 背面焊接 TPS63070 锂电池转 5V 模块,然后电源接口接入 3.7V 锂电池即可
|
||||||
1. 将 EEG 电极正确连接到被测试者。
|
1. 将 EEG 电极正确连接到被测试者。
|
||||||
2. 使用USB线连接设备和电脑。
|
1. 使用 USB 线连接设备和电脑。
|
||||||
|
|
||||||
### 引脚连接
|
### 引脚连接
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
// 定义引脚
|
// 定义引脚
|
||||||
#define CS_PIN A3
|
#define CS_PIN A3
|
||||||
@ -113,7 +116,6 @@
|
|||||||
#define RESET_PIN A1
|
#define RESET_PIN A1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 硬件设置
|
### 硬件设置
|
||||||
|
|
||||||
驱动代码是为支持 ESP32 的 Arduino IDE 编写的,代码通过 SPI 与 ADS1299 进行数据采集。
|
驱动代码是为支持 ESP32 的 Arduino IDE 编写的,代码通过 SPI 与 ADS1299 进行数据采集。
|
||||||
@ -122,16 +124,21 @@
|
|||||||
|
|
||||||
- **Arduino IDE**:从[Arduino 官方网站](https://www.arduino.cc/en/software)下载最新版本。
|
- **Arduino IDE**:从[Arduino 官方网站](https://www.arduino.cc/en/software)下载最新版本。
|
||||||
- **ESP32 开发板包**:在 Arduino IDE 中通过开发板管理器添加 ESP32 开发板支持。
|
- **ESP32 开发板包**:在 Arduino IDE 中通过开发板管理器添加 ESP32 开发板支持。
|
||||||
|
|
||||||
### 加载代码:
|
### 加载代码:
|
||||||
|
|
||||||
打开 Arduino IDE,选择 `文件` > `打开` 并选择 `ino 文件`。
|
打开 Arduino IDE,选择 `文件` > `打开` 并选择 `ino 文件`。
|
||||||
在 `工具` > `开发板` 下选择你的 ESP32 开发板。
|
在 `工具` > `开发板` 下选择你的 ESP32 开发板。
|
||||||
在 `工具` > `端口` 下设置正确的 COM 端口。
|
在 `工具` > `端口` 下设置正确的 COM 端口。
|
||||||
|
|
||||||
### 上传代码:
|
### 上传代码:
|
||||||
|
|
||||||
> 如果是第一次下载,上电前按住 boot 再上电后松开,然后正常下载
|
> 如果是第一次下载,上电前按住 boot 再上电后松开,然后正常下载
|
||||||
|
|
||||||
编译并将代码上传到 ESP32 开发板。
|
编译并将代码上传到 ESP32 开发板。
|
||||||
|
|
||||||
### 上位机代码使用方法
|
### 上位机代码使用方法
|
||||||
|
|
||||||
上传完成后,ESP32 开发板将开始与 ADS1299 芯片进行通信,并将 EEG 数据输出到串口监视器。
|
上传完成后,ESP32 开发板将开始与 ADS1299 芯片进行通信,并将 EEG 数据输出到串口监视器。
|
||||||
|
|
||||||
- 模式切换:使用以下串口命令或者左下方按钮切换不同模式:
|
- 模式切换:使用以下串口命令或者左下方按钮切换不同模式:
|
||||||
@ -139,11 +146,13 @@
|
|||||||
- 3:自检模式
|
- 3:自检模式
|
||||||
|
|
||||||
> 示例用法
|
> 示例用法
|
||||||
上传完成后,在Arduino IDE中打开串口监视器,波特率设为115200。你将看到来自每个通道的实时EEG数据。
|
> 上传完成后,在 Arduino IDE 中打开串口监视器,波特率设为 115200。你将看到来自每个通道的实时 EEG 数据。
|
||||||
|
|
||||||
```C
|
```C
|
||||||
// 数据格式如下
|
// 数据格式如下
|
||||||
Channel 1: 0.123456, Channel 2: 0.654321, ..., Channel 8: 0.345678
|
Channel 1: 0.123456, Channel 2: 0.654321, ..., Channel 8: 0.345678
|
||||||
```
|
```
|
||||||
|
|
||||||
### 上位机安装步骤
|
### 上位机安装步骤
|
||||||
|
|
||||||
1. **克隆此仓库**:
|
1. **克隆此仓库**:
|
||||||
@ -161,16 +170,22 @@ Channel 1: 0.123456, Channel 2: 0.654321, ..., Channel 8: 0.345678
|
|||||||
```bash
|
```bash
|
||||||
python plot_only.py
|
python plot_only.py
|
||||||
```
|
```
|
||||||
|
|
||||||
## 贡献指南
|
## 贡献指南
|
||||||
|
|
||||||
欢迎社区贡献!请随时提交问题、功能请求或拉取请求。
|
欢迎社区贡献!请随时提交问题、功能请求或拉取请求。
|
||||||
|
|
||||||
## 未来改进
|
## 未来改进
|
||||||
|
|
||||||
- 增加对不同微控制器的支持。
|
- 增加对不同微控制器的支持。
|
||||||
- 扩展脑电帽设计,以便调整电极位置。
|
- 扩展脑电帽设计,以便调整电极位置。
|
||||||
|
|
||||||
## 致谢
|
## 致谢
|
||||||
|
|
||||||
特别感谢德州仪器提供 ADS1299 芯片,并感谢开源社区的启发与支持。
|
特别感谢德州仪器提供 ADS1299 芯片,并感谢开源社区的启发与支持。
|
||||||
|
|
||||||
## 项目结构 🗂️
|
## 项目结构 🗂️
|
||||||
|
|
||||||
```
|
```
|
||||||
├── hardware
|
├── hardware
|
||||||
│ ├── schematics
|
│ ├── schematics
|
||||||
@ -181,6 +196,7 @@ Channel 1: 0.123456, Channel 2: 0.654321, ..., Channel 8: 0.345678
|
|||||||
│ └── bci_gui.py
|
│ └── bci_gui.py
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
|
|
||||||
## 软件开发 💻
|
## 软件开发 💻
|
||||||
|
|
||||||
### 芯片驱动:
|
### 芯片驱动:
|
||||||
@ -192,7 +208,7 @@ Channel 1: 0.123456, Channel 2: 0.654321, ..., Channel 8: 0.345678
|
|||||||
### 引脚定义
|
### 引脚定义
|
||||||
|
|
||||||
| 引脚名称 | 描述 |
|
| 引脚名称 | 描述 |
|
||||||
| --------- | ------------------------------- |
|
| ---------- | -------------------------------- |
|
||||||
| CS_PIN | 片选引脚,低电平有效 |
|
| CS_PIN | 片选引脚,低电平有效 |
|
||||||
| SCLK_PIN | SPI 时钟引脚 |
|
| SCLK_PIN | SPI 时钟引脚 |
|
||||||
| MOSI_PIN | SPI 主设备输出从设备输入引脚 |
|
| MOSI_PIN | SPI 主设备输出从设备输入引脚 |
|
||||||
@ -206,7 +222,7 @@ Channel 1: 0.123456, Channel 2: 0.654321, ..., Channel 8: 0.345678
|
|||||||
### 命令定义
|
### 命令定义
|
||||||
|
|
||||||
| 命令 | 描述 |
|
| 命令 | 描述 |
|
||||||
| ------- | --------------------- |
|
| ------- | ---------------- |
|
||||||
| WAKEUP | 唤醒芯片 |
|
| WAKEUP | 唤醒芯片 |
|
||||||
| STANDBY | 进入待机模式 |
|
| STANDBY | 进入待机模式 |
|
||||||
| RESET | 重置芯片 |
|
| RESET | 重置芯片 |
|
||||||
@ -313,10 +329,13 @@ SRB(Signal Reference Buffer)引脚在ADS1299中用于信号参考电极的
|
|||||||
- **SRB2**:SRB2 引脚可以选择单独的电极作为参考电极,并通过设置`CHnSET`寄存器的 SRB2 位,将该电极的电位作为其他通道的参考。
|
- **SRB2**:SRB2 引脚可以选择单独的电极作为参考电极,并通过设置`CHnSET`寄存器的 SRB2 位,将该电极的电位作为其他通道的参考。
|
||||||
|
|
||||||
## 贡献 🤝
|
## 贡献 🤝
|
||||||
|
|
||||||
欢迎大家对本项目进行贡献!请提交 pull request 或创建 issue 以报告问题。
|
欢迎大家对本项目进行贡献!请提交 pull request 或创建 issue 以报告问题。
|
||||||
|
|
||||||
## 许可 📜
|
## 许可 📜
|
||||||
|
|
||||||
本项目采用基于 MIT 的许可。
|
本项目采用基于 MIT 的许可。
|
||||||
|
|
||||||
```
|
```
|
||||||
MIT License with Restrictions
|
MIT License with Restrictions
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user