智能车实验报告分析解析.docx
- 文档编号:30599394
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:27
- 大小:175.46KB
智能车实验报告分析解析.docx
《智能车实验报告分析解析.docx》由会员分享,可在线阅读,更多相关《智能车实验报告分析解析.docx(27页珍藏版)》请在冰豆网上搜索。
智能车实验报告分析解析
宁波大学
创新性开放实验报告
题目基于光电传感器的自动寻迹小车
学号:
姓名:
专业:
指导教师:
光电感应智能车.............................................................................................错误!
未定义书签。
)..3
14
24
35
46
7
7
18
210
13
光电感应自动寻迹智能车
【摘要】如果把自动寻迹小车成比例的扩大数倍,就成为真正有意义上的智能车,
可以运用于军事、民用领域,对未来汽车行业的发展有一定的借鉴意义。
通过光电传感器
来寻找轨迹,以所编写的程序为软件支持,通过单片机计算生成相应的控制参数,驱动电
机来使小车按照轨迹运动。
其中小车在直线行驶过程控制参数保持不变,匀速行驶,而在
小车要转弯之前则要先减速以防止小车过弯时冲出赛道,弯道过去之后在加速行驶以减少
行驶时间。
【关键词】红外传感器;PID控制;自动寻迹
一、硬件系统
(一)智能小车的整体结构图
智能车通过单片机来接受和发出参数状态信号,电源模块是给智能车各个模块提供电压
以使模块可以正常运作,寻迹模块则是包含着参数输送给单片机的作用,驱动模块是小车动
起来的根源,测速模块是为了控制车速以使智能车平稳的沿着车道运行。
1、电源模块
在“飞思卡尔”比赛中,比赛方提供的是智能车竞赛统一配发的标准车模用7.2V供电,但是在单片机系统、路径识别的光电传感器、光电码编码器等均需要5V电源,直流电机可以使用7.2V蓄电池直接供电,我们采用的电源有串联型线性稳压电源(LM2940、7805等)和开关型稳压电源(LM2596)两大类。
对于单片机,选用LM2940-5单独对其进行供电;而
其它模块则需要通过较大的电流,利用LM2940-5和LM2596-5对控制系统和执行部分开供电,
可以有效地防止各器件之间发生干扰,以及电流不足的问题,使得系统能够稳定地工作。
电源电路图:
2、寻迹模块
寻迹模块是智能车系统的关键模块之一,所寻找的路径的好坏,将直接影响竞赛的结果,我们采用的是光电传感器来寻找路径,光电传感器具有电路简单、信号处理速度快等特点。
因为在赛道中由黑色轨迹线和大面积的白色区域组成,则会使发光二极管发射的光线强度不同,从而使接受到的光线强度不同,以此来指示小车前进。
红外传感器电路图:
3、驱动模块
电机驱动电路可以用MOS管搭建H桥驱动电路。
采用MOS管构成的H桥电路,控制直流电机紧急制动。
用单片机控制MOS管使之工作在占空比可调的开关状态,精确调整电动机转速。
这种电路由于MOS管工作在饱和截止状态,而且还可以选择内阻很小的MOS管,所以效率可以非常高,并且H桥电路可以快速实现转速和方向控制。
MOS管开关速度高,所以非常适合采用PWM调制技术。
所以我们选择了用MOS管搭建H桥驱动电路。
电机正转电路:
电机驱动电路:
4、测速模块
在比赛中常用霍尔传感器来测速。
如图1所示,在半导体薄片两端通以控制电流I,
并在薄片的垂直方向施加磁感应强度为B的匀强磁场,则在垂直于电流和磁场的方向上,将
产生电势差为UH的霍尔电压,它们之间的关系为U=k,d为薄片厚度,k为霍尔系数,
通过对一定时间内脉冲信号数量的捕捉可以计算出车轮的速度。
霍尔传感器的电路图:
二、软件系统
系统主程序流程图
开始
系统初始化
定时器开始
寻迹模块工作
舵机工作
驱动电机工作
定时中断否
速度采样
1、电机驱动
因为智能车在赛道上的路径不是一条直线,它是存在弯道的,所以让小车以个加速
度均匀的行驶是难以实现的,在此,我们采用在弯道里速度慢一些以保证稳定性,在直
道上速度快一些以减少整体行驶时间。
在软件上的计算方法采用PID控制。
PID控制器
简单易懂,使用中不需精确的系统模型是我们选择的原因。
算法:
u(t)=kp[e(t)+1/TI
∫e(t)dt+TD*de(t)/dt
]
在实验中为提高精确度,选择积分分离
PID算法,即当速度误差较大时选择
PD控制,
可避免大的超调,又使系统有较快的相应,当速度误差较小时选择
PID控制,可保证控
制精度。
u(k)=kpe(k)+bT
i
∑e(j)+T*[e(k)-e(k-1)]
b=1
或0
d
e(k)是当前给定速度和测量速度的偏差,e(k-1)是上次的偏差。
PID控制程序:
#include
#include"global_varible.h"
voidPID_Math(void)
{
signedlongee1;
//
偏差一阶
//signedlongee2;
//
偏差二阶
signedlongd_out;
//积分输出
if(!
Flag_PID_T_OK)
return;
Flag_PID_T_OK=0;
Temp_Set=3700;
//
温度控制设定值
37.00度
PID_e0=Temp_Set-Temp_Now;
//
本次偏差
ee1=PID_e0-PID_e1;
//
计算一阶偏差
//ee2=PID_e0-2*PID_e1+PID_e2;
//
计算二阶偏差
if(ee1>500)
//
一阶偏差的限制范围
ee1=500;
if(ee1<-500)
ee1=-500;
PID_e_SUM+=PID_e0;
//偏差之和
if(PID_e_SUM>200)
//积分最多累计的温差
PID_e_SUM=200;
if(PID_e_SUM<-200)
PID_e_SUM=-200;
PID_Out=PID_kp*PID_e0+PID_kd*ee1;
//计算
PID比例和微分输出
if(abs(PID_e0)<200)
//如果温度相差小于
1.5度则计入
PID
积分输出
{
if(abs(PID_e0)>100)
//如果温度相差大于
1度时积分累计限
制
{
if(PID_e_SUM>100)
PID_e_SUM=100;
if(PID_e_SUM<-100)
PID_e_SUM=-100;
}
d_out=PID_ki*PID_e_SUM;
//积分输出
if(PID_e0<-5)
//当前温度高于设定温度
0.5度时积分
累计限制
{
if(PID_e_SUM>150)
PID_e_SUM=150;
if(PID_e_SUM>0)//当前温度高于设定温度0.5度时削弱
积分正输出
d_out>>=1;
}
PID_Out+=d_out;//PID比例,积分和微分输出
}
else
PID_e_SUM=0;
PID_Out/=100;//恢复被PID_Out系数放大的倍数
if(PID_Out>200)
PID_Out=200;
if(PID_Out<0)
PID_Out=0;
if(PID_e0>300)//当前温度比设定温度低3度则全速加
热
PID_Out=200;
if(PID_e0<-20)//当前温度高于设定温度0.2度则关闭
加热
PID_Out=0;
Hot_T_Run=PID_Out;//加热时间控制输出
PID_e2=PID_e1;
PID_e1=PID_e0;
//
//
保存上次偏差
保存当前偏差
1、舵机驱动
原理:
控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系
列齿轮组,减速后传动至输出舵盘。
舵机的输出轴和位置反馈电位计是相连的,舵
盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,
进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目
标停止。
即由pwm波产生模块计算相应的pwm波占空比,产生pwm波,驱动舵机,
改变舵机前轮转角意识智能车转弯。
程序:
#include
#define
uchar
unsigned
char
#define
uintunsigned
int
uinta,b,c,d;
/*a、b为舵机1、2
的脉冲宽度/*/*c
、d为中间变量/*
sbit
p12=P1^2;
sbit
p13=p1^3;
sbit
p37=P3^7;/*
输出管脚
void
timer0(void)
interrupt1
using1
{p12=!
p12;
/*输出取反*/
c=20000-c;
/*20000
/*一个周期时间
20ms
TH0=-(c/256);
TL0=-(c%256);
/*
重新定义初值
if(c>=500&&c<=2500)c=a;
else
c="20000-a";
/*判断宽度是否在正常范围内
void
timer1(void)
interrupt3
using1
{p13=!
p13;
d=20000-d;
TH1=-(d/256);
TL1=-(d%256);
if(d>=500&&d<=2500)d=b;
else
d="20000-b";
}
void
main(void)
{TMOD=0x11;/*设初值
p12=1;
p13=1;
a=1500;
b=1500;/*舵机90度的位置
c=a;d=b;
TH0=-(a/256);
TL0=-(a%256);
TH1=-(b/256);TL1=-(b%256);
EA=1;
ET0=1;TR0=1;EX0=1;EX1=1;
ET1=1;TR1=1;
/*
设定定时器初始计数值
PX0=0;PX1=0;PT1=1;PT0=1;/*
设定中断优先级
在程序中只要改变a,a从500变化到2500,就可以让舵机从0变化到180度。
舵机PWM波
模块初始化
A/D转换器
A/D转换
传感器当前
状态监测
监测状态发生
改变的传感器
计算智能车偏差
的传感器
计算前轮转
角
改变PWM
波脉冲宽度
参考文献
[1]卓晴,黄开胜,邵贝贝《学做智能车――挑战“飞思卡尔”杯》[M].北京航空航天大学出版社,
2007
(1)20-60
[2].单振清《传感器检测技术应用》[M]电北京理工大学出版2013126-142
[3]RomonPallas-Areny《传感器和信号调节》[M].清华大学出版社200345-93
[4]吕泉《现代传感器原理及应用》[M]清华大学出版社200628-44
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 实验 报告 分析 解析