学习STC51单片机38(芯片为STC89C52RCRC)智能小车5(跟随小车)

每日一言

        别等准备好了才出发,出发了自然会找到前行的路。

案例:跟随小车

跟随小车是什么意思呢??就是小车会跟着你..........

硬件:红外避障传感器模块

边跟随模块能返回红外,输出低电平,右边不能返回,输出高电平,说明物体在左边,需要左转

右边跟随模块能返回红外,输出低电平,左边不能返回,输出高电平,说明物体在右边,需要右转

总结:

红外传感器的前方只要有物体就会返回红外信号,那么就输出低电平,灯亮,

红外传感器的前方只要没有物体就不会返回红外信号,那么就输出高电平,灯灭

那么我们根据这个特性我们是不是就很好写代码了

我们用差速来写哈,既然学了差速,那我们就用差速控制一下速度

代码如下:

这个是main.c文件的代码

我们这边用了两个红外模块,一个是FollowLeft 和FollowRight,还是一样的我们需要用到两个定时器,因为我们利用了差速来控制小车的速度和转向,我们利用特性,当两个灯都为低电平的时候,也就是两个模块都返回来红外信号,那就说明物体在两个传感器的正前方,那我们就直接不带转向走就好了,所以这边是speedLeft=20; speedRight=20;因为我测试了40的时候是非常快的(全功率),那么我就设置20(一半速度),这样我觉得刚刚好,都是需要不断的去测试,可能不是最好,但是都是根据自己的需求进行改代码,

左转和右转我设置的是20 和 0 这两个数值,因为我感觉这个跟随小车的转向幅度大不大就无所谓了,毕竟万一我需要很快的转弯呢,那小车也可以反应过来,所以这边我设置为0,20的话也是希望慢一点,但是转向快一点,都是根据实际的现象修改的我认为合适的。

停止的话就是,两个模块的红外信号都没有返回,高电平两个灯都是灭的状态,说明前方没有物体,那么就不需要跟随,所以设置都是为左右都是数值0

最后说一点 extern 怕又忘记是什么作用了,目的是用main.c直接操作的time0.的speedLeft 和speedRight,那么我们这个main.c给speed赋值,那么这个值也是在time0.c同步使用的

Motor.c文件代码

Motor.h的代码

Time.c的代码

注意:以上代码不进行讲解,因为我之前的笔记都有讲解,因为代码都没有变动,都是加模块实现功能的,所以代码不变动,主要的变动就是在main.c

跟随小车展示视频

跟着我学习吧,你也可以!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱嵌入式的涛涛同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值