找回密码
 立即注册
楼主: su***

国二,使用STC32完成E题获得国二!

[复制链接]

该用户从未签到

1

主题

9

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2023-10-10 11:45:16 | 显示全部楼层
本帖最后由 suye 于 2023-10-10 11:46 编辑

2023电赛备赛滚轴控制系统训练第五篇
大家好,这里是西安建筑科技大学参赛队,在本届电赛中选择E题并获得国二,很荣幸这次能在STC官方论坛讲述我们的参赛经验。当然我们的作品中还有很多不足之处,请大家多多包涵。
这篇帖子主要是分享电赛备赛的一些经历和经验以供大家学习参考。水平有限,如有不对,请大家见谅。

本篇内容包括滚轴控制系统的测距原理和PID控制方法。
测距原理及方法
相位式激光测距通常适应于中短距离的测量,测量精度可达毫米、微米级,也是目前测距精度最高的一种方式;大部分短程测距仪都采用这种工作方式。相位式测距则是将一调制信号对发射光波的光强进行调制,通过测量相位差来间接测量时间,较直接测量往返时间的处理难度降低了许多。测量距离如公式1-1所示。
2L=∅*C*T/2Π                (1-1)
    式中L为测量距离,C为光在空气中传播的速度,T为调制信号的周期时间,∅为发射与接收波形的相位差。
截图202310101145405706.jpg

图2—1 相位式激光测距原理示意图
PID控制方法
在PID控制算法是工业控制领域的一个最为实用和经典的算法,原理简单,易于实现,适用面广。本次设计中对于舵机角度以及速度中运用了PID控制。PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法。
在舵机调整中,采用分段PID应对转轴远离与转轴靠近设定位置,以使舵机控制更加丝滑。在设计时亦尝试过使用增量式PID,但由于滚轴在低速下控制并不需要过于对舵机速度PID控制,而且增量式PID需要考虑速度及速度积分等更加复杂的实际情况,但实际调试的结果并没有太大差异,因此一般的位置式已经足够使用,舵机精度符合需求。
PID算法是一种闭环控制算法。其满足闭环控制规律,框图如下:
截图202310101145596810.jpg


图2—2 闭环控制框图

当以微控制器为大脑,激光测距作为信息传输通道,可以实现系统的控制。控制框图如下。这里使用STC的微控制器STC32G128k。
                           
截图202310101146179908.jpg

图2—3 PID计算原理框图



回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

9

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2023-10-10 11:46:48 | 显示全部楼层
本帖最后由 suye 于 2023-10-10 11:49 编辑

2023电赛备赛滚轴控制系统训练第六篇
大家好,这里是西安建筑科技大学参赛队,在本届电赛中选择E题并获得国二,很荣幸这次能在STC官方论坛讲述我们的参赛经验。当然我们的作品中还有很多不足之处,请大家多多包涵。
这篇帖子主要是分享电赛备赛的一些经历和经验以供大家学习参考。水平有限,如有不对,请大家见谅。

本篇内容包括滚轴控制系统的硬件设计。
激光测距模块
本次设计中采用的激光测距是通过对激光相位差的检测,感知目标物距离,可以达到毫米级的分辨率;温度适应能力强,漂移量较小;
高信噪比使得目标物的颜色、表面粗糙度和材质等对检测结果影响很小;小体积,更方便使用;
在使用时需要先使用TTL转USB接口,将激光测距模块与PC相连接,使用串口助手设置测量方式为上电即测,连续测量,设置波特率为115200。然后需将设置好的激光测距模块与主控系统相连,采用串口通信的方式接线如图3—1。
截图202310101147122984.jpg

图3—1 激光测距模块连线示意图


             各引脚功能如表3—1。

                              表3—1 激光测距模块引脚表

5V        电源正极(3.3-5V)

GND        电源地

RX        接串口TX

TX        接串口RX


电源及稳压模块
在本次设计中采用了12V航模电池(如图3—2)为主控系统与舵机进行供电,航模电池具有放电能力强,储能效果好等优点,将其与主控模块的供电模块相连接。
截图202310101147415571.jpg

图3—2 12V航模电池

经过稳压模块降压为5V后给主控系统的各个模块进行供电。稳压模块主要采用TPS5450芯片,设计相应稳压电路如图3—3。
截图202310101147553775.jpg

图3—3 稳压模块原理图

电路中设计为6V,5V,3.3V三种常用电压,根据主控芯片为STC32G28k(如图3—4)选择调节为5V稳压。STC32G28k各引脚功能如表3—2所示。
截图202310101148122448.jpg

图3—4 稳压模块

表3—2 STC32G28k引脚功能表

IN        接电源供电电源12V

GND        接地

OUT        稳压输出5V


OLED显示模块
本设计中采用四针脚的0.96寸OLED屏幕引脚功能如表3—3所示。
      表3—3 OLED引脚功能表

GND        电源地

VVC        正极(供电3.3-5V)

SCL        IIC时钟线

SDA        IIC数据线

将其接入主控系统中OLED预留模块,OLED模块电路如图3—5所示。
截图202310101148425919.jpg

图3—5 OLED引脚图

           硬件总设计图如图3—6所示。

截图202310101149008354.jpg







图3—6 硬件总设计图

回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

9

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2023-10-10 11:49:38 | 显示全部楼层
2023电赛备赛送药小车训练第一篇
大家好,这里是西安建筑科技大学参赛队,在本届电赛中选择E题并获得国二,很荣幸这次能在STC官方论坛讲述我们的参赛经验。当然我们的作品中还有很多不足之处,请大家多多包涵。
这篇帖子主要是分享电赛备赛的一些经历和经验以供大家学习参考。水平有限,如有不对,请大家见谅。

