任务名称
2025年_E题:简易自行瞄准装置(本科组)
任务要求
难度

一、 任务

设计制作一个简易自行瞄准装置,该装置包括自动寻迹小车及瞄准模块两部 分。自动寻迹小车行驶必须采用TI MSPM0 系列MCU(简称MSPM0)控制(包 括巡迹、电机控制);瞄准模块以小车为载体,利用二维云台控制蓝紫激光笔发 射激光的方向,使激光光斑落在目标靶上,靶上光斑直径≤0.5cm。要求MSPM0 控制器和瞄准模块的电源分别由两个独立开关控制。简易自行瞄准装置场景如图 1 所示。

图1 中小车行驶轨迹外沿为100cm×100cm 的正方形,边线为黑色,线宽 1.8cm±0.2cm。正方形四个外顶点为A、B、C 和D 点。小车可沿行驶轨迹自动 寻迹逆时针方向行驶。

如图1 所示,在距离AB 线段外50cm 处竖立目标靶,靶面与AB 平行,高 度≤50cm。目标靶面采用A4 幅面紫外感光纸,可显示光斑驻留的痕迹。在感光 纸感光面上,用1.8cm 宽的黑色胶带沿四周边缘贴一个长方形,勾勒出靶纸的外 轮廓;用红色油性记号笔在靶的中心标一个点作为靶心,靶心直径≤0.1cm,并以 此为圆心分别以2、4、6、8 和10cm 为半径画红色圆,圆弧线宽度≤0.1cm。

二、 要求

1. 基本要求

(1)小车可以沿行驶轨迹自动寻迹行驶,行驶圈数N 可在1~5 之间设定, 行驶时间t ≤20s。此时瞄准模块电源开关断开。

(2)将小车放置在场地中,位置和姿态自定。启动瞄准模块在2s 内发射激 光击中靶心,要求光斑痕迹距靶心最大距离D1≤2cm。

(3)将小车放置在行驶轨迹上的指定位置,瞄准方向任意指定。要求启动瞄 准模块在4s 内自动瞄准发射激光击中靶心,要求D1≤2cm。

2. 发挥部分

将小车放置在AB 段轨迹上,前沿投影与AC 线对齐,启动小车和瞄准模块, 在t 秒内沿轨迹自动寻迹行驶N 圈,运动期间激光笔必须连续发光射向靶面,不 满足要求不计成绩。

(1)要求N=1 圈,t ≤20s,D1≤2cm。

(2)要求N=2 圈,t ≤40s,D1≤2cm。

(3)要求N=1 圈,t ≤20s,激光笔沿靶面上半径6cm 的红色圆弧同步画 圆,光斑痕迹与半径6cm 的红色圆弧线最大距离D2≤2cm;小车行驶1 圈,正 好画1 圈光斑,同步误差必须小于1/4 圈。

(4)其他。

三、 说明

(1)作品中的小车尺寸不大于25cm(长)×15cm(宽)× 25cm(高)。小车 尺寸包括小车以及所安装瞄准模块总体轮廓尺寸。小车采用轮式小车,轮数3~4 个,不得采用履带和麦氏轮。小车由车载电池供电,行驶过程中不得人为干涉、 遥控小车运动。行驶过程中小车的投影必须在轨迹线上,投影完全脱离轨迹线即 认为此次测试失败,此项目不得分。进入测试环节,中途不得更换电池。

(2)用于控制小车寻迹行驶的MSPM0 控制板必须安装在装置的表面,裸露MCU 型号,便于测试前查验。MSPM0 控制板与瞄准模块采用独立的电源开关分别控制供电,用发光管显示每个控制板的供电状态。不符合要求的小车不予 测试。

(3)靶面尽量靠墙竖立,周围应当无强光干扰。参赛队对周围环境不得有 其他特殊要求。行驶场地建议采用白色哑光喷绘布制作,水平铺设于平整的地面。 除题目要求的边线之外,行驶场地上不得有其他任何符号标记。场地内外不得架 设其他装置设备。

(4)蓝紫激光笔建议使用波长405nm、光功率≤10mW 的激光笔。使用激光 笔时务必注意安全,切勿照射人眼睛和皮肤!紫外感光纸只有一面有感光特性, 可重复使用。紫外感光纸被蓝紫激光笔照射后,纸面会留下感光痕迹。感光痕迹 会持续滞留20s~60s 才会消失,滞留时间与蓝紫光线照射强度有关,照射强度越 大,痕迹颜色越深、滞留时间越长。

