基于Arduino技术的智能小车设计
文章研究基于Arduino技术的智能小车,分析了智能小车结构,从小车的硬
件设计到软件设计进行详细阐述,尤其对小车硬件部分进行设计,包括电源模块、
单片机系统、循迹模块、鸵机转向模块、后轮电机驱动模块等。为众多技术爱好
者设计个性化的智能小车提供一个解决方案。
标签:Arduino;智能小车;设计
1 Arduino及智能小车的基本概念
Arduino源于意大利的一位教授的研究,它一个开源的单板机控制器,向所
有人开放其源代码、软硬件平台和开发环境,目前有大量的学者使用这一平台进
行研究。
我们所说的智能小车应该区别于普通的遥控汽车和玩具,它应该具有环境的
感知能力,通过各种传感器采集环境信息并做出相应反应,能按要求自动行驶,
不需要人工操纵和干预。
2 智能小车车体结构
设计智能小车首先应该确定小车的基本结构,其主要包括以下几个部分:(1)
循迹模块:指小车利用红外发射装置发射红外线后,照射物体表面返回量的多少
来测定小车的具体的位置,以进行循迹。(2)舵机转向模块:指通过设置一定占
空比的方波来控制舵机转过的角度,舵机由于力矩大,响应速度快等优点,经常
使用在自动小车转向装置中。(3)电机驱动模块:指通过专用电路对电机进行驱
动,单片机给出控制信号控制电机正常运转。(4)单片机模块:这是小车的控制
中心,为设计方便,文章使用51单片机。(5)电源模块:因设计需要,我们给
小车单独供电,设置独立的电源模块,使之稳定运行。
3 硬件设计
3.1 电源模块设计
小车电源是整个系统稳定工作的前提,所以因此电源设计合理, 小车电池
电压要求在6-8V左右,在考虑电池损耗和稳压的情况下,我们采用低压差的稳
压芯片。同时为防止大电流器件对单片机形成的干扰,大电流器件和单片机要分
开供电。
3.2 单片机系统设计
单片机是小车的控制中心,设计一个小巧单片机系统是智能小车平稳运行重
要保证,在设计单片机系统时需要合理考虑调试扩展的需要,原则上要把所有IO
口引出,合理集成LED显示、蜂鸣器等外围模块。同时考虑单片机的电源设计,
以确保系统稳定供电。
3.3 循迹模块设计
在本设计中我们采用红外一体式发射接收器。小车循迹就是利用红外线照射
在不同颜色的物体表面具有不同的反射强度的特点,在小车行驶过程中首先由发
射器不断地外界发射红外光,当红外光在遇到黑色表面时,由于黑色吸光,红外
线遇到黑线将被大部分吸收,那么反射到接收管的红外光就较少,在电路上表现
为电阻较大,当红外光照射到白色表面时会发生漫反射,反射到接受管的红外线
就比较多,在电路上表现为电阻较小,这样通过外接的电路检测电路电阻的大小
就可以判断小车的行动状态。单片机就可以依据反射回来的红外光多少确定黑线
位置和小车行走路线,使智能小车在不需要人工干预的情况下自动行驶。
3.4 舵舵机转向模块设计
舵机也叫做伺服电机,它可以通过程序连续控制其转角,故经常应用在智能
小车中以实现转向要求。舵机是智能小车转向的控制机构,舵机一般由舵盘、减
速齿轮组、直流电机、位置反馈电位计、控制电路等几部分组成。 它的工作原
理是,由控制电路板通过控制信号控制电机转动,电机带动齿轮组,齿轮组减速,
舵机转动。同时齿轮组将带动位置反馈电位计,电位计的变化将即时输出一个电
压信号,控制电路板根据获得的信号就可以决定电机的转动方向和速度,从而控
制目标。另外舵机所需电压较大,单片机不能直接供应,因此要求舵机要和单片
机分开供电,一般额定工作电压为6V。
3.5 后轮电机驱动模块设计
一般情况,单片机的驱动能力无法驱动电机,故必须外加驱动电路。最为常
见的比如H 桥电路,这种电路由4个三极管和一个电机所组成。其基本原理是
通过导通驱动电路对角线上的一对三极管,形成基本回路使电机转动。电流在流
经电机时,由于导通方式不同,可能会从左右不同的2个方向流过电机,以控制
电机的向左转还是向右转。虽然这种电路可以方便的实现电机正反转,但在实际
使用中,因电路设计不当,较容易烧坏三极管,故在设计电路时,我们考虑用硬
件电路控制三极管的开关,以避免导通错误。在原有基电路的基础上设计增加 4
个与门和2个非门。每一侧与门控制2个三极管,非门用于区别同一侧的三极管。
4个与门由同一个“使能”导通信号相连, 2个非门通过提供一种方向输人。由于
非门的使用,则无论电流从哪个方向流入,在驱动电路的同侧都只会有一个三极
管导通,以确保电流无论从哪个方向导入都将流经电机,而不会烧坏三极管。通
过改进,电机的运转只需要用到一个使能信号和两个方向信号。其导通原理如图
2所示,在使能信号为1的情况下,令DIR-R信号为1,DIR-L信号为0,则左
侧三极管Q1和右侧三极管Q4将导通,电流将从Q1流经电机,再从Q4流出;
反之DIR-R信号变为0,DIR-L信号变为1,那么左侧三极管Q2和右侧三极管
Q3导通,电流则从右至左流过电机。
4 程序设计
4.1 PWM程序设计
脉冲宽度调制简称PWM,它是通过对一系列脉冲的宽度进行调制,对模拟
电路进行控制的一种技术,它在通信、测量等领域被广泛应用。PWM使用高分
辨率的计数器对具体的模拟信号进行编码,本质上,它依旧是数字形式,理论上,
只有有足够的带宽,任何模拟信号都能用PWM来编码。文章设计的51单片机
的PWM的程序。
4.2 程序总体设计
程序设计是智能小车能否完成的重要环节,在设计时需要考虑全面仔细,在
巡线模块、舵机的转动角度、后轮的驱动等几个部分进行设计和测试。智能小车
程序设计一般使用查询方式,程序启动,先初始化后,首先查询光电管的状态,
小车进入循迹模式后,将不停地开始扫描I/O口是否有变化,如果有变化,则程
序开始进行判断,选择舵机的控制信号,根据控制信号电机转动控制舵机转动角
度,同时后轮驱动模块控制后轮的转速,实现小车智能控制行驶的目的。
5 结束语
目前,研究Arduino人越来越多,众多技术爱好者都希望能亲手设计一个智
能小车,智能小车的设计应该包括硬件设计和软件设计两部分,在硬件设计部分
包括电源模块、单片机系统、循迹模块、鸵机转向模块、后轮电机驱动模块等内
容,在软件设计部分包括PWM设计、舵机控制、后轮电机控制、主程序设计等
几部分。
参考文献
[1]胡长晖,叶梦,等.基于电磁技术的智能车路径识别的研究[J]. 湖北师范
学院学报(自然科学版),2011(2).
[2]纪欣然.基于Arduino开发环境的智能寻光小车设计[J].现代电子技术,
2012(15).
[3]卞云松.基于Arduino单片机的避障小车机器人[J].自动化技术与应用,
2014(1).
作者简介:陈开军,浙江绍兴,副教授,研究方向是物联网技术、软件工程。