找回密码
 立即注册
查看: 8505|回复: 73

2023年电赛申领奖金,奖金已发放; 2025年,最高奖100万@STC32

[复制链接]

该用户从未签到

550

主题

9343

回帖

1万

积分

管理员

积分
13892
发表于 2023-10-9 14:41:47 | 显示全部楼层 |阅读模式
2023年电赛申领奖金,今日截止,进入统计审核阶段
===2023/10/9
2024/1/15,审核初步完成

2023年全国大学生电子设计竞赛奖金已发放完成
2025年,最高奖100万@STC32
===所有研究成果知识产权归 STC 所有,并共享给我们STC大家庭研究参考,2024/1/25
电赛本科国一
共有6 支队伍使用STC32G12K128为主控芯片获得,分别是:

华北理工大学,  获得了本科E题国一:
E题:运动目标控制与自动追踪系统, STC32G12K128作为唯一主控MCU实现
按规定一等奖奖金人民币2万元@STC32G12K128

===该校有 STC 联合实验室,并且是正式挂牌,该校在学习STC15F2K60S2系列

浙江科技学院,  获得了本科E题国一:
E题:     运动目标控制与自动追踪系统 STC32G12K128完成了 2/3 的工作量
E题要求:设计制作一个运动目标控制与自动追踪系统
===奖金人民币 13333元; 该校有 STC 联合实验室,并且是正式挂牌
===STC大学计划该校服务人员强烈建议,将 奖金提升RMB15000

中国计量大学 , 获得了本科E题国一:
E 题: 运动目标控制与自动追踪系统@STC32G12K128 STC32完成了 1/3 控制功能
E题要求:设计制作一个运动目标控制与自动追踪系统

===奖金人民币 6667元;===STC大学计划该校服务人员建议,虽然实验室未挂牌
        但该校都在学习 STC89C52RC/STC12C5A60S2
===STC大学计划该校服务人员强烈建议将 奖金提升RMB8000

        在内部评比中,不挂牌还是吃亏啊,人都是讲感情好面子的


哈尔滨理工大学  获得了本科E题国一:
E题:运动目标控制与自动追踪系统@STC32位8051 STC32完成了 1/3 控制功能
E题要求:设计制作一个运动目标控制与自动追踪系统
===奖金人民币 6667元; 该校有 STC 联合实验室,并且是正式挂牌
        该校在学习STC15F2K60S2系列
===STC大学计划该校服务人员强烈建议将 奖金提升RMB10000
        鼓励高校 STC实验室还是正式挂牌,树立国产STC光辉形象
        虽然 《单片机原理及应用》都是从STC入门,谁都跑不掉,还是鼓励挂牌


北方民族大学,  获得本科G题国一:
【G】题:空地协同智能消防系统@STC32位8051 STC32完成了 1/3 控制功能
===奖金人民币 6667元; 该校有 STC 联合实验室,并且是正式挂牌
        该校都在学习 STC89C52RC/STC15F2K60S2系列,后续会升级到STC32位8051
===STC大学计划该校服务人员强烈建议将 奖金提升RMB10000元,要比不挂牌的高
        鼓励高校 STC 实验室还是正式挂牌,树立国产STC光辉形象



电赛专科国一 @STC32
杭州科技职业技术学院,获得大专J题国一:
J题:线路故障自动检测系统@STC32G12K128实现,STC是唯一主控MCU,奖金人民币2万
J题要求:设计一套线路故障自动检测装置,能判定并显示线路中故障位置和类型
杭州科技职业技术学院2023年全国大学生电子设计竞赛使用STC32位8051为主控芯片

===该校全校都在学习 STC89C52RC,集训队都在用 STC32G12K128培训
        STC实验室 挂牌协议已签,STC 会全力支持 32位8051实验箱

电赛专科国一 @STC8H
专科国一共有 1支队伍使用STC8H8K64U为主控芯片获得,是:
南通职业大学,获得大专K题国一:
K题: 辨音识键奏乐系统, STC8H8K64U作为唯一主控MCU实现
按规定一等奖奖金人民币1万@STC8H8K64U,其实用32位8051,奖金就是2万元了
===按规定一等奖奖金人民币2万@STC32G12K128,这个吃亏了

===该校全校都在学习 STC15F2K60S2系列,已在转到 STC32位8051赛道
        STC实验室 协议已签,STC 会全力支持 32位8051实验箱


电赛本科国二共有 7 支队伍使用STC32G12K128为主控芯片获得,分别是:

中山大学本科组E题国二:
E题:运动目标控制与自动追踪系统, STC32G12K128作为唯一主控MCU实现
按规定二等奖奖金人民币5000元@STC32G12K128

===该校有 STC 联合实验室

鲁东大学本科E题国二:

鲁东大学航空队===获得2023年全国大学生电子设计竞赛,本科组二等奖
E题:运动目标控制与自动追踪系统STC32G12K128作为唯一主控MCU实现
按规定二等奖奖金人民币5000@STC32G12K128

===该校在学习STC12C5A60S2系列
河南科技大学本科G题国二:
G题空地协同智能消防系统STC32G12K128作为唯一主控MCU实现
按规定二等奖奖金人民币5000@STC32G12K128

===该校有 STC 联合实验室,并且是正式挂牌,该校在学习IAP15W4K58S4系列
西安建筑科技大学两支队伍本科E题国二:
1,西安建筑科技大学(队伍编号1811E)--获得2023年全国大学生电子设计竞赛,本科组二等奖
【E】题:   运动目标控制与自动追踪系统STC32G12K128作为唯一主控MCU实现
按规定二等奖奖金人民币5000@STC32G12K128


2,西安建筑科技大学(队伍编号1810E--获得全国大学生电子设计竞赛2023,本科组二等奖
===【E】题:   运动目标控制与自动追踪系统STC32G12K128作为唯一主控MCU实现
按规定二等奖奖金人民币5000@STC32G12K128

===该校在学习STC32G12K128系列
嘉兴学院,获得本科E题国二 :
E题:运动目标控制与自动追踪系统@STC32G12K128二等奖奖金人民币5000
E题要求:设计制作一个运动目标控制与自动追踪系统
===两个云台使用的主控芯片均为STC32G12K128

===该校有 STC 联合实验室,并且是正式挂牌,该校在学习IAP15W4K58S4系列和STC32G12K128系列
重庆交通大学本科E题国二:
E题:运动目标控制与自动追踪系统@STC32G12K128STC32完成了 1/3 控制功能
===奖金人民币 1667元;
===STC大学计划该校服务人员强烈建议:
        该校都在学习 STC89C52RC,比赛核心团队培训用的是 STC8H8K64U, STC32G12K128
        因为全校比赛精英团队都是紧密跟踪支持STC最新发展方向
        强烈建议将奖金提升到RMB4000,引导全国紧密跟踪学习STC最新技术

获奖队伍资料链接:
国一共有6 支队伍使用STC32G12K128为主控芯片获得,分别是:
华北理工大学,  获得了本科E题国一https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30987
浙江科技学院,  获得了本科E题国一https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30745
中国计量大学,  获得了本科E题国一:https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30937
哈尔滨理工大学  获得了本科E题国一
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30968
北方民族大学,  获得了本科G题国一
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30996

杭州科技职业技术学院,获得大专J题国一
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31059

国一共有 1支队伍使用STC8H8K64U为主控芯片获得,是:
南通职业大学,获得大专K题国一
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31107

国二共有 7 支队伍使用STC32G12K128为主控芯片获得,分别是:
中山大学本科组E题国二
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=4560&pid=32067
鲁东大学本科E题国二
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31182
河南科技大学本科G题国二
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31185
西安建筑科技大学两支队伍本科E题国二
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31196
                                                           https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31202
嘉兴学院,获得本科E题国二
https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31124
重庆交通大学本科E题国二https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31176

比赛视频合集:

南通职业大学2023年电赛K题一等奖获奖视频

  
















全国大学生电子设计竞赛,全国大学生智能汽车竞赛,STC 32位8051,最快 1T 8051选型,  全部【免费+包邮送】
www.STCAI.com,           STC全新官方网站,辅助开发工具包,芯片手册,资料下载,  视频学习技术交流社区 !
www.STCAIMCU.com,  STC全球32位8051爱好者技术互助交流社区论坛,视频学习,现在STC技术交流都改到这

【免费+包邮】 送/申样/采购 可上班时间加 如下您对应地区的客服 QQ微信联系
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592  要求 【免费+包邮】 送, 还免费教仿真  
加STC华南区客服曹经理QQ:1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ:2593903262;微信:18106296598  要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593  要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服石经理QQ: 1638975601 ;微信:19952583876  要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ;微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)

