1、项目概述
智能小车是以轮子作为移动机构,并且能够实现自主行驶的机器人,又被称为轮式机器人。由于具有智能化的特点,可以应用于不适合人类工作的环境中,例如灾难救援、户外探险等。智能小车有别于遥控小车,因为后者需要操作人员来控制其转向、启停和前进后退,以及控制其速度,常见的模型小车,都属于这类遥控车。智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无须人工干预,也可以通过修改智能小车的程序来改变它的行驶方式。
智能小车的典型特点有:
1、拥有至少一个微控制器,通过微控制器来实现对行驶方向、启停和速度的控制。
2、拥有多个各种功能的传感器,以获取外界环境的情况,以供控制器做出准确的决策。
2、项目架构
本节将要介绍一种基于Arduino与LabVIEW的无线遥控智能小车,可以实现自主(巡线和避障)与遥控两种功能,并且可以在两种功能之间进行切换。智能小车采用Arduino作为控制核心,上位机软件采用LabVIEW,两者通过APC220无线数传模块实现无线通信。无线遥控智能小车总体框图如下图所示:
项目资源下载请参见:LabVIEWArduino无线蓝牙遥控智能车【实战项目】-单片机文档类资源
智能小车的车体采用两个驱动轮、一个万向轮的三轮式小车模型,驱动电机采用直流减速电机,电机驱动模块采用VNH2SP30模块,循迹传感器采用OPENJUMPER红外巡线传感器OJ-CG307,避障传感器采用OPENJUMPER红外避障传感器OJ-CG303。
智能小车的巡线场地为白底黑线,线宽约10mm,场地大小约为200cm×300cm。
3、传感器和控制器
3.1、传感器
本节介绍的无线遥控智能小车,可以实现自主与遥控两种功能,并且可以在两种功能之间进行切换。当小车处于遥控状态时,操作者通过操作LabVIEW上位机软件,利用APC220串口无线模块向小车上的Arduino控制器发送遥控指令,从而使小车做出指定的行为动作。而当小车处于自主状态时候,小车上的Arduino控制器通过四个红外巡线传感器和一个红外避障传感器获取小车相对于黑线的位置和前面是否有障碍物的信号,并根据程序中设置的逻辑来控制直流减速电机,以实现巡线和避障的功能。
红外巡线传感器模块是利用红外对管检测模块本身发出的红外线的反射光(深色反射弱,浅色反射强),来为循迹机器人提供白线或者黑线的跟踪,既可以检测白底中的黑线,也可以检测黑底中的白线,若检测到白线则输出高电平,若检测到黑线则输出低电平。
红外避障传感器发射红外线并根据反射回来的红外光判断前方是否存在障碍物,无障碍物时输出高电平,有障碍时输出低电平,在信号输出同时有指示灯指示状态,无障碍物时LED为绿,有障碍物时为红。同时内置38kHz的信号发生器,抗干扰能力强。通过调节模块上的2KΩ电位器,可以调节传感器的探测距离。
红外巡线传感器模块如下图所示:
红外避障传感器模块如下图所示:
3.2、控制器
一般情况下,直流电机需要很大的驱动电流,而像Arduino之类的控制器输出的逻辑电平无法直接驱动直流电机,特别是大功率的减速电机,所以就需要通过驱动器件给直流电机提供工作电流。
Ard