?
目录
1.硬件设计
(1)电机驱动模块
?(2)红外避障与循迹模块
2.软件设计
(1)电机驱动模块
?(2)循迹检测模块
(3)PWM模块
1.硬件设计
(1)电机驱动模块
线路连接
J10-EN1接C52-P1.4? ? ? ? ? ? ? ? ? ? ? ? //EN1为左电机的使能端,只有当EN1为1时,左电机才能启动
J10-EN2接C52-P1.5????????????????????????//EN2为右电机的使能端,只有当EN2为1时,右电机才能启动
J10-IN1接C52-P1.2? ? ? ? ? ? ? ? ? ? ? ? ?//IN1控制左电机反转,当IN1为1时,左电机反转
J10-IN2接C52-P1.3????????????????????????//IN2控制左电机正转,当IN2为1时,左电机正转
J10-IN3接C52-P1.6????????????????????????//IN3控制左电机正转,当IN3为1时,左电机正转
J10-IN4接C52-P1.7????????????????????????//IN4控制左电机反转,当IN4为1时,左电机反转
电机驱动模块原理图

(2)红外避障与循迹模块
线路连接
J11-P3.2接C52-P3.2? ? ?
//P3.2为循迹右灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮
J11-P3.3接C52-P3.3
//P3.3为循迹左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮
J11-P3.4接C52-P3.4
//P3.3为避障左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮
J11-P3.5接C52-P3.5
//P3.3为避障左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮
J11-VCC接电源
J11-GND接地
红外避障与循迹检测模块原理图
检测原理:红外线发射装置发射红外线,由于平面会反射红外线,红外线接收装置就会收到反射回来的红外线,此时指示灯亮,端口输出0;而检测装置下面有黑色时,黑色会吸收掉红外线,接受装置就接受不到红外线,指示灯灭,端口输出1.因此,当检测装置下面一定距离内没有反射物时,接受装置收不到返回的红外线,也会被认为是检测到了黑色。


2.软件设计
(1)电机驱动模块
首先定义端口,方便后续使用

通过控制左右电机的正反转来实现小车的前进,转弯,旋转等操作
例如:当左电机停止转动,右电机正转,即可实现小车左转的操作
? ? ? ? ? ?当左电机反转,右电机正转,即可实现小车逆时针旋转的操作
1.控制小车前进的函数fornt()

?2.控制小车左转的函数left()

3.控制小车右转的函数right()

4.控制小车逆时针旋转的函数ni()

5.控制小车顺时针旋转的函数shun()

?6.控制小车停止的函数stop()

?(2)循迹检测模块
首先定义端口,方便后续使用

通过红外线检测是否有黑色,从而驱动小车进行下一步运动
如果左灯为0,右灯为1,说明左边出了黑色轨道,此时应该右转,使小车回到轨道上;
如果左灯为1,右灯为0,说明右边出了黑色轨道,此时应该左转,使小车回到轨道上;
如果左灯为1,右灯为1,说明两边都在黑色轨道上,此时应该直行;
如果左灯为0,右灯为0,说明两边都出了黑线轨道,此时应该旋转,寻找轨道

??????根据红外线检测的结果执行相应的操作;
当小车左转时,将k赋值1,以防脱轨后寻轨,因为如果小车左转时脱轨,说明轨道在小车的左侧,此时逆时针寻轨能够最快速的找到轨道;
同理,小车右转时,将k赋值2,如果小车右转脱轨,说明轨道在小车右侧,此时顺时针寻轨能最快速找到轨道。

(3)PWM模块
最后,由于小车速度过快,经常脱轨之后就冲出了可寻轨的范围,所以这里采用PWM技术来调整小车的车速。
?首先是定时器的设置,这里只需要用到一个中断,不需要设置中断优先级,默认即可,定时器使用方式2,因为方式2有重装功能,计时最准确快捷。
设置占空比,此处time为全局变量,每进入一次中断函数,time就加一,而只有time=75时才会有相应操作,而time=100时又会停止相应操作,就是说,电机真正响应的时间,只有25%,速度也只有原来的25%,可以通过改变占空比来改变速度。这里占空比要尽可能大,使小车速度减慢,不然容易脱离可寻轨范围。
?
|