SmartCar_DG128

所属分类:单片机开发
开发工具:C/C++
文件大小:113KB
下载次数:38
上传日期:2009-05-15 11:46:08
上 传 者metzer
说明:  第二届飞思卡尔杯智能车大赛,本人编写,欢迎参考。使用DG128,实现定时中断,光电管感应后AD转换,PWM控制舵机与电机,捕捉速度的脉冲信号。
(Freescale Cup second session of the smart car competition, I am prepared to welcome reference. The use of DG128, interrupted from time to time to achieve, after induction phototube AD conversion, PWM control of the steering gear and the motor, the speed of the pulse signal capture.)

文件列表:
SmartCar_DG128\cmd\Full_Chip_Simulation_Postload.cmd (61, 2007-04-26)
SmartCar_DG128\cmd\Full_Chip_Simulation_Preload.cmd (67, 2007-04-26)
SmartCar_DG128\cmd\Full_Chip_Simulation_Reset.cmd (60, 2007-04-01)
SmartCar_DG128\cmd\Full_Chip_Simulation_SetCPU.cmd (59, 2007-04-01)
SmartCar_DG128\cmd\Full_Chip_Simulation_Startup.cmd (61, 2007-04-26)
SmartCar_DG128\cmd\getData8.cmd (431, 2007-05-07)
SmartCar_DG128\cmd\getDataIR070511A.cmd (357, 2007-05-11)
SmartCar_DG128\cmd\getDataIR070512A.cmd (249, 2007-05-12)
SmartCar_DG128\C_Layout.hwl (855, 2007-04-01)
SmartCar_DG128\Default.mem (161, 2004-06-15)
SmartCar_DG128\Docs\vssver.scc (48, 2007-06-04)
SmartCar_DG128\Docs\串口数据包标准.txt (271, 2007-06-04)
SmartCar_DG128\Docs\液晶和按键调试模块的接口定义.txt (1055, 2007-05-23)
SmartCar_DG128\Docs\红外发射接收定义.txt (287, 2007-05-04)
SmartCar_DG128\Full_Chip_Simulation.ini (1458, 2008-04-15)
SmartCar_DG128\LICENCE(中文版).TXT (1178, 2008-04-17)
SmartCar_DG128\LICENCE.TXT (1566, 2008-04-17)
SmartCar_DG128\prm\burner.bbl (3348, 2007-04-01)
SmartCar_DG128\prm\Full_Chip_Simulation_linker.prm (2531, 2008-04-15)
SmartCar_DG128\prm\MS9S12generic.prm (2405, 2007-04-01)
SmartCar_DG128\prm\vssver.scc (64, 2007-04-06)
SmartCar_DG128\SmartCar.mcp (65423, 2008-04-17)
SmartCar_DG128\SmartCar_Data\CWSettingsWindows.stg (4511, 2008-04-17)
SmartCar_DG128\SmartCar_Data\Full_Chip_Simulation\TargetDataWindows.tdt (69739, 2008-04-17)
SmartCar_DG128\Sources\cCoreControl.c (25291, 2008-04-17)
SmartCar_DG128\Sources\cCoreControl.h (3892, 2008-04-17)
SmartCar_DG128\Sources\ChgSet.c (1417, 2008-04-15)
SmartCar_DG128\Sources\cMotorControl.c (3016, 2008-04-17)
SmartCar_DG128\Sources\cMotorControl.h (2198, 2008-04-17)
SmartCar_DG128\Sources\cServoControl.c (3412, 2008-04-17)
SmartCar_DG128\Sources\cServoControl.h (1819, 2008-04-17)
SmartCar_DG128\Sources\datapage.c (64325, 2008-04-15)
SmartCar_DG128\Sources\dbgButton.c (3055, 2008-04-17)
SmartCar_DG128\Sources\dbgButton.h (1778, 2008-04-17)
SmartCar_DG128\Sources\dbgLCD.c (10536, 2008-04-17)
SmartCar_DG128\Sources\dbgLCD.h (1925, 2008-04-17)
SmartCar_DG128\Sources\dbgMenu.c (9842, 2008-04-17)
SmartCar_DG128\Sources\dbgMenu.h (1708, 2008-04-17)
SmartCar_DG128\Sources\dbgSCI.c (5293, 2008-04-17)
... ...

大一时参加第二届飞思卡尔智能车竞赛的源代码,使用BSD许可证发布. 包含很多有用的库, 源代码涉及了单片机的大部分功能.对DG128不熟的同学可以作为参考. 系统分四层, 硬件层,设备层,控制层和智能. 包含记忆算法. 当时我花了大约三个的时间去了解所用的单片机,并写完了硬件层和设备层的代码.这使我在后来的开发工作中不必去过多考虑的底层细节,能够把更多的精力放在控制和智能算法上面.项目中还包含了大量的测试用例以供参考.我基本上是采用边测试边开发的方法开发的.这是我认为大家可以学习的地方. 项目中的一些模块可能会对大家有用,我做一个简单的介绍. dbg* : 调试模块,控制LCD,调试用按键和串口, 包含一个菜单子模块, 自己写了一个printf函数,可以方便的从串口或者液晶屏输出信息.菜单模块也花了一些功夫,可以方便的添加菜单元素, 动态的查看和修改系统中某变量的值. h* : 硬件层,直接和I/O口与内部模块打交道. d* : 设备层,把传感器,马达,舵机等抽象出来. c* : 控制层,控制舵机,马达,采集道路信息. s* : 智能层,路径记忆和播放 为了不因为分层而影响效率, 分层并不是十分严格, 而且有很多地方是用宏来做层与层的衔接的. 系统在48MHz的采样和执行周期约为0.6~1ms之间.我认为这样的响应时间已经是比较高的了. 事实上我们的成绩并不理想.用记忆算法跑有的时候还不如不用. 赛后我分析了原因, 最主要的是我们的调速做的太差了,交大用的是千元的编码传感器,精度能到1/256圈, 也就是车每走15/256cm就能够感觉到速度的变化,而我们只用了4个磁铁加一个霍尔传感器,并且因为四个磁铁距离不同所以最后我们的车每跑15cm才能感觉到速度的变化.这样你的调速算法做的在好,也无济于事,这也是赛后才想通的. 记忆算法先不介绍,我之后会放一篇文章出来,专门讲这个. 我的大一下半学期的时间都用来干这个了,而且还付出了挂了一科的代价,虽然没进决赛,但我已经极大的培养和锻炼了我自己,没什的可后悔的.我将不会参加第三届的比赛.我把源代码公开出来,希望大家能去其糟粕,取其精华,从中得到一些有用的东西.免得它放在我的硬盘里发霉生锈了.十分愿意和参加这项比赛的同学和老师交流,交换各自的想法和意见.如果愿意,同时也很希望能看到同学们在赛后吧自己的源代码贡献和公开出来. 如果任何BUG或建议请联系作者eic(superefei@hotmail.com) eic, Apr. 17, 2008

近期下载者

相关文件


收藏者