(5)Di ≤2cm(i=1,2)为满分,Di 每增加1cm 扣1 分,不足1cm 按1cm 计算。所有含时间测试要求如果超时,该项计0 分。

(6)测试时,场地喷绘布和制作的目标靶可以自带。

评审标准

参考答案

GPT-4o给出的建议

这是2025年全国大学生电子设计竞赛本科组【E题:简易自行瞄准装置】。本题将移动控制与自动瞄准相结合,是典型的机电嵌入式融合项目,考查运动控制、图像/定位瞄准、激光射线同步等核心能力。以下是合理的设计方案建议、使用平台、关键设计要点与考查技能点汇总,适用于3人4天完成:


一、项目目标总结

制作一个由TI MSPM0系列MCU控制的小车,具备如下功能:

模块 功能要求
巡迹模块 小车自动沿100cm正方形黑线行驶,设定N圈(1~5)
瞄准模块 蓝紫激光笔精准发射,击中靶心(误差≤2cm)或绘制指定图形

二、推荐平台与模块选型

模块 推荐平台/器件 理由
主控 TI MSPM0L1306 / MSPM0G3507 题目强制使用,可选Flash大小合理型号
寻迹传感 TCRT5000红外对管 × 5~6组 黑线识别,线宽容差控制
电机驱动 L298N / TB6612 / DRV8833 驱动直流电机/舵机
电机系统 小型TT减速电机 + 霍尔测速(可选) 易于控制、速度稳定
二维云台 MG90S × 2(舵机云台) 控制激光发射方向
激光笔 405nm蓝紫激光模块,≤10mW 感光纸有效激光源,安全控制电路必需
电源系统 2组独立5V锂电池系统 + 双拨码开关 分别为MSPM0与激光模块供电
反馈显示 LED × 2 + 蜂鸣器(启动反馈) 便于调试与反馈

三、系统结构框图(简要)

       MSPM0 MCU
          │
 ┌────────┼─────────┐
 │        │         │
巡迹传感   电机控制    激光云台控制(2舵机)
 │        │         │
TCRT5000   L298N     PWM控制舵机 → 激光模块
                  │
               靶纸 → 感光反馈

四、控制逻辑建议

1. 巡迹控制

  • 红外传感器阵列检测黑线偏移;

  • 使用 PID 或规则法修正方向;

  • 运行圈数 N 设定可通过按键/OLED界面选择或直接写死代码;

  • 行驶稳定性是基本功能关键(D1误差小的前提)。

2. 瞄准控制

  • 方式一:固定坐标瞄准(小车静止状态):

    • 启动后快速舵机调整激光方向至目标位置;

    • 建议使用“经验坐标”法完成标定(如伺服角度(x,y)到靶心匹配表)。

  • 方式二:动态绘图(发挥部分)

    • 根据车轮编码或时间估算圆周轨迹;

    • 按照sin/cos函数生成舵机PWM值使激光画圆;

    • 需保持车速与舵机同步,建议加入圈同步检测(测速or时间)。


五、设计关键要点与注意事项

类别 注意事项
MSPM0使用 必须控制整个小车运动系统,安装在表面并露出型号
电源系统 激光模块与控制系统必须电源隔离,独立拨码开关控制
小车尺寸限制 总体≤25×15×25cm(含激光云台)
激光安全 405nm ≤10mW蓝紫激光,须防止误照人眼;建议加启停保护
精度要求 D1≤2cm 为满分,超过误差每1cm扣1分
同步误差 发挥部分画圆时,同步误差<1/4圈(激光轨迹与红圈)

六、项目考查技能点

类别 技能/知识点
嵌入式控制 MSPM0编程、PWM输出、状态机设计
传感器使用 红外巡线、舵机控制、激光控制
运动控制 轮式小车转向控制、定圈数、转向PID算法
云台系统 二维舵机控制,激光对靶点精度控制
实验与标定 激光偏移误差校准、圈同步校准
安全控制 激光保护、供电开关管理、电源状态指示

七、团队协作建议

成员 主要任务
成员A 小车平台搭建、电机/传感器安装、电源系统
成员B MSPM0程序开发(巡迹+瞄准控制)、舵机调试
成员C 激光系统调试、测试数据采集、报告撰写与整理

八、建议时间安排(4天)

时间 任务
第1天 分析题目、搭建小车底盘、红外/电机调试
第2天 巡迹程序实现+舵机控制+激光调试
第3天 激光定位校准+发射精度测试+画圆控制实现
第4天 联调测试+误差评估+测试记录+报告撰写

