*这篇文章是作者的本科毕业设计,属于作者的原创文章,禁止随意转载,仅供大家学习参考。*
基于Arduino的避障小车现在已经有了很多的帖子和教程,但本篇文章为避障小车添加了更多的实用的功能,比如:拍照、人体感应、蜂鸣器响应、蓝牙控制、自动模式和手动模式之间的切换。这篇文章的避障小车使用的是超声波避障模块。
下面介绍一下这篇文章使用到的一些模块:
- Arduino MEGA2560 开发板
- MEGA2560传感器扩展板
- L298N驱动板
- 直流电机
- HC-SR04超声波传感器
- AM412人体红外传感器
- 有源蜂鸣器模块
- SG90舵机
- VC0706串口相机
- TF卡读写储存模块
- HC-05蓝牙模块
下面介绍这篇文章中各个模块之间的接线关系
MEGA2560传感器扩展板直接插接在2560开发板上。2560的扩展板的每个数字接口和模拟接口旁边都有独立的VCC和GND接口,这也是为什么需要用到扩展板的原因之一。有关2560扩展板的详情请参考MEGA2560传感器扩展板
超声波传感器:我一共用了三个超声波传感器,分别放在小车前面的舵机云台上、小车左方、小车右方,舵机云台由舵机控制,可以让云台上的超声波传感器探测更大的角度。HC-SR04超声波传感器一共有4个引脚,分别是VCC、GND、Trig、Echo。HC-SR04超声波传感器的具体用法请参考SR04超声波模块,SR04超声波传感器在Arduino中有官方的库文件,只需要调用即可,不需要自己定义函数去计时换算成距离。超声波传感器的GND连Arduino的GND,VCC连VCC就不多说了(随便哪一个口的VCC、GND都可以接,推荐接用到的那个口的GND、VCC)。
SR04 | Arduino |
---|---|
前Trig | D4 |
前Echo | D5 |
左Trig | D9 |
左Echo | D8 |
右Trig | D16 |
右Echo | D17 |
D是数字量接口,A是模拟量接口。大部分传感器或者模块都使用数字量接口,也有一部分传感器使用模拟量接口,这篇文章中模拟量接口只用到了一个,就是人体红外传感器使用的模拟量接口。
舵机:舵机控制的是小车前方的云台,云台上放了一个超声波传感器,通过开发板写角度,改变舵机的角度。SG90跟大部分舵机一样是三个接口,分别是S、VCC、GND,S是控制接口也称信号接口,大部分的传感器或者模块都是这三个接口。舵机使用方法非常简单,同样的拥有官方库文件,使用时只需要调用库函数就行了。例如:myservo.write(val);定义一个整型变量“val”通过改变val的值,再用这个函数,就可以改变舵机的角度。角度当然也可以一度一度地改变,只需要用一个循环语句,让舵机每变一度再延时几毫秒就可以了,这种一度一度地改变的方法更符合使用实际。
舵机 | Arduino |
---|---|
S | D2 |
舵机的三根线通常是是连在一起的杜邦线,一般认线的颜色就可以了,黄色的是信号线,红色的是VCC,黑色的是GND,竖着一排插在数字量接口那里,线的排列顺序刚好也和扩展板上接口的排列顺序一一对应。
人体红外传感器:AM412人体红外传感器是普通HC-SR501人体红外传感器的升级版,模块体积更小,但少了两个可调节电位器,正常使用来说,那两个可调节的电位器可以去掉。AM412人体红外传感器一共有三个引脚,OUT、VCC、GND。人体红外传感器的具体使用方法请参考人体红外传感器
</