永发信息网

用51单片机做的小车如何实现小车走迷宫

答案:4  悬赏:60  手机版
解决时间 2021-02-23 03:50
就是有一定的记忆功能,就是整个迷宫都走完了,然后自己知道了迷宫的结构,然后计算出最佳正确路线,走出去!我想问这个用编程如何实现?主要是程序的设计思路,比如算法!程序的实现方法! 不用考虑程序大了,内存不够,我扩充!
最佳答案
硬件电路我就不说了,主要说说算法.
1. 先从一种比较简单的迷宫说起,我称之为"二叉树"迷宫,即每个节点上最多连接三条支路,换句话 说,就是当你面对岔路时,你最多只有三个选择,要么左转,要么右转,要么回头.
假如,我们将左转编码为0,右转编码为1,则迷宫的从入口到出口的路径为一串二进制编码.对于最短路径,我们可以让机器人多走几次迷宫,得到一系列二进制串,位数最少的即为"局部最短路径".我们还可以通过这些二进制串,得到迷宫"局部拓扑结构",一种二叉树结构.
注意,在上面的结果上我都加有"局部"两字,这是因为机器人走迷宫的次数如果不够多,或则说少于迷宫的总路径数,我们得到结果都是不完整的,只有当机器人走迷宫的次数足够大,以致于走遍了迷宫所有的路径,这时我们才能得到完整的结果,然而这对于大多数迷宫来说都是不可实现的,也就是说,我们得到的结果都是局部的,最多是趋近于全局结果.
不知大家发现没有,上面还有一种情况我没有编码,那就是回退.这个问题处理起来比较复杂,因此不能仅仅用一位二进制码来表示,必须有专门的处理机制.
这个机制分为三个方面,
一是,每次只回退一步,即当前方无路可走时,回到上一个叉路口,选择另一条支路,程序上就是将当前二进制串减少一位,并将改变后的二进制串的最后一位取反,代表选另一条支路.
二是, 回退一步后,仍无路可走时,再回退一部,重复上述过程,直至有岔路可选.
三是,整个回退过程中,记录并保存每次回退的路径,即左右转向的二进制编码,一个回退过即既是由开始回退到开始前进的整段过程.保留这些二进制串,是因为可以通过他们反推得出迷宫的一些局部的拓扑结构

2. 熟悉上面"二叉树迷宫"后 ,对于一般迷宫通过如下方法设计
一、估计出迷宫最大的支路数,即一个叉路口最多有几条岔路,这里假设为a
二 、用a为二进制码对每一个岔路编码,例如我们可以按顺时针编码
三、 将a为二进制编码代替“二叉树迷宫 ”的一位二进制,其它步骤相仿即可。
当然,我们也可以用变长二进制码表示一次路径选择,不过这时得记录保存每次选则对应的二进制码的长度。

补充:
上面的算法,我说的都很笼统,但总体思路是明确的,即:以迷宫入口为根节点,每个叉路口为一个节点,每个岔路为一段树枝,每个树枝用一定位数的二进制码编码,以树形结构表示迷宫的拓扑结构,于是迷宫的通路可以表示为从树的根节点到某一叶节点的路径。
硬件电路上,主要有两个方面的设计:一是,前进河和回退两个状态的识别与转换;二是,岔路的识别与选择。

以上都是个人观点,思考并不周全,还望大家指正补充。
全部回答
需要运放,51单片机,c语言,红外对管等知识,红外对管检测黑线与非黑线区域的电压不一样,经过运放做的比较器比较成ttl电平,通过51单片机识别并作出相应的反应。不过这是颜色检测的,当然我们还做过电磁检测的,可能会复杂一些。
安装两路红外检测系统,两路系统同时对行走路线的记号检测对比,如果没有偏差,不会产生偏差电流,小车正常前走,如果通过对比计算有偏差电流,就会自动校正方向,你按这个思路设计即可。
2楼的同学只是解决了小车直行的问题 并没有解决小车如何去记忆迷宫结构以及路径算法 作为迷宫来讲 如何分辨岔路和选择进入不同的通道比较困难 我的思路是 在小车两侧安装两个长臂微动开关 设计迷宫时迷宫通道的宽窄压缩两个开关 当路过岔路时开关弹开就可以判断出岔路的位置 (这是廉价的解决方式 可以做成红外测距更好) 这样在小车行进过程中会将途径的所有岔路全部记录 然后逐条道路搜索 程序始终记录从原点开始的路径长度 重复走过的路线长度做减运算 直至小车走出迷宫 需要考虑的东西较多 做的过程中慢慢摸索吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
面皇米后地址有知道的么?有点事想过去
用“魅力”“快乐”“美好”写一段话
秦腔郭明霞死了
想开个网店,注册后,淘宝网总是提示我支付宝
惠中感康可以和狗粮一起喂吗?
如果劳动合同里写明要交社保,而单位又没有交
【简爱作者】《简.爱》的作者()与她的两个姐
蜀王砂锅大饼(剧场街店)地址在哪,我要去那里
细节强迫症是怎么回事
日主天干为水 八字缺木 是什么意思 会怎么样
佳缘糖果(双丰西路店)这个地址在什么地方,我
某房展会一房产企业打出了宣传广告:顾客可现
为什么我家的空调开了之后会掉冰块下来?
众品冷鲜肉NO.2013487这个地址在什么地方,我
银行审核信用卡会查单位电话真假么?
推荐资讯
社会中有哪些不文明现象应如何加强社会公德建
将下列算式与答案连一连
Upper 10th percentile是前百分之十么
找一款售后派工管理软件,有无推荐?
汉象/图书·音乐酒店我想知道这个在什么地方
用铜线做进电主线,用铝线做灯具,插座,可不可
我把喜欢男生所有饮料拿过来喝,这是什么表现
遂盛肉制品地址有知道的么?有点事想过去
我国领土的4个端点,按照纬度自高到低,正确
近年来赤潮在我国时有发生,当赤潮发生时,海
oracle分页查询怎么实现 假如我数据库有15条
伍星港饮地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?