光电循迹小车使用手册 - 范文中心

光电循迹小车使用手册

08/08

光电循迹小车使用手册

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 = P0^0; //舵机信号端口

sbit KeyLeft1 = P1^2; //左转按键端口

sbit KeyRight1 = P1^4; //右转按键端口

sbit KeyLeft2 = P1^1; //左转按键端口

sbit KeyRight2 = P1^5; //右转按键端口

sbit V=P3^7; //速度信号端口

unsigned char TimeOutCounter = 0,LeftOrRight = 2;dianji=10; //TimeOutCounter:定时器溢出计数 LeftOrRight:舵机左右旋转标志

void InitialTimer ( void )

{

TMOD=0x10; //定时/计数器1工作于方式1

TH1 = ( 65535 - 115 ) / 256; //0.25ms

TL1 = ( 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 )

}

void main ( void ) //主函数

{

InitialTimer();

}

void Timer1 ( void ) interrupt 3 //定时器中断函数 {

TH1 = ( 65535 - 110 ) / 256;

{ LeftOrRight = Left2; } if( KeyRight2 == 0 ) { LeftOrRight = Right2;} for(;;) { ControlLeftOrRight();} TL1 = ( 65535 - 110) % 256; TimeOutCounter ++; switch ( LeftOrRight ) { case 0 : //为0时,舵机左转60度 { if( TimeOutCounter

else { ControlPort = 0; } break;} case 1 : //为1时,舵机左转30度

{

if( TimeOutCounter

{ ControlPort = 1;}

else

{ ControlPort = 0; }

break;}

case 2 : //为2时,舵机右转30度

{

if( TimeOutCounter

{ ControlPort = 1; }

else

{ ControlPort = 0;}

break;}

case 3 : //为3时,舵机右转60度

{

if( TimeOutCounter

{ControlPort = 1; }

else

{ControlPort = 0; }

break;}

default : break;}

switch ( LeftOrRight )

{ case 0 :

{

if( TimeOutCounter

{V = 1; }

else

{V= 0;}

break;}

11 //电机低速

case 1 : { if( TimeOutCounter

else

{ V = 0; }

break;}

case 2 :

{ if( TimeOutCounter

{ V = 1; }

else

{ V= 0; }

break;}

case 3 :

{ if( TimeOutCounter

{ V= 1; }

else

{ V = 0; }

break;}

default : break;

}

if( TimeOutCounter == 80 )

{ TimeOutCounter = 0;}

} //电机高速 //电机低速

12


相关内容

  • 简单循迹小车的制作
    竞赛园地 CNT E ST 简单循迹小车的制作 ●●● 作者/邹经鑫,张书腾四川大学电气信息学院 一.设计思路分析 前置的数据采集装置(眼睛)采集道路信息并送到单片机(大脑)进行分析,根据小车相对黑线的不同位置做出控制策略,再将处理信号后发 ...
  • 智能报警越障小车
    目 录 摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 关键词„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 Abstract „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ...
  • 一种门式起重机起升机构保护装置设计
    [摘 要] 介绍了一种门式起重机起升机构的保护装置设计方法,本文对起升机构各保护装置技术参数.特点等进行了详细描述.实践表明,依靠本设计方法生产制作的起重设备完全满足施工需要,且更加安全. [关键词] 起重机 起升机构 保护装置 在现代的基 ...
  • 电脑故障维修技术大全
    电脑故障维修技术大全 1:主板故障 2:显卡故障 3:声卡故障 4:硬盘故障 5:内存故障 6:光驱故障 7:鼠标故障 8:键盘故障 9:MODEM故障 10:打印机故障 11:显示器故障 12:刻录机故障 13:扫描仪故障 14:显示器抖 ...
  • 电子设计大赛设计报告
    2012年福建省大学生电子设计竞赛 指导教师:林惠君 吴建宁 连桂仁 自平衡小车系统 摘要 我们采用模块化设计的方法,设计了一款基于STC12C5A60S2单片机的自平衡小车系统,实现了题目中的基本要求和发挥部分的全部内容. 本系统基于ST ...
  • 智能小车控制系统的设计 论文
    XXXX 学 院 本 科 生 毕 业 论 文 题 目: 专业班级: 学 号: 学生姓名: 指导教师: 论文完成日期年月 郑 重 声 明 本人的毕业论文是在指导老师 的指导下独立撰写并完成的.毕业论文没有剽窃.抄袭.造假等违反学术道德.学术规 ...
  • 电气自动化_毕业设计
    天津机电职业技术学院 毕业设计(论文) (2009届) 题 目 PLC在风淋控制系统中的应用 系(院)别 专 业 电气自动化 班 级 姓 名 指导教师 2011 年 11 月 24 日 天津机电职业技术学院 毕业设计(论文)任务书 毕业设计 ...
  • 验证机械能守恒定律
    实验五:验证机械能守恒定律 1. (2017·泰州摸底调研) 某活动小组利用图甲装置"验证机械能守恒定律". 钢球自由下落过程中, 先后通过光电门A .B , 计时装置测出钢球通过A .B 的时间分别为t A .t B ...
  • 20XX年高考物理选修3-5(动量与动量守恒)试题归类例析
    2014年高考物理选修3-5(动量与动量守恒)试题归类例析 [例1](2014·福建卷)一枚火箭搭载着卫星以速率v 0进入太空预定位置,由控制系统使箭体与卫星分离.已知前部分的卫星质量为m 1,后部分的箭体质量为m 2,分离后箭体以速率v ...
  • 蓝宙电子智能创新实验室
    智能创新实验室建设方案 芜湖蓝宙电子科技有限公司 -飞思卡尔大学计划官方合作伙伴 版 本:Version 2.0 所 有 者:蓝宙电子 日 期:2014.03.12 目录 一. 二. 实验室介绍 . .................... ...