Skip to content

[提案] 迷你项目梯度清单:7 个板载零采购 demo(system→闭环→Qt 触摸) #94

Description

@Charliechen114514

[提案] 迷你项目梯度清单:7 个板载零采购 demo(system→闭环→Qt 触摸)

📌 背景

IMX-Forge 当前的「项目」层存在明显的梯度断层

  • 底层驱动教程已完成 23 个(chardev → led → gpio → key → i2c → spi → 触摸 → RTC → 音频),单点技能已铺满
  • 🏗️ 旗舰项目 PROJ-001 / PROJ-002 均为 ⭐⭐⭐⭐⭐、30 天、展会级,且 PROJ-001 还需额外采购 AHT10/BMP280/MPU6050/BH1750
  • 中间缺一层:能把多个已学技能串起来、1–4 天能出成品、有展示性的「迷你项目」

本 issue 提案用 7 个迷你项目填补这一层。全部使用 i.MX6ULL 板载外设,零额外采购,按 单传感器轻 GUI → 闭环小成品 → Qt 触摸综合 三档梯度铺开,GUI 复杂度逐级加码。


📊 总览

梯度 编号 项目 形态 主传感器 难度 周期 落点
L1 单传感器轻GUI A1 light-meter 光距监测面板 Qt AP3216C ⭐⭐ 1–2天 examples/qt/light-meter
L1 单传感器轻GUI A2 level-tool 电子水平仪 Qt ICM20608 ⭐⭐⭐ 2天 examples/qt/level-tool
L2 闭环小成品 B1 nightlight 自感应小夜灯 Qt+逻辑 AP3216C ⭐⭐⭐ 2天 examples/project/nightlight
L2 闭环小成品 B2 knock-detector 敲击开关 Qt+逻辑 ICM20608 ⭐⭐⭐ 2天 examples/project/knock-detector
L3 触摸综合 C1 touch-paint 触摸画板 Qt GT9147 ⭐⭐⭐ 2天 examples/qt/touch-paint
L3 触摸综合 C2 voice-recorder 录音机 Qt WM8960 ⭐⭐⭐⭐ 3天 examples/qt/voice-recorder
L3 触摸综合 C3 sensor-dashboard 仪表盘 Qt 全集成 ⭐⭐⭐⭐ 4天 examples/qt/sensor-dashboard

🧱 设计原则

  1. 板载零采购 — 全部基于 AP3216C / ICM20608 / GT9147 / WM8960 / LED / KEY / 蜂鸣器 / LCD,假定板子齐全可用,无需额外硬件
  2. 最大化复用 — 直接调用已落地的驱动教程(03 led / 04 beep / 05–07 key / 08 ap3216c / 09 icm20608 / 11 goodix / 12 wm8960),userspace 通过 /dev、sysfs、/dev/input、ALSA 读取
  3. GUI 复杂度逐级加码 — L1 单控件仪表 → L2 状态面板+后台算法 → L3 多页交互综合
  4. 每个 1–4 天 — 可独立交付,也可作为旗舰项目前置练手

📋 项目需求详情

L1 · 单传感器轻 GUI

A1 · light-meter 光照/距离监测面板 ⭐⭐ · 1–2 天

  • 目标:触摸屏一屏看环境光强与接近距离,带实时曲线
  • 硬件:LCD + 触摸 + AP3216C
  • 复用08 ap3216c + qt/button_click 工程骨架
  • 数据流:后端线程读 ALS/PS → 信号槽 → 前端 QCustomPlot 曲线 + 仪表数字
  • 功能点:① 光照(lux)大数字 + 实时折线 ② 接近距离条状指示 ③ 超阈区域变红告警 ④ 一键导出 CSV
  • 验收:手遮挡→距离条满 + 变红、曲线实时跳;CSV 可在 PC 绘图

