第四届全国大学生智能汽车邀请赛技术报告
备,可以及时的了解小车运行的情况,达到事倍功半的效果。
第八章 技术参数统计
表8.1模型车技术参数统计:
项目 参数 路径检测方法(赛题组) 光电组 车模几何尺寸(长、宽、高)(毫米) 车模轴距/轮距(毫米) 车模平均电流(匀速行驶)(毫安) 电路电容总量(微法) 传感器种类及个数 385*220*60 200/150 200 430 激光管 14个 新增加伺服电机个数 0 赛道信息检测空间精度(毫米) 9 赛道信息检测频率(次/秒) 200 9s12单片机最小系统/1 主要集成电路种类/数量 MOSFET驱动电路/4 速度检测电路/1 车模重量(带有电池)(千克) 0.9 18
第四届全国大学生智能汽车邀请赛技术报告
参考文献
[1] 黄开胜、金华民、蒋狄南,韩国智能模型车技术方案分析,北京:清华大学汽车安全与节能国家重点实验室,2004.3
[2] 邵贝贝著,单片机嵌入式应用的在线开发方法,北京:清华大学出版社,2004.2 [3] ‘LM2940 datasheet’, July 2000, National Semiconductor [4] ‘LM7806 datasheet’ National Semiconductor [5] ‘RPR220 datasheet’, ROHM
[6] 'Semiconductor Technical Data MC33887' Aug 2002 Motorola Inc [7] 大赛车模拼装手册
[8] CodeWarrior IDE 3.1 help datasheet
[9] 'MC9S12DG128 Device User Guide', October 2002 Motorola Inc [10] 'HCS12 CORE datasheet', Augt 2000 Motorola Inc [11] 'S12PWM8B8CV1 datasheet', Mar 2002 Motorola Inc [12] 'S12ATD10B8CV2 datasheet', Augt 2002 Motorola Inc [13] 'S12ECT16B8V1 datasheet', July 2002 Motorola Inc [14] www.smartcar.au.tsinghua.edu.cn [15] www.freescale.com.cn [16] www.21icsearch.com
19
第四届全国大学生智能汽车邀请赛技术报告
附件 程序
#include
#define SPEED 70
//变量定义
int exit,exit1,exit_flag,stop_times=2;//停车用变量 int zanshi=0; //调速 int chazhi,last,now;
int Sensor=4867; //舵机 int ave_weight[3]={0}; int count0=0; int AD_Value[14];
int i,shache,shache1,sha;//,shache2,shache3,qingsha; int control_time=60; int jiasu;
int atd_value[14];
unsigned char boma,boma1; //拨码开关 int stop;
int zhidao_speed; int wangdao_speed;
int chongchu_speed; //速度设定 volatile unsigned int IC0Counter=0; //2.083ms one int volatile unsigned int IC0Counter_1=0; volatile unsigned int stop_flag=0; volatile int NowSpeed;
volatile unsigned int GearWidth[2]={0} ; volatile unsigned int GearIndex=0; unsigned long GearWidthSum; unsigned long AveGearWidth ;
20
第四届全国大学生智能汽车邀请赛技术报告 unsigned long AveSpeed ; //测速 unsigned int pulse_counter=0; //计数 int DCDuty;
int clock1,non_stop; int timer1; int yanshi,timer3;
int ADValue[3]={0};
int Object_Speed=SPEED;
//100cm/s
/******************转弯PID函数********************/ int pid1(int a,int b,int c) {
int x=0; if(abs(a)<5) KP1=34; else
KP1=43;
x=KP1*(a-b)-KD1*(a-2*b+c); return (x); }
/*********************主函数*********************/ void main(void) {
SpdPID.ProportionalGain=30000;//1.52 0.15 0.05 0.94 1.84 24903 SpdPID.ProportionalGainScale=13; //0.76的系数(0-1):GainScale=14
SpdPID.IntegralGain=25000;//20480;15000
SpdPID.IntegralGainScale=14;//14;//0.625的系数 1.25 1.45(pian da) 0.925 0.45 0.85
SpdPID.DerivativeGain=20000;// 0 SpdPID.DerivativeGainScale=14; SpdPID.PositivePIDLimit=DC_Limit; SpdPID.NegativePIDLimit=0;//-DC_Limit; SpdPID.IntegralPortionK_1=0;//=0 SpdPID.InputErrorK_1=0;//=0
RTI_Init();
SET_PLL(); ATD_Init(); Servo_Init(); Forward_Init(); ECT_Init();
21
0.15
第四届全国大学生智能汽车邀请赛技术报告
/**********************读入拨码开关********************************/ DDRT=0x00; boma=PTIT; boma>>=4;
boma&=0b00001111; DDRM=0x00; boma1=PTM; if(boma1&0x80) stop=1; else
stop=0;
zhidao_speed=140+10*boma;//107 130 wangdao_speed=130+10*boma; //103
chongchu_speed=120+8*boma;//92 //速度设定拨码 EnableInterrupts; for(;;) {
//////////////////////////电机速度设定//////////////////////////// PWMDTY23=400; PWMDTY45=0; } }
#pragma CODE_SEG NON_BANKED
/**********************定时1ms中断************************/ void interrupt 7 RTI_int() {
int i,j,k,l,m,n=0;
CRGFLG|=0x80;
if(timer1<2000) timer1++;
if(sha==1)
timer3++;
if(timer3>=control_time+2) {
timer3=0; sha=0; }
ATD0CTL5=0x90; ATD1CTL5=0x90;
22