# RM_Engineering_Zcd **Repository Path**: zcd1300/RM_Engineering_Zcd ## Basic Information - **Project Name**: RM_Engineering_Zcd - **Description**: RoboMaster engineering - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-12-13 - **Last Updated**: 2024-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RM_Engineering_Zcd RoboMaster engineering # 目录 * ## [可能覆盖的部分](#可能会被cube重新生成覆盖的部分) * ## [尚未进行调试部分](#还未调试的部分) * ## [代码留空部分](#因为条件限制暂时不能留空的代码部分) * ## [已知的逻辑冲突、错误](#已知的逻辑冲突、错误) * ## [LED标志对照](#LED标志对照) ## 遥控器按键设置 左侧按键: 右侧按键: ​ 上 上:遥控器输入 ​ 中 中:停止 ​ 下 下:键盘输入 键盘按键: ​ ## 可能会被cube重新生成覆盖的部分 ## * 串口:USART * can通信: * DMA: * USB通信: * stm32f4xx_it.c ​ ## 还未调试的部分 ## * 模糊pid效果以及参数:motocontrol.c\h Fuzzy.c\h * 键鼠控制云台:![image-20200502213542347](C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200502213542347.png) * 状态机自动控制部分状态:![image-20200502213634020](C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200502213634020.png) ## 因为条件限制暂时不能留空的代码部分 ## ~~~ c void OperateMode_Select(void) //void StatusMachine_Init(void) //static void WorkstateInit(void) //void State_Update(void) void OperateMode_Select(void) ~~~ * ~~Spuervise还没有对应的错误显示函数(原来的是用蜂鸣器)~~ ## 已知的逻辑冲突、错误 ### 未解决 * 底盘解算时高速模式切换条件和云台发弹**可能**存在冲突 * 模糊PID部分,在误差较小的时候不工作,误差大又会超调 * 攻击模式切换,现在的没有键盘的单次按下检测 ### 已解决 * Flash_Operation.c/h 封装的flash操作功能存在Flash使用频繁时,擦除、写入失败的问题;新版BUG修复已经上传至Github。 ## LED标志对照 * 正常工作: 复位键下方绿灯常亮 * 云台未校准: 复位键下方红绿LED同时闪烁 * 云台校准模式: 长按白色按键直到复位键下方(开发板右侧)红绿LED交替闪烁,进入校准模式;调整好后再次长按,直到两个LED闪烁一次退出校准。 *(从上到下依次为高到低位,最高的对应bit8;错误检测为线性检测,即上一个错误排除之前不会继续执行检测)* | 左侧LED(从上到下,红色LED常亮) | 对应错误类型 | | :------------------------------: | :-----------------: | | 0000 0000 | 工作正常 | | 0000 0001 | 遥控器掉线 | | 0000 0010 | YAW电机掉线 | | 0000 0100 | PITCH电机掉线 | | 0000 1000 | 左侧摩擦轮掉线 | | 0001 0000 | 右侧摩擦轮掉线 | | 0010 0000 | 拨盘电机掉线 | | 0100 0000 | 妙算USB接收帧率异常 | | 1000 0000 | 妙算USB发送帧率异常 | | 0000 0011 | IMU数据异常 | | 0000 0101 | CAN1接收异常 | | 0000 1001 | CAN2接收异常 | | 0001 0001 | CAN1发送异常 | | 0010 0001 | CAN2发送异常 | | 0100 0001 | 留空 | | 1000 0000 | 留空 |