本帖最后由 Rosy~ 于 2017-8-24 14:51 编辑
现在大多数机器人大赛都会有巡线比赛,有的人也萌生了动手制作巡线小车的念头。KittenBot作为用户学习编程和机器人的启蒙,怎么能缺少巡线功能呢。这个教程将会讲解怎么使KittenBot实现巡线功能,或许能学会pid算法哦!(高能预警:KittenBot基础套件不含巡线模块,此教程具有一定的操作难度。)
准备工作
五路巡线模块 x1
kittenbot小车 x1
USB线 x1
1.5V电池 x6
在接下来的安装步骤是以安装好的KittenBot小车的基础上说明。
如果还没安装好小车,请按说明书安装完毕再观看下面教程。
第一步
用巡线模块配套的M4螺丝螺母将巡线模块安装在小车前方的底盘下,如下图所示。
第二步
接下来就是连线,先让大家知道每个接口对照的红外传感器。
用7根杜邦线按顺序依次是
T5连接A4(SDA=A4)
T4连接A3
T3连接A2
T2连接A1
T1连接A0
5V连接红色VCC
G连接黑色GND
第三步
接着我们用扎带将电池座固定在小车的前端
第四步
下载我们提供的巡线程序
第五步
用USB连接KittenBot到电脑,使用Arduino IDE打开linefollow.ino文件。
类似使用Kittenblock一样,先连接COM口,然后下载程序
下载好程序后,让KittenBot试着去巡线吧,从黑线跑出来了?
咳~ 这是因为五路巡线模块对黑线的感应强度在不同环境会有差异或者小车TT马达参数有差异。所以喵星人提供的程序还需要用户自己微调。 调试一
检测五路巡线模块对黑线的灵敏度。
在下载回来的文件夹,打开LineFollowSensorTest文件,使用Arduino IDE打开LineFollowSensorTest.ino并下载程序。
然后用五路巡线模块逐个扫描黑线,观测串口监视器返回的值。 调节linefollow.ino程序里的adcal数组里的值。
例如说,我的五路巡线模块在黑线时读出来的值分别是300,400,450,550,300.
就将adcal数组里的值改为
调试二
小车能够正常检测黑线之后,到了本次教程最难的一步。调整pid算法的参数。
本喵对pid的理解也有一定的局限性,我也是经过一定时间的参数调节才成功的。这是我的一些总结
①小车在直线左右抖动频繁,减少Kp的值或减少Kd值
②小车在弯道的时候转不过去,增大Kp的值或增大Ki值
③小车经过弯道回直线时冲出黑线,增大Kd的值或减少Ki值 以上的总结不一定适用,要让小车以高速且顺滑的跑起来,这还得靠大家有一定的数学知识和耐性,在理解pid原理的同时优化pid的参数。
|