回到顶部 回到顶部
best-icon

挑战三:秋名山麦昆飙车指南 简单

头像 #嘉诚欧巴# 2019.03.27 4204 9

‘逮虾户!’当秋名山的BGM响起,每个男孩心中都想去飚上一把过瘾的漂移。但实际上这种行为十分危险,我们只好让我们手里的麦昆来全力加速啦!本次课适用于学习过巡线车,想要进阶学习更好的运动算法的同学,本次课讲解使用一个标志位变量来让麦昆记住自己偏离轨道的方向,一个小小的改动就能让麦昆运动速度提升一倍。

project-image

首先,我们知道,巡线车的原理是使用的是两个红外传感器,可以检测路面上的反光情况,从而分辨黑色与白色,那么基础的巡线原理为:向左偏,向右转;向右偏,向左转。这种至少需要两个红外传感器,如果想精度更高,那么就需要更多的传感器,比如三个、五个。更有甚者,使用的是高精度20位的巡线传感器,大多出现在专业的机器人比赛中,我们不在详细展开。那么两个传感器恰好在线上,我们就令麦昆直行。但是,有过自己组装巡线机器人经验的同学都知道,两个传感器之间的距离,是会对巡线效果产生很大影响的。

project-image

例如,如果我们的赛道都是使用黑色电工胶带贴起来的,两个传感器的距离如果大于胶带纸,那么可以设置两个白色为直行,两个黑色为停止或交叉路口执行其他任务;而如果两个传感器的距离小于或者等于胶带纸的宽度(麦昆正是如此),这时,小车就会一直重复的执行左转右转左转右转程序,就大部分时间在纠正自己的方向,影响小车前进的速度,如果在左右转的子程序上下功夫,是可以调出一个完美的数值来让小车运行的很流畅,如果耐心不足或时间不允许,那么今天教大家一个另类的巡线算法。

一般来讲,巡线车的算法大致解释为:偏离路线则纠正方向,适中让黑线保持在两个传感器中间。我们今天学习的是使用Micro:bit编程中的变量,来让麦昆自己知道自己偏离的方向,而此时并不执行转弯,而是执行前进程序,直到检测到全部白线时,再根据已知的偏离方向进行纠正方向。使用这种算法的好处是:在巡线过程中,绝大部分时间都用来了前进,而只有当全部检测到白色,也就是彻底两个传感器都偏离了赛道,这时才去执行一次纠正回转程序,而只要纠正一点点,只要一边又进入到了黑色赛道中,就继续执行,总结这种算法的思路为:运动过程中始终要有一个传感器在黑色赛道上,当全部偏离时,采取纠正一次方向。

传统巡线方式程序:

project-image

使用变量标志位的巡线算法

project-image

最后放出两段运行的视频,大家可以自行比较一下。

最后说明:电池使用的是一个3.7V锂电池,加上一个充电模块,使用热熔胶粘起来了,还挺方便的,供大家参考~~

project-image

最后最后:本次时间原因只设计了技术与原理部分,没有实际应用在课堂,本课程适用于进阶的学过巡线机器人的学生,可以学习到变量的妙处,可以摆脱传统的巡线方式,对巡线有新的认识。感谢DFRobot。

更:车身贴的是捣鼓车间捣鼓熊,,

评论

user-avatar
  • Efghery

    Efghery2020.02.15

    666

    0
    • luyi

      luyi2020.02.05

      好赞啊,学习了!

      0
      • 袁家栋123321

        袁家栋1233212020.01.30

        第2个快,第1个慢,怎么会事?

        1
        • #嘉诚欧巴#

          #嘉诚欧巴#2020.01.31

          再读两遍文章

      • shzrzxlee

        shzrzxlee2019.11.02

        视频中,感觉黑胶带宽度大于15mm,很多时候红外巡线识别的是0 0,怎么麦昆不停呢?谢谢

        1
        • #嘉诚欧巴#

          #嘉诚欧巴#2020.01.15

          你好,0 0麦昆检测的应该是都是黑色,在本程序实际的运行中,没有一个时刻是刚刚好两个传感器都是在线上的。如果是一般的寻线程序,也都是左右晃来晃去的,一般没有恰好的时刻。我一般加入0 0让小车停止的主要原因是:拿起来的时候检测空气是00,所以加入的让小车停止。希望可以帮助您~

      • 肥罗-阿勇

        肥罗-阿勇2019.05.04

        确实很帅

        0
        • #嘉诚欧巴#

          #嘉诚欧巴#2019.03.28

          楼主真帅

          1
          • ASH腻

            ASH腻2019.04.09

            这么夸自己的么 哈哈