Repos / peace-lab-global / xiao-guan OWN

xiao-guan

小观 Xiao Guan

小观 Xiao Guan

PlatformIO
Python
ESP32
License: MIT

冥想感知开源硬件 — 用呼吸和定力,观照当下

小观是一款开源冥想辅助设备。通过麦克风感知呼吸频率与深度,通过陀螺仪感知身体的晃动与定力。支持三种 M5Stack 硬件形态;无硬件时,可作为纯软件桌面冥想陪伴程序运行。


特性

  • 呼吸检测 — 实时检测呼吸频率(6-30 bpm)和深度(浅 / 中 / 深),基于 IIR 带通滤波 + 峰值检测算法
  • 定力评估 — 6 轴 IMU 加速度 → 滑动窗口方差 → 指数衰减映射 → 0-100 分稳定性评分
  • 冥想引导 — 调息(2min) → 入定 → 结束,三阶段自动流转,颂钵音效提示
  • WiFi 实时看板 — 设备创建 WiFi 热点,手机浏览器即可查看呼吸曲线、定力趋势、历史记录
  • 数据持久化 — SD 卡 / NVS 存储冥想记录,重启后自动恢复
  • 纯软件模式 — 无硬件时用电脑麦克风 + 摄像头运行 Python 桌面陪伴程序
  • 功耗优化 — 4 级功耗管理(全功能 → 暗屏 → 低功耗 → light sleep),Cardputer Adv 续航可达 13h+

支持的硬件

硬件 芯片 麦克风 IMU 电池 定位
M5Stack StickS3 ESP32-S3 (8MB+8MB PSRAM) ES8311 I2S BMI270 250mAh 音频质量最好,首选开发
M5Stack StickC Plus ESP32-PICO-D4 (4MB) SPM1423 PDM MPU6886 120mAh 最小巧 (16.9g),适合夹口罩
M5Stack Cardputer Adv ESP32-S3FN8 (8MB) ES8311 I2S BMI270 1750mAh 56 键键盘 + SD 卡 + 3.5mm,续航最长

架构概览

graph TB
    subgraph 共享算法层 firmware/shared
        BD[BreathDetector]
        MA[MotionAnalyzer]
        MS[MeditationSession]
        PM[PowerManager]
        UI[UIRenderer]
        WS[WifiServer]
        SE[SoundEffects]
    end

    subgraph 设备固件
        S3[StickS3 main.cpp]
        SC[StickC Plus main.cpp]
        CA[Cardputer Adv main.cpp]
    end

    subgraph 纯软件版 companion
        CP[companion.py]
        VB[validate_breath.py]
    end

    S3 --> BD & MA & MS & PM & UI & WS & SE
    SC --> BD & MA & MS & PM & UI & WS
    CA --> BD & MA & MS & PM & UI & WS & SE

    CP --> VB

固件共享算法层以平台无关 C++ 实现,通过条件编译宏 (DEVICE_STICK_S3 / DEVICE_STICK_C_PLUS / DEVICE_CARDPUTER_ADV) 区分设备差异。

模块 职责 核心接口
BreathDetector 音频 → 呼吸频率 + 深度 processAudioFrame(), getResult()
MotionAnalyzer IMU → 定力评分 (0-100) update(), getResult()
MeditationSession 会话计时 / 阶段 / 统计 start(), update(), getStats()
PowerManager 电池 / 亮度 / light sleep recommendMode(), applyMode()
UIRenderer 4 界面渲染 drawMenu(), drawMeditationScreen()
WifiServer WiFi AP + Web 看板 + 历史 begin(), updateLiveData()
SoundEffects PCM 颂钵 / 雨声合成 synthSingingBowl(), synthRain()

快速开始

前置条件

  • VS Code + PlatformIO IDE 插件
  • USB-C 数据线(非纯充电线)
  • Python 3.8+(仅纯软件版需要)

固件开发

# 1. 克隆仓库
git clone https://github.com/peace-lab-global/xiao-guan.git
cd xiao-guan

# 2. 用 VS Code + PlatformIO 打开设备目录
#    File → Open Folder → 选择 firmware/stickS3/(推荐首选)
#    等待 PlatformIO 下载工具链和依赖库(首次约 3-5 分钟)

# 3. 连接设备,编译 + 烧录
cd firmware/stickS3
pio run                  # 编译
pio run -t upload        # 烧录到设备
pio device monitor --baud 115200   # 串口监控

纯软件模式(无需硬件)

cd companion
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

python3 companion.py               # 启动冥想陪伴
python3 validate_breath.py --simulate  # 算法验证(7/8 PASS)

详细步骤请参阅 从零部署与调试指南

项目结构

xiao-guan/
├── firmware/
│   ├── shared/              # 共享 C++ 算法层(7 模块,平台无关)
│   │   ├── breath_detector.h/cpp     # 呼吸检测
│   │   ├── motion_analyzer.h/cpp     # 定力评估
│   │   ├── meditation_session.h/cpp  # 会话管理
│   │   ├── power_manager.h/cpp       # 功耗管理
│   │   ├── ui_renderer.h/cpp         # UI 渲染
│   │   ├── wifi_server.h/cpp         # WiFi Web 看板
│   │   └── sound_effects.h           # 音效合成
│   ├── stickS3/             # StickS3 固件
│   ├── stickC_plus/         # StickC Plus 固件
│   └── cardputer_adv/       # Cardputer Adv 固件
├── companion/
│   ├── companion.py         # 桌面冥想陪伴(麦克风 + 摄像头 + TUI)
│   ├── validate_breath.py   # 呼吸算法 Python 验证
│   └── requirements.txt
├── docs/
│   ├── project-design.md           # 架构设计与硬件规格
│   ├── getting-started.md          # 部署与调试指南
│   ├── implementation-status.md    # 实现进度追踪
│   └── M5-hardware-official-document/  # M5Stack 官方硬件参考
└── hardware/                # 3D 打印外壳(规划中)

