标题: 关于51单片机循迹小车+超声波测距的设计思路 [打印本页]

作者: saberAMD    时间: 2019-4-16 15:42
标题: 关于51单片机循迹小车+超声波测距的设计思路
可以在1cm的黑色胶带【路段1】上实现自动循迹行驶,【路段1】结束,小车自动停止,要求小车不跑离道路、不压线
小车在循迹过程【路段1】中能够实现障碍检测,当检测到路线上有障碍物时,距离小于30cm后开始语音播报距离,并有明显减速过程,距离障碍物小于10cm时停车。障碍物移开后,小车继续行驶到【路段1】结束位置停止。两个电机,一个万向轮

求大神稍微点拨一下思路


作者: 疯子本人    时间: 2019-4-16 15:42
循迹就得用到循迹模块了,循迹这一块很好解决的,这里我不详讲,有需要会补充,只要会用那个模块就可以了实现循迹了,当路段一结束时,自动停止,这个也可以用循迹模块来实现的,这里也不讲,超声波测距,这个你得用到超声波模块,就是当你检测到距离小于等于30厘米的时候,你就控制语音模块播报相对应的距离,然后控制你的步进电机pwm输出减小,当你检测到距离为10的时候,你就调用小车停止函数进行停车,当你判断障碍物移开后,你就让小车继续前进,注意!!!:这些用到超声波测距的时候,不能只是判断超声波数值,还要&&你的循迹模块的状态来判断,就是只要判断还在实现循迹功能的前提下,超声波这些数据是有用的,假如你已经走完路段一了,超声波这些数据是不能改变小车的状态的,这些用到if判断就可以实现了,每个模块对应的状态是什么,你就调用相关的函数去执行,差不多,你这个项目就解决了,后续有条件在自行添加功能
作者: 1207399139    时间: 2019-4-19 11:41
可以找一下例程
作者: ljhfatwolf    时间: 2019-4-20 15:25
例子程序网上都有的 一般都是用红外二极管来实现循迹的

作者: dukecui    时间: 2019-4-21 14:33
疯子本人 发表于 2019-4-16 17:54
循迹就得用到循迹模块了,循迹这一块很好解决的,这里我不详讲,有需要会补充,只要会用那个模块就可以了实 ...

你好,我最近也在做循迹的同时超声波避障,pwm我用T0设置的1ms定时,我用两个定时器分别做pwm和超声波测距,他们会有干扰,我用一个定时器也能实现避障,下面是我的代码StartModule();        //启动模块测距                 while(!RX);                //当RX(ECHO信号回响)为零时等待
                 TR1=1;                            //开启计数
                 while(RX);                        //当RX为1计数并等待
                 TR1=0;                                //关闭计数
             Dist();                        //计算距离         */
但是超声波会接受和发送信号会开关定时器,执行pwm调速时就会受影响,在循迹过程中,小车摇晃特别厉害,很容易跑出赛道,请问怎么才能解决这个问题。


作者: 疯子本人    时间: 2019-4-23 21:31
dukecui 发表于 2019-4-21 14:33
你好,我最近也在做循迹的同时超声波避障,pwm我用T0设置的1ms定时,我用两个定时器分别做pwm和超声波测 ...

具体不知道你问题,情况咋样,你的意思是两个定时器会互相干扰,我觉得是你的程序实现逻辑有问题,我觉得两个定时器最好只是测量数据,不要执行,比如说,你可以用定时器测量出超声波的数据,但是你不要在里面让程序执行其他的函数,你在主函数里面把你测量出来的数据进行判断,这样你的判断就只涉及到if的嵌套问题了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1