
GD32实现24年电赛H题
简介
使用GD32F103C8T6(完全兼容STM32F103C8T6)完成24年电赛H题,原理图和PCB完全是自己画的,代码中除了部分底层(没必要自己敲)是移植别人的,其余都是自己手敲的。
简介:使用GD32F103C8T6(完全兼容STM32F103C8T6)完成24年电赛H题,原理图和PCB完全是自己画的,代码中除了部分底层(没必要自己敲)是移植别人的,其余都是自己手敲的。开源协议
:GPL 3.0
描述
项目简介
本项目是为了完成一个课程设计而做的,选题的24年电赛H题。刚开始使用的是STM32F103C8T6,在调试的时候不小心把12V电源和芯片的引脚短路,芯片直接炸了。手头也没有STM32了,就换成GD32F103C8T8了。GD32和STM32相同系列完全兼容,可以直接使用STM32,程序不需要任何更改。其实在我看来这辆小车的性价比一点也不高,成本300多,好在学校完全报销。
先简单说一下物料:
- 轮趣科技的四轮两驱小车底盘(带编码电机)------99
- 12V锂电池组2200mAh(电量够用)--------------27
- 慧净电子的数字量七路灰度循迹---------------68
- MPU9250九轴姿态传感器(大材小用)------------45
- PCB主控板(自己焊接的)---------------------50
- 0.96寸OLED-------------------------------10
- 无线串口---用来PID调参(可以不用)
原理图和PCB是是我用AD画的,嘉立创的专用免费券用不了,需要通用免费券,顺便吐槽一下AD画的PCB铺完铜后再隐藏铺铜,打板就没有铺铜,我焊接1个多小时,调试板子半个小时,最后发现没有铺铜,浪费钱有浪费时间。
项目功能
完全实现24年电赛H题,我的代码第4问时间35秒,其实还可以缩短的,但是都懂的,一个课程设计而已。
- 速度环PID控制电机实际转速
- 角度环PID控制小车前进方向
- 循迹没有使用PID,我也是刚开始学习使用PID,当时没有了解到循迹PID,做完题后偶然了解到循迹PID也不爱改了。当然我在别的代码使用过循迹PID可以提供出来。
吐槽一下PID调参真的麻烦。
原理解析(硬件说明)
主板打样出来和我有一点不一样,新的PCB我把插件电源开关换成了贴片开关了。,还有电解电容的耐压要选25V的,当时没注意到35V和25V的封装大小不一样,我用热风枪吹了好久。
供电
供电可以通过DC插座(5.5-2.1),也可以通过XH插头(2.54)
这是12V转5V的开关电源,芯片SGM61220XTN6G/TR可以直接替换成更便宜的TPS54202DDCR。5V的主要用处有4个:循迹模块、电机驱动芯片、5V转3.3V、无线串口(调试的时候才可能会用)。

偏航角
我刚开始的时候是使用MPU6050获取偏航角的,但是发现偏航角的零漂有点严重,应该是完成不了题目要求的,要加上磁力计校准,了解磁力计后又发现磁力计QFN封装太小难以手焊。反正有报销,直接换成了MPU9250模块,得亏我一直留有一个IIC的接口。


剩下的电机驱动和其他杂项也没什么说的。
软件代码
主循环
int main(void)
{
Hardware_Initializes(); //和硬件强相关的底层初始化
Software_Initializes(); //应用层代码初始化,主要是变量。
while(1)
{
scheduler_run();//任务轮询,避免一些复杂的逻辑和BUG。
//还有一个1ms的定时中断,用于计时计数和PID控制
}
}
其余的代码我用GPT给加上注释,自己啃一下代码。
项目树

移植代码来源
- 有自己的项目树的,但是移植这个MPU9250一直不成功,只好把我的代码移植到别人的项目0的底层来自https://www.bilibili.com/video/BV1TL411Y7h6/?vd_source=5021824f07fc1146ccf82ec7f49acd4f
- OLED及其IIC底层来自江科大,我自己也做过更改和删减。
- FLASH底层也来自江科大。
- 主循环的任务轮询是我借鉴别人的思想
- PID和循迹底层来自https://www.bilibili.com/video/BV1A1421671G/?spm_id_from=333.337.search-card.all.click&vd_source=5021824f07fc1146ccf82ec7f49acd4f 当然我也做了一些更改,将标量PID改成了矢量PID。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