本篇内容包括送药小车总体方案设计。
摘要
以STC32G128K单片机为核心、结合视觉识别技术,通过速度闭环、位置闭环和方向闭环来控制智能送药小车,并实现双车在预定轨道上送药,取药。
基本模块主要包括主控、摄像头、灰度传感器、直流减速电机、驱动模块,稳压模块,mpu6050,蓝牙模块,本设计主控选择STC32G128K。
摄像头采用K210,用于识别数字和寻找对应数字并通过串口向主控发送识别信息,从而进入对应的病房。灰度传感器用来寻迹,防止小车偏离预定轨道;
小车1,2通过蓝牙模块来完成双车通信,实现双车协同运送的效果;通过电机编码器反馈的信息设计小车的速度闭环控制系统,实现运输距离的精准控制。
经过检测发现,本设计具有识别速度快,识别精准度高,运输稳定且效率高等优点。
控制方案设计
根据题目要求,将小车系统分为4个基本模块,包括主控模块、电机驱动模块、视觉检测和识别模块,无线通讯模块,主控选择STC32G128K,通过速度闭环来实现电机驱动的精准控制。
机械结构方案
由于题目要求小车的长宽高不能超过25cm*20cm*25cm,再加上赛道的宽度只有30cm,为了保证转向的时候能够避免碰到黑实线,我们采用双驱动置于车身中间,车身前后分别装置牛眼轮便于转向。

截图202310101150086028.jpg

根据设计要求和实际情况,摄像头安装于车头前端,以便于识别和检测。
由于识别数字时数字宽度较大,K210无法全部识别到数字,所以识别时,实时控制两个驱动轮的位置来达到扩大视野范围的目的。
截图202310101150222658.jpg


回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

9

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2023-10-10 11:50:46 | 显示全部楼层
本帖最后由 suye 于 2023-10-10 11:52 编辑

2023电赛备赛送药小车训练第二篇
大家好,这里是西安建筑科技大学参赛队,在本届电赛中选择E题并获得国二,很荣幸这次能在STC官方论坛讲述我们的参赛经验。当然我们的作品中还有很多不足之处,请大家多多包涵。
这篇帖子主要是分享电赛备赛的一些经历和经验以供大家学习参考。水平有限,如有不对,请大家见谅。

本篇内容包括送药小车数字识别方法和自动循迹方法。
数字识别方法
首先将1-8字模原比例打印出来,然后用K210进行模型训练,模型训练了几千张模型,生成训练样本矩阵,一般样本是以二维矩阵的方式存在文件当中,现在要将它们读出来,进行适当的预处理,然后生成OpenCV能理解的数据结构。
其中包含了分别从不同的视角对图像进行采集入库,在通过NCC模板匹配训练产生数字分类器,训练样本中的数字位置形态各异,因此读入时需要进行规整化。
主要方法是先找到数字的边界框,然后以宽和高中大的一边为基准进行缩放和拉伸,从而使得其可以占满整个表示单个样本的矩阵。
再将其图像二值化,进行腐蚀分割,前面通过学习产生了分类器,但我们输入图像中的数字并不能直接作为测试输入。图像中的数字笔画有时并不规整,还可能相互重叠。
接下来,就可以对图像进行分割了。由于我们的分类器只能对数字一个一个地识别,所以首先要把每个数字分割出来。分割完后就可以应用我们前面训练好的分类器对分割结果进行识别。
自动寻径方法
首先对灰度传感器传回的数据进行相关预处理,采集和传输过程中可能产生噪点,通过滤波减小干扰。
已知:每一个灰度值i出现的概率为p=n/ N;
截图202310101151079759.jpg

截图202310101151216832.jpg




紧接着,运用线性回归(Linear Classification)算法进行寻线。
最后向STC32提供反馈信息,控制电机进行自动寻径。
小车电机运动闭环控制算法
依靠编码器反馈数值,通过速度闭环解决对小车行驶距离的把控,本小车所采用的PID算法是闭环控制系统中常用的控制算法之一,其全称为比例积分微分控制。
其传递函数如下:

截图202310101151351551.jpg


再配合灰度传感器二值化处理寻线辅助和K210数字识别并将相关数据通过串口反馈给主控板最终实现小车的精准控制。
通过配置串口的波特率便可以控制串口通讯的速率。
为保证数据接收正常,本设计通过对控制系统中的STC32G128K单片机进行编写通信协议程序,以防止无线接收模块在受到干扰的情况下收到错误指令而使小车失控的情况发生。
小车1的程序设计思路
在识别目标病房号后,判断是否为近端,如果为近端则直接第一个十字路口转对应方向,否则直行至第二路口,判断是否为目标数字。
如果是,则转对应方向,否则直行至T型路口左转,判断判断是否为目标数字,如果否,则转至T型路口对面,识别目标数字方位并转弯。
识别虚线点后停车,发送位置信号给小车2,同时检测小车2回馈信号和药品是否卸载,在卸载药品完成条件下,如果检测到回馈信号则为双车模式,等待小车2,发送到达指定位置信号,则开始启动返回,否则为单车模式,直接按记忆路线返回。
截图202310101151548274.jpg

小车2的程序设计思路
发送反馈信号给小车1,开始识别目标病房号,检测是否装药,如未装药且接收到小车1位置指令,则取药模式,运行到T型路口处小车1对面支路并识别是否为目标数字,如果否,则转至T型路口对面,识别目标数字方位并转弯,识别虚线点后停车。
如装药且接收到小车1位置指令,则送药模式,小车2运行到指定位置停车且发送反馈信号,当接收到小车1继续运行指令则倒车回十字路口识别目标数字方位并转弯,识别虚线点后停车。
截图202310101152188859.jpg

回复 支持 反对 送花

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 04:44 , Processed in 0.059507 second(s), 41 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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