2023年电赛E题总结

0.前言

本人大一,在暑假留校的时候参加了2023年电子设计大赛,7月份的时候准备的是小车题,虽然PID调出来的效果不好,但是也能够完成正常的小车功能,谁知道一道E题给我打回了现实当中,视觉这方面我只在7月末学习了一下OPENMV,但学习深度不够,当初只想着实现一个简单的识别数字循迹就可以,但是比赛的时候就傻眼了,对代码和文本资料不是很了解,看的不透彻,学的很浅比赛的时候就两眼一抹黑日,自己只做出了前三问,后面的都没做出来,但实验室的人做出来了,导致自己很郁闷。

1.选题

公布题目的时候选择了E题,但是视觉方面不是学习很透彻,只做出了前三问,队友两个都是学长,一个负责写报告,一个参加其他比赛去了,所以做东西只有我一个人做,但是我看到了其他队伍分工特别明确,一个负责软件,一个负责硬件,一个负责设计报告,除了软件,其他两个人分工比较灵活。

而这次比赛,我一个人负责了软件与硬件,四天三夜,只睡觉了7个小时,过程有苦有乐。

2.解题思路

只做出来前三问,纯粹使用的二维云台来写死控制的

这几问的思路都是通过控制PWM来实现舵机转向,并且将舵机的PWM通过BKP寄存器存储在单片机里面,实现上电不丢失。

逻辑很简单那,这里就不说了

3.赛后总结

通过这次比赛发现自己存在很多可以进步的地方,如串口通信,不知道怎么解包摄像头发过来的数据,sscanf函数不知道怎么运用上去。

代码编写逻辑,过多的CV,不去深入了解代码,只会出现问题这次代码的编写,我都是用if和for来判断,纯粹的就是C语言,关于定时器,外部中断用的都比较少。

这次学习到的一些思路:

BKP函数里面的循环不能直接使用

这段代码里面存在问题,BKP_DR1不能直接加一,因为定义的十六进制他的排列是无序的,而这次使用的是STM32F103C8T6里面可以用到的BKP只有10个,

 

譬如,0100对印的数值是4,当他加一的时候就是0101,对应的数值是5,然而这些东西我当时没有注意到,在这方面困惑了好久,最后发现是因为没有注意到对应的16进制,单独将DR看作了一个1的变量,背后对应的地址我并没有看到。

 按键消抖,按键消抖我做的并不是特别好,当时也困惑了我一段时间,我是靠软件消抖的,但是呢,在实际使用的时候出现了很多问题,当我设置一个标志位的时候,OLED显示屏上面,显示的数值都是一直变化的,后面考虑并联一个硬件电容消抖,但是实验室找不到很乱,最后我困在标志位,也是在标志位上面解决的,我使用了两个按键,一个按键按下去的时候,在函数里面的标志位置1,通过下面一个按键来使标志位置二,这样实现了“标志位消抖”

外部中断,使用按键的时候,我每次按下按键的时候,其他按键我按下去没有,后来发现是自己在按键中断加了延时功能

这是HAL库的原因,这里我使用的是标准库,是因为在外部中断里面加了延时 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值