【免费+包邮】 送/申样/采购传统电话热线:0513-55012928、0513-55012929、0513-55012966
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)



目前放假中,论坛还有技术讨论

以后技术咨询直接到 STC专业的技术支持论坛 www.STCAIMCU.com 进行技术支持
原企业QQ技术咨询已被专业的技术论坛 www.STCAIMCU.com 取代,原企业QQ已无技术人员
不愿意提供详细联系信息申请【免费+包邮送】的芯片和仿真脱机烧录设备的:
===可直接微信收索:STCMCU; 即可进入 【STCMCU微信小商城】购买,也很方便


回复 送花

使用道具 举报

该用户从未签到

5

主题

72

回帖

851

积分

版主

积分
851
发表于 2023-10-12 15:31:29 | 显示全部楼层
南通职业大学===获得全国大学生电子设计竞赛2023年,大专组一等奖
K题: 辨音识键奏乐系统, STC8H8K64U作为唯一主控MCU实现
按规定一等奖奖金人民币1万@STC8H8K64U,其实用32位8051,奖金就是2万元了

按规定一等奖奖金人民币2万@STC32G12K128
www.STCAIMCU.com 本学期结束前会给广大获奖优秀师生团队发出奖金回家过个好年

===因仅相距10公里,经去现场确认,主控芯片是STC8H8K64U,并且是唯一主控芯片,奖金人民币1万元
点评:有点可惜了,若改成STC32G12K128的32位8051为主控,奖金就是2万元
          实际工作只需要换个头文件,换个KEILC251编译器,5分钟就穿越到32位8051了
          当然用STC8H8K64U是足够了,这款是全球最快的 1T 8051,能直接USB仿真和USB下载,还有DMA,支持各种外设
          南通职业大学是第一个评审获得通过的获奖师生团队,实在是因为距离太近了,直接去现场确认了获奖的真实性
截图202311221014541977.jpg
K题的任务是:辨音识键奏乐系统
通过驻极话筒采集水杯声音,通过设计信号调理电路将声音信号放大和滤波,再通过电压比较器电路将模拟信号变成

方波(数字信号)发送给单片机进行识别。

采用STC8H8K64作为主控芯片,采用触摸屏作为人机交互界面,按照模块化设计方法,编写了触摸屏程序控制程序和辨音

识别算法程序。人机交互界面灵活、友好、美观,识别精度高。
www.stcmcudata.com/STC8F-datasheet/STC8H.pdf
www.stcmcudata.com/STC8F-datasheet/STC32G.pdf
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.92G.zip