A2 · level-tool 电子水平仪 ⭐⭐⭐ · 2 天

  • 目标:触摸屏气泡水平仪,倾斜超阈蜂鸣
  • 硬件:LCD + 触摸 + ICM20608 + 蜂鸣器
  • 复用09 icm20608 + 04 beep + Qt
  • 数据流:SPI 读 accel → 倾角公式 → QPainter 渲染气泡十字 → |倾角| > Δ 蜂鸣
  • 功能点:① 气泡水平仪可视化(十字 + 随倾移动气泡)② pitch/roll 数字读数 ③ 校准模式(放平置零)④ 超阈声光报警 ⑤ 灵敏度滑杆
  • 验收:倾斜板子气泡跟手;校准后水平态 ≈ 0°;过阈响铃

L2 · 闭环小成品(后台算法 + 状态 GUI)

B1 · nightlight 自感应小夜灯 ⭐⭐⭐ · 2 天

  • 目标:环境变暗自动亮灯、触摸调亮度,自动/手动可切
  • 硬件:AP3216C + LED + 触摸/KEY
  • 复用08 ap3216c + 03/16 led + Qt
  • 数据流:ALS 采光 → 滞回比较(防抖)→ LED 亮度(呼吸/分级)→ GUI 显示当前模式与亮度
  • 功能点:① 光控自动开关(带滞回)② 手动调光滑杆 ③ 渐亮渐灭 ④ 自动/手动模式切换面板
  • 验收:遮光即亮、见光即灭无抖动;滑杆连续调光

B2 · knock-detector 敲击开关 ⭐⭐⭐ · 2 天

  • 目标:敲一下板子切换灯状态(拍手开灯式),GUI 滚动显示事件
  • 硬件:ICM20608 + LED + 蜂鸣器
  • 复用09 icm20608 + LED + Qt
  • 数据流:SPI 高频读 accel → 滑动方差/峰值检测 → 事件判定 → 翻转 LED → GUI 滚动事件日志
  • 功能点:① 敲击检测(区分「敲」与「移动」)② 单击/双击可切 ③ 灵敏度可调 ④ 事件波形 + 日志面板
  • 验收:敲一下切换、拿起板子不误触;GUI 实时滚事件

L3 · Qt 触摸综合应用

C1 · touch-paint 触摸画板 ⭐⭐⭐ · 2 天

  • 目标:触摸手绘画板,换色/清屏/存 BMP
  • 硬件:LCD + GT9147 触摸
  • 复用11 goodix + qt/button_click
  • 数据流:触摸事件 → QPainter 在 QImage 画轨迹 → LCD → 存 BMP
  • 功能点:① 多色画笔 + 粗细 ② 橡皮/清屏 ③ 存 BMP 到 SD/NFS ④ 撤销(可选)
  • 验收:触摸跟手无断线;BMP 在 PC 能打开

C2 · voice-recorder 录音机 ⭐⭐⭐⭐ · 3 天

  • 目标:录音 → 波形 → 存 WAV → 回放
  • 硬件:WM8960 + LCD
  • 复用12 wm8960(capture 方向需另测)+ Qt
  • 数据流:ALSA capture → 环形缓冲 → QImage 波形 → 写 WAV(加头)→ playback 回放
  • 功能点:① 录/停/放 ② 实时波形 ③ 命名保存 ④ 电平指示
  • 验收:录到的声音回放清晰;WAV 在 PC 可播;波形随声跳动

C3 · sensor-dashboard 传感仪表盘 ⭐⭐⭐⭐ · 4 天 · 🚩 旗舰前置

  • 目标:触摸屏一屏集成 光照曲线 + 姿态球 + LED 控制 + 按键状态
  • 硬件:AP3216C + ICM20608 + LED + KEY + LCD/触摸
  • 复用:08 + 09 + 03/16 + 05–07 + 11 + button_click —— 一次串五个已学技能
  • 数据流:后端线程轮询各 /dev → 信号槽 → 前端 QCustomPlot 曲线 / 3D 姿态球 / 开关卡片 / 多页 Tab
  • 功能点:① 光照实时折线 ② 六轴姿态球(触摸可旋转)③ LED 灯控卡片 ④ 按键事件提示 ⑤ 多页切换
  • 验收:四模块同屏实时刷新无卡顿;触摸切换正常
  • 📌 战略价值:完成后即为 D3-001「Qt6 完整应用示例」 的最小可行版,PROJ-001 可直接复用其传感器 + Qt 层 60%+

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions