动手学arduino智能车(3)超声波避障

任务一:自定义函数

在“动手学arduino智能车(2)测试小车”一文中,介绍了小车前进功能的实现,若让小车左转,就是让小车左轮不动。

为了让程序更有简洁,可以把小车的四种运行状态(前进 左转 右转 后退)用自定义函数。

编写小车的四种运行状态:前进 左转 右转 后退

在mind+函数 模块选中“自定义函数”

修改函数名称分别为:“forward” “stop” “turnleft” “turnright”

动手学arduino智能车(3)超声波避障

编写每个自定义函数,内容如下:

动手学arduino智能车(3)超声波避障

把小车动作定义为函数后,直接调用定义后的函数,就能完成相应的动作,增加代码的可读性。

任务二:超声波模块

小学语文课本上一篇文章说,蝙蝠是用超声波躲避障碍物和捕捉食物的。
这款智能小车也利用超声波避开障碍物。
在小车上加装下图所示的超声波传感器。
动手学arduino智能车(3)超声波避障
通过配套云台,超声波模块可固定在小车的前部。

超声波模块的trig echo引脚分别接arduino的8  12脚。

装超声波传感器的小车,样子有些威武。

动手学arduino智能车(3)超声波避障

 

 

mind+中,只用一句就能得到障碍物的距离:

动手学arduino智能车(3)超声波避障

而在arduino ide中至少要用五句:


digitalWrite(8,LOW);

               //产生一个10US的高脉冲去触发Trigpin

delayMicroseconds(2);

delayMicroseconds(10);


digitalWrite(8,LOW);

distance=pluseIn(12,HIGH)/58.00;

    //检测脉冲宽度,并计算出距离

如果障碍物在50厘米外,小车直行,如果前方50厘米内有障碍物,小车左转。用一个判断语句实现上面的功能:

动手学arduino智能车(3)超声波避障

把mind+切换成“上传模式”,上传代码到小车上。

动手学arduino智能车(3)超声波避障

接通电源,小车就有了蝙蝠特性:利用超声波躲避障碍物。