【新提醒】国一,2023年电赛中使用STC8H8K64U完成K题赛题;已开学校证明 - 2025全国大学生电子设计竞赛技术支持版块,最高奖100万,一等奖2万,选型 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 116 天

    [LV.6]常住居民II

    3

    主题

    89

    回帖

    1419

    积分

    超级版主

    积分
    1419
    发表于 2023-10-25 11:25:24 | 显示全部楼层
    本帖最后由 芯芯向荣up 于 2024-1-15 10:51 编辑

    电赛本科国一
    共有6 支队伍使用STC32G12K128为主控芯片获得,分别是:

    华北理工大学,  获得了本科E题国一:
    E题:运动目标控制与自动追踪系统, STC32G12K128作为唯一主控MCU实现
    按规定一等奖奖金人民币2万元@STC32G12K128

    ===该校有 STC 联合实验室,并且是正式挂牌,该校在学习STC15F2K60S2系列

    浙江科技学院,  获得了本科E题国一:
    E题:     运动目标控制与自动追踪系统 STC32G12K128完成了 2/3 的工作量
    E题要求:设计制作一个运动目标控制与自动追踪系统
    ===奖金人民币 13333元; 该校有 STC 联合实验室,并且是正式挂牌
    ===STC大学计划该校服务人员强烈建议,将 奖金提升RMB15000

    中国计量大学 , 获得了本科E题国一:
    E 题: 运动目标控制与自动追踪系统@STC32G12K128 STC32完成了 1/3 控制功能
    E题要求:设计制作一个运动目标控制与自动追踪系统

    ===奖金人民币 6667元;===STC大学计划该校服务人员建议,虽然实验室未挂牌
            但该校都在学习 STC89C52RC/STC12C5A60S2
    ===STC大学计划该校服务人员强烈建议将 奖金提升RMB8000

            在内部评比中,不挂牌还是吃亏啊,人都是讲感情好面子的


    哈尔滨理工大学  获得了本科E题国一:
    E题:运动目标控制与自动追踪系统@STC32位8051 STC32完成了 1/3 控制功能
    E题要求:设计制作一个运动目标控制与自动追踪系统
    ===奖金人民币 6667元; 该校有 STC 联合实验室,并且是正式挂牌
            该校在学习STC15F2K60S2系列
    ===STC大学计划该校服务人员强烈建议将 奖金提升RMB10000
            鼓励高校 STC实验室还是正式挂牌,树立国产STC光辉形象
            虽然 《单片机原理及应用》都是从STC入门,谁都跑不掉,还是鼓励挂牌


    北方民族大学,  获得本科G题国一:
    【G】题:空地协同智能消防系统@STC32位8051 STC32完成了 1/3 控制功能
    ===奖金人民币 6667元; 该校有 STC 联合实验室,并且是正式挂牌
            该校都在学习 STC89C52RC/STC15F2K60S2系列,后续会升级到STC32位8051
    ===STC大学计划该校服务人员强烈建议将 奖金提升RMB10000元,要比不挂牌的高
            鼓励高校 STC 实验室还是正式挂牌,树立国产STC光辉形象



    电赛专科国一 @STC32
    杭州科技职业技术学院,获得大专J题国一:
    J题:线路故障自动检测系统@STC32G12K128实现,STC是唯一主控MCU,奖金人民币2万
    J题要求:设计一套线路故障自动检测装置,能判定并显示线路中故障位置和类型
    杭州科技职业技术学院2023年全国大学生电子设计竞赛使用STC32位8051为主控芯片

    ===该校全校都在学习 STC89C52RC,集训队都在用 STC32G12K128培训
            STC实验室 挂牌协议已签,STC 会全力支持 32位8051实验箱

    电赛专科国一 @STC8H
    专科国一共有 1支队伍使用STC8H8K64U为主控芯片获得,是:
    南通职业大学,获得大专K题国一:
    K题: 辨音识键奏乐系统, STC8H8K64U作为唯一主控MCU实现
    按规定一等奖奖金人民币1万@STC8H8K64U,其实用32位8051,奖金就是2万元了
    ===按规定一等奖奖金人民币2万@STC32G12K128,这个吃亏了

    ===该校全校都在学习 STC15F2K60S2系列,已在转到 STC32位8051赛道
            STC实验室 协议已签,STC 会全力支持 32位8051实验箱


    电赛本科国二共有 7 支队伍使用STC32G12K128为主控芯片获得,分别是:

    中山大学本科组E题国二:
    E题:运动目标控制与自动追踪系统, STC32G12K128作为唯一主控MCU实现
    按规定二等奖奖金人民币5000元@STC32G12K128

    ===该校有 STC 联合实验室

    鲁东大学本科E题国二:

    鲁东大学航空队===获得2023年全国大学生电子设计竞赛,本科组二等奖
    E题:运动目标控制与自动追踪系统STC32G12K128作为唯一主控MCU实现
    按规定二等奖奖金人民币5000@STC32G12K128

    ===该校在学习STC12C5A60S2系列
    河南科技大学本科G题国二:
    G题空地协同智能消防系统STC32G12K128作为唯一主控MCU实现
    按规定二等奖奖金人民币5000@STC32G12K128

    ===该校有 STC 联合实验室,并且是正式挂牌,该校在学习IAP15W4K58S4系列
    西安建筑科技大学两支队伍本科E题国二:
    1,西安建筑科技大学(队伍编号1811E)--获得2023年全国大学生电子设计竞赛,本科组二等奖
    【E】题:   运动目标控制与自动追踪系统STC32G12K128作为唯一主控MCU实现
    按规定二等奖奖金人民币5000@STC32G12K128


    2,西安建筑科技大学(队伍编号1810E--获得全国大学生电子设计竞赛2023,本科组二等奖
    ===【E】题:   运动目标控制与自动追踪系统STC32G12K128作为唯一主控MCU实现
    按规定二等奖奖金人民币5000@STC32G12K128

    ===该校在学习STC32G12K128系列
    嘉兴学院,获得本科E题国二 :
    E题:运动目标控制与自动追踪系统@STC32G12K128二等奖奖金人民币5000
    E题要求:设计制作一个运动目标控制与自动追踪系统
    ===两个云台使用的主控芯片均为STC32G12K128

    ===该校有 STC 联合实验室,并且是正式挂牌,该校在学习IAP15W4K58S4系列和STC32G12K128系列
    重庆交通大学本科E题国二:
    E题:运动目标控制与自动追踪系统@STC32G12K128STC32完成了 1/3 控制功能
    ===奖金人民币 1667元;
    ===STC大学计划该校服务人员强烈建议:
            该校都在学习 STC89C52RC,比赛核心团队培训用的是 STC8H8K64U, STC32G12K128
            因为全校比赛精英团队都是紧密跟踪支持STC最新发展方向
            强烈建议将奖金提升到RMB4000,引导全国紧密跟踪学习STC最新技术

    获奖队伍资料链接:
    国一共有6 支队伍使用STC32G12K128为主控芯片获得,分别是:
    华北理工大学,  获得了本科E题国一https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30987
    浙江科技学院,  获得了本科E题国一https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30745
    中国计量大学,  获得了本科E题国一:https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30937
    哈尔滨理工大学  获得了本科E题国一
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30968
    北方民族大学,  获得了本科G题国一
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=30996

    杭州科技职业技术学院,获得大专J题国一
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31059

    国一共有 1支队伍使用STC8H8K64U为主控芯片获得,是:
    南通职业大学,获得大专K题国一
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31107

    国二共有 7 支队伍使用STC32G12K128为主控芯片获得,分别是:
    中山大学本科组E题国二
    https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=4560&pid=32067
    鲁东大学本科E题国二
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31182
    河南科技大学本科G题国二
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31185
    西安建筑科技大学两支队伍本科E题国二
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31196
                                                               https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31202
    嘉兴学院,获得本科E题国二
    https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31124
    重庆交通大学本科E题国二https://www.stcaimcu.com/forum.p ... ptid=4560&pid=31176

    比赛视频合集:

    南通职业大学2023年电赛K题一等奖获奖视频

      



































    www.STCAI.com
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    628

    回帖

    1048

    积分

    超级版主

    积分
    1048
    发表于 2023-10-9 17:19:21 | 显示全部楼层
    本帖最后由 STCAI-32位8051 于 2024-1-13 11:48 编辑

    浙江科技学院===获得2023年全国大学生电子设计竞赛, 本科组一等奖
    E题:     运动目标控制与自动追踪系统
    STC32G12K128完成了三分之二的角色
    E题要求:设计制作一个运动目标控制与自动追踪系统
    ===奖金人民币15000元
    浙江科技学院2023年全国大学生电子设计竞赛使用STC32G12K128为主控芯片
    ===2023/12/14,审核进行中。

    截图202312131607377765.jpg

    为确保奖金发放评审的公平公正,经广大老师推荐,委托第三方资深团队组织评审,点评如下:
    算法大部分由OpenMV完成,STC32 单片机仅实现了执行控制与反馈数据的功能,如果移除STC32单片机,完
    全可以使用OpenMV单独结题,如果Open MV上的MCU不算做主控芯片,那么整个作品中确实只有STC32单片机。

    结论:因STC32完成了三分之二的角色 建议颁发一等奖部分奖金【20000*2/3】=13500元
              或提升到15000元以资鼓励!

    ================================以下是获奖团队文件描述和相关资料================================



    1:浙江科技学院  三位参赛选手历经四天三夜争分夺秒的紧急筹备,披荆斩棘荣获国一殊荣,  实至名归!恭喜浙江科技学院英姿飒爽的小伙子们!我带领大家一起来了解一下浙科电赛一队在本次比赛中的精彩花絮,如下:
    摘要
          本作品采用了具备OpenCV功能的开发板,以及以STC32G12K128为核心的硬件平台,构建一个高效的运动目标控制与自动追踪系统。该系统运用视觉识别技术,通过识别屏幕边框、A4靶纸和激光位置等要素,并结合PID控制算法,实现了有效的闭环控制。实验结果表明,本系统能够精确地跟踪红色光斑,能够在规定的时间内完成目标的移动和复位功能,并成功完成了所有基础和扩展部分的任务,具备了可复现性。这项设计具有广泛的应用潜力,可适用于各种需要目标追踪的场景。
    1   系统方案及其选择
      1.1 总体方案
           根据题目要求,本系统分为运动目标控制系统与自动追踪系统
           运动目标控制系统通过OpenMV得到屏幕四周边线以及A4靶纸内边框对应的路径的坐标位置和红色斑点的位置,也能得到红色斑点和目标坐标的误差,通过PID计算控制量再通过串口把控制量传输给STC32G12K128控制舵机进行运动,同时STC32G12K128也会通过串口把开关状态反馈给OpenMV,从而实现复位和暂停等功能。
           自动追踪系统通过USB摄像头采集图像,激光发射器与摄像头始终保持相对静止,通过OpenCV库能找到红色目标和绿色目标,然后再过滤出红色激光和绿激光的位置,计算红色目标距绿激光的误差再过PID可得控制量,同时根据误差以及绿激光的位置可判断是否追踪上,同上通过串口与STC32G12K128进行数据交互,实现对舵机和声光装置的控制和对开关的检测。
      1.2 摄像头和主控MCU的选择
          在设计激光追踪系统时,对图像的采集和光点的检测是核心问题。市面上可以得到的摄像头种类繁多,分为数字摄像头和模拟摄像头两大类。模拟摄像头可以将视频采集设备产生的模拟视频信号转换成数字信号,进而将其储存在计算机里。模拟摄像头捕捉到的视频信号必须经过特定的视频捕捉卡将模拟信号转换成数字模式,并加以压缩后才可以转换到计算机上运用。数字摄像头可以直接捕捉影像,然后通过串、并口或者USB接口传到计算机里。由于电子竞赛对设备的限制,许多市面上流行的可用于PC的摄像头不在考虑选择的范围之内。
           OpenMV是一种低成本,可扩展,使用python驱动的机器视觉模块,其搭载了MicroPython解释器,使其可以在嵌入式端进行python开发。对于激光光点和黑框的检测来说,OpenMV是优先选择。但是实验室中OpenMV数量只有一块,另一块采用一个USB摄像头,连接一块能运行OpenCV-Python的嵌入式开发板来实现图像处理。
          要实现对光点的跟踪,需要控制舵机转角,采用PWM信号控制。在实验中发现,无论是OpenMV本身的PWM信号,还是OpenCV-Python开发板提供的PWM输出,都相对不稳定,对舵机控制精度有限。另外,其外设接口较少,难以满足题目要求,因此在本作品实现时,采用了STC32G12K128作为主控芯片。STC32G12K128外设丰富,具有较高的可扩展性。能够输出稳定且精度较高的PWM信号,实现对舵机的精准控制。
          综上所述,针对运动目标控制系统,结合OpenMV和STC32G12K128实现系统功能。对于自动追踪系统,我们选择了能运行OpenCV-Python的开发板和STC32G12K128。这些选择是基于设备可用性、性能要求和开发难度等因素的综合考虑。
      1.3 云台支架设计
           由于实验室中没有成品云台,因此使用舵机自己搭造一个简单的二维舵机云台。该二维舵机云台如图1所示,采用两个舵机实现。底部舵机用于实现水平方向360°旋转,上面一个舵机用于垂直方向180°旋转。

          截图202310111651373770.jpg        截图202310111651173852.jpg
    (a)运动目标控制系统云台                         (b)自动跟踪系统云台
    图1  自制二维云台
           舵机是舵机云台的核心单元,其控制精度和控制稳定性对云台的性能产生决定性的影响。实验室中库存舵机较多,有智能车比赛中常见的S3010、S-D9舵机,也有一些杂牌小舵机。经实验对比,水平旋转运动舵机选择智能车比赛中常见的S-D9舵机,其负载力矩较大,机械震动较小;垂直方向旋转运动舵机选择R12S短身舵机,其体积较小,重量较轻,且具有较高的控制精度。
           在舵机云台的运动过程中,常常会出现较大的震动现象。这种震动不仅会影响舵机本身的精度,还会给控制带来困难。此外,舵机的精度本身就有限,加上随机的震动,使得控制变得更加困难。为了解决这个问题,本作品采用了金属支架结构。与塑料支架相比,金属支架具有较高的强度和稳定性,能够有效减少舵机运动时的震动,提高舵机的控制精度。
    1.4 摄像头位置设计
           摄像头的安装位置对于识别非常重要。摄像头的位置影响了摄像头的视野大小,影响了摄像头的稳定性。现考虑两种摄像头安装方式:固定安装和非固定安装。
         (1)固定安装:将摄像头安装在底座上,这样摄像头便不会随着舵机的移动而一起移动。其主要优点是图像动态模糊少,不容易在移动的时候,对图像处理产生额外的麻烦。动态模糊减少,也意味着摄像头的曝光的时间可以增长,对于在黑暗环境下,曝光时间越长图像越明亮。其缺点是视野范围较为固定。
         (2)非固定安装:将摄像头安装在舵机上,这样舵机在移动的时候摄像头也会跟随移动。其主要优点是通过机械调整后,可以使得激光光斑位置处于图像上的中心位置,这样激光的位置便可以很轻松确定,无需复杂的识别。并且这种方式拥有更加灵活更加广阔的视野。而其缺点是传回的图像会有动态模糊,背景位置不确定,给图像处理带来了比较大的困难。
          分析系统目标,运动目标控制系统对于环境的鲁棒性要求比较高,并且视野要求不大,可以通过摄像头的机械调焦和放大来实现调节视野。运动目标系统对于控制的精度要求更高。所以综上原因,运动目标控制系统选择固定安装方式。
          而自动追踪系统对于环境的依赖较弱,只需要能够看见红色激光即可,无需识别其它的目标。并且自动追踪系统所处的位置比较远离屏幕,为了追踪红色激光,则需要移动比较大舵机角度,所以对视野的要求也比较高。综上原因,自动追踪系统采用非固定安装。

    材料准备环节
          在做运动目标控制系统时,由于他们的实验室是做智能车的,没有专门的采购相关材料,幸运的是经过一番探索,他们还是找到了足够的料,组成了运动目标控制系统V1,显然这套系统太精简了,想驾驭起来比较困难。他们还遇到了几个印象较深的问题:
    问题1:单个舵机的瞬时电流能上2A。解决方案:模块独立供电。
    问题2:舵机快速运动后急停,纸板会发生形变导致激光抖动。解决方案:让舵机慢慢转,寻找更好的云台支架材料。
    问题3:OpenMV控制舵机的信号精度低,舵机的精度也低。解决方案:额外引入MCU来控制舵机,换更好的舵机。(最开始采用的是9克舵机,精度一言难尽。后来拆了实验室里最贵的舵机才解决问题,实际上如果时间够的话通过齿轮组或者自己做舵机主控也可能解决问题)
    问题4:红激光不够亮且来不及买了。解决方案:稍稍超点压,选择相信万能的软件选手。
    问题5:软件选手反映OpenMV不太好使。解决方案:绿激光考虑用OpenCV。
    V2系统来了,它有高性能的OpenMV,合题目的键,足瓦的电源,更好的舵机,以及超高性价比的STC32G12K128

            国一,2023电赛E题国一浙江科技学院|证明已开 - 2025全国大学生电子设计竞赛技术支持版块,最高奖100万,一等奖2万,选型 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

















    电赛国一证书扫描件.pdf

    833.38 KB, 下载次数: 28

    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    628

    回帖

    1048

    积分

    超级版主

    积分
    1048
    发表于 2023-10-11 10:38:04 | 显示全部楼层
    本帖最后由 STCAI-32位8051 于 2023-10-11 16:59 编辑

    运动目标控制系统软件设计

           运动目标控制系统软件框图如图3所示。首先对摄像头进行设置,并设置感兴趣区域(Region Of Interest,简称ROI)。在图像处理时,首先对图像使用浮雕卷积核进行处理,然后检测矩形线框,并使用DDA算法得到边框中心线,使用颜色检测算法寻找红色激光点。颜色检测完成后对坐标系归一化,有利于后续舵机的控制。最后控制舵机,移动光点使之沿着边框运动。
    图片.png
    图 3  运动目标控制系统软件框图
    (1)图像处理算法设计
           由于OpenMV摄像头分辨率有限,而图像激光像点较小,这对检测带来了困难,本作品在软件设计中采用多种方式进行处理。
           检测黑色外边框:在检测黑色外边框时,因为摄像头的分辨率比较低,利用矩形检测算法不容易检测到最外层的黑色细边框。但是如果提高摄像头分辨率则处理速度很慢,且内存不足,会导致无法进行更加复杂的图像处理。本作用采集低分辨率图像,使用卷积滤波器对图像特征进行增强。最后采用浮雕卷积核来增强图像的纹理特征,使得细线更加明显,最后使用矩形检测算法直接检测。
           重新排序矩形角点顺序:使用OpenMV内建find_edge算法寻找矩形时,发现检测出的角点顺序不一致,导致每次运行的结果不一样,激光并不按照规定路线行走。说明该算法并没有提供确定四个角点的算法。本作品在find_edge算法的基础上,以矩形中心为坐标原点建立坐标系,定义左上角为在二三象限Y轴较大的点,这样即可实现对检测角点的重新排序。
           黑色背景的反射光弱:因为黑色胶带吸光,红色的反光比较少,当摄像头像素比较低的时候,像素比较小,不容易被检测到。一方面通过增加红色激光功率提高摄像头分辨率,另一方面也通过算法来进一步解决。先通过对色度图像进行二值化初步选择红色,再通过膨胀算法,使得白色像素点增多,然后再进行光点检测。为了进一步对抗一些其他颜色干扰,我们通过按位与的方式只在黑色胶带轨道内寻找红色点。
           寻找边框中线:为了沿着黑色胶带中线走,则必须要找到中线位置,但是并不容易。黑色胶带具有内外两个矩形,而且在摄像头像素比较低的情况下,不容易快速地检测出两个边框,需要的时间比较久。如果能够得到内外边框,则很容易求出中线,但是不容易同时得到。所以我们采用根据内/外边框,偏移一定距离,得到估计的中线。但是因为检测出来的边框不一定,所以需要内/外边框的判断算法。仔细分析发现,外边框的对角线会出现黑色像素,内边框的对角线只有白色像素,则可以使用该方式判断内/外边框,使用DDA获得中线上的采样点。沿着中线偏移的算法如图4所示,通过简单投影即可得到。

    图片5.png

    图4   沿对角线方向挤压/延伸算法示意图
           增加激光位置识别精度:使用颜色查找算法得到的红色激光范围比较大,中心位置可能会偏离。为了提高红色激光识别位置精准度,经过仔细分析发现红色中心因为亮度特别高,所以呈现出白色像素。先初步利用红色反光找到红色激光的大概范围,再在其范围内寻找白色像素,该点即为红色激光的中心。为了避免随机噪声,可以考虑多采集几次求平均作为最后的中心点位置。
    (2)控制算法设计
           由于实验室没有成品云台,本作品采用了性能中高的车模舵机,舵机位置需要PWM信号。OpenMV本身可以产生PWM输出,但是只支持整数的角度,精度较低。为了了让舵机的精度更高,使用了单精度浮点运算,利用STC芯片控制舵机。为了进一步提高精度,选择一个比最外层边框稍大一些的正方形作为最大ROI区域,其左上角为0,0,右下角为1,1,这样所有的坐标便实现了归一化。最后使得PID的参数可调范围更大,更精细,由此实现更高的精度。
           边框仅有四个点,摄像头存在畸变,移动可能偏离轨迹。舵机转向是球面,而屏幕是平面的,所以当跨越比较大的距离时,存在一定的畸变位移,所以不宜一次移动太大距离。使用DDA算法在两点之间插值,这样就可以更加细腻地移动了。

    自动追踪系统程序设计
          自动追踪系统整体框图如图5所示。首先识别检测红色目标,并在其中找出红色光点位置,计算其与图像中心点偏差(即红绿激光点的偏差),根据偏差进行反馈控制,实现对激光点的跟踪。
    图片7.png
    图5  自动追踪系统软件部分系统框图
    (1)图像处理算法设计
           图像处理算法与运动目标控制系统算法类似。主要区别在于以下几点。
           ROI优化:在尚未找到红色激光之前,使用全局ROI,去寻找红色激光的位置。当找到之后,以红色激光的当前位置,使用Kalman 滤波器估计下一个红色激光会出现的位置,并且给一适当大小的范围作为新的ROI,由此来降低在移动过程中背景和摄像头的动态模糊所造成的干扰。
           非固定摄像头优化:使用非固定摄像头后,绿色激光的位置便可以不去检测,以屏幕中心位置作为绿色激光位置即可。这样可以解决绿色激光和红色激光重叠后颜色改变就找不到红色激光的问题。
           绿色激光位置自动校准:将摄像头中心作为绿色激光的位置实际上具有一定的偏差,所以我们需要设计一个自动校准系统来提高精准度。具体过程如下:
           1. 在开始前将舵机打在白色背景屏幕上,识别绿色激光,记录此时在屏幕上的像素位置,此点作为绿色激光的中心。
           2. 在此之后,如果摄像头没有检测到绿色激光,则以此点作为绿色激光的位置;如果可以检测到则更新该点位置。
           通过上面这种方式,本质上是一种简单估计的方式可以解决绿色激光和红色激光重叠后检测不到的问题。
    (2)控制算法设计
          舵机控制精度优化:与运动目标控制系统类似,同样存在舵机控制精度问题,但是因采用了非固定的摄像头位置,则无法采用一样的算法。该部分采用以红色激光的位置为原点建立直角坐标系的方式。绿色激光尝试去靠近原点,使用欧氏距离作为误差函数,水平舵机和垂直舵机进行独立控制,并且都使用浮点来表达,进一步提高精度。
    在运动控制系统软件的准备方面,他们遇到了几个难点:

         难点1:检测黑色外边框
    解决方案:采用浮雕卷积核以增强细边框特征的方法,以克服此困难。
        难点2:旋转的边框导致角点顺序不一致
    解决方案:他们通过重新排序角点的算法来解决这一问题。通过建立一个直角坐标系,以矩形中心为参考点,根据象限将角点排序,以确保正确的角点顺序。
       难点3:提高红色激光识别位置精准度
    解决方案:为提高位置精准度,他们采用了多次检测的方法来去除奇异值,并对非奇异值进行期望计算。
      难点4:红色激光在黑色胶带上检测不到
    解决方案:为应对这一挑战,他们采取了两个策略。首先,增加了红色激光的功率。其次,对红色激光进行了二值化处理,选择白色区域,并进行一次膨胀操作,以增强特征。
      难点5:舵机移动不够精细
    解决方案:为提高舵机的精度,他们采用了三种方法。首先,他们考虑更换更为高精度的舵机。其次,微调了舵机PWM信号,以提高其控制精度。最后,他们采用ROI区域作为最大区域,对坐标进行了归一化,以进一步改进移动的精细度。
      难点6:寻找粗黑色胶带边框的中线
    解决方案:首先,他们检测了所有的边框,包括内边框和外边框。然后,在对角线上统计黑色像素的数量,以确定边框是内边框还是外边框。接着,选择内或外边框,并在对角线方向上进行挤压或扩展操作,将对角线距离分解为水平和垂直矢量。
      难点7:水平舵机和垂直舵机不同,导致控制效果差异
    解决方案:为应对水平舵机和垂直舵机的不同控制需求,他们采用了独立的PID控制器,以确保各自的控制效果得到最优化。
      难点8:边框仅有四个点,摄像头存在畸变,移动可能偏离轨迹
    解决方案:为解决畸变和移动偏离轨迹的问题,他们采用了DDA算法进行插值,每次移动一小步,以保证精确跟踪边框的轨迹。
    搭建自动追踪系统的硬件 ,当他们搭完硬件后,时间只剩2天1夜了,软件选手仍和Bug进行着激烈的斗争。于是硬件选手申请加入战场,经分析难点有3个:找红点、声光提示 以及调参。
    万能的互联网告诉他们变换一下色域,就能找到红色的目标,但不管怎么调都无法保证只保留住红激光的斑点,背景的干扰无法完全去除。但是他们发现了规律:在白色屏幕上红色的目标一般只有一坨,但红色的目标在背景上就很随机了,可白色屏幕和背景间有一定距离,也就是说只要他们一直跟着红点,红点的位置可以一直认为是摄像头传回图像的中心最近的一坨红色目标的中点。
    接下来是声光提示部分,判断红点距摄像头传回图像中心的距离是可行且最直接的想法 。就有个问题,红色激光不够亮,当红色激光和绿色激光重合时,它既不属于红色也不属于绿色。虽然可以通过故意摆歪激光和摄像头的相对位置来降低这个重合的概率,但这个问题还是存在的。但是可以检测绿激光,当没检测到绿激光时,也可以认为是跟踪上了。至于误判,已知绿激光大概在中心的位置,所以他们在中心的一小块区域,检测有没有绿色目标就可以大幅降低误判的概率。

    main.c

    #include "ULibSTC32.h"
    #include "PWMB.h"
    ULibTaskList taskList;
    ULibTask TaskServoLibIO;
    unsigned short PWMP, PWMM0, PWMM1;
    #define ServoTh 100
    #define TaskServoLibIOTail_ISP 0x80
    #define TaskServoLibIOTail_Beep 0x40
    #define TaskServoLibIOFeedBack_Reset 0x01
    #define TaskServoLibIOFeedBack_Pause 0x02
    typedef struct _ServoLibIOBuf
    {
        float Servo[2];
        unsigned char tail;
        unsigned char feedBack;
    } ServoLibIOBuf;
    ServoLibIOBuf xdata slioBuf;
    #define TaskServoLibIOState_WaitCmd 0
    #define TaskServoLibIOState_SyncSta 1
    void TaskServoLibIOFunc(ULibTaskAddr taskAddr)
    {
        switch (taskAddr->bp)
        {
        case TaskServoLibIOState_SyncSta:
            if (slioBuf.tail)
            {
                if (slioBuf.tail & TaskServoLibIOTail_ISP)
                {
                    STCReset(1);
                }
                else if (slioBuf.tail & TaskServoLibIOTail_Beep)
                {
                    P06 = 1;
                }
                else
                {
                    P06 = 0;
                }
                if (slioBuf.Servo[0] > ServoTh)
                {
                    slioBuf.Servo[0] = ServoTh;
                }
                else if (slioBuf.Servo[0] < 0)
                {
                    slioBuf.Servo[0] = 0;
                }
                if (slioBuf.Servo[1] > ServoTh)
                {
                    slioBuf.Servo[1] = ServoTh;
                }
                else if (slioBuf.Servo[1] < 0)
                {
                    slioBuf.Servo[1] = 0;
                }
                PWMM0 = PWMP * (0.2 + 0.2 / ServoTh * slioBuf.Servo[0]);
                PWMBValue(0, &PWMM0);
                PWMM1 = PWMP * (0.2 + 0.2 / ServoTh * slioBuf.Servo[1]);
                PWMBValue(1, &PWMM1);
            }
            slioBuf.feedBack = P0 >> 4;
            URTSend(taskAddr, TaskServoLibIOState_WaitCmd, 1, &slioBuf.feedBack, 1);
            break;
        case TaskServoLibIOState_WaitCmd:
        default:
            UR1RTaskAddr = AddrNull;
            URTRecv(taskAddr, TaskServoLibIOState_SyncSta, 1, (DataAddr)&slioBuf, 9);
            break;
        }
    }
    void main(void)
    {
        P06 = 0;
        STC32Init();
        PWMBInit(200);
        PWMBNormal(0);
        PWMBNormal(1);
        PWMP = PWMBPeroid();
        GIOInit(GIOMode_IO, 0, 0xff);
        URTInit(0, URTMode_8bit, 1, 2);
        TMRInit(0, TMRMode_BaudGenerator, 2, 115200);
        TaskServoLibIO.p = 100;
        TaskServoLibIO.f = TaskServoLibIOFunc;
        TaskServoLibIO.s = ULibTaskState_Active;
        ULibTaskPut(&taskList, &TaskServoLibIO);
        while (1)
        {
            ULibTaskNext(&taskList);
        }
    }

    STC32G12K128-浙江科技学院-E组国一代码开源.zip

    167.38 KB, 下载次数: 40

    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    628

    回帖

    1048

    积分

    超级版主

    积分
    1048
    发表于 2023-10-11 10:38:29 | 显示全部楼层
    本帖最后由 STCAI-32位8051 于 2023-12-1 16:01 编辑

    硬件设计部分
    图片1.png
                                                    
    图1 运动目标控制系统硬件框图
           运动目标控制系统硬件框图如图1所示,其核心是一个OpenMV摄像头和STC32G12K128最小系统板。OpenMV摄像头获取图像信息,计算控制参数,然后将控制参数通过串口发给STC32G12K128;后者根据OpenMV指令实施舵机控制,并完成对复位和暂停按键的识别和响应。电源部分选择使用1S(4.2V)锂电池,体积小方便携带,并且无需平衡充,电压也能够满足需求。电源后级使用升压模块,将电压升至5.5V后供电,目的是为了让红激光的光强更强,以让激光更加明显。适当升高电压的另外一个好处是舵机响应更快,抖动更加轻微。

    图片2.png

    2   自动追踪系统硬件部分系统框图
           自动跟踪系统硬件结构与运动目标控制系统类似,如图2所示。控制部分同样采用STC32G12K128最小系统板作为主控控制器,图像处理部分使用了能够运行OpenCV的嵌入式开发板来完成。这里电源部分选择12V直流电源供电,这是开发板的供电要求。12V通过降压模块,降压至5.5V给单片机最小系统、舵机和绿色激光供电。

    图3.png

    图4.png





    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    628

    回帖

    1048

    积分

    超级版主

    积分
    1048
    发表于 2023-10-11 10:45:40 | 显示全部楼层
    本帖最后由 STCAI-32位8051 于 2024-1-13 11:52 编辑

    中国计量大学===获得2023年全国大学生电子设计竞赛2023年, 本科组一等奖
    E 题: 运动目标控制与自动追踪系统
    @STC32G12K128, STC32G12K128完成了三分之一的角色
    E题要求:设计制作一个运动目标控制与自动追踪系统
    ===奖金人民币8000元

    中国计量大学2023年全国大学生电子设计竞赛使用STC32位8051为主控芯片-本科组
    === 2023/12/14已审核通过
    截图202312131622271515.jpg
    为确保奖金发放评审的公平公正,经广大老师推荐,委托第三方资深团队组织评审,点评如下:
    中国计量大学团队作品相对比较牵强,这种实现方式,不用也行,从系统功能上讲,只能说有点多此一举了。但也可以理解为他们有用STC做题的意愿,也算一种鼓励。

    结论:专家建议为鼓励大家广泛使用STC32位8051参加竞赛,建议颁发部分奖金以资鼓励。
    【20000*1/3】=6666,可提升至8000元,以资鼓励!

    ================================以下是获奖团队文件描述和相关资料================================
          摘要本系统采用STC32和友商单片机, OpenMV Plus摄像头,结合OpenMV颜色识别与跟随、形状判断和角点、边界提取算法,设计了运动目标控制与自动追踪系统。本系统包含单片机,摄像头,二维云台,舵机,激光,屏幕和靶纸,通过摄像头识别屏幕和靶纸,通过OpenMV进行边界提取和角点坐标提取并进行路径规划和补线处理,处理后的信息通过串口发送至单片机,再由单片机对接收到的信息二次处理后发送打角指令给舵机,控制舵机使激光达到绕边界运动和追踪目标的目的,达到追踪目的后,会相应进行提示。本系统稳定性和安全性较好,结构清晰,人机交互良好。
    一、方案论证
      1.1  方案描述
          本系统通过OpenMV摄像头对屏幕和靶纸进行识别后,提取边界和角点坐标,并进行路径规划或补线处理,处理后数据经无线串口发送给单片机,单片机二次处理后将该信息转化为控制舵机打角的信息,将信息传递给舵机后控制舵机上的激光完成指定动作。
    截图202310121307517486.jpg
    图1-1系统框图
       1.2  模块分解
          单片机:采用STC32单片机与友商的单片机
          STC32:红色激光舵机云台我们采用STC单片机控制,STC32单片机操作简单,烧录便捷,且STC32相比于51单片机功能提升显著.
          摄像头:采用OpenMV PLUS和OpenMV摄像头
          OpenMV:OpenMV支持多种图像处理和计算机视觉功能。这些功能可以满足各种应用需求。板载多种接口,包括UART、I2C、SPI和USB等,可以方便地与其他设备进行通信和连接。
          OpenMV PLUS:相比于OpenMV,PLUS具有更强大的图像处理能力,包括深度学习在内的,可以是机器更加智能也更加精准的识别目标单位。
          舵机:采用LD-20MG数字舵机
          LD-20MG数字舵机:该舵机为金属舵机,齿轮为金属齿,负载力更强且不易损坏,舵机精度为0.3°,精度较高,转动范围为0-180°转动范围足够使用,且价格合适。
         S-U400舵机:转动范围为180°,但该舵机为尼龙舵机,承载力较差,内部齿轮盘容易损坏,不适合长时间调试,且价格较高。
    二、理论分析
          根据题目要求可知,红色激光与绿色激光之间需要有0.4m以上的距离,所以要求摄像头拍摄画面图像大,我们可以通过调焦和多个摄像头来完成识别,我们采用将多个摄像头且将摄像头固定在舵机上,使摄像头随舵机移动而变化,使摄像头既能拍到激光的同时也减少对外界环境多余部分的拍入,减少干扰。
          PID控制算法:
          PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器,原理框图如图2-1所示。
    截图202310121321171030.jpg
           在计算机控制系统中,使用的是数字PID控制器,控制规律为:
              截图202310121323277588.jpg
            k——采样序号,k = 0,1,2…;        r(k)——第k次给定值;
           c(k)——第k次实际输出值;                 u(k)——第k次输出控制量;
           e(k)—— 第k次偏差;                         e(k-1)—— 第k-1次偏差;
           KP——比例系数;                              TI——积分时间常数;
           TD——微分时间常数;                       T——采样周期。
           简单说来,PID控制器各校正环节的作用如下:
           比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。
           积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
           微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
           数字PID控制算法通常分为位置式PID控制算法和增量式PID控制算法。
      2.1  位置式PID
           位置式PID中,由于计算机输出的u(k)直接去控制执行机构(如阀门),u(k)的值和执行机构的位置(如阀门开度)是一一对应的,所以通常称公式(2.2)为位置式PID控制算法。
           位置式PID控制算法的缺点是:由于全量输出,所以每次输出均与过去的状态有关,计算时要对过去e(k)进行累加,计算机工作量大;而且因为计算机输出的u(k)对应的是执行机构的实际位置,如计算机出现故障,u(k)的大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合,还可能造成严重的生产事故。因而产生了增量式PID 控制的控制算法,所谓增量式PID 是指数字控制器的输出只是控制量的增量△u(k)。
    2.2  增量式PID
           当执行机构需要的是控制量的增量(例如:驱动步进电机)时,可由式(2.2)推导出提供增量的PID控制算式。由式(2.2)可以推出式(2.3),式(2.2)减去式(2.3)可得式(2.4)。
           截图202310121329419579.jpg
          公式(2.4)称为增量式PID控制算法,可以看出由于一般计算机控制系统采用恒定的采样周期T,一旦确定了KP、TI 、TD,只要使用前后三次测量值的偏差,即可由式(2.4)求出控制增量。
          增量式PID具有以下优点:
          (1) 由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法关掉。
          (2) 手动/自动切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时,由于输出通道或执行装置具有信号的锁存作用,故能保持原值。
          (3) 算式中不需要累加。控制增量△u(k)的确定仅与最近k次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。
          该系统中,我们采用增量式PID,相比于位置式PID,增量式PID可以对舵机进行更好更准确的控制,且调参过程比位置式PID相对更简单。


















    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    628

    回帖

    1048

    积分

    超级版主

    积分
    1048
    发表于 2023-10-11 10:46:22 | 显示全部楼层
    本帖最后由 STCAI-32位8051 于 2023-12-1 16:04 编辑

    软件设计
    截图202310121424518781.jpg

    图3-5 系统流程图
    软件程序设计我们主要采用摄像头和单片机通讯处理,步骤为:
    1、 摄像头拍摄图像后,对图像进行识别矩形处理
    2、 识别矩形和对矩形进行角点提取
    3、提取后第一问根据四个角点坐标计算中点坐标,第二问根据角点算出对应PWM值
    4、 后两者都得出PWM偏差,通过串口发送至单片机,单片机处理后对PWM偏差进行分离
    5、单片机均匀输出PWM波控制舵机进行打角
    6、通过按键控制,若按下一号按键则控制舵机使激光回到原点,若按下二号按键则控制舵机使激光进行巡线操作
    第三四两问识别方式于第二小问识别方式相同,唯一不同的是我们对坐标进行了排序处理,使激光巡线达到题目要求的顺时针巡线效果。
    截图202310121428093665.jpg
    图3-6 发挥部分流程图
    发挥部分绿色激光追踪红色激光步骤如下:
    1、由两个摄像头进行实时拍摄,通过调整阈值来分别判断红色和绿色激光
    2、分别定位其激光坐标,红色激光如上控制舵机进行巡线操作
    3、同时两摄像头分别将坐标发送至单片机进行偏差计算
    4、通过其偏差进行闭环的PID控制,将偏差转换成控制舵机打角的PWM波,控制舵机达到绿色激光追踪红色激光的目的

    舵机计步代码(STC32):
    1. int N = 50;
    2. int i;
    3. float dx, dy;
    4. float dxx, dyy;
    5. int ch,sh;
    6. float k;
    7. intPWMX1,PWMY1,PWMX2,PWMY2,PWMX3,PWMY3,PWMX4,PWMY4;
    8. void get_pwmxy()
    9. {
    10.     PWMX1=(byte_buff[0]-byte_buff[8])*1.8+703;
    11.     PWMY1=(byte_buff[9]-byte_buff[1])*1.8+602;
    12.     PWMX2=(byte_buff[0]-byte_buff[6])*1.8+703;
    13.     PWMY2=(byte_buff[7]-byte_buff[1])*1.8+602;
    14.     PWMX3=(byte_buff[0]-byte_buff[4])*1.8+703;
    15.     PWMY3=(byte_buff[5]-byte_buff[1])*1.8+600;
    16.     PWMX4=(byte_buff[0]-byte_buff[2])*1.8+703;
    17.     PWMY4=(byte_buff[3]-byte_buff[1])*1.8+600;
    18. }
    19. void moveServo1(int pwmx1, int pwmx2,int pwmy1, intpwmy2)
    20. {
    21. dx = pwmx1-pwmx2;
    22. dy = pwmy1-pwmy2;
    23. dxx = dx/N;
    24. dyy = dy/N;  
    25. for( i=0; i<N; i++) {
    26.     if(key7_flag==0)
    27.     {
    28.            pwm_duty(PWMA_CH1P_P60,600);//Y   
    29.            pwm_duty(PWMA_CH2P_P62,703);//X  
    30.            break;
    31.     }
    32.     if(key6_flag==0)
    33.     {
    34.            i=i-1;
    35.            pwm_duty(PWMA_CH2P_P62,pwmx2+i*dxx);
    36.    pwm_duty(PWMA_CH1P_P60, pwmy2+i*dyy);
    37.     }
    38.     else
    39. {  pwm_duty(PWMA_CH2P_P62, pwmx2+i*dxx);
    40.    pwm_duty(PWMA_CH1P_P60, pwmy2+i*dyy);
    41. }
    42. delay_ms(20);
    43. }
    44. 接收openmv返回的信息:
    45. void data_pack_Init(char b1,char b2,char s3,chari4,char f5)
    46. {            
    47.            bbsif[0]=b1;                       
    48.            bbsif[1]=b2;
    49.            bbsif[2]=s3;
    50.            bbsif[3]=i4;
    51.            bbsif[4]=f5;  
    52. }  
    53. void data_pack_receive()
    54. {
    55.            rx_buff[cnt]= my_rx_buffer;//½«Êý¾ÝÈ¡³ö
    56.            if(cnt==0&& rx_buff[0]!=PACK_HEAD)
    57.            {
    58.                   return;
    59.            }
    60.            elseif(rx_buff[cnt]==PACK_HEAD && cnt!=0)
    61.            {
    62.                   cnt=1;
    63.                   rx_buff[0]=PACK_HEAD;
    64.                   return;
    65.            }
    66.            if(rx_buff[cnt]==PACK_TAIL)
    67.            {
    68.                   /*intsum=0;                              
    69.                   for(inti=1;i<cnt-1;i++)
    70.                   {
    71.                          sum+=rx_buff;                                                                       
    72. }
    73.   if(sum%0x100!=rx_buff[cnt-1])
    74.                   {
    75.                          cnt=0;
    76.                          return;         
    77.                   }*/
    78.                   uint8buffsum=0;            
    79.                   uint8buff_bool=0;            
    80.                   uint8buff_byte=0;              
    81.                   uint8buff_short=0;                                
    82.                   uint8buff_int=0;            
    83.                   uint8buff_float=0;            
    84.       int i;            
    85.                   buffsum+=1;
    86.                   if(bbsif[0])
    87.                   {
    88.                          for(i=0;i<bbsif[0];i++)
    89.                          {                                       
    90.                                 bool_buff[buff_bool+i]= rx_buff[buffsum]&(0x01<<i);
    91.                          }
    92.                                 buffsum+=1;
    93.                   }                                       
    94.                   if(bbsif[1])
    95.                   {
    96.                          for(i=0;i<bbsif[1];i++)
    97.                          {                  
    98.          byte_buff[buff_byte+i] = rx_buff[buffsum];                                 
    99.                                 buffsum+=1;
    100.                          }
    101.                          //move_flag=1;
    102.                   }                                       
    103.                   if(bbsif[2])
    104.                   {
    105.                          for(i=0;i<bbsif[2];i++)
    106.                          {                                       
    107.                                 ((uint8*)short_buff)[buff_short+i*2] = rx_buff[buffsum];
    108.                                 ((uint8*)short_buff)[buff_short+i*2+1] = rx_buff[buffsum+1];
    109.                                 buffsum+=2;
    110.                          }
    111.                   }                                 
    112.                   if(bbsif[3])
    113.                   {
    114.                          for(i=0;i<bbsif[3];i++)
    115.                          {                                       
    116.                                 ((uint8*)int_buff)[buff_int+i*4] = rx_buff[buffsum];
    117.                                 ((uint8*)int_buff)[buff_int+i*4+1] = rx_buff[buffsum+1];
    118.                                 ((uint8*)int_buff)[buff_int+i*4+2] = rx_buff[buffsum+2];
    119.                                 ((uint8*)int_buff)[buff_int+i*4+3] = rx_buff[buffsum+3];
    120.                                 buffsum+=4;
    121.                          }
    122.                   }
    123.                   if(bbsif[4])
    124.                   {
    125.                          for(i=0;i<bbsif[4];i++)
    126.                          {                                       
    127.                                 ((uint8*)float_buff)[buff_float+i*4+0] = rx_buff[buffsum];
    128.                                 ((uint8*)float_buff)[buff_float+i*4+1] = rx_buff[buffsum+1];
    129.                                 ((uint8*)float_buff)[buff_float+i*4+2] = rx_buff[buffsum+2];
    130.                                 ((uint8*)float_buff)[buff_float+i*4+3] = rx_buff[buffsum+3];
    131.                                 buffsum+=4;
    132.                          }
    133.                   }
    134.                   cnt=0;
    135.                   data_pack_flag=1;            
    136.                   move_flag=1;
    137.            }   
    138.            if(cnt>50)
    139.            {           
    140.                   cnt=0;
    141.            }
    142.            else
    143.            {
    144.                   cnt++;
    145.               }   
    146. }
    复制代码
    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    628

    回帖

    1048

    积分

    超级版主

    积分
    1048
    发表于 2023-10-11 10:47:11 | 显示全部楼层
    本帖最后由 STCAI-32位8051 于 2023-12-1 16:05 编辑

    硬件电路设计
    单片机电路
    图片1.png

    图3-1  PWM波与蜂鸣器电路
           该电路为STC32与友商单片机主控板部分使用电路,PWM波输出我们采用电机接口通过芯片直出,使PWM输出到舵机上占空比不受多余电路干扰。同时加入蜂鸣器电路,采用S8050 NPN型三级管,通过IO口高低电平控制蜂鸣器通断,蜂鸣器响表示指定动作完成,达到提示的作用。

    图片2.png

    图3-2  5V稳压电路
          该电路为主控STC32的5V稳压电路,采用LM2940s,LM2940s芯片输入输出间压损较小,适合作为集成电路的制作。同时稳定的供电可以为核心板和激光提供稳定的电压,使其在工作时保持稳定。
    图片3.png
    图3-3  3V3稳压电路
          该电路图为3.3V稳压电路,用来为激光提供稳定的电压。
    RGB灯板电路
    图片4.png
    图3-4  灯板电路
          跟随提示电路我们采用上面图例中蜂鸣器提示和RGB灯板提示,使提示效果明显,采用RGB灯具有电源脚,地脚和信号脚,可使用程序驱动IO口,通过控制MOS管通断控制灯的亮灭,符合追踪提示条件,且不同程序可以驱动RGB颜色改变,可控制舵机不同动作显示不同的RGB颜色,起到不同的提示作用。
    截图202310121439147975.jpg
    自制STC32 PCB图
    截图202310121440221847.jpg
    PCB成品图
    截图202310121441092511.jpg
    完整作品


    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    628

    回帖

    1048

    积分

    超级版主

    积分
    1048
    发表于 2023-10-11 10:47:29 | 显示全部楼层
    本帖最后由 STCAI-32位8051 于 2024-1-26 08:49 编辑

    中国计量大学国一,软件视频学习


    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-9 10:41
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    7

    主题

    103

    回帖

    860

    积分

    超级版主

    积分
    860
    发表于 2023-10-11 13:50:46 | 显示全部楼层
    本帖最后由 岁月如歌 于 2023-12-27 14:52 编辑

    哈尔滨理工大学--获得2023年全国大学生电子设计竞赛,  本科组一等奖
    E题:运动目标控制与自动追踪系统@STC32位8051,STC32G12K128完成了三分之一的控制功能
    因不是唯一主控,只占三分之一的工作量,RMB [20000元*1/3] =6666元
    专家建议为鼓励大家广泛使用STC32位8051参加竞赛,奖金提升到RMB 10000元。
    ===2023/12/14,审核通过
    S3YY{I@68J)YGXPL3J`I5(P.png
    Q`WK%W08]@V@MRL`WAFVP8C.png

    为确保奖金发放评审的公平公正,经广大老师推荐,委托第三方资深团队组织评审,点评如下:
    STC32G仅实现串口数据解析以及PWM输出,可能尝试过在STC32G内写坐标解析PID计算,但是遇到了问题且没有解决。
    整个系统由K210检测并处理数据,下发PWM信息由STC32G控制舵机。
    结论STC32G12K128完成了三分之一的角色, 建议颁发部分奖金,以资鼓励!
    如【20000*1/3】=6666元 。

    获奖证书:
    DE7B76FB26FFDF68090FB447CE84E12D.jpg
    补拍视频:


    ================以下是获奖团队文件描述和相关资料==================

    本系统以STC32G12K128单片机为控制核心,采用K210和OPENMV对激光点和A4纸黑框的坐标进行识别,将位置偏差变换至STC32片内PWM输出,控制舵机云台转动,从而设计并实现了一种闭环运动目标控制和自动追踪系统。采用PID对视觉模块测得坐标进行计算,并使用滤波算法对测得多次结果进行滤波处理,使得结果更加稳定,根据计算得到传输给舵机的PWM占空比值,并且再测量激光坐标来实现闭环。实验结果表明,我们的系统能很好的实现闭环的运动目标控制和自动追踪系统。这里要特别感谢STC的技术支持陈工,微信不厌其烦的回答我的问题,为我们解决了很多技术难题,节约了时间。在出正式题目前,我们猜到可能会用舵机做色块追踪之类的,所以提前做了一点小准备,但是没想到正式题目里面对舵机的要求那么高,我们原本用的小蓝舵机SG90完全达不到精度,所以我们只能临时拆卸实验室里面的机械臂的舵机来完赛,虽然稳定性和精度也不是特别好,但是帮助我们完赛了。

    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4565&extra=





    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-9 10:41
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    7

    主题

    103

    回帖

    860

    积分

    超级版主

    积分
    860
    发表于 2023-10-11 13:51:39 | 显示全部楼层
    本帖最后由 岁月如歌 于 2023-12-2 11:10 编辑

    哈尔滨理工大学===运动目标控制与自动追硬件环节:
    硬件上我们很早就确定了摄像头,画布,舵机的位置,尽量减少现场测试与实验室准备时的环境差异,使得我们后面软件的调试都是高效且有意义的。
    我们将画布和舵机和摄像头固定在同一块木板上,并使用螺丝固定,防止舵机转动时产生的晃动。画布我们使用合页的方式安装在木板上,这样可折叠的方式能防止画布运输的时候损坏。
    本系统主要由运动目标控制系统和自动追踪系统构成。系统总体思维导图和系统工作流程图如图1-1、图1-2所示。
    图 1-1  整体系统思维导图
    图 1-1  整体系统思维导图.jpg
    该项目采用 K210 处理器作为图像处理核心,STC32G12K128作为主控芯片,旨在实现一个多功能运动控制系统。主要功能包括任务切换和外设接口、二维舵机云台控制、PID结果处理、上位机通信、下位机运动解算、滤波算法、相机标定与矫正、激光点和A4黑框的识别、传统计算机视觉识别、插补算法以及运动精度优化等。
    K210 处理器负责图像处理部分,通过相机标定与矫正获取准确的图像数据,利用滤波算法减少噪声干扰,实现激光点和A4黑框的识别。传统计算机视觉识别算法能够对目标进行边缘检测、特征提取等处理,实现目标的识别和追踪。
    STC32G12K128 主控芯片负责整个系统的控制与运动解算。运用PID控制算法处理传感器反馈结果,实现二维舵机云台在水平和垂直方向上的精准运动控制。系统内部通过串口实现数据传输,并通过按键中断实现任务切换。在舵机运动中,采用插补算法对离散控制信号进行平滑处理,保证运动连续性。
    为提高运动步进精确性,系统还采用error值累加的方法,不断发送微调转角指令,优化运动精度。同时,中断机制的设计使任务切换更加灵活和高效,系统能够快速响应不同任务要求。
    整合 K210 处理器和 STC32G12K128主控芯片,该多功能运动控制系统将具备自动跟踪激光的功能。
    图 1-2  系统工作流程图
    图 1-2  系统工作流程图.jpg

    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-7 12:15 , Processed in 0.353617 second(s), 78 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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