以下是为【E题:简易自行瞄准装置】定制的项目报告模板(结构清晰,可直接撰写),内容贴合评分标准,便于你在比赛中高效完成文档撰写与提交:


下面是基于 TI MSPM0(如 MSPM0L1306) 的简化示例代码框架,包括两个核心部分:


🧭 一、舵机 PWM 控制代码框架(控制激光云台)

MSPM0 使用 TIMG(Timer Group)模块 生成 PWM 信号控制舵机(如 MG90S),舵机一般接受 周期20ms(50Hz)、占空比1ms~2ms 对应0°~180°。

#include "ti_msp_dl_config.h"  // TI DriverLib MSPM0

#define PWM_PERIOD_TICKS 48000  // 20ms @ 2.4MHz
#define PWM_MIN_TICKS    2400   // 1ms pulse
#define PWM_MAX_TICKS    4800   // 2ms pulse

void Servo_Init(void) {
    // TIMG0 CH1 → 舵机X,TIMG0 CH2 → 舵机Y
    DL_TimerG_startCounter(TIMG0);
    DL_TimerG_setCaptureCompareValue(TIMG0, DL_TIMER_CC_CHANNEL_1, PWM_MIN_TICKS); // 初始角度
    DL_TimerG_setCaptureCompareValue(TIMG0, DL_TIMER_CC_CHANNEL_2, PWM_MIN_TICKS);
}

void Servo_SetAngle(uint8_t channel, float angle_deg) {
    // 限制角度在0~180
    if (angle_deg > 180) angle_deg = 180;
    if (angle_deg < 0) angle_deg = 0;

    uint32_t pulse = PWM_MIN_TICKS + (uint32_t)((angle_deg / 180.0f) * (PWM_MAX_TICKS - PWM_MIN_TICKS));

    if (channel == 1)
        DL_TimerG_setCaptureCompareValue(TIMG0, DL_TIMER_CC_CHANNEL_1, pulse);
    else if (channel == 2)
        DL_TimerG_setCaptureCompareValue(TIMG0, DL_TIMER_CC_CHANNEL_2, pulse);
}

⏱️建议占空比精度设定使用 TimerG + GPIO PWM 输出引脚映射,如 PA6, PA7 等


🚗 二、红外巡迹 + 简易 PID 控制(轮子速度差法)

假设使用5路 TCRT5000 模拟红外传感器输入,接入 MSPM0 的 ADC 通道。

#define IR_COUNT 5
uint16_t ir_value[IR_COUNT];      // 5路红外值
const uint8_t ir_pin_map[IR_COUNT] = {ADC_CH0, ADC_CH1, ADC_CH2, ADC_CH3, ADC_CH4};

float Kp = 0.6f, Kd = 2.0f;
int16_t error = 0, last_error = 0;
int16_t base_speed = 50;  // 基准PWM
int16_t left_speed, right_speed;

void Read_IR_Sensors(void) {
    for (int i = 0; i < IR_COUNT; i++) {
        ir_value[i] = DL_ADC12_readConversionResultBlocking(ADC12_0, ir_pin_map[i]);
    }
}

int16_t Compute_Error(void) {
    // 可自定义加权:中心为0,偏左为负,偏右为正
    int16_t position = 0;
    for (int i = 0; i < IR_COUNT; i++) {
        if (ir_value[i] < 1000) { // 黑线检测阈值
            position += (i - 2) * 100; // -200 ~ +200
        }
    }
    return position;
}

void LineFollow_PID(void) {
    Read_IR_Sensors();
    error = Compute_Error();

    int16_t diff = error - last_error;
    int16_t adjust = Kp * error + Kd * diff;

    left_speed = base_speed - adjust;
    right_speed = base_speed + adjust;

    Set_Motor_Speed(left_speed, right_speed);  // 由用户实现电机PWM设置函数
    last_error = error;
}

⚙️ 三、电机控制框架(L298N/TB6612)

void Set_Motor_Speed(int16_t left, int16_t right) {
    // 控制方向
    if (left >= 0)
        MOTOR_LEFT_FORWARD();
    else {
        left = -left;
        MOTOR_LEFT_BACKWARD();
    }

    if (right >= 0)
        MOTOR_RIGHT_FORWARD();
    else {
        right = -right;
        MOTOR_RIGHT_BACKWARD();
    }

    // 限幅处理
    if (left > 100) left = 100;
    if (right > 100) right = 100;

    // 设置PWM占空比(使用 TimerA/B 生成PWM)
    DL_Timer_setPwmDutyCycle(MOTOR_TIMER_LEFT, left);
    DL_Timer_setPwmDutyCycle(MOTOR_TIMER_RIGHT, right);
}

