# jyt_o3 **Repository Path**: float-air-os/jyt_o3 ## Basic Information - **Project Name**: jyt_o3 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-16 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 觉远创智 O3 开源平台 **基于 ESP32-S3 的高性能开源智能硬件开发平台** [快速开始](#-快速开始) • [功能特性](#-功能特性) • [技术架构](#-技术架构) • [应用案例](#-应用场景) • [社区支持](#-联系方式) --- ## 📱 项目简介 **觉远创智 O3** 是一款面向智能眼镜开发者、创客和工程师的开源智能硬件平台。基于乐鑫 ESP32-S3 双核处理器,集成了 IMU 传感器、RGB 彩灯、音频采集、锂电池管理、高清 光机 显示等丰富外设,提供完整的人机交互解决方案。 ### ✨ 核心亮点 - 🚀 **强大算力**:ESP32-S3 双核 240MHz,AI 加速指令集 - 🎨 **精美显示**:480x640 高分辨率光机,LVGL v9 图形库 - 🎵 **声控互动**:FFT 音频分析,RGB 律动彩灯 - 📡 **无线连接**:Wi-Fi + Bluetooth LE 双模 - 🔋 **电源管理**:锂电池充放电,电量监测 --- ## 🎬 演示功能 设备启动后自动运行演示程序,展示以下核心功能: ### 1️⃣ IMU 传感器实时显示 屏幕实时显示 ICM42688 六轴传感器数据: ``` ┌─────────────────────────────────┐ │ 加速度计 (Accel) │ │ X: +128 ▓▓▓▓▓▓░░░░░░░░░░░░ │ │ Y: -064 ▓▓▓▓░░░░░░░░░░░░░░ │ │ Z: +980 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░ │ └─────────────────────────────────┘ ``` - ✅ 三轴加速度值动态刷新 - ✅ 可视化条形图显示 - ✅ 设备移动即时响应 ### 2️⃣ 电池状态监控 ``` ┌─────────────────────────────────┐ │ 电池电量 │ │ ▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░ 75% ⚡ │ └─────────────────────────────────┘ ``` - 📊 电量百分比(0-100%) - 🔌 充电状态指示 - ⚠️ 低电量预警 ### 3️⃣ 声控 RGB 律动彩灯 🎵 RGB LED 随环境声音节奏闪烁变化! #### 工作原理 ``` 声音 → 麦克风采集 → FFT 频谱分析 → 频段分离 → RGB 控制 ``` **技术细节:** | 频段 | 频率范围 | 对应颜色 | 听觉感受 | |------|----------|----------|----------| | **低频** | 80-300 Hz | 🔴 红色 | 鼓点、贝斯 | | **中频** | 300-2000 Hz | 🟢 绿色 | 人声主体 | | **高频** | 2000-4000 Hz | 🔵 蓝色 | 高音、细节 | **实现要点:** - 📈 256 点 FFT 频谱分析(ESP-DSP 库) - 🪟 汉宁窗减少频谱泄漏 - 📊 一阶低通滤波平滑能量 - 🎨 归一化映射到 RGB(0-255) **效果示例:** | 场景 | 声音特征 | RGB 表现 | |------|----------|----------| | 安静环境 | 背景噪音 | 暗绿色微光 | | 人声说话 | 中频突出 | 明亮绿色闪烁 | | 低音音乐 | 低频强劲 | 红色 pulsing | | 高频乐器 | 泛音丰富 | 蓝色/青色变幻 | ### 4️⃣ WiFi 配网热点 系统自动创建 AP 热点: ``` SSID: ESP32-xxxx 密码:无(开放网络) IP: 192.168.4.1 ``` - 📱 手机连接访问 Web 配置页面 - ⚡ 支持 SmartConfig 一键配网 - 🌐 可配置 MQTT、HTTP 等协议 --- ## 🔧 技术规格 ### 硬件配置 | 组件 | 型号 | 说明 | |------|------|------| | **主控** | ESP32-S3 | 双核 240MHz, 4MB Flash 2M RAM | | **IMU** | ICM42688 | 六轴(加速度计 + 陀螺仪) | | **RGB LED** | AW2016 | 三通道恒流驱动RGB | | **LCD** | IVC12VGD | 480x640, QSPI 接口 | | **音频** | I2S 麦克风 | 16kHz/32bit 采样 | | **电源** | 锂电池管理 | 充放电保护,电量计 | ### 软件栈 | 层级 | 技术组件 | |------|----------| | **操作系统** | FreeRTOS (ESP-IDF 内置) | | **开发框架** | ESP-IDF v5.x | | **图形库** | LVGL v9.x | | **DSP 库** | ESP-DSP v1.6 | | **编程语言** | C / C++ | | **构建系统** | CMake + Ninja/Make | --- ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────┐ │ 应用层 (Application) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ LVGL UI │ │ 音频 FFT │ │ 网络管理 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ ├─────────────────────────────────────────────┤ │ 中间件层 (Middleware) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ ESP-DSP │ │ LVGL │ │ TCP/IP │ │ │ └──────────┘ └──────────┘ └──────────┘ │ ├─────────────────────────────────────────────┤ │ 驱动层 (Drivers) │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │ │ I2S │ │ I2C │ │ SPI │ │ GPIO │ │ │ └──────┘ └──────┘ └──────┘ └──────┘ │ ├─────────────────────────────────────────────┤ │ 硬件层 (ESP32-S3 SoC) │ │ Dual-core CPU | Wi-Fi/BT | peripherals │ └─────────────────────────────────────────────┘ ``` --- ## 🚀 快速开始 ### 环境要求 - **操作系统**:Windows 10/11, Linux (Ubuntu 20.04+), macOS 10.14+ - **必需工具**: - ESP-IDF v5.x 开发环境 - VSCode + ESP-IDF 插件 - Python 3.8+ - CMake ≥ 3.16 ### 安装步骤 #### 1. 克隆项目 ```bash git clone https://github.com/jyuan-tech/esp32s3_mc.git cd esp32s3_mc ``` #### 2. 设置 ESP-IDF 环境 ```bash # Linux/macOS . $HOME/esp/esp-idf/export.sh # Windows (PowerShell) . $HOME\esp\esp-idf\export.ps1 ``` #### 3. 安装依赖组件 ```bash idf.py reconfigure ``` 这会自动下载以下组件到 `managed_components/`: - espressif/esp-dsp (^1.6.0) - espressif/lvgl (^9.0.0) - espressif/esp_lvgl_port (^2.0) - 其他依赖... #### 4. 编译项目 ```bash idf.py build ``` 编译完成后生成固件: - `build/bootloader/bootloader.bin` - `build/partition_table/partition-table.bin` - `build/esp32s3_mc.bin` #### 5. 烧录固件 ```bash # JTAG 方式(推荐) idf.py -p COM5 flash monitor -b 2000000 # 或串口方式 idf.py -p /dev/ttyUSB0 flash monitor -b 2000000 ``` **Windows 用户注意:** - 使用 Zadig 将 USB 驱动替换为 WinUSB - 配置 `.vscode/settings.json`: ```json { "idf.portWin": "COM5", "idf.flashType": "JTAG", "idf.openOcdConfigs": ["board/esp32s3-builtin.cfg"] } ``` #### 6. 查看日志 ```bash idf.py -p COM5 monitor ``` 预期输出: ``` I LVGL: === Audio Input Initialization === I LVGL: GPIO Config: BCLK=40, LRCK=7, DIN=39 I LVGL: Audio input channel created successfully I LVGL: AW2016 initialized successfully I LVGL: mled_task start ``` --- ## 📁 项目结构 ``` esp32s3_mc/ ├── main/ # 主应用程序 │ ├── audiotest.c # 音频采集 │ ├── mled_task.c # LED 任务(含 FFT 分析) │ ├── sensor_manager.cc # 传感器管理 │ ├── wifi_manager.cc # WiFi 管理 │ ├── power.c # 电源管理 │ └── glass_main.c # 主入口 ├── components/ # 自定义组件 │ ├── floatairlib/ # 外设驱动库 │ │ ├── imu/ # ICM42688 驱动 │ │ ├── rgb/ # AW2016 驱动 │ │ ├── ivc12vgd/ # LCD 驱动 │ │ └── include/ # 头文件 │ └── lvgl/ # LVGL 图形库 ├── managed_components/ # 自动下载的组件 │ ├── espressif__esp-dsp/ # DSP 算法库 │ ├── espressif__esp_lvgl_port/ │ └── ... ├── scripts/ # 辅助脚本 │ ├── build_default_assets.py │ └── pack_bin.ps1 ├── burn.sh # 烧录脚本 └── idf_component.yml # 组件依赖配置 ``` --- ## 🛠️ 开发指南 ### 添加新功能 1. 在 `main/` 目录下创建新的 `.c` 或 `.cpp` 文件 2. 在 `main/CMakeLists.txt` 中添加源文件 3. 修改 `app_main()` 初始化新模块 4. 创建 FreeRTOS 任务运行新逻辑 ### 使用现有 API ```c // 读取 IMU 数据 icm42688_sensor_data_t sensor_data; jyt_fetch_imu_data(&sensor_data); // 控制 RGB LED aw2016_set_rgb(g_aw2016, r, g, b); // 更新 UI 显示 jyt_ui_update_battery(g_ui, level, charging); // 读取音频样本 int16_t audio_buffer[512]; int samples = AudioReadSample(audio_buffer, 512); ``` ### FFT 音频分析示例 ```c #include "esp_dsp.h" // 执行 FFT float fft_input[256]; float fft_output[512]; // 复数 // 加汉宁窗 for (int i = 0; i < 256; i++) { fft_input[i] = audio[i] * hanning_window[i]; fft_output[i*2] = fft_input[i]; fft_output[i*2+1] = 0.0f; } // FFT 变换 dsps_fft2f_fc32(fft_output, 256); // 计算幅度谱 for (int i = 0; i < 128; i++) { float real = fft_output[i*2]; float imag = fft_output[i*2+1]; magnitude[i] = sqrtf(real*real + imag*imag) / 256; } ``` ## 🤝 贡献指南 我们欢迎各种形式的贡献: - 🔧 Bug 修复和改进 - 📝 文档完善和翻译 - 💡 新功能和应用案例 - 🎨 外观设计和 UI 主题 ### 参与方式 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request --- ## 📄 开源协议 本项目采用 **Apache License 2.0** 开源协议。 **您享有以下权利:** - ✅ 商业使用 - ✅ 修改和分发 - ✅ 专利授权 - ✅ 私有部署 **义务:** - ℹ️ 保留版权和许可声明 - ℹ️ 说明修改内容 完整协议文本见 [LICENSE](LICENSE) 文件。 --- ## 🌟 项目亮点 1. **开箱即用**:出厂预装演示程序,立即体验 2. **模块化设计**:各功能模块独立,便于学习复用 3. **完整例程**:从简单到复杂的多层次示例 4. **活跃社区**:技术交流群、定期线上分享 5. **持续更新**:每月发布新版本,增加功能 --- ## 🙏 致谢 感谢以下开源项目和贡献者: - [ESP-IDF](https://github.com/espressif/esp-idf) - 乐鑫官方开发框架 - [LVGL](https://github.com/lvgl/lvgl) - 嵌入式图形库 - [ESP-DSP](https://github.com/espressif/esp-dsp) - DSP 算法库 - 所有社区贡献者和早期测试用户 ---
**🎉 选择 O3,开启您的智能硬件创新之旅!🚀** *让创意照进现实,用代码改变世界* ⭐ **如果这个项目对您有帮助,请给我们一个 Star!** ⭐