找回密码
 立即注册
查看: 500|回复: 0

全国大学生电子设计竞赛国二使用STC32G12K128完成E题,开源方案

[复制链接]
  • TA的每日心情
    奋斗
    2023-12-3 16:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    7

    回帖

    103

    积分

    注册会员

    积分
    103
    发表于 2023-10-9 15:44:41 | 显示全部楼层 |阅读模式
    我们是来自重庆交通大学的队伍,在全国大学生电子设计竞赛大赛中取得了全国二等奖的成绩。参与项目为E题,运动目标控制与自动追踪系统。

    简介本系统由多个模块组成,包括中控模块、摄像头模块、电源模块、云台舵机模块、稳压模块、显示模块、激光模块和声光模块。使用STC32G12k128单片机作为控制中心,通过舵机云台控制激光的运动。Open ART mini摄像头识别黑框后,将通过串口与STC32G12k128单片机进行通信,然后完成相应的红色光斑的目标控制。对于绿色光斑跟踪系统,Open ART mini首先通过摄像头识别红色激光,然后进行串口通信,之后通过增量式PID等算法的处理输出PWM波形控制二维云台运动,使绿色光斑能跟随红色光斑。整个系统实现了高精度的目标控制和追踪功能

    系统方案设计
    系统包括模拟目标运动的红色光斑位置控制系统和指示自动追踪的绿色光斑位置控制系统。
    模拟目标运动的红色光斑位置控制系统主要以STC32G12K作为主控板。在校准好位置之后,利用陀螺仪定位初始位置并设置复位按键,通过复位功能,二维舵机云台可以准确移动至原点位置,确保系统在每次使用前都返回准确的初始状态,提供精确的定位和操作。通过控制按键来控制单片机运行,进而控制舵机云台的转动,实现模拟目标运动的效果。
    指示自动追踪的色光斑位置控制系统主要以TC264作为主控板。该系统通过摄像头识别屏幕上的红色激光点,并通过串口将激光点的坐标信息传给TC264单片机。单片机接收到摄像头传来的信息后,通过图像增强算法、增量式PID等算法的处理,输出PWM波形来控制二维云台的运动,使绿色光斑能够跟随红色光斑。该系统的硬件结构图如图所示。
      

    硬件结构

    硬件结构

    运动目标控制
    红色光斑位置控制系统:
       红色光斑位置控制系统的核心是精确控制光斑的位置。为了实现这一目标,可以采用增量式PID控制算法来减小系统的超调和震荡,提高系统的稳定性和响应速度。通过对云台的水平和垂直方向的角度进行精确控制,可以确保光斑中心距原点误差小于等于2cm。此外,还可以通过实时反馈系统来监测和调整光斑的位置,以确保其在屏幕范围内的任意移动。
    绿色光斑位置控制系统:

    绿色光斑位置控制系统的主要任务是追踪红色光斑。为了实现这一目标,除了前文提到的技术,采用卡尔曼滤波器来预测红色光斑的运动轨迹,结合拉格朗日线性拟合来调整绿色光斑与红色光斑之间的距离,可以提高绿色光斑位置控制系统的追踪精度和稳定性。从而更加准确地实现绿色光斑的自动追踪。卡尔曼滤波器可以结合系统的测量值和模型预测值,通过递归滤波算法来估计目标的真实位置,从而提高追踪的准确性和稳定性。

    追踪性能分析与计算
    2.2.1 增量式PID算法的相关分析与计算
    增量式PID算法公式: u(k) = u(k-1) + Kp *(e(k) - e(k-1)) + Ki * e(k) + Kd * (e(k) - 2 * e(k-1) + e(k-2))
    其中,u(k)是控制器在时刻k的输出值; u(k-1)是控制器在上一时刻k-1的输出值; e(k)是当前时刻k的误差,即设定值与实际值之间的差异; e(k-1)是上一时刻k-1的误差;e(k-2)是上两个时刻k-2的误差; Kp是比例系数,用于调整比例控制的作用程度; Ki是积分系数,用于调整积分控制的作用程度; Kd是微分系数,用于调整微分控制的作用程度。
    通过调整比例系数Kp、积分系数Ki和微分系数Kd的大小,可以对控制器的响应速度、稳定性和抗干扰能力进行调节,以达到期望的控制效果
    2.2.2 卡尔曼滤波算法的相关分析与计算
    卡尔曼滤波是一种用于估计动态系统状态的递归滤波算法。其基本思想是通过将系统的测量值和模型预测值进行加权平均来估计目标的真实状态。卡尔曼滤波的数学公式可以用以下方式描述:
    1. 预测步骤:
        a. 状态先验估计:x^(k) = A * x(k-1) +B * u(k-1)
        b. 协方差先验估计:P^(k) = A * P(k-1) *A^T + Q
    2. 更新步骤:
        a. 残差计算:y(k) = z(k) - H * x^(k)
        b. 残差协方差计算:S(k) = H * P^(k) *H^T + R
        c. 卡尔曼增益计算:K(k) = P^(k) * H^T *S(k)^(-1)
        d. 状态修正:x(k) = x^(k) + K(k) *y(k)
        e. 协方差修正:P(k) = ( - K(k) * H) *P^(k)
    通过重复以上步骤,卡尔曼滤波可以逐步逼近目标的真实状态,并提供准确的状态估计。
    1223.png

    程序设计
    当执行运动目标位置复位功能时,通过控制红色光斑的位置控制系统,实现光斑准确回到原点,并控制误差在2cm内,实现精准位置复位。要启动运动目标控制系统,需红色光斑位置复位后,使光斑沿屏幕边线顺时针移动一周,保持光斑中心距离边线在2cm内,确保运动轨迹准确。将A4靶纸贴在预定位置,红色光斑沿胶带顺时针移动一周;将A4靶纸以任意旋转角度贴在任意位置,红色斑沿胶带顺时针移动一周。
    通过控制绿色光斑的位置控制系统,使光斑在2秒内追踪红色光斑,保持光斑中心距离在3cm内,追踪成功时发出声音和光提示。运动目标重复基本要求3、4的动作,在任意位置放置绿色激光笔发射端,启动运动目标和自动追踪系统,确保绿色光斑能自动追踪红色光斑,并根据预设的得分条件评判准确度和精确度。设计暂停键用于制动红色和绿色光斑,方便测量和调整,确保系统准确性和稳定性。
    555.jpg


    diansai.zip (1.41 MB, 下载次数: 16)



    回复 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-29 08:52 , Processed in 0.054690 second(s), 31 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表