查看: 4925|回复: 6

【玩转KittenBot】搭建pid巡线小车

[复制链接]
  • TA的每日心情
    开心
    2018-3-13 17:02
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2017-8-24 14:41 | 显示全部楼层 |阅读模式
    本帖最后由 Rosy~ 于 2017-8-24 14:51 编辑

    现在大多数机器人大赛都会有巡线比赛,有的人也萌生了动手制作巡线小车的念头。KittenBot作为用户学习编程和机器人的启蒙,怎么能缺少巡线功能呢。这个教程将会讲解怎么使KittenBot实现巡线功能,或许能学会pid算法哦!(高能预警:KittenBot基础套件不含巡线模块,此教程具有一定的操作难度。) 1502109278302-upload-5cccda48-5b47-479e-a2af-c3e387fabd35.png


    准备工作
    五路巡线模块 x1
    1502109295217-upload-1ec9507b-813b-40e8-af12-c3e422dbedc7.png
    kittenbot小车 x1
    USB线 x1
    1.5V电池 x6
    1502109321685-upload-6047f879-652c-4a69-ad43-98ccc589d9dd.png
    在接下来的安装步骤是以安装好的KittenBot小车的基础上说明。
    如果还没安装好小车,请按说明书安装完毕再观看下面教程。

    第一步
    用巡线模块配套的M4螺丝螺母将巡线模块安装在小车前方的底盘下,如下图所示。
    1502109375168-upload-01c3c3b9-62ec-455e-9b87-a7b2efa6b014.png
    1502109406778-upload-c975b2c5-d452-46b3-81ec-6f17297e8ff8.png
    第二步
    接下来就是连线,先让大家知道每个接口对照的红外传感器。
    1502109437454-upload-f0bf0aa8-3c5e-41c6-bc1f-6f65296596d7.png
    用7根杜邦线按顺序依次是
    T5连接A4(SDA=A4)
    T4连接A3
    T3连接A2
    T2连接A1
    T1连接A0
    5V连接红色VCC
    G连接黑色GND


    1502109598757-upload-0eedd9d4-15ca-49e4-98d0-356ca30a532a.png
    第三步
    接着我们用扎带将电池座固定在小车的前端

    1502109704754-upload-2e9924c9-e871-4d5a-99dc-a9510c931815.png
    第四步
    下载我们提供的巡线程序

    1502110022290-upload-cd1f5a33-7ac5-4c7c-8547-faed2407c762 (1).png
    第五步
    用USB连接KittenBot到电脑,使用Arduino IDE打开linefollow.ino文件。
    类似使用Kittenblock一样,先连接COM口,然后下载程序

    d51e8d4eb5411273.gif
    下载好程序后,让KittenBot试着去巡线吧,从黑线跑出来了?
    1502110213621-upload-688021d7-40eb-413d-8514-98390f76b1d7.png
    咳~ 这是因为五路巡线模块对黑线的感应强度在不同环境会有差异或者小车TT马达参数有差异。所以喵星人提供的程序还需要用户自己微调。
    调试一
    检测五路巡线模块对黑线的灵敏度。
    在下载回来的文件夹,打开LineFollowSensorTest文件,使用Arduino IDE打开LineFollowSensorTest.ino并下载程序。
    然后用五路巡线模块逐个扫描黑线,观测串口监视器返回的值。
    8a554a857db5013c.gif
    调节linefollow.ino程序里的adcal数组里的值。

    例如说,我的五路巡线模块在黑线时读出来的值分别是300,400,450,550,300.
    就将adcal数组里的值改为
    调试二
    小车能够正常检测黑线之后,到了本次教程最难的一步。调整pid算法的参数。

    本喵对pid的理解也有一定的局限性,我也是经过一定时间的参数调节才成功的。这是我的一些总结
    ①小车在直线左右抖动频繁,减少Kp的值或减少Kd值
    ②小车在弯道的时候转不过去,增大Kp的值或增大Ki值
    ③小车经过弯道回直线时冲出黑线,增大Kd的值或减少Ki值
    以上的总结不一定适用,要让小车以高速且顺滑的跑起来,这还得靠大家有一定的数学知识和耐性,在理解pid原理的同时优化pid的参数。

    该用户从未签到

    发表于 2017-8-24 15:01 | 显示全部楼层
    沙发,有奖吗

    该用户从未签到

    发表于 2017-8-24 15:08 | 显示全部楼层
    有难度,不是我这种新手能做的
  • TA的每日心情
    开心
    2017-3-11 09:17
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2017-8-29 12:30 | 显示全部楼层
    汇研 发表于 2017-8-24 15:08
    有难度,不是我这种新手能做的

    新手的话,推荐玩这个:http://www.arduino.cn/thread-48077-1-1.html 上手快很简单~

    该用户从未签到

    发表于 2017-8-30 15:27 | 显示全部楼层
    KittenBot 发表于 2017-8-29 12:30
    新手的话,推荐玩这个:http://www.arduino.cn/thread-48077-1-1.html 上手快很简单~

    谢版主推荐!
  • TA的每日心情
    开心
    2018-4-3 09:20
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2018-4-3 09:26 来自手机 | 显示全部楼层
    问一下零件在哪买啊
  • TA的每日心情
    开心
    2018-5-29 13:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-3-14 23:08 | 显示全部楼层
    github上面找不到呀
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    BlinkerAT固件不能用
    BlinkerAT固件不能用
    如图,在配网的时候就卡住了,再发指令就没用了,固件和库都是今天刚下载的,以前的也不好
    为什么这个库已经装好了可是在调用的时候却没有显示
    为什么这个库已经装好了可
    为什么这个库已经装好了可是在调用的时候却没有显示求解决
    UART 传输(字符)不稳定,如何解决数据错位和乱码的情况
    UART 传输(字符)不稳定
    求助大家,我正在写一个 UART 传输多组数据的项目,想要将一端 Arduino 的多组数据通
    请问这是什么板子?
    请问这是什么板子?
    如图,两年前比赛学校发的,但网上找不到资料,现在翻出来,想问问有人知道它怎么用吗
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表