武汉科技大学级智能汽车设计及制作论文.docx

上传人:b****2 文档编号:2458941 上传时间:2022-10-29 格式:DOCX 页数:16 大小:1.44MB
下载 相关 举报
武汉科技大学级智能汽车设计及制作论文.docx_第1页
第1页 / 共16页
武汉科技大学级智能汽车设计及制作论文.docx_第2页
第2页 / 共16页
武汉科技大学级智能汽车设计及制作论文.docx_第3页
第3页 / 共16页
武汉科技大学级智能汽车设计及制作论文.docx_第4页
第4页 / 共16页
武汉科技大学级智能汽车设计及制作论文.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

武汉科技大学级智能汽车设计及制作论文.docx

《武汉科技大学级智能汽车设计及制作论文.docx》由会员分享,可在线阅读,更多相关《武汉科技大学级智能汽车设计及制作论文.docx(16页珍藏版)》请在冰豆网上搜索。

武汉科技大学级智能汽车设计及制作论文.docx

武汉科技大学级智能汽车设计及制作论文

二○一三~二○一四学年第一学期

信息科学与工程学院

自动化系

课程设计计划书

 

班级:

自动化1106

课程名称:

智能汽车课程设计

指导教师:

章政

学生备注:

学号:

二○一三年1月6日

 

基于红外寻迹型智能汽车设计与制作

为了方便智能汽车的结构设计,在设计的初期我们就打算采取模块化的设计原理,对智能汽车实行模块化的设计。

这样不仅提高了设计的工作效率,电路的是实现也很容易,模块与模块之间只要实行简单的接口对接技术就可以了。

如果出现了故障,更换模块也很方便。

论文以智能汽车的设计与制作的实现流程进行模块化的介绍:

第一节:

制作技术的整体方案;

第二节:

设计的思路;

1.硬件设计与实现

2.软件设计与实现

第三节:

制作模块调试过程;

第四节:

总结与回顾

制作技术的整体方案

全国大学生“飞思卡尔”杯智能汽车竞赛是在规定的模型汽车平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、电机驱动电路以及编写相应软件,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。

制作智能汽车所涉及的专业知识包括控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科,对大学生的知识融合和实践动手能力的培养,对汽车电子技术的发展,具有良好的长期的推动作用。

在实现智能车的过程中我们采用了各种的方案比对,对所有电路进行模块化接口化处理,大大降低了电路在实现过程中出现的错误,分为:

电源接口模块,传感器模块,测速模块,电机驱动模块,数据传输与上位机模块等。

然后通过接口连接在一起,实现工作稳定的智能车硬件电路。

他使用了传感器,编码电机,无线模块,稳压管等作为重要的任务器件。

实现了赛道识别,速度测控,赛车数据传输,电源稳压,速度控制等功能。

关键字智能车,传感器,稳压电路,PCB设计

设计思路

硬件:

1、前后轮

 

2、舵机:

舵机主要用来调节转向来达到控制车速和车身平稳。

3、测速码盘

 

4、传感器支架

第二步:

1.最小系统是焊接的第一个步骤,主要包括晶振(下)和复位电路(上)。

2.红外传感器:

光电传感器一般有两个部分组成:

发射管和接收管。

发射管发射光线,光线经过赛道的反射,由接收管接受,用过不同的光强接收管的状态不同,实施赛道信息的采集,应为白色和黑色对于光线反射的系数不同,放射会傀儡的光线的强度不一样,被不同的接收单元接收后表现出不同的反应状态(电阻的变化,电流电压的变化等)

3.电源:

为了使智能汽车的系统正常的工作,需要对电源电池电压进行调节,其中单片机的路径识别传感器,测速模块需要5V的电压,用LM7805组成5V稳压电路。

直流电机作在7.2V直接上电。

因为电机,舵机要频繁接加速减速,所以电压波动较大,5V电压还要给51单片机供电,防止意外功能给点不足重启再LM7805两端加上大电解电容。

4.舵机:

 

5电机驱动模块:

电机驱动使用专用电机的驱动芯片ULN2803,系统利用单片机的PWM控制电机转速,充分利用PWM模块资源。

电机PWM的频率8KHz。

6.指示灯拨码调试:

 

 

软件:

程序的实现:

功能实现的程序与注释:

//晶振24MHz6T模式,总线频率4MHz指令0.25us

#include//89C52的头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint

#defineT0_HIGH0xff//T0计时器寄存器初值

#defineT0_LOW0xaf//溢出计数80个,定时周期80*0.25us=20us

//为了保证主程序正常运行,定时器计数最好不要小于80个

#defineMOTOR_MAX_PWM_COUNT100//PWM计数器最大值20us*100=2000us,500Hz

#defineSERVO_MAX_PWM_COUNT1000//20us*1000=20ms,50HZ//舵机控制高电平0.5~2.5ms对应PWM的25~125

