智能两轮自平衡车 · 项目学习计划
本计划仅围绕项目负责板块制定,不涉及课业学习安排。分为「整体学习计划」与「本月学习计划」两项,从底层硬件到视觉通信,系统支撑项目顺利开展。
5.25 — 6.24 · 项目专项
📚 一、整体学习计划
学习框架 · 全周期
✨ 本次学习计划仅围绕「智能两轮自平衡车」项目负责板块相关内容制定,不涉及课业学习安排。以下梳理需掌握的全部内容,明确目标与模块,搭建完整学习框架。
整体学习目标
独立完成自平衡车硬件驱动、姿态 PID 控制、上下位机通信协议及视觉辅助功能,并完成整车联调,实现平衡站立与基础循迹/跟随。
负责板块范围
嵌入式底层(STM32)、控制算法(PID)、软硬件通信与上位机、Python 视觉处理;最终集成至整车系统。
学习路径(五阶段)
① 硬件底座 → ② 闭环控制 → ③ 数据链路 → ④ 视觉感知 → ⑤ 综合联调与优化。
习惯与节奏建议
工作日每晚 1.5~2 小时理论学习+小实验;周末集中 3~4 小时板级调试与联调;每模块结束做通关检验再进入下一阶段。
核心学习模块总览
- 模块一:STM32 基础与外设驱动(GPIO / 定时器 / 中断 / I2C·SPI·UART)
- 模块二:PID 控制理论与电机闭环调参(直立环、速度环)
- 模块三:串口协议设计与上位机交互(PyQt / Web Serial / 无线扩展)
- 模块四:Python 与 OpenCV 图像处理(预处理、目标追踪)
- 模块五:整车集成联调(硬件+控制+通信+视觉协同)
核心模块详解
🧩 模块一 · STM32 基础与硬件底座
核心色:蓝色系
阶段目标
掌握 ARM Cortex-M 内核架构与常用外设驱动。
关键任务
- 熟练配置 GPIO、定时器(Timer)、中断(EXIT)。
- 掌握 I2C, SPI, UART 串行通信协议。
- 学习使用 STM32CubeMX + Keil/VS Code 开发环境。
工程检验标准
通关条件
独立编写驱动读取 IMU 传感器(如 MPU6050)数据。
🎯 模块二 · PID 控制理论与算法实践
核心色:橘色系
阶段目标
理解闭环控制理论,具备工程调参能力。
关键任务
- 深入理解 P(比例)、I(积分)、D(微分)各环节对系统的影响。
- 编写位置式 PID 与增量式 PID 的 C++ 代码。
- 学习使用匿名上位机或 Vofa+ 进行波形实时调参。
工程检验标准
通关条件
实现电机的速度闭环控制与位置闭环控制。
🌐 模块三 · 交互通信与上位机开发
核心色:紫色系
阶段目标
打通软硬件数据链路,实现跨平台交互。
关键任务
- 设计可靠的串口通信协议(帧头、数据基、校验位)。
- 学习 Python PyQT6 或 Web Serial API 编写交互界面。
- 掌握基于 Wi-Fi/蓝牙的 Socket 网络通信。
工程检验标准
通关条件
开发一个可视化上位机,能实时下发控制指令并接收硬件状态。
🛰️ 模块四 · Python 进阶与图像处理
核心色:绿色系
阶段目标
引入视觉感知能力,为系统注入“眼睛”。
关键任务
- 深入 Python 高级特性(面向对象、多线程并发、高级数据结构)。
- 掌握 OpenCV 库:图像预处理、色彩空间转换、边缘检测。
- 了解传统特征匹配与简单目标追踪算法。
工程检验标准
通关条件
实现基于颜色或特定形状的摄像头目标追踪程序。
⏳ 二、本月学习计划(5.25 — 6.24)
从本周起 · 共四周
自 5 月 25 日起算一个月,从本周开始按周推进。每周只列 2 项基础任务,先跑通再加深,难度循序渐进。
第 1 周 · 认识开发环境与板子(当前周)
5 月 25 日 — 5 月 31 日
- 用 CubeMX 建工程,点亮一颗 LED,熟悉下载烧录流程
- 用串口打印一句文字,确认电脑能收到数据
第 2 周 · PID 入门
6 月 1 日 — 6 月 7 日
- 弄清 P、I、D 分别管什么,看一篇入门讲解或示例
- 写一个最简单的 PID 计算函数(可先不接电机,用打印验证)
第 3 周 · 串口收发
6 月 8 日 — 6 月 14 日
- 板子定时通过串口发送几个固定数字(如角度、速度占位值)
- 用串口助手或简单 Python 脚本把数据读出来并显示
第 4 周 · 摄像头初体验
6 月 15 日 — 6 月 24 日
- 安装 OpenCV,用摄像头在窗口里显示实时画面
- 识别画面里一种明显颜色(如红色贴纸),在窗口标出位置即可
🌟 项目目标:智能两轮自平衡车
上述学习与本月安排均服务于该目标:融合硬件、算法、通信与视觉,在真实系统中协同运转,助力项目顺利交付。
硬件层
STM32 读取陀螺仪,通过直立环/速度环 PID 控制两轮电机维持平衡。
视觉层
树莓派/Jetson 或 PC 端运行 Python OpenCV,识别前方的特定轨道或手势。
通信层
通过交互通信将视觉处理结果下发给 STM32,实现自主寻迹或手势跟随。