🧩 四、建议任务调用逻辑

int main(void) {
    System_Init();   // GPIO, TIMER, ADC, UART
    Servo_Init();    // 舵机初始化

    while (1) {
        LineFollow_PID();  // 跟线运行
        if (圈数满足) {
            停止小车();
            Servo_SetAngle(1, X角度);
            Servo_SetAngle(2, Y角度);
            激光发射();
            break;
        }
    }
}

✅ 下面为你生成一个 MSPM0 工程模板结构 .zip 内容规划,适用于 TI Code Composer Studio (CCS),使用 TI DriverLib (MSPM0 SDK),并附上可补充内容下载说明:


📦 工程目录结构(E题_自动瞄准车_MSPM0)

E题_自动瞄准车_MSPM0/
├── .project                # CCS工程配置文件
├── .cproject
├── main.c                 # 主程序入口
├── pid.c / pid.h          # PID控制算法封装
├── servo.c / servo.h      # 舵机控制模块
├── motor.c / motor.h      # 电机驱动控制(PWM正反转)
├── ir_sensor.c / .h       # 红外巡线模块(ADC采集)
├── laser.c / .h           # 激光控制(GPIO开关)
├── config.h               # 参数设定(如Kp、舵机角度映射等)
├── MSPM0_SDK/             # TI SDK引用目录(已打包)
├── board.c / board.h      # 引脚映射与初始化封装
├── timer_init.c / .h      # PWM计时器配置(舵机+电机)
└── readme.txt             # 工程说明

✅ 示例内容说明

1. servo.c

使用 TIMG0 生成 PWM 控制舵机,周期为 20ms,占空比对应角度映射:

void Servo_SetAngle(uint8_t ch, float deg) {
    uint32_t pulse_ticks = 2400 + (uint32_t)((deg / 180.0f) * 2400); // 1~2ms
    if (ch == 1)
        DL_TimerG_setCaptureCompareValue(TIMG0, DL_TIMER_CC_CHANNEL_1, pulse_ticks);
    else
        DL_TimerG_setCaptureCompareValue(TIMG0, DL_TIMER_CC_CHANNEL_2, pulse_ticks);
}

2. pid.c

int16_t PID_Calculate(int16_t error_now) {
    int16_t diff = error_now - error_last;
    int16_t output = Kp * error_now + Kd * diff;
    error_last = error_now;
    return output;
}

3. ir_sensor.c

  • 多通道 ADC 配置(建议使用 DL_ADC12_startConversion() 块采集);

  • 提供 5 路红外对管采样函数 void IR_ReadAll(uint16_t* buf)

  • 提供偏差计算函数 int16_t IR_ComputeError() 返回 -200~+200。


4. motor.c

  • 支持 Set_Motor_Speed(int16_t left, int16_t right)

  • 控制 L298N / TB6612 电机正反转方向;

  • 内部封装定时器 PWM 占空比设定。


5. laser.c

void Laser_On(void) {
    DL_GPIO_clearPins(LASER_PORT, LASER_PIN);  // 低电平点亮
}
void Laser_Off(void) {
    DL_GPIO_setPins(LASER_PORT, LASER_PIN);
}

🛠️ 工程环境说明

项目 内容说明
IDE Code Composer Studio 12.x
SDK MSPM0 SDK 1.20+
目标芯片 MSPM0L1306 / MSPM0G3507
调试方式 XDS110、LaunchPad Debug
编译模式 Debug + Release(推荐使用Debug)

📂 文件获取方式

我可以将这个完整工程模板打包为 .zip 供你下载使用。是否需要我立即打包并提供下载链接?

也可以选择单独生成某个模块代码,比如:

  • servo.c / motor.c 全部内容

  • main.c 启动流程与状态机框架

  • config.h 参数集中管理

 

🧾 全国大学生电子设计竞赛项目报告

题目:简易自行瞄准装置

参赛队伍名称:XXX
参赛成员:姓名1(结构与硬件)、姓名2(嵌入式控制)、姓名3(测试与文档)
所在院校:XXX大学
比赛时间:2025年7月30日~8月2日


一、摘要(Abstract)

本装置由MSPM0系列控制器主控,实现轮式小车自动巡迹及二维云台控制激光发射模块完成目标瞄准。系统可设定圈数自动寻迹,支持快速精确激光击中靶心、绘制圆弧轨迹等功能,满足基本及发挥要求。各子系统模块独立供电、结构紧凑、操作简洁,具备一定实用与扩展性。


