2022电赛C题——跟随小车 总结

目录

一、前言

二、电赛回顾

三、比赛原因总结

1.准备不充分

2.队友配合不好

3.总体进程安排有问题

四、小车题经验和教训

五、电赛总结与收获

一、前言

今年参加了省电子设计大赛,做的是控制类的小车题目,今天下午已经测试完毕。虽然结果不好,但是比赛结束之后一直在回顾和总结,特意写下这篇文章记录一下。(第一次写博客,写的不好的和错误的地方还请各位大佬批评指正)


二、电赛回顾

这是我的第一次电赛,大概率也会是大学期间的最后一次电赛。从2022年7月2日开始准备到2022年7月27日比赛开始,再到7月30日晚上八点结束,虽然没有用尽全力,但也基本尽力了。在准备电赛的过程中,我零基础学习了STM32单片机,例如时钟、IO配置、串口通信、外部中断以及IIC等基本通信协议和智能小车的基本控制方法,例如差速转弯,占空比控制电机速度以及PID闭环控制等方法。除此之外,也学习了若干必要的外设,如MPU6050陀螺仪,HC-05蓝牙模块,编码器电机测速,红外循迹模块,稳压模块,电机驱动模块L298N。最后也粗略学习了MSP430F5529单片机(当时不知道就是小车题目限制TI芯片,现在会想起来就应该直接用TI芯片做)。在电赛的四天三晚中,看到题目的时候以为题目不难,很快我们就确定了第二个小车采用超声波测距来实现跟随,两车的循迹都采用红外对管,通信使用两个蓝牙模块的互连来实现。这个方案是可行的,但是在做的过程中很不顺利。由于MSP430使用不多,基本上所有的配置都要现场配置和调试,这浪费了大量的时间,这是一个比赛结果不好的一个很大原因。比如,我们在配置MSP430的时钟时就碰到了很多问题,当时并没有搞懂MSP430的USC时钟配置,花了很多时间去学。在配置430和OPENMV的通信时也花了三个多小时,结果换成115200的波特率才解决,至于是为什么,现在也还没搞清楚。前两天都在配置这些外设,到第二天的晚上才开始调车,但是调车的过程中也碰到了很多问题,其中最大的问题就是循迹,甚至在最后都没能把循迹调出来。这次电赛总结起来就是很多的问题,好像每个东西都碰到了问题,庆幸的是虽然花了很多时间,但是最后每个外设都配置成功了,最遗憾的是循迹没有搞出来,要是两车的循迹搞出来了,说不定结果还能好一些。我把失败原因和解决方法记录在下文,既希望能给以后的电赛人提供经验和教训,又能记录下自己亲身试错得出来的结果。


三、比赛原因总结

1.准备不充分

只粗略学习了一下MSP430芯片,如果准备得好,很多外设可以直接拿过来用,这样就可以为调试小车留下更多的时间,说不定也不会因为在配置外设时遇到的这么多的问题而打击自信心。

2.队友配合不好

我们队友的分工是一个软件,一个硬件,一个两者均沾。这是组普遍的分工,但是我们细分学习任务时出现了很多问题,另外两个队友基本上在学习open mv摄像头和K210摄像头,但是小车题基本上不用摄像头(可以采用摄像头来循迹和识别,但是我们尝试之后效果也不好),所以基本上成了我一个人在搞,两个队友很多时候想帮忙都帮不上。除非是有大神带,建议队友之间不要把学习任务划分得太明显,尽量挤出时间多学习一些模块。除了学习任务没有配合好,队友之间得默契度也不够,交流不多,队员之间有时候都做不到信息互通,这是非常影响效率和士气的。建议队友之间把买了什么东西,需要什么东西,有一些什么新方向都要主动说出来,不能一个人各顾各的,三个人必须团结一致才能解决更多问题。

3.总体进程安排有问题

