摘 要:当前的电动小车基本上采取的是基于纯硬件电路的一种开环控制方法,具有直线行驶、前进、后退、转弯、停车等基本功能,但在某些特殊场合下却不能采集到有用信息。文章正是在这种需要之下,以ATmega16单片机为控制核心,用RF2401无线收发模块进行遥控通信,用DS18B20进行温度检测,同时采用超声波等传感器材检测信号和障碍物,最后充分利用单片机的串口资源和运算、处理能力,开发设计了一种智能控制系统,从而实现了小车的测温、躲避障碍物等功能。
0 引 言
当前的电动小车基本上采取的是基于纯硬件电路的一种开环控制方法, 这种电动小车虽然也具有直线行驶、前进、后退、转弯、停车等基本功能,但在某些特殊场合,电动小车却无法采集到自动化控制领域的有用信息。在这种情况下,就需要开发用于自动化控制领域的智能小车。为此,本文以ATmega16 单片机为控制核心,用RF2401 无线收发模块进行遥控通信,同时用DS18B20 进行温度检测,并采用超声波等传感器材来检测信号和障碍物,最后利用单片机的串口资源和运算、处理能力,开发设计了一种智能控制系统,从而实现了小车的测温、躲避障碍物等功能。
1 总体方案及器件的选取
1.1 总体方案
本系统以单片机为核心,增添其他外围设备,如双电源模块、超声波探测器、显示模块、无线收发模块等,以两个直流电机经过减速箱作为驱动,通过主控单元来处理传感器上信号,处理数据后完成相应的操作,以实现相应的功能。
小车总体设计方案如图1 所示。
1.2 器件的选取
本设计的车体设计由笔者制作。主控芯片采用Atmel 公司推出的高性能、高速度、低功耗的ATmega16 AVR 单片机作为电动车的主控制芯片;电机选择使用控制方法较为简单的直流减速电机作为电动车的驱动电机;电机驱动选择可直接对电机进行控制,而无须隔离电路的L298N 作为电机驱动芯片。
系统无线收发模块采用Nordic 公司能满足较大传输速率无线通信需求的NRF24L01 芯片;对于电源的处理,本设计采用2 节锂电池12 V 来驱动电机芯片,然后用7805 稳压管来形成5 V 电压给单片机供电,无线传感器NRF24L01 的电源用3.3 V 电压提供。
2 硬件实现
2.1 ATmega16 单片机
AVR 单片机是Atmel 公司推出的较为新颖的单片机,其显着的特点为高性能、高速度、低功耗。
而ATmega 系列是AVR 单片机中的高端产品。单周期可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用6~16 MHz,故最短指令执行时间为250~125 ns.还有I/O 第二功能,内部有时钟电路、10 Bit AD 功能,片内资源很丰富。
2.2 ATmega16 最小系统图ATmega16 单片机的最小系统如图2 所示。
最小系统主要包括晶振电路、电源电路、复位电路等。
2.3 电机驱动部分
该模块主要由L298 芯片来控制两个电机的正反转,以及改变电机的转速。L298 芯片是一种高压、大电流双全桥式驱动器。其中,SENSEA、SENSEB 分别为两个H 桥的电流反馈脚,不用时可以直接接地。
VCC、VS 接电源引脚,电压范围分别是4.5~7 V、2.5~46 V,设计中VCC 端与单片机电源端共用5 V 工作电源,VS 端独立地接9 V 电源。ENA、ENB 为使能端,低电平禁止输出。IN1、IN2、IN3、IN4 为数据输入引脚,OUT1、OUT2、OUT3、OUT4 为数据输出引脚。根据L298N 的引脚和输出引脚的逻辑关系,将IN1、IN2 经过非门连接,IN3、IN4 经过非门连接,即IN1 和IN2 永远是相反的,一高一低,IN3、IN4 也一样,通过改变ENA、ENB 就能分别改变左右轮的速度。
在SENSEA、SENSEB 端输出采集电压信号, 再经过LM358 运放放大,送给ADC 处理,即可得到电机的工作电流,具有过流保护功能。图3 所示为系统电机驱动电路和电流检测电路。
2.4 稳压电源部分和外接传感器部分
设计时,可采用7805 稳压芯片为电路提供稳定的5 V 电压,1117 芯片为电路提供3.3 V 电压。由于本系统的电源电路比较简单,而且应用也比较广泛,所以本文就不详细介绍了。
系统中的传感器包括温度传感器DS18B20、霍尔元件速度传感器等,其电路都比较简单。因此,只需在电路板上预留3 线接口,即电源、接地、数据。
2.5 显示部分
本系统使用LCD12864 作为电路显示元件,LCD12864有20 个引脚,图4 所示是LCD12864 的驱动电路图。
本设计采用8 位数据线并行口方式驱动,三根控制线为RS( 命令/ 数据选择)、R/W( 读/ 写控制)、EN( 使能端),背光通过三极管驱动,采用PWM 来控制背光亮度。
3 小车程序设计
小车程序设计时,首先进行端口初始化,然后进行PWM初始化,再NRF24L01 初始化,将NRF24L01 设为接收状态。
收到命令,则执行小车的相应函数,否则,采集传感器数据。
然后设置NRF24L01 为发射状态,以发送数据。发送完毕,再将NRF24L01 设置为接收状态。图5 所示是其系统主程序流程图。
4 结 语
目前,市面上寻迹的、避障的,多传感器数据融合等基于单片机编程的智能小车已经发展开了,用于玩具、大学生实践比赛、工业数据检测,以及用于生活的智能电动小汽车也已有了一定发展,在充满环保、节能、科技的未来社会,智能小车的应用将无处不在。
本课题主要研究了多功能智能小车的技术,多功能智能小车的研制课题涉及到机械电子、传感器技术、驱动控制技术、人工智能等多个领域的研究及技术融合。本课题研制的演示系统高度的智能化、人性化,并且具备良好的安全性和环保性。