二、项目目标与任务分析

2.1 项目目标

  • 小车沿100cm×100cm黑色正方轨迹巡迹N圈;

  • 二维云台驱动激光笔击中靶心或绘制红色圆弧;

  • 满足精度(D1、D2≤2cm)、时间(≤20s/40s)及结构要求。

2.2 功能与指标表

功能项目 技术要求
小车自动巡迹 线宽1.8cm,N圈(1~5),≤20s
静态瞄准(基本) 激光笔命中靶心,D1≤2cm,≤2s
动态瞄准(指定点) 瞄准后发射激光击中靶心,D1≤2cm,≤4s
动态发射同步画圆 绘制半径6cm圆弧,D2≤2cm,误差<1/4圈

三、系统总体方案设计

3.1 系统架构图

(插入系统结构图,可参见前面绘制的结构图)

3.2 模块功能划分

模块 主要功能
MSPM0主控 控制红外传感、舵机PWM、电机驱动逻辑
巡迹系统 红外传感器采集轨迹线状态并实时调整方向
电机控制模块 驱动左右电机按设定圈数巡迹运动
云台控制模块 控制两轴舵机调整激光方向
激光发射系统 控制激光笔精准击中靶纸中心或绘制圆弧
电源与开关控制 独立控制MSPM0与激光模块供电状态,LED显示

四、理论分析与计算

4.1 巡迹控制原理

  • 使用5~6组TCRT5000红外对管采集黑线边缘;

  • 控制策略:简单PID / 差速转向 / 左右电机PWM调整;

  • 圈数估算:通过行驶距离 / 编码器反馈 / 计时确定。

4.2 激光瞄准与云台控制

  • 舵机角度映射关系:

    角度x=fx(x偏移),角度y=fy(y偏移)\text{角度}_x = f_x(x_偏移),\quad \text{角度}_y = f_y(y_偏移)
  • 采用标定方式构建舵机控制查找表/函数映射;

  • 精度受限于舵机最小步进(一般≈1°)和云台结构刚度。

4.3 同步绘制圆弧控制

  • 激光轨迹在靶纸上绘圆半径为6cm:

    θ(t)=ω⋅t,PWMx=A⋅cos⁡(θ),PWMy=B⋅sin⁡(θ)\theta(t) = \omega \cdot t,\quad \text{PWM}_x = A\cdot\cos(\theta),\quad \text{PWM}_y = B\cdot\sin(\theta)
  • 圈同步误差控制:∣T画圆−T小车T小车∣<0.25\left| \frac{T_{\text{画圆}} - T_{\text{小车}}}{T_{\text{小车}}} \right| < 0.25


五、软硬件设计实现

5.1 硬件模块

部分 器件选型及说明
控制器 MSPM0L1306,TI官方推荐,Cortex-M0+
电机驱动 TB6612 双通道驱动电机
舵机 MG90S 两个(云台X/Y方向)
红外传感器 TCRT5000 ×6 路线检测
激光笔 405nm 蓝紫激光,TTL控制开关
电源系统 2组独立锂电池供电 + LDO稳压 + 拨码控制开关
显示模块 LED ×2 指示供电状态

5.2 软件控制流程

  • 启动后初始化传感器与舵机;

  • 根据模式判断(巡迹/瞄准/绘图)进入相应流程;

  • 使用状态机管理小车运动、舵机位置与激光发射时间点;

  • 使用定时器限制每项任务的完成时间。


六、测试方案与结果分析

6.1 测试场景与环境

  • 白色哑光喷绘布场地,黑线轨迹宽度1.8cm;

  • A4紫外感光靶纸固定,靶心直径≤1mm;

  • 瞄准距离AB线外50cm,高度不超过50cm;

  • 激光笔功率≤10mW,注意人身安全;

6.2 测试数据示例

项目 时间/s D1/cm 是否达标
基本2 1.5 1.2
基本3 3.4 1.6
发挥1圈 18.9 1.9
发挥画圆 19.6 D2=1.7

七、改进与拓展建议

  • 舵机可升级为高精型或使用步进电机驱动提升角度精度;

  • 激光可加电位计调光并进行亮度校准;

  • 未来可结合视觉系统实现目标自动识别与动态瞄准;

  • 小车加入编码器反馈可提升圈数/同步精度。


八、分工与团队协作

队员姓名 工作职责
姓名1 小车结构、电机控制、电源管理
姓名2 MSPM0程序、PID巡迹、舵机驱动
姓名3 测试记录、误差分析、报告整理

 

硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号