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

Open
#94 1 comment 0 reactions 0 assignees View on GitHub

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

🧱 设计原则

  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%+
Dominant language
C
Stars
107
Forks
17
Avg merge
1d 11h
Merged PRs (30d)
6

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Awesome-Embedded-Learning-Studio/imx-forge

All issues in Awesome-Embedded-Learning-Studio/imx-forge

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.