单片机进行分析处理,通过控制算法对驱动系统发出控制命令,驱动小车左、右轮的电机使小车沿着**的黑线轨迹前进。系统结构如图 1 所示。
1.2智能
本设计中,智能小车采用后轮驱动,后轮左右两边各用一个电机驱动,由单片机输出PWM调制信号控制后面两个轮子的转速从而达到控制转向的目的,前轮是万向轮,起支撑的作用。循迹的路径是用黑色胶带在白色地板上黏出一条首尾相连的跑道,黑色胶带的宽度为2cm左右。循迹传感器采用TRCT5000红外对管反射式光电传感器,呈“一字型”安装在车的前端。循迹是指小车在白色的地板上循黑线行走,由于黑线和白色地板对光线的反射系数不一样,控制芯片根据循迹传感器模块返回的信号来判断“道路”的情况。小车在行驶过程中,红外对管传感器地发射管不断的发射红外光,当红外光遇到白色地板产生漫反射,反射光被红外对管的接收管接收;如果遇到黑线则红外光被吸收,红外对管的接收管接收不到红外光,该信号的变化通过电路转化为高低电平的变化,单片机检测传感器信号的变化,进行分析再做出相对应的响应。本设计中采用了8对红外对管传感器,采用“一字型”分布,当中间的传感器检测到黑线时,小车直线前进;当靠左边的传感器检测到黑线时,小车向左拐;当靠右边的传感器检测到黑线的时候,小车向右拐。采用多个红外对管传感器可以使小车的行驶更加灵活,拐弯时更加顺畅。另外,红外对管传感器离地面垂直距离为4cm左右,能在没有强光的干扰下,完全满足自动循迹的要求,具有很好的**性与抗干扰能力。
2硬件电路设计
2.1STC12C5A60S2单片机**小系统模块
单片机是整个智能循迹小车的核心,控制系统的所有模块工作。本系统中,考虑到小车的控制系统需要用到两路的PWM脉冲调制、较大的Flash存储空间和较快的数据处理能力,所以采用的是STC12C5A60S2单片机。STC12C5A60S2使用宏晶科技高密度非易失性存储器技术制造,是高速/低功耗/**强抗干扰的新一代 8051 单片机,指令代码完全兼容传统 8051,但速度快 8 ~ 12 倍。片上具有 8 kbyte 在系统可编程 Flash 存储器,Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位 CPU 和在系统可编程 Flash ,使得 STC12C5A60S2为众多嵌入式控制应用系统提供高灵活**有效的解决方案。
STC12C5A60S2 具有以下标准功能: 8 kbyte Flash,256 byte RAM,32 个 I /O 口线,看门狗定时器,8 路 10位精度的 AD 转换,2 路 PWM,2 个数据指针,4 个 16位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC12C5A60S2可降至 0 Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。所以本设计采用该芯片作为控制处理器。
2. 2 稳压电源模块
在本设计中,因为考虑到小车电机的灵活工作需要较大的驱动能力,系统供电需要较高的电压和较大的驱动电流,所以系统的供电采用的是 7. 2 V 的镍镉充电电池。
在该智能小车系统中,除了电机的工作电源使用7. 2 V 镍镉电池直接供电外,系统各模块的工作电压都是 5 V。稳压模块的原理图如图 3 所示,采用的是LM2940 低压差三端稳压器,LM2940 具有大电流、低功耗、电路简单**等优点。该稳压芯片输出电压 5V,**大电流可达 1 A,**小输入输出电压差小于 0. 8V,**大输入电压 26 V,内含有电流限制、过热保护、电池反接保护电路。
2. 3 电机驱动模块
本设计小车使用的是两个直流电机,直流电机采用 PWM 信号加上电机驱动电路的方式驱动。在驱动电路的选择上,可以使用 MOS 管搭建驱动电路,但电路比较复杂,**性不高; 另外,也可以使用集成的半桥驱动芯片搭建驱动电路,不过考虑到小车要实现双电机的速度控制和前后转,如果使用半桥驱动芯片搭建,则驱动电路使用的驱动芯片较多,电路过于复杂庞大。综合考虑,本设计采用 ST 公司的专用驱动芯片L298N 作为电机驱动芯片,L298N 是一个具有高电压大电流的全桥驱动芯片,它响应频率高,一片 L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,驱动能力大,操作方便,稳定性好,性能优良。采用电机专用驱动芯片 L298N 进行电机驱动控制,它的使能端可以外接高低电平,也可以利用单片机进行软件控制,极大地满足各种复杂电路需要。
另外,L298N 的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。电机驱动模块的原理图见图 4。L298N 的逻辑控制见表 1,其中: L 为低电平; H 为高电平; ※为电平。
2. 4 循迹传感器模块
循迹检测采用了 TCRT5000 红外反射式光电传感器,该传感器采用高发射功率红外光电二极管和高灵敏度光电晶体管。在小车的前部呈“一字型”安装 8对 TCRT5000 红外对管,与路面的垂直距离控制在 4cm 左右。TCRT5000 测试电路如图 5 所示。黑线检测原理是红外发射管发射光线到路面,红外光遇到白底则被反射,接收管接收到反射光,经施密特触发器整形后输出低电平; 当红外光遇到黑线时则被吸收,接收管没有接收到反射光,经施密特触发器整形后输出高电平。单片机就是否收到反射回来的红外光信号为依据来确定黑线的位置和小车的行走路线。循迹传感器模块的部分电路原理图如图 6 所示。
3 软件设计
3. 1 系统软件
系统软件主要采用 C 语言编写,其流程图如图 7所示,本系统采用 PWM 信号来控制直流电机的速度及正反转,主程序先进行系统初始化,配置好相关的寄存器,然后进入循迹模式运行,不断地扫描与红外探测器连接的单片机 IO 口,将路径信息进行判断处理,单片机再将相应的信号发给电机驱动模块纠正小车的运行状态,从而达到自动循迹的功能。
3. 2 系统初始化函数程序
系统初始化函数于程序如下:
void init( )
{
CCON = 0X00;
CH = 0;
CL = 0;
CMOD = 0X02;
CCAP0H = 0X80; / /初始化 PWM0 的占空比为 50%
CCAP0L = 0X80;
CCAPM0 = 0X42; / /允许比较器功能、PWM 脉宽输出
CCAP1H = 0X80; / /初始化 PWM1 的占空比为 50%
CCAP1L = 0X80;
CCAPM1 = 0X42;
CR = 1; / /启动 PCA 计数器阵列
}
4 结 语
本设计中的智能循迹小车,采用 TRCT5000 红外传感器为循迹模块,单片机 STC12C5A60S2 为控制模块,L298N 为电机驱动模块,LM2940 为电源模块。小车使用单元化的电路设计,使得系统简洁,响应快,性能稳定。经测试表明,小车顺畅的实现了预期设定的循迹功能。为了使小车更加智能化,还可以为小车扩展壁障、自动识别、自动报警、自动保持安全距离、车速检测和远程控制等功能。