四路循迹解决方案
智慧开启科技人生
科技给我们生活带来愉悦
21世纪已经过去了头十年,科技
的发展以其极高速的状态前行,占据着我们生活的绝大多数的细节。 科技引领生活方式的转变中,你能抗拒其伟大的诱惑力么???
以智能化实现现代家居为契机,我们将使用更加智能的产品引领我
们的生活,使我们的办公更加便捷。智能化的实现
小小的蓝牙使办公活动起来
雄爸天下致力于创造智能控制的学习与开发的良好环境。特此推荐新手必学版本:智能小车之四路循迹小车。并且精心制作了
一系列的教程内容。
DIY四路循迹小车的步骤:
1、小车底盘,电机驱动,电池,单片机最小系统,四路循迹
2、DIY小车制作:小车底盘+驱动板接线
驱动电机B
小车底盘
电机驱动
驱动电机A
3、DIY小车制作:电机驱动+单片机最小系统板+电源
GNDENBENAB2B1P2^1
4、DIY小车制作:四路循迹模块+单片机最小系统板
O4O3O2O1GND5V
P0^4P0^3P0^2P0^1
拔去短路帽,将杜邦线插入靠近单片机的一端
5、DIY小车制作:四路循迹小车循迹安装效果
左视效果
×前方特写
这里有铜柱哦
右视效果
6、DIY小车制作:四路循迹小车制成效果
DIY小车制作完成。可以上路试行。
7、DIY小车制作:控制小车的实现过程分析 为了方便广大电子爱好者,单片机初学者,在校学生更好地学好、用好单片机控制智能小车,在接下来的教程中,我们将详细地分析这款小车的软件算法。
智能控制的核心基础:控制算法。
开始
条件
动作
8、DIY小车制作:智能小车信号传递方式
前进方向
循迹模块检测信号
左轮
LA LB
RA RB
单片机STC89C52RC
驱动单片机
右轮
驱动电机动作
万向滑轮
9、DIY小车制作:2轮小车电机控制方法
左电机 LA LB
右电机 RA RB驱动器 B1 B2主板 P2.2 P2.3 信号 0 0 不转
0 1 前转 1 0 后转 1 1 不转
前进方向驱动器 A1 A2
主板 P2.0 P2.1
LA LB
RA RB
信号 0 0 不转
0 1 前转
右轮
1 0 后转 1 1 不转
左轮
驱动单片机
单片机给电机驱动控制信号,电机动作
P2.0 P2.1 P2.3 P2.3
0 1 0 1 前进
万向滑轮
1 0 0 1 左转弯 0 1 1 0 右转弯 1 0 1 0 后退
10、DIY小车制作:四路循迹小车循黑线动作分析
测到黑线输出低电平循迹模块检测信号,单片机判断给出控制信号
P0.0 P0.1 P0.2 P0.3 P2.0 P2.1 P2.2 P2.3
LA LB
1 0 1
RA RB
1
前进 1
左轮
1 0 0 1 1 0右轮
0 1 1 1 1 1 1 1 1
驱动单片机
1 1 0 0 1 左转弯 0 0 1 1 0 右转弯 1 1 0 1 0 后退
P2.0 P2.1万向滑轮
11、DIY小车制作:四路循迹小车循黑线动作分析
测到黑线输出低电平循迹模块检测信号,单片机判断给出控制信号
P0.0 P0.1 P0.2 P0.3 P2.0 P2.1 P2.2 P2.3 1 0 1
LA LB
1
前进 1
1 0 0
RA RB
左轮
1 1 0右轮
驱动单片机
P2.0 P2.1万向滑轮
void zhizou()//直走{
P2.0=0;P2.1=1;P2.2=0;P2.3=1;
}
void main(void)//主程序{
while(1) {
if((!P0.1)||(!P0.2)) {
zhizou();
} }}
12、DIY小车制作:四路循迹小车循黑线动作分析
测到黑线输出低电平循迹模块检测信号,单片机判断给出控制信号
0 1 1
LA LB
RA RB
1 1 0 0 1 左转弯
左轮
驱动单片机
右轮
P2.0 P2.1万向滑轮
void zuozou()//左走{
P2.0=1;P2.1=0;P2.2=0;P2.3=1;
}
void main(void)//主程序{
while(1) {
if((!P0.0)) {
zuozou();
} }}
13、DIY小车制作:四路循迹小车循黑线动作分析
测到黑线输出低电平循迹模块检测信号,单片机判断给出控制信号
1 1 1
LA LB
RA RB
0 0 1 1 0 右转弯
左轮
驱动单片机
右轮
P2.0 P2.1万向滑轮
void youzou()//右走{
P2.0=0;P2.1=1;P2.2=1;P2.3=0;
}
void main(void)//主程序{
while(1) {
if((!P0.3)) {
youzou();
} }}
14、DIY小车制作:四路循迹小车循黑线动作分析
测到黑线输出低电平循迹模块检测信号,单片机判断给出控制信号
0 0 0
LA LB
RA RB
0 0 0 0 0 停止
左轮
驱动单片机
右轮
P2.0 P2.1万向滑轮
void tingzhi()//左走{
P2.0=0;P2.1=0;P2.2=0;P2.3=0;
}
void main(void)//主程序{
while(1) {
if((!P0.0)&&(!P0.1)&&(!P0.2)&&(!P0.3)) {
tingzhi();
} }}