2023电赛参赛感悟+H题思路+给萌新的建议

感悟分享 

    2023电赛终于落下了帷幕,经历了四天三夜的奋战,我们小组也取得了一个比较满意的成果——省二。这对于刚接触电赛的我们来说已经是一个很不错的结果了,虽然有一点小遗憾,不过大家整体都很满意。

(评论区有人问FFT怎么实现,可以参考2023电赛H题详解1 - FFT算法_高速adc fft-CSDN博客

 

2023H题思路

    我们组选择的是H题:信号分离装置。据我所知,这道题我们学校选的人挺多的,别的学校选的人似乎也不少,所以竞争还是比较激烈的。

    这道题的难点在于,分离出的两路信号需要连续稳定同频显示。由于要实现的是随机频率的信号分离,所以完全的模电方案是不现实的。而数电方案需要用到FPGA,但我们不会用,所以只能将两者结合,用stm32实现。

    相信了解相关算法的同学应该能猜到我们的思路了。没错,就是先AD采样,然后用FFT算法得到A和B的频率。再根据实部和虚部求得幅度,以此判断信号是正弦波还是三角波。最后用DDS模块发出两路信号。

    如果你之前联系过2021年A题,那么FFT算法不是难点(如果不懂的可以在评论区里问我,问的人多的话我专门写一篇介绍FFT)。这道题的难点在于“同频显示”,即必须控制DDS模块发出信号A' B' 与输入信号A B 的频率差控制在一个很小的范围

    举个例子。输入信号A的频率为50000.01Hz,输出信号A'的频率为50001.01Hz,那么二者的频率差就是1Hz,同频显示时每1s会步进一个周期,那就是频漂相当严重了,基本算是寄了。

    我们使用的DDS模块为AD9833,它的工作范围为1k~1MHz,满足题目要求(20k~100k)。但它的步进为0.14Hz(商家给的,实际应该也差不多),不考虑信号源的误差,那么我们人为调整的话,能把频率差控制在0.07Hz以内,对应的就是14s漂一个周期。虽然没那么严重,但也是挺漂的,哈哈。

    所以本题的难点就是要提高DDS模块的精度。试想,如果我们把频漂控制在100s一个周期,那是不是跟本没法看出来?毕竟测评时间是有限的,老师不可能盯着你的信号看上一分钟。如果频漂控制在300s一个周期,那不就是没有漂移?

    总而言之,如果你找到了控制A与A'、B与B'的频率差的好办法,你基本上就能拿到省二了。当然,除了频漂,信号也不能有明显失真呦。

    至于具体的方案,我这里就不细说了。等我哪天有时间再发一章,感兴趣的可以去我的投稿里找一找,毕竟这是我第一次写这种类型的博客,哈哈。

一点建议

    之后就是给萌新的一些小建议了。毕竟两个月前,我们组三个人也是纯纯的萌新,既没接触过电赛,也没碰过stm32,数电没学过,模电还稀烂。在这样槽糕的条件下,靠着大家的相互鼓励和顽强毅力,硬是创出了一片天,说出去还是挺自豪的。

    1、要培养自学能力。据我了解,大多数学校在电赛备战期间能给大家提供的帮助真的很有限,所以绝对不能什么都指望老师和学长。像我们学校,这次的国赛的集训是没有集中培训的。学校只给你提供实验室,然后有一两个学长能给你答疑解惑,学长大部分时间还有事,基本全都得靠自己。这就需要你能熟练运用互联网,从网上找到各种教学。

    2、找到适合自己的教程。现在B站有很多教你嵌入式开发的视频,什么正点原子、野火之类的,CSDN上也有很多教学,但不一定适合你。我们学校一开始给我们推荐了正点原子的视频,emmm,说真的,我只建议你们看前三集。这玩意对初学者来说已经不是依托答辩了,而是依托陈年答辩。都啥年代了还在教你别用cube...说真的,我们组跟着正点原子的视频浪费了一个礼拜的时间,现在想想都后悔。

    那有没有适合初学者的教学呢?有的,我这里分享几个链接,适合新入坑的小白学习。也欢迎大家在评论区里分享自己认为不错的教学。

电控入门教程/STM32系列教程.md · pocket/RoboWalker战队信息汇总 - Gitee.com

这是我初学stm32看的教程,非常棒。手把手教你怎么用cube配置ADC、DAC、PWM、串口通信、定时器中断等等。自己跟着他的教学过一遍,你就算入门stm32了。

[10-1] I2C通信协议_哔哩哔哩_bilibili

基础搞定了,下面就是进阶了。如果你是做小车的,那你学会串口通信、定时器什么的就够了。但如果你想做信号题,那你还得学复杂一点的通信协议:I2C 和 SPI 。这俩的话看江协科技的教学会比较好。不过他的教学是没用cube的,所以我建议你先学一学cube怎么配置,然后用cube完成I2C和SPI的配置。

STM32CUBEMX配置教程(十二)STM32的定时器触发的固定频率ADC采样(使用DMA)_stm32的adc采样的dma模式开启次数_怡步晓心l的博客-CSDN博客

     至于其他的教程其实都是直接在CSDN上搜的,我没保存,就用这个做个例子。我建议小白不要上来直接用Keil写所有代码,试着学一学Cube会方便很多。如果没用过Keil但是学过C语言编程的,可以试试CLion,也可以用cube配置,在代码补全方面比Keil好很多。

    3、确定研究方向。在对stm32有了初步了解后,小组成员就应该确定你们的选题方向了。电赛的类型主要有四类:自控信号电源其他

     自控主要是小车和无人机,信号分为两类:高频和低频。低频主要是仪器仪表类,难度适中,适合新手入门;高频主要是无线电,即信号的调制与解调,需要有数电基础,且能熟练运用FPGA,难度较大。电源要看你们学校有没有相关资源,据我所知是有难度的。其他包括机器学习、物联网之类的,今年应该没考。

     最后,祝所有参加电赛的同学们取得好成绩!

  • 11
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
引用[1]:大二第一次正式组队培训,目为2017年的H(远程幅频特性测试装置)。由于能力不足,出老师将大二组的难度降了一个维度。实际上这是一道高频目(1M-40M),然而我们大二做的仅仅是处理1k-40kHz部分的信号。这道刚拿到手,虽然指导老师讲解了一遍,但是脑子里还是一头雾水,不知从何下手,经过我们一群小伙伴后来的讨论,才逐渐理解了目的意思。从一无所知到有所收获,与一群志同道合的朋友一起进步,一起成长,比起奖项,或许这才是吸引人的地方。由于个人能力有限,还是个敲代码的,对于硬件原理也只是半知半解,故纰漏处望大家指正。[1] 引用[2]:至此关于此硬件部分的内容写的大致完毕了。作为一道高频,这不能通过面包板搭建以及软件仿真方法来调试路,给硬件整体的路调试环节带来了很多麻烦,我们小组也是屡屡碰壁,不过最后也是能做出成品,还是有些感慨的,也欢迎大家来讨论。[2] 引用[3]:我们搭的这个玩意主要分为两个部分,磁炮路部分和控制路部分,还有一块源部分,当然其实测试现场是提供学生源的,我们纯粹是吃饱了撑的。磁炮部分:包括两个开关(一个充,一个放),一个高压容,一个升压模块,一个线圈与炮管。控制部分:两个舵机 云台,一块F407(带触控屏),两个继器,一块OpenMV,一个超声波模块。[3] 根据引用内容,2023H是一道关于远程幅频特性测试装置的目。这是一道高频,但我们大二组只处理了1k-40kHz部分的信号。在解过程中,我们遇到了一些困难,但通过小组的讨论,逐渐理解了目的意思。在硬件部分的设计中,我们分为磁炮路部分和控制路部分,还有一个源部分。磁炮部分包括开关、高压容、升压模块、线圈和炮管。控制部分包括舵机云台、F407开发板、继器、OpenMV和超声波模块。由于这是一道高频,无法通过面包板搭建和软件仿真来调试路,给整体的路调试带来了一些麻烦。但最终我们还是成功完成了装置的制作。欢迎大家一起来讨论这道目。[1][2][3]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值