# CCUT_Robot_V2.0 **Repository Path**: CCUT_1024/ccutrobotv2.0 ## Basic Information - **Project Name**: CCUT_Robot_V2.0 - **Description**: 长春工业大学机甲大师机器人嵌入式系统框架(适配各种机器人底层) - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-05-23 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CCUT机甲大师嵌入式代码框架-lwh ## 一.简介&&日志 长春工业大学机甲大师嵌入式代码框架,大部分编程思路都来自于大疆,使用结构体指针进行传参,添加FreeRtos对云台底盘任务进行管理,与大疆开源代码不同的在于我将发射作为一个任务单独进行控制,实现云台,姿态结算,底盘,发射控制。采用分层架构的思想,使得每个层之间高度解耦,程序复用性更高。 2024年11月07日 这个项目开始主要是想要自己构建一套代码,第一是让自己能够更好的调试我们的步兵,第二是留给学弟学妹一套代码,让他们能够基于我的代码进行修改和调试,我基本会按照linux的编码规范进行编写。 2024年11月09日 今天完成了遥控器数据的解析,并且创建了一个RC_task任务专门用来获取遥控器数据,但是在大疆开源代码中,并没有单独为遥控器创建一个任务,可能是因为串口中断的原因,遥控器数据是一直在解析的,但是那些初始化操作是要完成的,所以应该是在底盘任务或者云台任务中体现,这里注意一下,串口中断函数在f4xx.it文件中我将hal库自动生成的串口中断函数注释了,暂时我也不知道原因,这个中断服务函数写在了RC_task中。 2024年11月10日 今天凌晨想着加一个git的版本控制,但是linux下一直无法实现,那就只能在windows下搞定了,弄了半天还不如早点放弃。其实搞东西也是这样,一遍遍猜想试错,下次上传就不只是上传一个markdown了,更新日志就是新增的的内容 2024年11月30日 今天又重启这个项目了,因为发现自己写的架构不太行,所以打算推翻重写。完成串口的大部分内容,目标实现对于底盘的遥控控制,串口一的中断用于对视觉数据的处理,跟遥控器数据类似,也不作为freertos的任务进行处理 2025年1月1日 因为开启这个项目已经是月底,搁置了许多时间,直到今天已经完成了视觉任务和遥控器还有can总线控制电机.后续准备把底盘的控制任务写完.踩坑:在进行dma串口移植的时候,如果默认cubemax的配置,串口一接收的引脚会跟大疆c板有所不同,但是还好我坚信我写的代码没有问题后面就把错误找到了.所以一定要关注引脚的问题,f4系列的单片机普遍引脚复用性更高 2025年1月2日 完成了遥控器控制电机的测试还有蜂鸣器的开机音乐,其中遇到的坑就是引脚的相关问题。 2025年1月7日 终于完成了电机的基本闭环控制,发现一个很大的问题就是中断和操作系统任务之间优先级的问题。 2025年1月9日 完成了底盘控制代码的编写,更加轻量化的程序简单的控制逻辑 2025年8月17日 重新调整头文件包含结构 2025年8月31日 完成拓展卡尔曼滤波陀螺仪方案移植 2025年9月18日 完成6020电机角度环控制 ## 二.文件目录 * App(用于freertos的相关任务的执行和实现) * Board/(BSP,devise)(板载支持,包含BSP底层驱动,devise设备层) * Core(内核代码) * Drivers(hal库的驱动) * Middlewares(中间层freertos) * Control(控制算法pid) * angle(角度解算所用算法) * build(编译后的可执行文件) 每个文件夹里面都有一个Inc,Src用于存放对应的.h和.c文件 ## 三.编译&&下载 1.开发方式采用Cubemax+makefile+openocd+cortex-debug的方式 2.如何编译 在工程目录下打开终端输入 ``` .\make.exe -j8 ``` 3.下载:点击终端,找到运行任务,点击download任务运行 4.调试:编写调试脚本和使用的调试器进行调试。 5.如何删除build文件夹 在工程目录下打开终端输入 ``` .\make.exe clean ``` ## 四.注意事项 1.请在安全的场地对代码进行调试。 2.如果使用不同的下载器,请自行修改task.js中openocd的相关内容 ## 五.作者的话 想必看到这的肯定是实验室某届的学弟,学长虽然不是很厉害但是能够给你留下的也就只有这套代码了,里面有很多你能够学习的一些代码规范和思维架构,记住,难的永远不是你会不会这种算法,难的是你知不知道怎么去做开发.捋清楚学长代码的架构,自己试着模仿着跟着把这套代码再抄一遍出来,想必你的能力必定大涨.最后,实验室的经历也许不能让你真正从事这个行业,但是一定会让你的品性有个大的改变,无论是抗压能力还是解决问题的能力都想必会让你受益终生.