
开源协议
:GPL 3.0
描述
注:* 为必填项
请在报名阶段填写 ↓
* 1、项目功能介绍
本项目为2025年全国大学生电子设计竞赛E题自动打靶小车系统,包含三大核心子系统:
移动平台系统:
基于TI MPM0系列MCU的主控制器
八路红外寻迹传感器阵列实现精确路径跟踪
TB6612电机驱动模块控制直流减速电机
可编程圈数设定(1-5圈),单圈时间≤20秒
具备起点识别和圈数计数功能
瞄准发射系统:
STM32微控制器作为核心处理器
二维云台结构,采用42步进电机精密控制
张大头步进电机驱动器提供稳定电流驱动
蓝紫色激光笔作为射击装置
具备俯仰和水平双轴运动控制能力
视觉识别系统:
树莓派5作为图像处理核心
USB高清摄像头进行实时图像采集
OpenCV视觉算法实现目标识别定位
与瞄准系统通过串口通信传输坐标数据
*2、项目属性
首次公开状态:本项目为首次公开
获奖情况:无
* 3、开源协议
开源声明:
本项目遵循GPL-3.0开源协议
请在竞赛阶段填写 ↓
*4、硬件部分
4.1 系统架构设计
自动打靶小车硬件系统架构:
视觉识别系统 瞄准发射系统 移动平台系统
树莓派5 + UART STM32 + UART TI MPM0 +
USB摄像头 ◄───► 步进电机驱动 ◄───► TB6612驱动
4.2 移动平台硬件设计
主控制器模块:
采用TI MPM0系列MCU,具备丰富外设接口
8路ADC通道用于红外传感器信号采集
2路PWM输出控制电机速度
4路GPIO用于电机方向控制
传感器模块:
八路TCRT5000红外反射传感器阵列
传感器间距25mm,覆盖检测宽度180mm
比较器电路输出数字信号,抗干扰性强
供电电压:5V DC
电机驱动模块:
TB6612FNG双通道电机驱动芯片
最大输出电流:1.2A(连续)
驱动电压:2.5-13.5V
PWM频率:10kHz
具备正反转控制和制动功能
电源管理:
12V锂电池为电机系统供电
5V稳压模块为控制电路供电
3.3V LDO为MCU核心供电
4.3 瞄准系统硬件设计
云台机械结构:
水平旋转范围:±90°
俯仰调节范围:-15°至+45°
42步进电机,1.8°步距角
减速比1:5,提高扭矩和精度
步进电机驱动:
张大头DM542步进电机驱动器
支持16细分模式
输出电流可调(0.5-4.2A)
具备过流、过热保护
激光发射模块:
蓝紫色激光笔,波长405nm
光斑直径:2mm@10m
由STM32 GPIO控制开关
4.4 视觉系统硬件设计
图像采集:
树莓派5主控,4GB内存
Logitech C920 USB摄像头
分辨率:1920×1080 @ 30fps
自动白平衡和曝光控制
通信接口:
UART串口与STM32通信
数据传输格式:目标坐标(x,y)+置信度
通信波特率:115200bps
注:请前往嘉立创EDA 生成/上传设计文件,文件完成后,相关文稿将自动生成至项目详情;这里可以详细说明您的项目实现原理和机制、注意事项、调试方法、测试方法等。推荐图文并茂的形式向别人介绍您的想法。
*5、软件部分
5.1 STM32瞄准控制系统
┌──────────────────────
│ STM32主控制器 │
├─────────────────────────
│ 1. 串口通信模块 │ 2. PID控制模块 │
│ - 数据接收 │ - 位置PID计算 │
│ - 协议解析 │ - 死区处理 │
├─────────────────────────
│ 3. 步进电机控制 │ 4. 定时器中断 │
│ - 脉冲生成 │ - 10ms控制周期 │
│ - 方向控制 │ - 50ms辅助周期 │
├────────────────────────
│ 5. OLED显示模块 │ 6. 按键输入模块 │
│ - 状态显示 │ - 参数设置 │
└─────────────────────────
PID位置控制算法:
float PID_x(float Target_x, float True_x)
{
err_x = Target_x - True_x; // 计算误差
err_difference_x = err_x - last_err_x; // 计算误差变化率
last_err_x = err_x; // 更新上次误差
return Kp_x * err_x + Kd_x * err_difference_x; // PD控制器输出
}
5.2 树莓派视觉系统
核心算法说明:
双方法矩形检测:
python
# 方法1:颜色阈值法
mask_black = cv.inRange(hsv_black, np.array([0,0,0]), np.array([180,255,60]))
contours_black, _ = cv.findContours(mask_black, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
# 方法2:边缘轮廓法
edges = cv.Canny(blurred, 0, 120)
contours_all, _ = cv.findContours(closed, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
# 综合决策逻辑
if frame_rect is not None and rect_edge is not None:
center_color = np.mean(frame_rect[:, 0, :], axis=0)
center_edge = np.mean(rect_edge[:, 0, :], axis=0)
dist = np.linalg.norm(center_color - center_edge)
if dist selected_rect = frame_rect
白色区域比例验证:
python
def white_ratio_in_rect(approx, hsv_img):
mask_roi = np.zeros(hsv_img.shape[:2], dtype=np.uint8)
cv.fillPoly(mask_roi, [approx.reshape(-1, 1, 2)], 255)
lower_white = np.array([28, 0, WHITE_V_MIN])
upper_white = np.array([180, WHITE_S_MAX, 255])
mask_white = cv.inRange(hsv_img, lower_white, upper_white)
white_in_roi = cv.bitwise_and(mask_white, mask_white, mask=mask_roi)
roi_area = cv.countNonZero(mask_roi)
ratio = cv.countNonZero(white_in_roi) / roi_area
return ratio, white_in_roi
系统要求:
操作系统: Raspberry Pi OS (64-bit)
Python版本: 3.9+
OpenCV版本: 4.5+
程序运行方法
bash
# 进入项目目录
cd RaspberryPi_Vision
# 运行主程序
python main.py
# 调试模式运行
python main.py --debug
5.3 MPM0
// 定时器中断中读取编码器计数
void TIMER_ms_INST_IRQHandler(void)
{
if(DL_TimerG_getPendingInterrupt(TIMER_ms_INST)==DL_TIMER_IIDX_ZERO)
{
num++;
Encode_MotorL_Count_Temp = -Read_Speed(1); // 左电机编码器
Encode_MotorR_Count_Temp = Read_Speed(2); // 右电机编码器
if(num % 50 == 0) {
DL_GPIO_togglePins(LED_PORT, LED_PIN_PIN); // 状态指示
}
}
}
5.4 通信协议设计
树莓派→STM32协议格式
帧格式: [0x12, 0x2C, 数据段, 0x5B]
数据段: 符号位+X坐标(3位)+符号位+Y坐标(3位)
示例: '1' '025' '0' '150' 表示坐标(25, -150)
STM32→树莓派协议格式
控制命令:
- 'd1': 请求矩形顶点数据
- 'd2': 请求中心坐标数据
*6、BOM清单

注:项目涉及的BOM清单。在嘉立创EDA 生成/上传设计文件后,BOM将自动生成至项目详情;建议包括型号、品牌、名称、封装、采购渠道、用途等内容。具体内容和形式应以表达清楚项目构成为准。
*7、大赛LOGO验证

* 8、演示您的项目并录制成视频上传
视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;
视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论