创新设计—自动寻迹小车(5)

2019-05-24 12:16

图4.8 PID控制程序

5 系统调试

5.1 开发工具

程序的开发是在CodeWarrior IDE下进行的,包括源程序的编写、编译和链接,并最终生成可执行文件。

CodeWarrior 6.2 是面向以HC1和S12为CPU的单片机嵌入式应用开发软件包。包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器。

5.2 调试过程

我们使用的是单片机本身配套的BDM,在调试时,把程序编译下载到S08AC60单片机内,运行后可通过内存窗口查看程序运行状况。根据小车在模拟跑道上的状况调整参数,完善硬件、软件设计,最终达到理想的水平。

6 结论

本设计通过对整体方案、硬件电路、算法、调试的介绍,详尽地阐述了控制思想和创意,具体表现在电路的创新设计,以及算法方面的独特想法,而对PID具体参数的调试也付出了艰辛的劳动。

本设计涉猎控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科,通过这次磨练,对自己知识融合和实践动手能力的培养有极大的推动作用。

同时,在设计期间使我受益最大就是王威教授,王教授对小车整体方案的设计提出很多宝贵的建议,同时又在控制策略上给予了很大的帮助。此外,在此期间有等同学也给予了很大的支持与帮助,在此本人谨向在设计中给予帮助所有老师和同学表示感谢!

21

参考文献

[1] 王威.嵌入式微控制器S08AW原理与实践[M].北京:北京航空航天大学出版社,2009.

[2] 陈杰. 传感器与检测技术[M].北京:高教出版社,2004.

[3] 邵贝贝 龚光华.单片机认识与实践[M].北京:北京航空航天大学出版社,2006.

[4] 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989 [5] 张兴业.汽车电子信息技术状况和发展对策[J].汽车实用技术,2004.6 [6] 邱铁.模型车控制系统设计与实现[D].大连理工大学,2007

[7] 沈长生.常用电子元器件使用一读通[M].北京. 人民邮电出版社.2004 [8] 王晓明. 电动机的单片机控制[M].北京. 北京航空航天大学出版社.2002

22

1附录1 硬件电路图 23+5456后台调试BDMVCC98RESETGNDQ64636261605958575655545352515049D+5JP?BKGDPTC5PTC3PTC2PTC1PTC0VSSPTG6PTG5PTD7PTD6PTD5PTD4VREFLR5S0123VREFHPTG4PTC4IRQRESETPTF0PTF1PTF2PTF3PTF4PTC6PTF7PTF5PTF6PTE0PTE1PTE2PTG3PTD3PTD2VSSADVDDADPTD1PTD0PTB7PTB6PTB5PTB4PTB3PTB2PTB1PTB0484746454443424140393837+53635343374LS161A--1+5+7.2C54567R3刻度C47uF+AGNDFSIN1V+V+OUT1OUT2DNCPGNDPGNDDNCIN2D1CCPV+OUT2OUT2D2PGNDPGND891092111333nF+1415PTE4VDDPTG0PTG1PTG2PTA0PTA1PTA2PTA3PTA4PTA5电机171819202122232425262728293031VssPTTE3PTA6PTE5PTE6PTE716PTA7CLEARCLOCKABCDPGNDVCCOUTPUTQAQBQCQDTLOADMC9S08AW6032+7.2+7.2VB+5INOUTC2470uFC1C2RROPTOISO1+5.0V+5S1U?74LS161A--2GNDC1100uFCLEARCLOCKABCDPGNDVCCOUTPUTQAQBQCQDTLOADR?RES2R?RES2 A 12345TitleSizeBDate:File:NumberRevision18-Dec-2010Sheet of E:\\个人\\王雷\\学习\\大四资料全部\\电路原理图\\PREVIO~13.DDBDrawn By:6

23

附录2 程序源代码

#include /* for EnableInterrupts macro */

#include \#include

/**********************定义舵机变量******************************************/ int ad_data[12]; /*定义数组,存放12路ad转化后的值*/ int ad_add=0; int ad_average=0 ; int AD,Turn;

int mid_flag,left_close,right_close; char

Zhuanjiao[]={180,170,160,150,140,130,121,113,106,100,95,90,85,80,74,67,59,50,40,30,20,10,0}; int flag0,flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8,flag9,flag10,flag11;

/****************定义电机变量******************************************/ #define Stop1 TPM2C0V=2500;PTCD_PTCD6=0;PTFD_PTFD7=0;//能耗 #define Stop2 TPM2C0V=1500;PTCD_PTCD6=1;PTFD_PTFD7=0;//反转 int cangshu[]={6,6,6,5,5,4,4,3,3,0,0,0,0,0,-3,-3,-4,-4,-5,-5,-6,-6,-6,};

//char ShuruSudu[]={35,35,35,35,38,38,40,40,42,42,45,45,45,42,42,40,40,38,38,35,35,35,35}; //char Shuruspeed[]={23,23,23,23,24,25,26,27,28,29,35,35,35,29,28,27,26,25,24,23,23,23,23}; //冲出跑道

char Shuruspeed[]={12,12,12,13,14,15,16,17,18,19,20,20,20,19,18,17,16,15,14,13,12,12,12}; //刚好

// char Shuruspeed[]={8,8,8,7,7,8,9,9,10,11,13,13,13,11,10,9,9,8,7,7,8,8,8}; int speed,a,b; int u=0; int v,w; int uk; int m,n;

int zw[]={0,0,0,0,0,0,0,0,0,0,0}; int r;

int l[]={0}; int circle=0; typedef struct {

int NextPoint;

24

int ThisPoint; //设定目标 Desired value

int Kp; //比例常数 Proportional Const int Ki; //积分常数 Integral Const int Kd; //微分常数 Derivative Const int LastError; //Error[-1] int PrevError; //Error[-2]

int SumError; //Sums of Errors } speedPID ;

speedPID sPID; /* *pp=&sPID; */ typedef struct {

int NextPoint;

int ThisPoint; //设定目标 Desired value

int Kp; //比例常数 Proportional Const int Ki; //积分常数 Integral Const int Kd; //微分常数 Derivative Const int LastError; //Error[-1] int PrevError; //Error[-2]

int SumError; //Sums of Errors } steerPID ;

steerPID DjPID; /*, *pp=&DjPID; */

/*************************************************************************/ void ADCInit(void) {

ADC1CFG=0X00; /*A/D初始化,高速模式,8位精度,ADCK=总线频率*/ ADC1SC2=0X00; /*软件触发,比较功能禁止*/ APCTL1=0XFF; /*AD0~AD7使能*/ APCTL2=0XFF; /*AD8-AD15使能*/

ADC1SC1=0X00; /*禁止转换完成中断,单词转换,选择AD0,并启动了转换*/ }

/*************************************************************************/ void get_data(void) {

ad_add=0; /*采集*/

ADC1SC1=0X00; /*选择AD通道0,若转化没有结束则等待,否则将转化结果存放入ad_data[0]中*/

for(;!ADC1SC1_COCO;); ad_data[0]=ADC1RL;

ad_add=ad_add+ad_data[0] ; ADC1SC1=0X01;

for(;!ADC1SC1_COCO;); ad_data[1]=ADC1RL;

ad_add=ad_add+ad_data[1] ;

25


创新设计—自动寻迹小车(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:地方政府融资平台及PPP最新政策法规汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: