- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
东南大学第二届IEEE标准电脑鼠走迷宫竞赛 电脑鼠原理及其应用 机电动力试验平台
第 PAGE 7 页 共 NUMPAGES 9 页
第二届IEEE标准电脑鼠走迷宫竞赛
论 文
目录
一.软件程序框图………………………………………….3
二.参赛软件研发过程…………………………………….4
三.软硬件调试过程……………………………………….4
四.各组员分工…………………………………………….4
五.体会心得……………………………………………….5
附录……………………………………………………...…..6
参考书目……………………………………………….……9
软件程序框图
参赛软件研发过程
在void main()函数中,采用压栈的方式进行电脑鼠搜索,数组uint8 GmcCrossway[MAZETYPE*MAZETYPE]用于暂存未走过支路坐标。
数组uint8 GucMapBlock[MAZETYPE][MAZETYPE]记录每个点的地图信息,初始化为0x00。
函数void mouseGoahead(int8 cNBlock)、void mazeSearch(void)、void mouseTurnleft(void)、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。
速度提高了,就得更改转弯时得转动步数,速度的调节和步数的调节是同步的。根据转弯时的幅度来判断目前转弯步数是否合适。
预赛完后,要想缩短搜索时间,就采用转弯时整步,直走时半步的驱动方法。首先步数减半,再像之前那样微调步数。
组员分工
程序的改编和程序的调试
体会心得
当初我选这门公选课,是我舍友告诉我的,他说他的朋友说上这门课有机会拿srtp学分,但是需要些编程基础。我的编程基础还好,就奔着srtp学分选了这门课。
其实这次我上交的程序只在标准程序中更改了很少,更本没有多大的意义。对此我很遗憾。我们平时课程也有点多,琐碎的事情也多,就没多少时间来好好理解程序。我很早就写好了一个算法,但是我是在C++上写的,是很理论的。后来我就想用我自己的算法来写这个电脑鼠搜索程序,结果我遇到了很大的难题。我对电脑鼠的速度始终都控制不好,老是撞墙。后来听了好友的建议,把速度先减小,看看具体原因。结果我发现,我的程序有很多问题。虽然我修改了很多了,但是还是有漏洞。由于时间不够,没有将我的算法改好,就很舍不得地放弃了它。我将我自己编写的程序附在附录里。
在整个过程中,我感触最深的是理论与实际的差异原来是很大的。比如说对半步驱动速度的控制,如果define SEARCHSPEED 68,在较长直道上速度太小,很慢,但是转弯就比较合适;但是如果define SEARCHSPEED 100,虽然在较长直道上速度足够,但是转弯很不稳定,很容易出现丢步现象。
还有一点,我体会到有个老师说的那句话是对的,“现在的编程语言太多了,平台也很多,但是只要你努力学好一种语言,其他的语言可以很快学会
原创力文档


文档评论(0)