Releases: 2262727886-stack/mspm0g-contest-skill
Releases · 2262727886-stack/mspm0g-contest-skill
v1.1.0 - PID 调试助手实车工程 + 上位机 Bug 修复
🎉 更新内容
✨ 新增功能
-
PID 调试助手实车工程 ()
- PA25 启停按键控制
- 编码器速度闭环 PI 控制
- UART0 串口调参协议
- OLED 实时显示状态
-
PID 调试助手配置指南 ()
🐛 Bug 修复(PID 调试上位机)
| 问题 | 修复 |
|---|---|
| 手动调参串口占用卡死 | 运行前断开连接,完成后恢复 |
| 状态判断误判 | 改进 OSCILLATING/MOTOR_LIMIT 判断逻辑 |
| 命令响应干扰数据 | 发送命令后清空缓冲区 |
| 状态显示英文 | 添加中文状态映射 |
📁 工程文件结构
pid_tuner_car/
├── main.c ← 主程序
├── motor.c/h ← TB6612FNG 电机驱动
├── encoder.c/h ← 编码器测速
├── pid_ctrl.c/h ← PID 控制器 + 串口协议
├── oled.c/h ← SSD1306 OLED 驱动
├── empty.syscfg ← SysConfig 配置
└── README.md ← 工程说明
🔌 引脚映射
| 功能 | 引脚 | 备注 |
|---|---|---|
| 右轮 PWM | PB15 | TIMG8_C0 |
| 左轮 PWM | PB16 | TIMG8_C1 |
| 右轮编码器 | PA15/PA16 | GPIO 双边沿 |
| 左轮编码器 | PA17/PA24 | GPIO 双边沿 |
| OLED | PA28/PA31 | I2C0 |
| 串口 | PA10/PA11 | UART0 115200 |
| 启动按键 | PA25 | 上拉输入 |
⚠️ 重要提醒
- 烧录前必须验证:使用 SysConfig CLI 生成 → 检查宏名 → 逐文件编译
- SWD 锁死恢复:强制擦除后重新烧录
- 舵机独立供电:不能从 USB/调试器取电
🔧 已验证 API
- ✅
- ✅
- ✅
全国大学生电子设计竞赛加油! 🚀
MSPM0G PID 调试助手 v1.1.0
🎉 MSPM0G PID 调试助手 v1.1.0
📥 下载使用
下载 MSPM0G_PID_Tuner.exe 即可使用,无需安装 Python!
✨ 功能特性
| 功能 | 说明 |
|---|---|
| 串口连接 | 自动检测 CH340/XDS110 |
| 实时波形 | 速度/PWM/目标曲线 |
| 手动调参 | 仿真/硬件双模式 |
| 自动调参 | 贝叶斯优化 / LLM |
| 数据导出 | CSV 格式 |
🐛 Bug 修复
| 问题 | 修复 |
|---|---|
| 手动调参串口占用卡死 | 运行前断开连接,完成后恢复 |
| 状态判断误判 | 改进判断逻辑 |
| Kd 参数不发送 | 总是发送完整 PID 参数 |
| 曲线速度值被挡住 | 增加边距,自动调整位置 |
| 仿真逻辑异常 | 重写电机模型 |
📊 仿真模型
response_rate = min(0.3, kp * 0.05)
speed = speed + (target - speed) * response_rate- Kp=3 → 响应率 0.15
- Kp=6 → 响应率 0.3(最快)
🚀 快速开始
- 下载 MSPM0G_PID_Tuner.exe
- 双击运行
- 选择仿真或硬件模式
- 开始调参
全国大学生电子设计竞赛加油! 🚀
v4.0 — 开源整理 + 完整工程 + 一键烧录
🚗 MSPM0G3507 电赛智能小车开发套件 v4.0
本次更新
开源整理:完整 README 文档 + 工程结构化 + .gitignore + VS Code 配置
新增工程 (7 个完整 CCS Theia 工程):
| 工程 | 说明 | 状态 |
|---|---|---|
⭐ mpu6050_clean |
底盘控制基线:编码器PI + MPU6050 DMP + OLED | ✅ 实机验证 |
imu601 |
IMU601 UART版:增加90°原地转弯 | ✅ 实机验证 |
jdy31_pid_test |
JDY-31蓝牙:PID在线调参 | ✅ 实机验证 |
servo_test |
舵机云台:MPU6050姿态随动 | 🟡 开发中 |
test_2 |
K230视觉:色块追踪 + 双芯UART | ✅ 实机验证 |
mpu6050 |
MPU6050原始工程 | 📦 参考 |
my_TI |
基础外设测试 | 📦 参考 |
烧录文档更新:
- 5 种烧录方式详解(CCS IDE / DSLite / 快速脚本 / J-Link / BSL串口)
⚠️ 烧录前必须自行配置引脚警告- fast_flash.bat / fast_flash.sh 脚本模板
快速开始
- 下载
mspm0g-v4.0-complete.zip解压 - 用 CCS Theia 打开
workspace_ccstheia/mpu6050_clean - 打开
empty.syscfg检查引脚是否与你的硬件一致 Ctrl+B编译 → 连接 XDS110 →F5烧录
命令行一键烧录
# 需安装 UniFlash,路径按实际修改
DSLite flash -c MSPM0G3507.ccxml \
-s "AutoResetOnConnect=true" \
-s "VerifyAfterProgramLoad=2" \
mpu6050_clean.out下载说明
| 文件 | 大小 | 说明 |
|---|---|---|
mspm0g-v4.0-firmware.zip |
514KB | 预编译固件 (.out) + CCXML,直接烧录 |
mspm0g-v4.0-complete.zip |
4.5MB | 完整源码 + skill文档 + 配置文件 |
Claude Code Skill 调用
/mspm0g-contest 引脚分配
/mspm0g-contest PID参数
/mspm0g-contest 烧录方法
/mspm0g-contest K230找色块
/mspm0g-contest 25E方案
硬件平台: MSPM0G3507 + TB6612FNG + MG310 + MPU6050/IMU601 + SSD1306 OLED + K230 庐山派
SDK: mspm0_sdk_2_10_00_04 | 工具链: TI Arm Clang | 调试器: XDS110 (SWD)
v3.0 — PID 速度闭环验证 + 完整skill重构
🎯 PID 速度闭环 — 核心亮点
经过 14 轮迭代、官方架构移植、实时串口调参,最终验证通过的位置式 PID:
- 架构: 前馈 Base PWM 800 + PID 增量 ±200
- 周期: SysTick 硬件定时 10/20ms(非主循环 delay)
- 调参: UART 串口实时命令
P5 I8 T42 B800 - 可视化: VOFA+ CSV 实时曲线
- 防抖: PWM 步进限幅 ±4、积分硬限幅、编码器绝对值
实测参数 (MG310 + TB6612 + 7.4V):
| 采样 | Kp | Ki | Kd | Base | 目标 | 稳定度 |
|---|---|---|---|---|---|---|
| 10ms | 0.5 | 0.08 | 0 | 800 | 42 | ±1~2 脉冲 |
| 20ms | 0.5 | 0.08 | 0 | 800 | 80 | ±2 脉冲 |
📋 v3.0 更新内容
PID (新增)
- 位置式 PID 完整实现 (pid.h/c)
- 前馈 + 增量架构
- UART 实时调参 (P/I/D/T/B 命令)
- VOFA+ FireWater/CSV 输出
- 完整例程: Documents/model/PID_Speed/
- Skill PID 章节重写 (6大陷阱 + 参数表 + 串口教程)
硬件验证 (新增)
- CH340 发现: PA10/PA11 (非 PA0/PA1)
- OLED SSD1306 I2C0 (PA28/PA31) 字符显示
- TB6612 电机驱动 (B通道)
- 编码器 GMR 500PPR 轮询
SDK API (更新)
- 黑名单 17 条 (dl_xxx.h 逐项确认)
- 12 个 G3507 裸机 driverlib 例程验证
Skill
- 4500+ 行完整参考
- 模块化结构铁律
- VS Code c_cpp_properties 自动适配模板
- CLAUDE.md 关键参数修正
📁 例程
| 模块 | 路径 |
|---|---|
| PID 闭环 | Documents/model/PID_Speed/ |
| TB6612 电机 | Documents/model/TB6612_Verified/ |
| 编码器轮询 | Documents/model/Encoder_Poll/ |
| K230 视觉 | k230_cam_test.py |
v2.0 — SDK验证 + K230视觉稳定
MSPM0G 电赛开发助手 v2.0
K230 视觉端
- GC2093 QVGA 320×240 采集60fps
- A4黑胶带边框 find_rects 稳定检测
- A4几何中心作靶心坐标
- OLED SSD1306 I2C0 逐页写入
- 自动Otsu阈值校准+验证回退
- UART2→M0G 10字节帧协议
M0G 控制端
- 25E拓展板全引脚表 (SysConfig验证通过)
- SDK 2.10.00.04 API 黑名单 (16条不存在API)
- 11个G3507裸机driverlib例程验证
- TB6612/编码器/舵机/ADC代码框架
修正记录
- DL_I2C_startControllerTransfer 缺地址参数
- DL_I2C_getControllerStatus 参数个数错误
- DL_WDT_feed → DL_WWDT_restart
- DL_FlashCTL_eraseSector → eraseMemoryFromRAM
- 等40+处API修正
文件
- k230_cam_test.py — K230视觉端完整工程
- m0g_25e_receiver.c — M0G拓展板接收框架
- SKILL.md — 完整参考资料
MSPM0G 电赛 Skill v2.0.0 — 双芯完整方案
v2.0.0 — 双芯完整方案
重大更新
- 天猛星官方引脚配置 — 基于立创官方引脚表全量修正,I2C0→PA28/PA31,TIMA1 确认可用
- 章节完全重排 — 按开发流程顺序:规范→准备→硬件→环境→驱动→算法→调试→真题
- 三道真题合并 — 25E/24H/23E 归入第十八章子章节
- SysConfig GUI 配置指南 — 8 种外设的完整 GUI 配置步骤
- 端到端工程示例 — 可编译的完整 main.c
- I2C 总线共享指南 — OLED+MPU6050 分时调度与冲突检测
- WDT 看门狗 + Flash 参数存储 — 竞赛可靠性保障
- 中文取模教程 — PCtoLCD2002→OLED 完整流程
- 竞赛准备清单 — 赛前/赛日排错表
- 硬件优先原则 — 强制先问引脚再生成代码
- 引脚决策表 — 15 种外设首选引脚速查
- VOFA+ 去重 — 合并重复内容
- BSL 局限文档化 — 串口烧录不稳定,推荐 XDS110
环境
- MSPM0 SDK: v2.10.00.04
- CCS: 20.x
- K230 固件: canmv_k230 (RTOS)
- 文档行数: 3932 行, 22 章
安装
Copy-Item CLAUDE.md "$env:USERPROFILE\.claude\CLAUDE.md"MSPM0G 电赛 Skill v1.0.0
MSPM0G 电赛开发助手 v1.0.0
包含内容
外设驱动 (11项)
GPIO, Timer(PWM/编码器/延时), ADC, UART(printf重定向/协议解析), I2C, SPI, OPA, HC-SR04超声波, MPU6050(Mahony AHRS), SSD1306 OLED完整驱动, EC11旋转编码器, 矩阵按键
控制算法 (8项)
PID(积分分离+抗饱和), 低通滤波, 滑动平均, 互补滤波, 卡尔曼滤波1D, 直流电机速度闭环, 舵机, 步进电机
调试工具 (4项)
VOFA+ FireWater协议, SerialPlot格式, 串口PID在线调参, 按键短按/长按/双击识别
硬件连接
TB6612, MPU6050, SSD1306 OLED, HC-05蓝牙接线表, 电源设计要点
开发环境
- MCU: TI MSPM0G3507
- IDE: Code Composer Studio + SysConfig
- SDK: TI MSPM0 SDK (DriverLib)