为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 电脑鼠走迷宫实验报告附程序

电脑鼠走迷宫实验报告附程序

2018-03-14 9页 doc 131KB 58阅读

用户头像

is_531654

暂无简介

举报
电脑鼠走迷宫实验报告附程序电脑鼠走迷宫实验报告附程序 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 第二届IEEE标准电脑鼠走迷宫竞赛 第 1 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 目录 一(软件程序框图………………………………………….3 二(参赛软件研发过程…………………………………….4 三(软硬件调试过程……………………………………….4 四(各组员分工…………………………………………….4 五(体会心得……………………………………...
电脑鼠走迷宫实验报告附程序
电脑鼠走迷宫实验报告附程序 东南大学第二届IEEE电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 第二届IEEE标准电脑鼠走迷宫竞赛 第 1 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 目录 一(软件程序框图………………………………………….3 二(参赛软件研发过程…………………………………….4 三(软硬件调试过程……………………………………….4 四(各组员分工…………………………………………….4 五(体会心得……………………………………………….5 附录……………………………………………………...…..6 参考目……………………………………………….……9 , 软件程序框图 第 2 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 , 参赛软件研发过程 在void main()函数中,采用压栈的方式进行电脑鼠搜索,数组uint8 GmcCrossway[MAZETYPE*MAZETYPE]用于暂存未走过支路坐标。 数组uint8 GucMapBlock[MAZETYPE][MAZETYPE]每个点的地图信息,初始化为0x00。 函数void mouseGoahead(int8 cNBlock)、void mazeSearch(void)、void mouseTurnleft(void)、 第 3 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 void mouseTurnright(void)、void mouseTurnback(void)和void objectGoTo(int8 cXdst, int8 cYdst) 控制电脑鼠的运动状态。 void mapStepEdit(int8 cX, int8 cY)为制作等高图函数,它把记录等高值的数组uint8 GucMapStep[MAZETYPE][MAZETYPE](初始化为0xff)赋值。当电脑鼠搜索时无方向可走时就按照这个等高图的信息退回上个点,冲刺时也是一样的道理。 另外,为了缩短转弯时间,并且保证电脑鼠的稳定性,采取转弯时整步,直走时半步。我们在Mouse_Drive.c文件中,加入全局变量int8 maincheck,初始化为0(其中0为不转弯,1为转弯)。在__leftMotorContr()和__rightMotorContr()中根据maincheck的值来实现整步和半步的转换,maincheck的值在void mouseTurnleft(void),void mouseTurnback(void)和void mouseTurnright(void)中被更改。 , 软硬件调试过程 首先我们对电脑鼠的传感器进行调节。根据程序中对传感器返回值的要求,首先我们降低了左前右三个方向远距红外检测频率,改为35500Hz。再在跑道上对传感器硬件的调节,当电脑鼠靠近墙时,近墙一侧斜角红外值为1,远墙一侧斜角红外值为0,近墙一侧正对红外值为3,远墙一侧正对红外值为1;当电脑鼠在跑道中央时,斜角红外值均为0,且两侧正对红外值为1;前方红外探测距离不得超过一格,由于提速的原因,尽量要远些。 将速度提高,68的速度实在太慢。最开始尝试100和120,但是电脑鼠探索时前进不稳定,会晃,撞墙。所以放弃了高速,只将速度提高到80。 速度提高了,就得更改转弯时得转动步数,速度的调节和步数的调节是同步的。根据转弯时的幅度来判断目前转弯步数是否合适。 预赛完后,要想缩短搜索时间,就采用转弯时整步,直走时半步的驱动。首先步数减半,再像之前那样微调步数。 , 组员分工 程序的改编和程序的调试 第 4 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 , 体会心得 当初我选这门公选课,是我舍友告诉我的,他说他的朋友说上这门课有机会拿srtp学分,但是需要些编程基础。我的编程基础还好,就奔着srtp学分选了这门课。 其实这次我上交的程序只在标准程序中更改了很少,更本没有多大的意义。对此我很遗憾。我们平时课程也有点多,琐碎的事情也多,就没多少时间来好好理解程序。我很早就写好了一个算法,但是我是在C++上写的,是很理论的。后来我就想用我自己的算法来写这个电脑鼠搜索程序,结果我遇到了很大的难题。我对电脑鼠的速度始终都控制不好,老是撞墙。后来听了好友的建议,把速度先减小,看看具体原因。结果我发现,我的程序有很多问题。虽然我修改了很多了,但是还是有漏洞。由于时间不够,没有将我的算法改好,就很舍不得地放弃了它。我将我自己编写的程序附在附录里。 在整个过程中,我感触最深的是理论与实际的差异原来是很大的。比如说对半步驱动速度的控制,如果define SEARCHSPEED 68,在较长直道上速度太小,很慢,但是转弯就比较合适;但是如果define SEARCHSPEED 100,虽然在较长直道上速度足够,但是转弯很不稳定,很容易出现丢步现象。 还有一点,我体会到有个老师说的那句话是对的,“现在的编程语言太多了,平台也很多,但是只要你努力学好一种语言,其他的语言可以很快学会”。他曾经十天学会一种语言,并且完成了一个项目。 第 5 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 , 附录 , 搜索算法: 搜索过程中根据绝对方向信息前进,由递归函数void SeekPath(int8 x,int8 y,int8 x1,int8 y1)实现的,其中(x,y)为电脑鼠当前所在点,(x1,y1)为上次探索的点,(x1,y1)是 为了回溯而设立的参数。而且,在搜索过程中采用排除算法,可以避免走一些死路或不必走 第 6 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 的路。其中排除算法是由函数void mapchange(void)实现的,其算法为:在电脑鼠四周的四个点中,如果某个点的四个方向地图信息至少有三个方向已知,则不需要探索这个点,将这个点标记为已被探测过。 , 电机驱动: 3d_speed,2speedd_speed,6speed,,20000ctr,ctr,speedSpeed0= 022ctr2ctr00 3d_speed,2speed5d_speed,6speed,,20000,ctr,ctr,speedSpeed1= 022ctr2ctr00 整步驱动。整步驱动加速很快,尤其是后转弯很快。 第 7 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 , 地图信息处理: 地图信息在每次走了40步后进行获取,此时传感器正处于格子中央,获取的地图信息要准确些。 记录地图信息的数组我改为maze[MAZETYPE*2+1][MAZETYPE+1],我设电脑鼠起点为(1,1),则地图上某个点(x,y)的墙壁信息为:上方向maze[2*x-1][y],下方向maze[2*x-1][y-1],左方向maze[2*x-2][y-1],右方向maze[2*x][y-1]。如下图,每个三角形为 第 8 页 共 9 页 东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台 地图上的一个点,图中每个三角形的上顶点为上方向墙壁信息,左顶点为左方向墙壁信息,右顶点为右方向墙壁信息,中间的点为下方向墙壁信息。这样做有一个好处,比如说,地图上某个点(x,y),那么它下方向墙壁信息和这个点下面的点(x,y-1)的上方向墙壁信息是一致的,一旦改变其一,两者都变了,这很符合实际。但是,它有它的不足,就是开空间太大,而且还是全局变量,占内存。 , 参考书目 1. IAR EWARM V5嵌入式系统应用编程与开发 徐爱钧编著 北京航空航天大学出版社 2009 2. 年IEEE学会公布2006年电脑鼠走迷宫竞 赛规则的网址 3. 单片机及应用系统设计原理与实践 刘海成编著 北京航空航天大学出版社 2009 第 9 页 共 9 页
/
本文档为【电脑鼠走迷宫实验报告附程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索