授人以渔,24电赛H题完赛资料开源,思想开源-(2)软件讲解

描述

例程开源链接:https://pan.baidu.com/s/1PpacwWdcqvmT4xJEspaojw?pwd=6edb 提取码:6edb

在本文中,我们将详细介绍使用CW32F030C8T6芯片完成的全国电子竞赛H题智能小车项目。该项目旨在通过智能控制技术完成项目功能,以下是项目的完整代码和功能说明。

1.硬件平台与功能特性

我们选择了CW32F030C8T6芯片作为项目的核心控制单元。该芯片具备强大的处理能力和丰富的外设支持,非常适合于电子竞赛的应用场景。以下是项目中使用到的主要硬件和功能特性:芯片选择与驱动:CW32F030C8T6芯片,使用标准库驱动。电机控制:PWM控制两路带编码器的电机,实现精确的速度控制。循迹模块:五路循迹模块,通过BTIM1定时器实时读取传感器信号,实现精准的路径跟踪。OLED显示:使用IIC通讯的OLED显示基本信息和参数。角度传感器:通过串口3接收角度传感器数据,实时计算当前角度。

2.软件架构与主要功能

项目的软件部分采用了结构化的编程方式,主要包括底层驱动、外设控制和主程序逻辑。软件工程图如下:

传感器

主程序概述

主程序从上至下依次定义了变量并实现了各项功能模块。以下是主程序的关键点:任务定义:使用任务1至任务4定义不同的操作流程,以应对竞赛中的各项挑战。主程序的大循环中,执行任务代码如下:

传感器

硬件初始化:初始化各种外设如PWM控制、编码器读取、循迹模块和角度传感器。

传感器

任务执行:根据任务要求执行相应的动作,如直线行驶、路径跟踪、角度调整等、PID速度控制、速度计算等。以下代码为速度计算代码:

传感器

更多代码请参考源工程文件。模式切换:使用按键控制不同模式下的任务执行,确保灵活应对各种竞赛场景。

PWM控制与编码器读取

PWM设置:使用高级定时器2B和3B控制两路电机的PWM输出,实现精确的速度调节。编码器计数:通过GTIM1和GTIM2定时器分别读取两路电机带编码器的脉冲信号,计算速度和行程。

3.循迹模块实现

循迹控制:使用五路循迹模块检测地面黑线,根据信号判断小车是否偏离路径,并进行实时调整。以下代码为循迹执行子函数。

传感器

角度传感器数据处理

串口通讯:配置串口3接收角度传感器数据,通过中断实时更新当前角度信息,并根据需要进行角度调整。角度主要是使用Z轴信息,实时获时Z轴方向的绝对角度。以下代码为角度获取实现代码。其中RealAngl变量为角度变量,有效范围为0-65535,代表-180度至180度。

传感器

如需了解更多关于硬件设计或竞赛成果的详细信息,请联系我们的生态社区获取更多技术支持和资源。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分