光电循迹小车使用手册
智能车调试总共有两个阶段:第一阶段调试自行开发的硬件电路板和各个子程序、主程序,第二阶段自制了不同跑道调试智能车的速度和转向性能等,最后根据试验修改软硬件。
3.1传感器及外围电路的调试
反射式红外传感器的调试分为机械调试和电路调试。机械调试的主要任务是保证传感器组位于小车的最前端,并与地面保持合适的距离。经过多次试验,测得较为合适的距离是12mm。电路调试的目的是使各个传感器的电压输出值均保持在一定值(1.5V)附近。其操作过程是将传感器电路放于白纸上一定高度处,调节电位器使传感器的电压输出端压降为1.5V左右。
图1.1程序主界面
在此界面中,用户可以在菜单工具栏中的“文件”、“工具”、“帮助”等菜单进行操作;同时,也可以操作菜单工具栏下方的选项:“赛道设计”、“赛车设计”、“仿真模拟”、“结果回放”,进入相应的操作子界面进行进一步的操作。
赛道设计:在赛道设计子界面中,可以进行赛道的设计操作,如新建及修改赛道、赛道基本参数设定等。
Plastid主要有以下几大特点:
1.赛道与赛车环境模拟
系统分别针对赛道与赛车建立模型,使用者可以方便的自行设计直线,弯道等各种形状的赛道,并可根据赛车的实际情况调整赛车的参数,使用方便灵活。在条件限制,没有办法制作试验赛道或智能车尚未制作完成的情况下,更可以在该系统下验证,调试控制算法。
2.控制算法仿真验证
系统硬件框架图如图2.1所示:
图2.1系统硬件框架图
2.2舵机控制模块
舵机主要是用来控制智能车的运动方向,通过调节小车前轮转动的角度来改变小车运动方向的。智能车的角度控制是通过单片机输出PWM信号对舵机进行控制的,舵机内部有一个基准电路,能产生周期为20ms,宽度为1.5ms的基准信号,当PWM信号输入到舵机时,舵机内部产生一个直流偏置电压,此电压与电位器的电压比较,将获得电压差输出,最后,电压差的正负输出到电机驱动芯片决定舵机的正反转。因此,当单片机输出一定占空比的PWM光电时,舵机就会转动一定的角度。
3)传感器视窗
显示传感器信号,同“赛车测试”。
4)行驶参数区
显示当前时间,赛车车速、加速度、前轮转角、偏差距离、位置等状态参数。偏差距离:赛车中心点到赛道中心线的最短距离。
5)行驶曲线区
显示速度和偏差距离的历史曲线,用于观察两者变化的趋势。是评估控制算法效果的重要依据。
2.小车硬件介绍
2.1系统硬件概述
系统采用纯软件仿真形式,通过将控制程序编写成dll文件,系统调用dll文件来实现仿真。Dll的编写可以使用VC6,VC2005,Delphi7,Delphi2006.使用者可以根据自身情况,选择最适合自己的编程环境来编写程序。验证调试后的算法代码,也可以很方便的移植到单片机中。
3.路径识别方案分析
系统提供了广泛使用的光电传感器和CCD传感器模型,使用者可以自行设计传感器的数量及排列方式,位置,在系统中进行仿真,通过分析比较,从而获得优化方案。很多程度上解决了实地试验中更换传感器麻烦,费时的问题。从而极大提高方案分析效率。
舵机输出转角与控制信号脉宽之间的关系如图2.2所示。
图2.2舵机输出转角与控制信号脉宽之间关系
2.3单片机系统模块
单片机模块主要负责道路的识别、获取智能车的速度、输出驱动电机的பைடு நூலகம்制信号和算法的实现,通过串口驱动电路中的RS-232电平转换芯片,单片机可以利用异步通信协议与PC机通信。RS-232电平转换芯片可以实现TTL电平与RS-232电平之间的转换,然后通过9芯串行口与PC进行串口通信。单片机及外围电路如图3.4所示:
else
{ControlPort = 0; }
break;}
case 1 : //为1时,舵机左转30度
{
if( TimeOutCounter <= 6)
{ ControlPort = 1;}
else
{ ControlPort = 0; }
break;}
case 2 : //为2时,舵机右转30度
{
{
TH1 = ( 65535 - 110 ) / 256;
TL1 = ( 65535 - 110) % 256;
TimeOutCounter ++;
switch ( LeftOrRight )
{
case 0 ://为0时,舵机左转60度
{
if( TimeOutCounter <= 5)
{ControlPort = 1; }
图1.2仿真系统的软件架构
基本模型层包括赛车模型与赛道模型,用户可根据实际情况设定模型参数如赛道参数、赛车参数、电机参数等等,它为整个系统提供了底层的物理模型驱动,仿真结果在此基础上计算而得。传感器层包括传感器种类、数量以及安装位置的设置,用户可以根据自己参赛队的实际的条件选择合适的传感器方案,同时也可以暂时设定一个方案,以后再作进一步的调整。在控制算法层,用户可以提供自己编写的算法以供仿真使用。仿真环境层在各个模型参数设置完毕、初始化成功的条件下,通过前面所设置的赛车、赛道模型以及接受控制算法所输出的控制信号(电机控制、转向控制信号),计算出车的行驶路线及各个运动、机电状态参数,并即时地将数据传回控制算法层。在仿真过程中,系统将仿真过程中的一些重要状态参数记录下来,并可将结果保存为仿真记录文件。在回放模式中,用户可调用仿真保存的仿真记录文件,对其仿真结果进行后期分析和处理,进而改进自己的赛车设置以及控制算法。
图2.3单片机最小系统电路图
第3章开发与调试
在智能车调试的过程中主要采用的工具是keil编程软件,51单片机程序下载器以及Proteus软件,keil软件可以将C++原程序代码生成89C51单片机可以识别的.hex文件;而51单片机程序下载器可以将生成的.hex文件烧录到89C51单片机中,用来处理光电传感器识别的信号以及控制电机、舵机的运行;Proteus软件可以进行电机和舵机的功能模拟,加快设计进程。此外还用到了万用表,电烙铁,数字示波器等试验设备。
if( KeyRight2 == 0 )
{LeftOrRight = Right2;}
}
void main ( void )//主函数
{
InitialTimer();
for(;;)
{ ControlLeftOrRight();}
}
voidTimer1 ( void ) interrupt 3 //定时器中断函数
赛车设计:在赛车设计子界面中,用户建立自己的小车模型,并根据自己小车的实际情况对相关参数进行设置。同时,我们也提供了一些默认参数供用户调试。
仿真模拟:完成前面的赛道和赛车设计之后,在仿真模拟子界面中,可以完成仿真系统最重要的功能——仿真模拟,为用户编写的算法作一个定性的评估;
结果回放:在结果回放子界面中,可以观看仿真模拟之后保存的结果,用户可以通过播放、暂停、步进、步退等功能操作回放过程,分析回放结果。
舵机本身是一个位置随动系统。它由舵盘、减速齿轮组、位置反馈电位计、直流电机和控制电路组成。通过内部的位置反馈,使它的舵盘输出转角正比于给定的控制信号,因此对于它的控制可以使用开环控制方式。在负载力矩小于其最大输出力矩的情况下,它的输出转角正比于给定的脉冲宽度。
舵机接口一般采用三线连接方法,黑线为电源地线,红线为电源线。一般采用两种标准,4.8V和6V。另外一根连线(蓝色或者黄色)为控制信号线。控制信号为20ms左右的脉冲信号,脉冲信号的宽度决定舵机输出舵盘的角度。
光电循迹小车使用手册
1.仿真软件介绍
在做实物之前,可以用仿真软件plastid进行在线仿真。这样不仅可以加快设计进度,同时可以减少实际电路的调试,减少出错,节约成本。
Plastid是为“飞思卡尔”杯全国大学生智能车邀请赛开发的智能车仿真系统,不仅可以针对不同的赛车,赛道,路径识别方案,控制策略等内容进行仿真和相关分析,还增添了许多新的功能,使仿真系统更接近于实际情况,为使用者提供更好,更真实的虚拟仿真平台。
sbit KeyRight2 = P1^5;//右转按键端口
sbit V=P3^7; //速度信号端口
unsigned char TimeOutCounter = 0,LeftOrRight = 2;dianji=10; //TimeOutCounter:定时器溢出计数LeftOrRight:舵机左右旋转标志
此外,小车由直道渐入弯道时,为防止小车速度过大因惯性作用冲出车道,需要在此时对直流电机进行减速。此外还要找到临界速度,看超过多大速度小车易于冲出赛道,积累一些经验。
附录A
小车实物图
附录B:
小车源程序
#include <reg52.h>
#define Left1 1//宏定义,左转
#define Right1 2//宏定义,右转
3.4整体调试
各部分子电路调试结束后,对小车整体进行调试。先另小车以某一较低的速度行驶,通过弯道时保证有较合适的舵机转角。在舵机转角调试过程中得到的经验值的基础上进行修改。利用软件对参数进行修改,提高小车直流电机的转速和修改舵机转角。如此反复进行,直到得到较为合理的经验值。先让小车行驶稳定,在此基础上逐渐提高小车速度。
赛车设计包括:赛车基本参数设置、电机参数设置、舵机参数设置、添加并设置传感器参数四个方面。获得并设置准确的各种参数,是一个好的赛车模型的基础。
图1.5仿真界面
仿真开始之后,系统提供了5块区域显示赛车行驶过程中的各种状态参数:
1)主视窗
显示局部区域的赛车运行姿态,用于细节观察。
2)全局视窗
显示全局信息,用于观察赛车运行全局状态。
3.3直流电机的调试
舵机和传感器电路调试完成后,将直流电机接入电路,先不将小车放到跑道上,在白纸上稍微将后轮悬空,用黑线在下面移动,用示波器观测电机两端的PWM信号是否按要求改变,确认无误后可以拿到跑道上进行试车。让小车在一段直道行驶后,进入一曲率半径为最大值的曲线。反复试验,即可得出保证小车不驶出轨道的最大占空比。由此计算便得出直流电机的最大转速,此后的软件控制过程中需保证直流电机的转速不大于此值。