找回密码
 立即注册

QQ登录

只需一步,快速开始

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

2路红外循迹小车停止问题,每次都冲出赛道,要如何解决?

[复制链接]
跳转到指定楼层
楼主
ID:828410 发表于 2021-7-20 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两路的红外循迹,是不是不好停车?每次都是冲出赛道,有没有办法解决这个问题?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:933150 发表于 2021-7-20 23:45 | 只看该作者
你可以用pwn控制电机的速度,当小车快到转弯的时候,把速度降下来,过转弯后再升上去,这个你可以试一下
回复

使用道具 举报

板凳
ID:828410 发表于 2021-7-21 00:28 | 只看该作者
rong666 发表于 2021-7-20 23:45
你可以用pwn控制电机的速度,当小车快到转弯的时候,把速度降下来,过转弯后再升上去,这个你可以试一下

你好,已经用pwm控制电机转速了,但是还是会出现停车线的检测还是不灵敏,但是其他的循迹路线都是可以的,
回复

使用道具 举报

地板
ID:955127 发表于 2021-7-21 06:30 来自手机 | 只看该作者
你好,可以尝试用pwn控制电机的速度,当小车快到转弯的时候,把速度降下来,过转弯后再升上去,这个你可以试一下
回复

使用道具 举报

5#
ID:539024 发表于 2021-7-21 15:04 | 只看该作者
你可以把红外模块角度往前倾斜一下,增加点前瞻性。
回复

使用道具 举报

6#
ID:539024 发表于 2021-7-21 15:05 | 只看该作者
两路信号有点少,肯定反应不够灵敏,这样要不就降低速度,要不就加红外
回复

使用道具 举报

7#
ID:844772 发表于 2021-7-21 16:12 | 只看该作者
程序问题吧?因为车上停车线时,可能不是90度,导致一边先上,先进入转弯程序,下一个循迹时又过线了,所以难停止。增加停车线宽度,提高循迹频率,调平传感器位置,停车线前的轨迹拉直长一点,可调的方法有很多,看你怎么方便了。另外,能把循迹代码发上来给我学习一下吗?
回复

使用道具 举报

8#
ID:828410 发表于 2021-7-21 17:05 | 只看该作者
glinfei 发表于 2021-7-21 16:12
程序问题吧?因为车上停车线时,可能不是90度,导致一边先上,先进入转弯程序,下一个循迹时又过线了,所以 ...

void run()
{               
                pwm_left_val         = 150;
                pwm_right_val = 150;
                L_go;
                R_go;

}
void stop()
{               
                L_stop;
                R_stop;
}
void lefturn()
{       
                pwm_left_val         = 150;
                pwm_right_val = 130;
                R_go;
                L_back;

}
void righturn()
{
                pwm_left_val         = 130;
                pwm_right_val = 150;
                L_go;
                R_back;
}
void xunji()
{
                if((Left_led==0)&&(Right_led==0))
                {
                        run();
                        delay_us(10);
                }
                else if((Left_led==1)&&(Right_led==1))
                {
                        stop();
                       
                }
                else if((Left_led==0)&&(Right_led==1))
                {
                        righturn();
                        delay_us(10);
                }
                else if((Left_led==1)&&(Right_led==0))
                {
                        lefturn();
                        delay_us(10);
                }
}       
回复

使用道具 举报

9#
ID:828410 发表于 2021-7-21 17:06 | 只看该作者
1543330241 发表于 2021-7-21 15:05
两路信号有点少,肯定反应不够灵敏,这样要不就降低速度,要不就加红外

好的,我晚上调试一下看看,
回复

使用道具 举报

10#
ID:828410 发表于 2021-7-21 17:07 | 只看该作者
glinfei 发表于 2021-7-21 16:12
程序问题吧?因为车上停车线时,可能不是90度,导致一边先上,先进入转弯程序,下一个循迹时又过线了,所以 ...

感谢说出的问题和解决方法,晚上我去调试看看
回复

使用道具 举报

11#
ID:955021 发表于 2021-7-21 17:24 | 只看该作者
实在不行调节两路红外的间隔距离,和对地距离,调整红外的灵敏度。
回复

使用道具 举报

12#
ID:844772 发表于 2021-7-22 08:48 | 只看该作者
一叶舞澎湃 发表于 2021-7-21 17:05
void run()
{               
                pwm_left_val         = 150;

程序还要完善啊,它没法停的,因为车有惯性,即使它执行stop();还会前冲5cm左右,自然就过线了,你设个停止标志变量解决吧。另外,觉得你的程序很难转直角弯吧?我建议你检测和控制分离,这样检测的结果和控制车指令可以不一致,用来处理直角弯,停车,以及Y型线。
回复

使用道具 举报

13#
ID:123289 发表于 2021-7-22 09:14 | 只看该作者
道理很简单:
不知道楼主开不开汽车。
人在驾车时为何没有冲出马路呢?
需要一个提前的预判,人会减速的。
回复

使用道具 举报

14#
ID:827550 发表于 2021-7-23 23:37 来自手机 | 只看该作者
做这个转弯要减速在起当加速
回复

使用道具 举报

15#
ID:827550 发表于 2021-7-24 00:08 来自手机 | 只看该作者
先减速在起步
回复

使用道具 举报

16#
ID:690831 发表于 2021-7-27 00:21 | 只看该作者
用带急停功能H桥驱动,或者自己设计一个电路需要停止时把直流电机的电源输入断开而电机的两个接线极连接在一起
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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