//舵机控制频率在50~100Hz之间,这里选50Hz

#defineMOTOR_MAX_PWM100//电机PWM最大最小值

#defineMOTOR_MIN_PWM0//

#defineSERVO_LEFT_MAX_PWM50//min48//舵机左打最大角度时的PWM

#defineSERVO_RIGHT_MAX_PWM84//max84//这个值需要自己根据舵机实际角度调试

#defineSERVO_MID_PWM67//舵机中心值

//注意,舵机打角过大会打在底盘上,请立即断电,以免损害舵机

#defineERROR_HISTORY_NUM3//历史偏差记录个数

#defineMAX_ERROR_SUM120//积分幅值

sbitLEFT_MOTOR_PWM_PORT=P3^7;//电机PWM控制端口

sbitRIGHT_MOTOR_PWM_PORT=P3^6;

sbitSERVO_PWM_PORT=P3^5;//舵机PWM控制端口

sbitBOMA1=P1^0;//拨码开关输入端口

sbitBOMA2=P1^1;

sbitBOMA3=P1^2;

sbitBOMA4=P1^3;

sbitBOMA5=P1^4;

sbitBOMA6=P1^5;

sbitBOMA7=P1^6;

sbitBOMA8=P1^7;

//--------------------------

bitcontrol_period_finished=0;//控制周期结束标志位,控制周期选择20ms

//也可自己确定控制周期,但是要保证主程序在控制周期内可以运行完

charmotor_PWM_counter=0;//生成电机PWM的计数器

charleft_motor_PWM=0;//左右电机的PWM//由于数值在128以内,所以定义为char

charright_motor_PWM=0;

intservo_PWM_counter=0;//生成舵机PWM的计数器

charservo_PWM=0;//舵机PWM//由于数值在128以内,所以定义为char

//注意数据类型的选择,如果实际的值大于128,就不能使用char型

interror=0;//本次偏差

interror_history[ERROR_HISTORY_NUM]={0};//小车相对于黑线的偏差

interror_sum=0;//偏差的积分

 

intservo_P=10;//PID系数

intservo_I=2;

intservo_D=25;

intPID_out=0;//PID输出

charspeed_expect=40;//给定速度

//-----------------------------------------------------------------------

voiddelay(unsignedinti)//延时函数

{

unsignedcharj;

for(;i>0;i--)

for(j=0;j<250;j++);

}

//-----------------------------------------------------------------------

intABS(inti)//绝对值函数

{

if(i>=0)returni;

elsereturn-i;

}

//-----------------------------------------------------------------------

voidsys_init(void)

{

//------IO口设置------------

P0=0xff;//指示灯,共阳极,设置为高电平,全灭

P1=0xff;//拨码开关,设置为高电平,检测输入

P2=0xff;//红外管状态输入,设置为高电平,检测输入

P3=0x00;//PWM输出口,需要外加上拉电阻,否则无法驱动

LEFT_MOTOR_PWM_PORT=0;//PWM口设为低电平,电机不转

RIGHT_MOTOR_PWM_PORT=0;

left_motor_PWM=0;//占空比设置为0

right_motor_PWM=0;

servo_PWM=SERVO_MID_PWM;//舵机打角到中心

//------定时器设置------------

TMOD=0x11;//定时器0方式1

TH0=T0_HIGH;//定时器赋初值

TL0=T0_LOW;

TR0=1;//定时器运行

ET0=1;//开定时器中断

EA=1;//开总中断

}

//-----------------------------------------------------------------------

voidBOMA_chioce(void)//拨码开关调节参数//使用51单片机IO口需要初始化为高电平

{

if(BOMA1==0){servo_P=servo_P+5;}

if(BOMA2==0){servo_P=servo_P+5;}

if(BOMA3==0){servo_P=servo_P+10;}

if(BOMA4==0){servo_D=servo_D+5;}

if(BOMA5==0){servo_D=servo_D+5;}

if(BOMA6==0){servo_D=servo_D+10;}

if(BOMA7==0){speed_expect=speed_expect+20;}

if(BOMA8==0){speed_expect=speed_expect+30;}

}

//-----------------------------------------------------------------------

voidget_black_position(void)//寻找黑线位置

{

switch(P2&0x7f)//使用了7个红外管,屏蔽无用的一位,根据硬件电路设计编写

{//case表示红外管的状态,最多会有两个红外管在黑线上(根据硬件红外管焊接的距离而定,黑线宽度2.5cm)

case0x01:

error=6;break;//000000010x01//右

case0x03:

error=5;break;//000000110x03

case0x02:

error=4;break;//000000100x02

case0x06:

error=3;break;//000001100x06

case0x04:

error=2;break;//000001000x04

case0x0c:

error=1;break;//000011000x0c

case0x08:

error=0;break;//000010000x08

case0x18:

error=-1;break;//00011

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1