E题-两激光云台

 

一、材料采购

首先云台买少了的抓紧去买,顺丰加急,云台的舵机一定要买20kg以上的,这样运动才会稳,尽量不要买那个sg90的小舵机云台,不然一旦扭矩不够开始抖了就没法调了。

令人悲伤的是k210似乎也需要两个,准备两个k210。

二、舵机供电

舵机供电一般是5V,推荐是LM2596模块生成5V电源,通过你的PCB或者洞洞板母板引出几个舵机口,给舵机供电。

三、激光笔供电

激光笔的供电电路:我刚刚测试过了,我买的5mW的激光笔可以直接接单片机3.3和GND就能正常用,所以不用下面这么麻烦了,直接推挽输出控制激光笔就行。

0f6ca6709fd2481e9a9e4d12f721c0f9.png

 

但我觉得这样还是不太稳妥。有余力的同学可以尝试设计激光笔供电电路,以防它功率过大导致单片机故障。建议使用信号继电器或者手册第二章MOS管那一节后面那个SI2302来设计开关电路。

四、第一问第二问

首先两个云台的位置应该是定死的(如果我没理解错规则的话)

所以第一问和第二问可以直接把舵机的运动写死,前两问大家应该都可以做出来。

五、A4黑边检测

因为openmv/k210那个find_blobs函数,以及形状识别的函数,确定A4矩形框大致位置还是很轻松的,我在想怎么才能确定矩形的四个顶点。可能要识别直角。

因为红色激光笔是垂直正对着屏幕的,所以把openmv/k210摄像头装在正对的地方,直角应该不会畸变,看起来还是很清晰的。

刚刚去openmv官网看到了矩形识别的例程和教程:

find_rects函数

10810484bd504d0bbe668281e692aedf.png

我一看这个就感觉有门了,这顶点不就有了!快去试试。

5c4979fda76344bfac46b0ef636bd935.png

 我说什么来着。

图像分辨率应该只能是QQVGA,我试着改成了QVGA结果检测不到了。因为识别矩形是基于四元检测算法,apriltag用的,而apriltag代码里明确注释了如果改大分辨率会让内存溢出。

 

经过上面的方法,矩形就知道了四个顶点和原点,一切都知道了。

六、绿色激光笔问题

绿色这边的k210要做的就是色块识别,注意识别的是红色色块,然后追踪它。绿色的云台应该不需要坐标定位,只需要色块追踪,跟着红色就行。

然后赛题最后提到了要有暂停键。

这就说明必须可以随时暂停,所以我们的按键模块就不能放在while(1)里,一定要用按键触发外部中断,而且外部中断的优先级要最高,0/0。

 

七、舵机云台运动

首先红色云台部分,用STM32控制舵机要保证串口的优先级是最高,而且k210的串口要少发内容,不要在舵机运动的时候发送过多内容影响了定时器中断里的算法。

还有舵机云台走直线的调试。我设想的是用一个一次函数的形式控制两路PWM占空比的值,来控制舵机云台的任意方向的直线运动。比如你可以在屏幕上贴上笔直的一条黑胶带,调试云台运动让激光笔能顺着这条直线走。

八、第四问pid巡线(睡醒突然想到)

黑边A4我觉得也可以用pid巡线,首先因为a4纸和红色云台处的k210视角是不会动的,所以k210可以同时色块追踪和矩形识别,先矩形识别,确认识别无误之后不再矩形识别,而是记录四个定点的像素坐标,然后开始pid色块追踪红色光点。pid的目标值就是矩形的像素位置,也就是pid目标值会缓慢变化。pid的实际值就是红色光点的位置。

这方案比写死要完美得多!

 

九、灯光补偿

不允许灯光补偿

7f210ef7017f4e0face46faab42ffa74.png

 

附录 优秀作者内容推荐

https://blog.csdn.net/qq_63922192/article/details/132054666?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132054666%22%2C%22source%22%3A%22qq_63922192%22%7D

2023年电赛---运动目标控制与自动追踪系统(E题)OpenMV方案

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