# armor **Repository Path**: cod_-hardware/armor ## Basic Information - **Project Name**: armor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: Master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-19 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 介绍 { RM2026-COD 自制装甲板-击打检测-官方传感器版(适配老版本官方装甲板外壳)} #### 文件架构 [HARDWARE] -./装甲板.epro 硬件工程 [SOFTWARE] -Core/Src/main.c&h 主函数入口 -User/bsp_can.c&h can收发相关设置 -User/bsp_flash.c&h flash读写 -User/bsp_hx710.c&h hx710信号采集核心驱动 -User/bsp_led.c&h 板载led相关驱动 -User/bsp_timer.c&h US定时器 -User/cal.c&h 受击数、血量、dps、击杀时间计算 -User/comm.c&h 板间通信相关 -User/common.h 全局信息定义 -User/sense.c&h 受击与判定相关&&系统主功能 -User/system_manager.c/h 初始化函数 -User/tim_task.c&h 1ms定时器与tim中断任务 #### 硬件规格 MCU:stm32f103c8t6 传感器:4路HX710B (24bitADC)压力传感器 通信接口:CAN总线 接口线序:接口线序与官方6P线相同,立贴GH1.25-6P,(装甲板板背面正视[锁扣向上],从左向右1、2.VIN;3、4.GND;5.CAN_H;6.CAN_L) 输入电压:8-28V 外置灯条:串联结构,6.4V供电 #### 更新历史 1. [2026.1.20] V1.0 复刻裁判系统基础击打判定功能 #### 使用说明 1. 上电默认自检,自检期间不可击打 2. 自检失败,灯条紫灯双闪灯条传感器不稳[可能是因为自检途中受力],紫灯三闪为所有传感器损坏 3. (V1.0)紫灯快闪为无id,板载led为黄色。请取消main.c中[/* USER CODE BEGIN 2 *]下注释掉的[ Flash_Write_ID(id);]函数,并将id设为所需id (1-4) 3. 设置了冗余,在有1个及以上的传感器正常即可正常使用,但是可能存在检测误差 4. 正常运行,灯条默认红方 5. 初始血量400,在common.h中修改HP进行更改。 6. 设有无敌模式,该模式不进行死亡判定,但保留了受击闪烁、dps计算、受击次数计算。 7. 定义小弹丸击打-20,大弹丸击打-200.复活间隔5s 8. 使用can进行版间通信,下附can_id与包格式 9. 配备使用数码管显示主要信息[血量、受击数、总击杀时间、DPS]与重置及模式切换按键[重置计数/切换阵营/设置无敌]的外置主控 10. 检测频率:与官方板一致,小弹丸间隔50ms,大弹丸延长至200ms 11. 主从机模式。从机(2-4)只判定受击类型并发送给主机,主机(1)处理所有数据,进行计算与通信等 #### 灯语与勘误 [板载LED] --(在盖板缝隙中可见,与官方LED同位) [灭]无供电/硬件损坏/死亡状态 ---↓ 1.若n号及n以后的板子都不亮,检查n-1号->n号的线路(故障为无供电) 2.若仅n号不亮,而n-1与n+1都正常工作则检修n号板硬件(故障为硬件损坏) 3.5s后恢复工作,为正常的死亡状态 [黄]无ID/n ---↓ 1.【V1.0】须在main.c文件中手动设置一次id [蓝]启动中 [红]错误 ---↓ 1.具体问题看灯条 [绿]正常运行 [灯条] [紫灯4闪] 无ID [紫灯3闪] 传感器损坏 [紫灯2闪] 传感器不稳定(一般为上电/死亡重启自检阶段传感器受力。大部分情况重新上电即可) [红/蓝常亮] 正常工作 [红/蓝闪烁] 受击 [灭] 情况复杂,结合PCB检测判定 ---↓ 1.板载LED不亮->一般为无供电/硬件损坏 2.板载LED绿 --↓ 1.大概率灯条损坏,检查两根灯条 2.供电损坏,检查PCB上的6.4V供电 3.MOS损坏,检查LED插口旁的两个MOS #### 关键参数 [common.h] HP 血量 HP_INFINITE 0xFFFF 无敌状态 DEAD_TIMEOUT_MS 复活延时 [sense.c] TRIGGER_DIFF 触发受击检测阈值 THRESH_SMALL 小弹丸检测阈值 THRESH_LARGE 大弹丸检测阈值 #### can包结构 1. 配置管理类 {V1.0声明:当前版本该功能存在问题,未启用}[ CAN_ID_SETUP_MGMT 0x001 ]id重置命令,[0]发送A0重置板子ID[1]指定目标id || [0]板子回传A1指定认领id 2. 比赛控制类 [CAN_ID_CMD_RX 0x101]上位机--所有板子 [0]阵营颜色(1红2白)、[1]重置标识位(1重置)、[2][3]初始血量(大端序),发FFFF设为无敌 3. 主机上报类 [CAN_ID_TX_STATUS 0x402]1号装甲板--主控/上位机 [0][1](大端序)当前血量、[2][3](大端序)受击次数、[4][5](大端序)击杀时间、[6][7](大端序)DPS*10 [CAN_ID_TX_HITS 0x403]1号装甲板--主控/上位机 [0][1]1号板受击次数、[2][3]2号板受击次数、[4][5]3号板受击次数、[6][7]4号板受击次数 [CAN_ID_TX_ERROR 0x405]所有装甲板--主控/上位机 [0]存在错误的板子id[1]错误掩码 [CAN_ID_SLAVE_BASE 0x300+Aromr_id]Aromr_id号装甲板--1号装甲板 [0]受击等级(1小弹丸2大弹丸) #### 已知问题 1.通过can总线发送重置id指令后板子id会全部设为1,未实现顺延与敲击设定id 2.现在空板烧录时id需要手动在main.c的 【USER CODE BEGIN 2】 中设定为所需id #### 期望更新功能 [V1.1]期望加入与官方类似的敲击重置装甲板id