智能无人车是一种履带式移动机器人,目前市场上的无人车大多采用单片机对其进行控制,其优点是体积小,成本低,结构简单,但仅仅依靠单片机远不能使无人车在复杂多变的工作环境中进行及时调整,并且极大地限制了其功能的扩展。基于此不足,本设计主要利用PC机与无人车的无线通信,使无人车在PC机无线指令下完成前进、后退、转弯、打击、生命值显示、调速和自动行驶等功能,并通过车载摄像头实时获取无人车所处环境信息,实现了远程监控。在执行任务时,如遭遇敌方车辆干扰通信,无人车在抵御干扰信号同时进行敌我识别,适时作出反击。
一、智能无人车方案设计原理
无人车控制系统由上位机(PC)控制部分和下位机(教学无人车)控制部分组成。系统结构框图如图1所示。
无人车系统工作原理为:
打开教学无人车电源时,Atmega128单片机通过语音模块使扬声器发出启动提示。当上位机无线控制台及PC端软件准备好后,PC端控制软件通过USB口向无线控制台单片机发出指令,使其配置无线模块相关寄存器,芯片进入指令发射模式;下位机由Atmega128单片机控制,在接收到上位机的指令后通过其集成的PWM外设模块产生2路PWM波和4条转向控制线经电机驱动模块增大驱动能力后控制左右2个电机产生相应的动作。例如,当PC端发出“左转”的指令时,下位机的无线模块接受成功后会自动返回接受成功应答信号。接着Atmega128单片机通过PA口控制L298P,使左侧电机反向转动,右侧电机正向转动,从而实现左转的功能;当PC端发出“打击”指令时,Atmega128则通过PE5口使红外发射管发出相应码制的红外进攻信号;当PC端发出“自动行驶”指令时,Atmega128结合接收霍尔传感器采集回来的数据,通过相应算法来协调左右两侧的电机,使坦克完成直线行走、转过固定角度,行驶固定距离等功能。教学无人车通过连接到PE5口的红外传感器感应对方无人车的攻击信号。如果接收到红外信号,PE5口会输入固定码制的信号,此时主控芯片会将生命参数减一并熄灭一个LED灯,当所有LED灯都被熄灭后,主控模块会通知语音芯片发出阵亡提示,无人车停止一切动作。
二、硬件电路设计
教学无人车控制系统硬件电路设计包括PC端无线控制台部分和下位机无人车控制部分的硬件设计。
1、 PC端无线控制台部分硬件设计
无线控制台部分由PC机、STC12LE5A60S2单片机、NRF24L01无线模块及PL2303组成。PC端控制台软件通过USB口向STC12LE5A60S2发出指令,使其通过SPI串行通信协议配置NRF24L01的相关寄存器,随后芯片进入发射模式,将上位机指令转发给下位机。其设计电路图如图2所示。
2、下位机无人车控制部分硬件设计
下位机硬件由MCU模块、电机驱动模块、传感器模块、无线模块、语音模块、LED生命值显示模块以及电源模块组成。
MCU模块
MCU模块以Atmega128单片机为核心,Atmega128单片机是一款高性能、低功耗的AVR 8位微处理器,处理速度可达1 MIPS/MHz,应用先进的RISC结构,特别是具有I2C、SPI、PWM、RS232串口、ADC、定时器等功能十分全面的外设。该单片机通过SPI串行通讯接口与无线模块连接,通过通用可编程I/O接口与电机驱动模块、语音模块、红外发射管和接收管连接。
电机驱动模块
电机驱动模块用于驱动直流电机,采用L298P电机驱动芯片。L298P是SGS公司的产品,为20管脚的专用电机驱动芯片,内含二个H—Bridge的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46 V、2 A以下的步进电机和直流电机,具有高电压、高电流的特点。电路设计如图3所示。
Enable控制电机停转,接到单片机的PE3、PFA口上,由这两个I/O口产生PWM波控制电机转动。input1—input4控制电机的正反转,接到单片机的PA0-PA3口上。OUT1、OUT2和OUT3、OUT4之间分别接2个直流电机。
传感器模块
传感器模块包括红外模块和霍尔模块两部分。
红外模块包含接收和发射两个功能模块。红外接收模块由一个红外接收管构成,接收对方车辆发射的红外攻击信号。当系统接收到进攻信号时,PE6引脚上会出现一个高电平,触发一次外部中断,在中断服务程序中处理并判断红外数据。如果确认为进攻信号,则使生命值变量减一,同时熄灭一个LED灯。发射模块由一只红外发射管和一个三极管组成,红外攻击信号经过三极管放大后由红外发射管发出。攻击信号为8位数据,当收到进攻指令时,发射模块将程序中设定好的8位数据按位发出。
霍尔模块由两只霍尔传感器和四片磁铁组成,用于测速,以实现调速、自动行驶等功能。磁铁正反安放在左右两个电机减速箱的二级齿轮的边缘上。当教学无人车行驶时,电机带动齿轮转动,两片磁铁就会交替从霍尔元件下面经过,由于两片的磁场方向不同,就会使霍尔元件内部的电子发生不同的偏转,这样,二级齿轮每转过一周就会使霍尔元件产生一个脉冲信号,构成闭环系统。主控芯片接收脉冲信息,通过不同算法可控制两电机完成不同的控制要求。
语音模块
语音模块由WT588D语音芯片和SPI寻址的8M ROM芯片及其外围电路组成。使用前将需要播放的语音烧写在ROM芯片中。语音模块使用三线串口控制模式,这种控制模式由CS,DATA,CLK 3条通信线组成,分别连接到Atmega128的PC0、PC1、PC2 3个I/O口。控制时序根据标准SPI通信方式。
无线模块
无线模块主要包括NRF24L01和Atmega128。NRF24L01采用FSK调制,内部集成NORDIC公司自家的Enhanced Short Burst协议,可实现点对点或是1对6的无线通信,无线通信速度可达2.4 Gbps,并可以通过配置其寄存器实现调频传输。主控芯片通过SPI协议配置NRF24L01的相关寄存器来完成对无线模块的初始化和数据的传输。无线模块的SPI信号线对应的接到Atmega128的PB0-PB3 4个I/O口上,CE端接到PE2,利用Atmega128内部集成的SPI功能进行通信。无线模块电路设计如图4所示。
三、软件设计
软件设计包括控制端软件的设计和终端软件的设计。
1 、控制端软件设计
无人车控制台的主控软件将键盘指令转化为控制码发往下位机,控制小车的动作并显示下位机发来的状态信息。该软件利用Labview串口通讯将键盘指令转化为二进制字符串送到上位机。利用模拟SPI的方式,通过STC12LESA60S2配置NRF24L01的寄存器使其处于发射模式。当收到PC串口发送的数据时,NRF24L01在单片机的控制下将数据逐位发出。设计的控制端软件如图5所示。
2、终端软件设计
教学无人车的终端软件主要包括无线接收程序、驱动控制程序等。程序中定义变量Life为生命值标识,定义Date为小车的控制标识,定义函数Motor()为电机控制函数。流程图如图6所示,主要分为以下步骤:
1)小车启动后,首先初始化各I/O口、系统中断、SPI接口以及NRF24L01的相关寄存器。小车的无线模块配置为接收模式。
2)下位机接收到无线信号后会产生一个中断,将数据通过SPI送到Atmega128中。在控制程序中,用多分支选择结构switch—case判断Date的值,通过调用Motor()函数控制电机做出相应动作。
3)接收到红外信号时,经判断若为有效信号,则使生命值标识Life减一。同时判断当前的Life值,设置PA口的值控制LED灯(生命值)的显示。
四、总结
实验结果表明,教学无人车在无障碍区域无线通信有效传输距离可达80~100米,利用车载摄像头可以实时获取无人车所处环境信息,实现远程监控。其创新点是采用了PC控制模式和单兵运行模式两种方式对无人车进行控制,极大地增强了无人车的功能性和环境适应能力。在实际对抗演练中,无人车在遇到干扰的情况下顺利完成货物运输、环境勘探、反击敌方车辆等功能,取得了良好的控制效果。该设计可广泛应用于短途货运客运、应急救援、恶劣环境下自动作业等领域。