[提案] 迷你项目梯度清单:7 个板载零采购 demo(system→闭环→Qt 触摸)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- c, linux
- Domain
- embedded-iot
Research direction
Read the existing project proposals at document/todo/projects/proj-001-env-monitor.md and document/todo/projects/proj-002-image-analyzer.md, the listed driver tutorials, and examples/qt/button_click. Compare the seven proposed projects with those entry points and identify the initial project scope. Done means the selected mini-projects have clear requirements, hardware reuse, implementation locations, and acceptance checks.
Written by the indexing model from the issue text.
Description
[提案] 迷你项目梯度清单: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 |
🧱 设计原则
- 板载零采购 — 全部基于 AP3216C / ICM20608 / GT9147 / WM8960 / LED / KEY / 蜂鸣器 / LCD,假定板子齐全可用,无需额外硬件
- 最大化复用 — 直接调用已落地的驱动教程(03 led / 04 beep / 05–07 key / 08 ap3216c / 09 icm20608 / 11 goodix / 12 wm8960),userspace 通过
/dev、sysfs、/dev/input、ALSA 读取 - GUI 复杂度逐级加码 — L1 单控件仪表 → L2 状态面板+后台算法 → L3 多页交互综合
- 每个 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%+
- Dominant language
- C
- Stars
- 107
- Forks
- 17
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 6
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Awesome-Embedded-Learning-Studio/imx-forge
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
-
Difficulty 5/5 Over a week Newbie friendliness 18/100
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
Awesome-Embedded-Learning-Studio/imx-forge#111 · 1 reaction ·
-
驱动开发待做清单Open
Difficulty 5/5 Over a week Newbie friendliness 20/100
Awesome-Embedded-Learning-Studio/imx-forge#54 · 1 comment · 1 reaction ·
All issues in Awesome-Embedded-Learning-Studio/imx-forge
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
micropython/micropython#19942 ·
Maintainers usually reply within 1 day
-
-disable-symbolserver is ignored on macOS/Linux: PDBs are still downloaded from msdl.microsoft.comOpen
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
-
follow-up Prio 📌
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
facebookincubator/muse-gadget-sdk#384 ·
Maintainers usually reply within 5 days