在做小车题时,我们是先把基本的外设配置好再开始着手去做,本以为配置好外设后就能很顺利地把题目做出来,事实上很多东西看起来简单,着手去做时就会有很多问题,以至于我们最后连PID算法和编码器测速都没用到。我们应该首先做题目,在做的过程中要用到什么模块才去配置,在调试开环还是闭环时,建议先用开环把循迹实现,然后再去用PID算法优化平滑性和速度控制。


四、小车题经验和教训

  1. 把硬件做好,包括循迹模块按照在哪个地方,选用什么电机(好的电机真的很省事),用什么样的轮子(万向轮还是牛眼轮)和车架(是否方便安装外设以及重心稳不稳),硬件做好可以让大大降低程序的复杂程度
  2. 对于四驱和两驱,以及几轮车,应该是先学两驱三轮,然后两驱如果准备时间充足的话,尽量往四驱方面学,四驱的小车稳定性较高,可调的空间也很多。
  3. 不要小看任何一个功能,比赛的难点很有可能就是平常最忽视的那个点
  4. 对于每一个功能,多去学习一些方案,比如循迹可以用红外,灰度和摄像头,这样可以在比赛时碰到一种方案不能实现时可以换方案
  5. 把每次的调试数据记录下来,可以节约很多调试的时间

五、电赛总结与收获

  1. 多准备,不要取巧,小车题很灵活,必须把基础知识学扎实才能轻松应对
  2. 多和大佬交流,站在巨人的肩膀看世界。这些大佬既包括学校的大佬,也有网上的大佬,和他们交流,可以少走很多弯路,也能提高认知
  3. 勤奋和努力永远是主旋律,不认真学是不可能有好的结果的
  4. 不要畏惧困难,虽然每个困难都很令人心烦,但是解决问题之后也会非常开心
  5. 多总结,多积累,多学习,不要想着一蹴而就,脚踏实地地走好每一步才是最实在的

  • 43
    点赞
  • 270
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
你好!很高兴回答你关于双车跟随OpenMV的问双车跟随是一种常见的机器人控制应用,OpenMV是一款基于Python的开源计算机视觉平台,可以用于图像处理和机器视觉任务。在双车跟随应用中,我们可以利用OpenMV的图像处理能力来实现目标检测和跟踪。 首先,你需要安装OpenMV IDE,并将OpenMV相机连接到计算机上。然后,你可以使用OpenMV的图像处理库来捕获相机图像,并进行目标检测和跟踪。 以下是一个简单的双车跟随OpenMV的示例代码: ```python import sensor import image import time # 初始化相机 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) # 设置颜色阈值 threshold_red = (30, 100, 15, 127, 15, 127) # 红色阈值 threshold_green = (30, 100, -64, -8, -32, 32) # 绿色阈值 while True: img = sensor.snapshot() # 捕获图像 # 检测红色目标 blobs_red = img.find_blobs([threshold_red], pixels_threshold=200, area_threshold=200) if blobs_red: for blob in blobs_red: img.draw_rectangle(blob.rect()) img.draw_cross(blob.cx(), blob.cy()) # 在这里添加双车跟随逻辑,例如控制小车向红色目标移动 # 检测绿色目标 blobs_green = img.find_blobs([threshold_green], pixels_threshold=200, area_threshold=200) if blobs_green: for blob in blobs_green: img.draw_rectangle(blob.rect()) img.draw_cross(blob.cx(), blob.cy()) # 在这里添加双车跟随逻辑,例如控制小车向绿色目标移动 ``` 在代码中,我们首先初始化相机和设置图像大小和格式。然后,我们定义了用于检测红色和绿色目标的颜色阈值。接下来,我们进入一个循环,在每次循环中捕获图像,并使用`find_blobs`函数检测目标。如果检测到目标,我们可以根据目标的位置信息来控制双车进行跟随。 请注意,这只是一个简单的示例代码,你可能需要根据你的具体应用进行调整和扩展。希望对你有所帮助!如果还有其他问,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值