找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4016|回复: 5
打印 上一主题 下一主题
收起左侧

关于51单片机循迹小车+超声波测距的设计思路

[复制链接]
跳转到指定楼层
楼主
ID:491098 发表于 2019-4-16 15:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
100黑币
可以在1cm的黑色胶带【路段1】上实现自动循迹行驶,【路段1】结束,小车自动停止,要求小车不跑离道路、不压线
小车在循迹过程【路段1】中能够实现障碍检测,当检测到路线上有障碍物时,距离小于30cm后开始语音播报距离,并有明显减速过程,距离障碍物小于10cm时停车。障碍物移开后,小车继续行驶到【路段1】结束位置停止。两个电机,一个万向轮

求大神稍微点拨一下思路

最佳答案

查看完整内容

循迹就得用到循迹模块了,循迹这一块很好解决的,这里我不详讲,有需要会补充,只要会用那个模块就可以了实现循迹了,当路段一结束时,自动停止,这个也可以用循迹模块来实现的,这里也不讲,超声波测距,这个你得用到超声波模块,就是当你检测到距离小于等于30厘米的时候,你就控制语音模块播报相对应的距离,然后控制你的步进电机pwm输出减小,当你检测到距离为10的时候,你就调用小车停止函数进行停车,当你判断障碍物移开后, ...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

评分

参与人数 1黑币 +70 收起 理由
admin + 70 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:516246 发表于 2019-4-19 11:41 | 只看该作者
可以找一下例程
回复

使用道具 举报

地板
ID:486745 发表于 2019-4-20 15:25 | 只看该作者
例子程序网上都有的 一般都是用红外二极管来实现循迹的
回复

使用道具 举报

5#
ID:465205 发表于 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调速时就会受影响,在循迹过程中,小车摇晃特别厉害,很容易跑出赛道,请问怎么才能解决这个问题。

回复

使用道具 举报

6#
ID:405033 发表于 2019-4-23 21:31 | 只看该作者
dukecui 发表于 2019-4-21 14:33
你好,我最近也在做循迹的同时超声波避障,pwm我用T0设置的1ms定时,我用两个定时器分别做pwm和超声波测 ...

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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表