Skip to content

Releases: 2262727886-stack/mspm0g-contest-skill

v1.1.0 - PID 调试助手实车工程 + 上位机 Bug 修复

12 Jun 07:16

Choose a tag to compare

🎉 更新内容

✨ 新增功能

  • 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 上拉输入

⚠️ 重要提醒

  1. 烧录前必须验证:使用 SysConfig CLI 生成 → 检查宏名 → 逐文件编译
  2. SWD 锁死恢复:强制擦除后重新烧录
  3. 舵机独立供电:不能从 USB/调试器取电

🔧 已验证 API


全国大学生电子设计竞赛加油! 🚀

MSPM0G PID 调试助手 v1.1.0

12 Jun 09:09

Choose a tag to compare

🎉 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(最快)

🚀 快速开始

  1. 下载 MSPM0G_PID_Tuner.exe
  2. 双击运行
  3. 选择仿真或硬件模式
  4. 开始调参

全国大学生电子设计竞赛加油! 🚀

v4.0 — 开源整理 + 完整工程 + 一键烧录

08 Jun 15:00

Choose a tag to compare

🚗 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 脚本模板

快速开始

  1. 下载 mspm0g-v4.0-complete.zip 解压
  2. 用 CCS Theia 打开 workspace_ccstheia/mpu6050_clean
  3. 打开 empty.syscfg 检查引脚是否与你的硬件一致
  4. 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重构

18 May 20:37

Choose a tag to compare

🎯 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视觉稳定

18 May 10:43

Choose a tag to compare

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 — 双芯完整方案

17 May 10:42

Choose a tag to compare

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

16 May 09:54

Choose a tag to compare

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)