智能小车课程设计说明书Word格式.docx
- 文档编号:21586552
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:14
- 大小:172.52KB
智能小车课程设计说明书Word格式.docx
《智能小车课程设计说明书Word格式.docx》由会员分享,可在线阅读,更多相关《智能小车课程设计说明书Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
1.查阅有智能小车控制方案,设计智能小车软硬件;
2.按键控制加速,减速,刹停,左转和右转;
3.驱动最大电压12V;
最大驱动电流2A;
4.实时显示:
运行状态;
1.2课题研究的背景和意义
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。
可见其研究意义很大。
本设计就是在这样的背景下提出的,指导教师已经有充分的准备。
本题目是结合科研项目而确定的设计类课题。
我们设计的智能电动小车具有加速、减速、刹停、左转和右转运行的功能。
根据题目的要求,确定如下方案:
在现有玩具电动车的基础上,加了四个按键,实现对电动车的运行轨迹的启动,并将按键的状态传送至单片机进行处理,然后由单片机根据所检测的各种按键状态实现对电动车的智能控制。
这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
本设计采用AT89C51单片机。
以AT89C51为控制核心,利用按键的动作,控制电动小汽车的状态。
二、方案设计与论证
2.1控制器模块选取
我们采用AT89C51单片机作为主控制器,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
从方便使用的角度考虑,我们选择了此方案
2.2电机模块选取
采用普通直流电机。
直流电机运转平稳,精度有一定的保证。
直流电机控制的精度虽然没有步进电机那样高,但完全可以满足本题目的要求。
通过单片机的PWM输出同样可以控制直流电机的旋转速度,实现电动车的速度控制。
并且直流电机相对于步进电机价格经济。
2.3电机驱动器模块选取
采用电机驱动芯片L298N。
L298N为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。
通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。
调试时在依照芯片手册,用程序输入对应的码值,能够实现对应的动作。
2.4电源模块选取
在本系统中,需要用到的电源有单片机的5V,L298N芯片的电源5V和电机的电源12V。
所以需要对电源的提供必须正确和稳定可靠。
用9V的锂电池串联2节5号普通电池给前、后轮电机供电,然后使用7805稳压管来把高电压稳成5V分别给单片机和电机驱动芯片供电。
因此为了方便,这里我们采用12V电源给电机供电,再用7805转换成5V电源给单片机使用。
三、硬件设计
小车采用四轮驱动,一侧的前后两个车轮共用一个电机驱动,另外两个前后轮共用一个驱动,调节左右车轮转速从而达到控制转向的目的。
电源模块
按键模块
图3.1
3.1控制模块设计
根据设计的小车性能,使用控制系统来控制电机的状态,按键来操作,从而使小车可以进行加速、减速、刹停、左转和右转的运行。
设计的控制模块电路图图3.2
图3.2
AT89C51单片机的P0通过控制总线来连接锁存器74LS373以及计数器8253,以此来控制L298N驱动芯片的工作方式,PWM1和PWM2来控制电机的工作状态。
AT89C51的P2口通过控制总线与显示器连接。
3.2电机模块设计
因为设计的小车运行比较简单,没有避障等复杂的功能,所以我们选择普通直流减速电机,通过到商店里和到网上等途径进行购买,电机模块采用2块电机同时驱动,这里将同一侧电机短接接到L298N的一个输出端。
3.3电机驱动模块设计
L298N是SGS公司的产品,为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。
图3.3
如图3.2所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流信号,,还可驱动2个电机,OUT1,OUT2,OUT3,OUT4之间分别连接2个电动机。
5、7、10、12脚接控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。
同时输出两组PWM波,每一组PWM用来控制一个,电机的速度。
另外,二个I/O口可以控制电机的正反转,P10,P11控制第一个电机的方向,,输入的:
PWM1控制第一个电机的速度;
P12.P13控制第二个电机的方向,输出的PWM2控制第二个电机地说速度。
由于电机的正常的工作时对电源的干挠很大,只用一组电源时,会影响单片机的正常工作,所以选用双电源供电。
d1,Q1是一对红外发射接收对管,与LM324构成光右转电传感的检测电路。
可实现对小车的加速,减速,刹停,并可通过两个电机的不同转速实现左转和。
可以用表表示为:
ENA(B)
IN1(IN3)
IN2(IN4)
电机运行情况
H
L
正转
反转
同IN2(IN4)
快速停止
X
停止
3.4、电源模块
采用两片7805电压稳压5V后给单片机系统和其他芯片供电供电,但缺点是压降过大,消耗的功率过大,发热量过大。
图3.4
结构图如下:
图3.5
3.5按键模块
本系统添加4个按键,用来选择控制小车。
并接于P2口。
图3.6
3.6显示模块设计
根据按键来控制小车从而在显示屏上显示小车的状态,设计的显示电路图图3.7。
图3.7
四、软件设计
4.1流程图设计
4.2、小车运行设计:
若要求小车直走,这需要给4个电机正转命令。
根据L298N芯片手册
这里将P1=0xfa。
4.3、小车调速设计:
若要求车调速,只需用PWM来控制L298N的ENA和ENB就可以对小车进行调速。
这里我使用定时器T0的工作模式2自动重装。
并赋初值TH0=0xf6;
TL0=0xf6;
U
产生高频脉冲。
C语言源代码实现
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
unsignedcharzkb1=0;
//**左边电机的占空比**//
unsignedcharzkb2=0;
//**右边电机的占空比**//
unsignedchart=0;
//**定时器中断计数器**//
sbitRSEN1=P1^0;
sbitRSEN2=P1^1;
sbitLSEN1=P1^2;
sbitLSEN2=P1^3;
sbitIN1=P0^0;
sbitIN2=P0^1;
sbitIN3=P0^2;
sbitIN4=P0^3;
sbitENA=P0^4;
sbitENB=P0^5;
//****************延时函数****************//
voiddelay(intz)
{while(z--);
}
//**********初始化定时器,中断***********//
voidinit()
{TMOD=0x01;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
EA=1;
ET0=1;
TR0=1;
//***********中断函数+脉宽调制***********//
voidtimer0()interrupt1
{if(t<
zkb1)
ENA=1;
else
ENA=0;
if(t<
zkb2)
ENB=1;
ENB=0;
t++;
if(t>
=100)
{t=0;
}
//******************直行******************//
voidqianjin()
{zkb1=30;
zkb2=30;
//***************左转函数1***************//
voidturn_left1()
{zkb1=0;
zkb2=50;
//***************左转函数2***************//
voidturn_left2()
zkb2=60;
//***************右转函数1***************//
voidturn_right1()
{zkb1=50;
zkb2=0;
//***************右转函数2***************//
voidturn_right2()
{zkb1=60;
//***************循迹函数*****************//
voidxunji()
{ucharflag;
if((RSEN1==1)&
&
(RSEN2==1)&
(LSEN1==1)&
(LSEN2==1))
{flag=0;
}//*******直行*******//
elseif((RSEN1==0)&
{flag=1;
}//***左偏1,右转1***//
(RSEN2==0)&
{flag=2;
}//***左偏2,右转2***//
elseif((RSEN1==1)&
(LSEN1==0)&
{flag=3;
}//***右偏1,左转1***//
(LSEN2==0))
{flag=4;
}//***右偏2,左转2***//
switch(flag)
{case0:
qianjin();
break;
case1:
turn_right1();
case2:
turn_right2();
case3:
turn_left1();
case4:
turn_left2();
default:
//****************主程序****************//
voidmain()
{init();
zkb1=30;
while
(1)
{IN1=1;
//******给电机加电启动******//
IN2=0;
IN3=1;
IN4=0;
{xunji();
//*********寻迹**********//
五、调试中存在的问题
1.转向时间需要慢慢调,时间长,旋转弧度大;
时间短,旋转弧度小。
2.直行时,由于每个电机的性能不一样,导致两侧占空比一样时,小车会存在转弯,这样需要微调占空
六、参考文献
[1]楼然苗,李光飞.51系列单片机设计实例.北京航空航天大学出版社
[2]何希才.常用集成电路应用实例.电子工业出版社
[3]王静霞单片机应用技术(C语言版)电子工业出版社
[4]陈梓城实用电子电路设计与调试
[5]高吉祥全国大学生电子设计大赛培训教程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 小车 课程设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)