光电循迹小车使用手册.doc_第1页
光电循迹小车使用手册.doc_第2页
光电循迹小车使用手册.doc_第3页
光电循迹小车使用手册.doc_第4页
光电循迹小车使用手册.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论