技术栈

层级 技术
固件 C++17 / Arduino 框架 / PlatformIO
音频算法 分帧 RMS → IIR Butterworth 带通 (0.1-0.5 Hz, 4 阶 SOS) → 峰值检测
运动算法 三轴加速度方差 → 指数衰减映射
桌面软件 Python 3.8+ / NumPy / SciPy / sounddevice / OpenCV (可选)
通信 WiFi AP (ESP32 SoftAP) / SD 卡 / NVS 持久化
UI M5GFX LCD 渲染 (固件) / ANSI 彩色 TUI (桌面)

WiFi 看板

设备启动后自动创建 WiFi 热点:

参数 值
SSID XiaoGuan
密码 meditate
看板地址 http://192.168.4.1

手机连接 WiFi 后浏览器访问即可看到:实时呼吸曲线、定力趋势图、冥想会话信息、历史记录。

文档

文档 内容
用户手册 面向终端用户的使用指南:操作、WiFi 看板、桌面陪伴、FAQ
从零部署指南 环境搭建、三款设备烧录、传感器调试、FAQ
架构设计文档 完整 PinMap、算法流程、PlatformIO 配置、功耗数据
实现进度追踪 模块完成度、已知问题、后续路线
M5Stack 官方硬件参考 STL 模型、KiCad 封装、原理图

开发路线

环境搭建 → 传感器驱动 → 呼吸算法 + 定力算法 (并行)
  → 冥想会话 → 三硬件适配 → 数据记录
    → 纯软件版 (可独立并行) → 功耗优化 → 3D 外壳

建议从 StickS3 开始(音频芯片最好、内存最大),算法稳定后再移植到其他设备。

贡献指南

欢迎贡献!请按以下流程操作:

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/your-feature
  3. 编写/修改代码并确保编译通过:pio run
  4. 提交变更:git commit -m "feat: add your feature"
  5. 推送并创建 Pull Request

代码规范

  • C++ 固件:遵循项目现有的 firmware/shared/ 模块结构,新算法放入共享层
  • Python:遵循 PEP 8,函数和类添加 docstring
  • Commit 消息:使用 Conventional Commits 格式
  • feat: 新功能 / fix: 修复 / docs: 文档 / refactor: 重构

报告问题

请使用 GitHub Issues 报告 Bug,包含:
- 设备型号和固件版本
- 串口日志输出
- 复现步骤

致谢

  • 硬件平台:M5Stack — 提供开源硬件设计和文档
  • 算法参考:音频呼吸检测基于 IIR 带通滤波 + 峰值检测经典方案
  • 音效设计:颂钵合成参考金属共振泛音模型 (基频 + ADSR 包络)

许可

本项目基于 MIT License 开源。

小观 Xiao Guan

冥想感知开源硬件 — 用呼吸和定力,观照当下

小观是一款开源冥想辅助设备,通过麦克风感知呼吸频率和深度,通过陀螺仪感知身体的晃动和定力。支持手持、放在腿上、或挂在口罩边缘。

支持的硬件

硬件 芯片 特点
M5Stack StickS3 ESP32-S3 音频质量最好,适合呼吸检测
M5Stack StickC Plus ESP32-PICO-D4 最小巧 (16.9g),适合夹口罩
M5Stack Cardputer Adv ESP32-S3FN8 续航最长 (1750mAh),有键盘和SD卡

功能

  • 呼吸检测:实时检测呼吸频率(次/分钟)和深度(浅/中/深)
  • 定力评估:通过 IMU 检测身体微动,评估冥想稳定性(0-100分)
  • 冥想引导:调息→入定→结束,三阶段引导
  • 数据记录:SD卡/WiFi 保存冥想记录
  • 纯软件模式:无硬件时可用电脑麦克风运行 Python 陪伴程序

项目结构

xiao-guan/
├── firmware/                  # 固件代码
│   ├── shared/                # 共享算法(呼吸检测、定力分析、会话管理、UI、功耗)
│   ├── stickS3/               # StickS3 固件
│   ├── stickC_plus/           # StickC Plus 固件
│   └── cardputer_adv/         # Cardputer Adv 固件
├── companion/                 # Python 纯软件冥想陪伴程序
├── docs/                      # 文档
└── hardware/                  # 3D打印外壳设计(规划中)

快速开始

固件开发(需要 PlatformIO)

# 1. 安装 VS Code + PlatformIO 插件

# 2. 用 PlatformIO 打开对应设备目录
#    例如:打开 firmware/stickS3/

# 3. 连接设备,点击 Upload 烧录

纯软件模式(需要 Python 3.8+)

cd companion
pip install -r requirements.txt

# 运行冥想陪伴程序
python companion.py

# 运行呼吸算法验证
python validate_breath.py --simulate    # 模拟测试
python validate_breath.py               # 实时麦克风测试

技术栈

  • 固件:C++ / Arduino 框架 / PlatformIO
  • 算法:音频 RMS 能量分析 + IIR 带通滤波 + 峰值检测
  • 软件:Python / NumPy / SciPy / sounddevice
  • 通信:WiFi AP / SD 卡存储

许可

MIT License

xiao-guan

小观 ~ 冥想辅助开源硬件