完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于openmv的自动跟踪小车
1、基础工作 (1)首先要能驱动小车 写一个run函数,能够给A、B两个直流电机施加动力,并给出PWM调速参数,给两个PWM引脚施加PWM波。 以下为详细解读: (1)小车模块:驱动电机运动 使用N20直流减速电机,自带驱动 (2)驱动的作用: 单片机——>弱电——>电机驱动器——>强电——>电机 (3)引脚介绍: [tr]引脚名称作用[/tr]
ch1 = tim.channel(1, Timer.PWM, pin=pwma)//tim是一个定时器对象,为这个定时器创建一个通道,向pwma引脚输出PWM波 ch1.pulse_width_percent(value)//value介于0-100之间,设置脉冲活动占定时器周期的百分比 run(30,30)//左右电机都以30%的PWM波驱动,向前运动 (2)PID的初始化及运算:== 创建一个PID class,给定kp,ki,kd值来构造一个PID类。然后能够进行PID运算,输入偏差,输出PWM调速参数==。见上述代码 PID调速原理 公式:Pwm=Kpe(k)+Ki∑e(k)+Kd[e(k)-e(k-1)] e(k):本次偏差 e(k-1):上一次的偏差 ∑e(k):e(k)以及之前的偏差的累积和;其中k为1,2,k; 其中KP为比例系数;Ti为积分时间常数;Td为微分时间常数,每个系统不一样所以需要实验调试获得较为理想的,即能满足稳定性、快速性、准确性。 2、main函数内完成的工作 (1)使用openmv自带图像算法 求得目标物体的相关坐标。不管是apriltag标记还是色块,都有固定的识别算法,获取到物体的坐标、偏移角等参数。 blobs = img.find_blobs([green_threshold])//寻找全部色块 max_blob = find_max(blobs)//寻找最大的那个色块 ( 2)计算两个方向上的误差 (色块的识别例子中的方法,apriltag应该也可以这样用) 左右方向:将物体的中心坐标移到视野的中心位置上 前后方向:使视野内物体的面积达到一定阈值,面积使用“宽X高”来计算,阈值可以自己设置 上下方向:假设该方向固定 计算误差的代码如下: x_error = max_blob[5]-img.width()/2 //5号索引色块的中心x位置 h_error = max_blob[2]*max_blob[3]-size_threshold //2号索引边界框的w坐标(宽度),3号索引边界框的h坐标(高度),计算得到视野内的色块面积。后面的是设置的阈值 (3)利用初始参数初始化PID类 这里的参数在实例中已经给出,现实中是需要自己调节的。将上述计算得到的两个方向上的误差作为输入参数进行计算,得到下一步的PWM参数值。代码如下: x_output=x_pid.get_pid(x_error,1)h_output=h_pid.get_pid(h_error,1) (4)将PWM参数输入run函数,驱动电机旋转。 car.run(-h_output-x_output,-h_output+x_output) 这里比较有意思。 1、x_output代表左右这个方向的输出值,小车运动过程中的左右调整是通过两电机的差速实现的,所以run函数的参数中x_output的符号不同。 2、h_output是前后方向的输出值,两电机在这个方向上“共进退”,所以参数中是相同符号。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
640浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
525浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 04:22 , Processed in 0.721079 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号