本课题以 Atmega328P芯片作为主控核心,可以通过红外遥控器按或手机APP,进行功能之间的切换,从而实现智能寻迹避障、测距、跟随、搬运物品;并且可以通过红外遥控器按或手机APP完成清障以及控制机器人各项运动功能,可以通过手机APP观察测量距离。
图3.1.1:系统总体框架
Arduino板拥有USB供电法,电源圆形插孔供电法,VIN供电法以及VCC供电法,其实本质上使用哪种方法供电要实现的效果都是一样的,常用的采用VCC供电法,使用VCC供电需要稳定的5V直流电源,因此选用了UitraFlrc XY 14500的5号可充电锂电池,其每节电池容量1200mAh,电压3.7V,选用二节该电池并联电压在7V左右,可以直接使用AMS1117—5V稳压模块便可以把6.5V到12V的输入电压变成5V的稳定电压;本课题使用7805稳压器设计稳压模块,如图3.2.1.1电源稳压模块电路所示。
图3.2.1.1电源稳压模块电路
图3.2.1.1的器件名称及功能介绍:
C1:10V/1000uF的电解电容,其作用是滤波,使能,防止大电流经过使得Arduino复位;
7805降压芯片:输入电6V~12V,输出电压稳定的5V;
BT1电池组:存放二个3.7V的电池;
S1电源开关:控制整个系统的供电;
R1限流电阻:保护电路;
LED:电源指示灯。
市面上可选择当作智能小车的驱动电机的一般可分为二类:直流电机和进步电机,但不管使用哪一种电机都需要驱动电路。
直流电机:
优点:相对进步电机来说,直流电机控制简单,转速快,其电机的正极连电源的正极,负极连接电源的负极便可以实现电机的正转,反之,电机实现反转。因此,该电机的驱动电路并不困难复杂。
缺点:使用直流电机常常会出现动力不足情况,而且,直流电机速度精度调节难度相当的大,输出力矩还小,要想获得大力矩需要加减速齿轮才能实现,相对复杂。
步进电机:
优点:步进电机主要调节PWM便可以调节电机的速度,而且精度高,转速稳定。其次,进电机直接可以输出较大的力矩。
缺点:步进电机转速慢,驱动电路复杂,而且会占用比较多的数字I/O口,对于一些占用I/O多的实验相当不友好。
对比发现,进步电机相对优点突出,适合做高动力的智能工程小车。选用了合适的电机先后,也要合适的电机驱动才能使用,已知市面上比较合适该电机驱动芯片有L298N直流进步电机驱动板,该模块采用H桥驱动电路,其特点是使用高电压,大电流的驱动芯片,常常建议使用电压5V到15V。一般来说,arduino板的电压无法直接驱动电机,需要经过升压之后才能用或者使用电源直接给驱动电路供电。其中所设计的电源模块的电源7V左右适合自己给电机驱动芯片供电。不过,本课题使用L293D电机驱动芯片设计了一个驱动模块,如图3.2.2.1 电机驱动电路。
图3.2.2.1 电机驱动电路
图3.2.2.1 的器件名称及功能介绍:
L293电机驱动芯片:提供高达600 mA的双向驱动电流。
C2:瓷片电容器,隔直流。
C3,C4:瓷片电容器,滤波。
DC:进步直流减速电机。
寻迹模块使用的是TCRT5000红外光电传感器,该红外传感器是一种名叫红外反射式光电的开关,该传感器由白色灯为发射管发射红外光线,黑色灯为接收管接收红外光线。一般利用红外传感器对不同颜色和材料的物体的吸收程度与反射量的不同进行高低电平的判断。当发射管发射的红外光线白色的道路时,绝大部分的光线都会经过路面反射回来,而黑色管接收到返回的红外光线时,红外传感器将处于导通状态,out引脚输出低电平;相反,当发射管发射的红外光线黑色的道路时,红外光线被黑色路面所吸收,黑色管检测不到返回的光线,或者返回的光线不足,红外传感器无法导通,进而out引脚输出高电平。该模块主要由二个红外传感器装在车底左右两边来完成,可以通过红外传感器旁边的电位器调节电阻的大小,进而改变红外传感器识别的距离。主要的电路图如图3.2.3.1寻迹模块原理图。
图 3.2.3.1 寻迹模块电路
图 3.2.3.1器件名称及功能介绍:
LM393为电压比较芯片:电压比较;
C1,C2为瓷片电容器:滤波;
R5,R6为限流电阻:限流;
W1,W2为电位器:调节寻迹灵敏度;
RP220:RF为发射端,RX为接收端;RF电信号转化为光信号,RF光信号转化为电信号。
灵敏度的计算:
INA-:RW12VCC/(RW11+RW12)
INA+:RXVCC/(RX+R3)
当 INA+ > INA- 时,没有障碍物,输出高电平;
当 INA+ <= INA- 时,有障碍物,输出低电平,对应的发光二极管灯亮;INA-电压为0V或者5V,输入输出无意义,寻迹失灵。
测距避障常见的方法有红外测距避障法和超声波测距避障法,本课题使用了超声波避障测距法,该方法使用一个HC-SR04 超声波传感器和一个型号为SG90的舵机组合而成。超声波的频率一般大于20KHz远远超出人耳可识别的范围。因而,正常来说人耳是听不到超声波的存在的。因此,使用该方法不会产生噪音的,可以安心正常使用。通过查阅多种资料得出:越高频率的声音,越符合光学特征以及一些常见的反射定律、折射定理。也正是因为这样智能小车在行驶过程中可以根据超声波反射定理测量出前方的距离。而测距避障模块也正是由该原理来实现的,其超声波传感器装在舵机的上面负责测量前方的距离,舵机根据所测出的前方距离达到一定值进行不同位置的测量,如左边和右边。超声波工作时序与工作原理图如图3.2.4.1所示。
图3.2.4.1 超声波工作时序与工作原理图
最简单的跟随设计是基于一个超声波传感器或者一个红外传感器构成,当物体进入被测量的范围之内的时候,小车则会跟随物体做前进,暂停,后退运动。但这样设计的缺陷很明显,就是不能跟随物体左右转,为了解决这个问题,常常需要采用三个传感器,一个测量前方距离,二个判断左右障碍物。至此,本课题在小车的前方选用了一个超声波传感器,并为了小车能智能走曲线,本课题还在小车添加了二个红外传感器,分别装在智能小车超声波传感器的左右二边,这样便能辅助小车进行左右转运动,当只进入了左边,左边的红外传感器接收到返回的红外光线,输出低电平,小车往左边转动。反之,右转。而当二边的红外传感器同时返回的是低电平,则说明小车进入了前进,停止,后退的范围。跟随模块设计如图3.2.5.1所示。
图3.2.5.1 跟随模块设计
机械臂模块主要由舵机以及四个舵机及其亚克力机械臂构架组成,亚克力构架如图3.2.6.1所示。
图3.2.6.1 亚克力构架
先把舵机固定于底板上,再装上左右二边摇臂,在装上机械手,值得注意的是装摇臂的时候需要把螺丝拧到合适位置,不然会出现卡机现象;还有便是需要了解如何通过PWM信号进行舵机的控制。一般来说,使用舵机所需要的舵机转动角度为0度到180度,因此可以根据舵机的250份划分原理,把舵机0度到180度分为250份,每份为0.74度。
控制舵机0度时所对应的PWM为0.5ms,而控制舵机180度时对应的PWM为2.5ms,以此得出控制舵机从0度到180所用到的PWM宽度为2ms;
2ms÷250=8us;
经过计算得出:舵机的PWM信号 = 1度/8us;也就是说需要精确的控制舵机的角度就要使用合适的PWM,根据1度要8us,可以得出:
所需要的度数×8us=需要调节的PWM宽度;
装舵机时常常要熟知舵机的转动角度,一般来说把舵机逆时针扭到尽头便是0度;反之,顺时针扭的尽头便是180度,不过舵机由于本身设计缺陷可能会存在一定误差,因而需要软件调节舵机复位,该方法可下面5.1自由运动模块设计说明。
电源流出的直流电一部分直接给电机驱动模块供电,大概7V左右,一部分经过稳压模块稳压后,流出稳定的5V直流电直接流入Arduino控制板的VCC引脚给Arduino供电以及给其他的模块供电,如寻迹模块,避障测距模块等;这些模块的out引脚都要接在Arduino对应的输入输出引脚上,进而可以这些模块整合起来,在Altium Designer画出其原理图,并且根据其原理图画出了PCB图,最后根据该PCB图定制了Arduino拓展板,以及小车底板,从而完成Arduino智能小车的硬件设计。
本章主要是对电源模块的稳压进行了相关描述;对驱动模块需要驱动的电压进行了分析;对寻迹、测距避障、跟随模块的信息采集原理及其如何实现进行了说明;对机械臂的构成及舵机工作原理解释;最终确定了本课题的原理图以及PCB图,并通过这些图把小车从理论到实物做了出来。