循迹小车全面的软硬件分析.docx
《循迹小车全面的软硬件分析.docx》由会员分享,可在线阅读,更多相关《循迹小车全面的软硬件分析.docx(18页珍藏版)》请在冰豆网上搜索。
循迹小车全面的软硬件分析
循迹小车设计任务和资料
设计任务:
使用单片机接收传感器发来识别的信号
经过处理,控制电机前进、左转和右转,
使小车沿着一定的轨迹行驶
循迹小车软硬件分析建议
循迹传感器硬件设计
1.电路图如下
V2的电压计算公式
R6不变
有光照1R1变小则V2变大
无光照R1变大则V2变小有光照情况
光敏电阻R1变小
V2变大假设V2=4.6VT
V3电压4V
寻光电路测试方法
V2>V3反向端大于同向端参考模电课程运放作为比较器部分
则OUT5输出低电平为低0给单片机识别,单片机通过if来扫描out5给的引脚无光照情况
光敏电阻R1变大
V2变小假设V2=3.2V
V3电压不变还是4V
V2则OUT5输出为高电平1给单片机识别,单片机通过if来扫描out5给的引脚
1、没有检测到黑线,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通则T1接地=0(提问会不会等于0,哪位有测试)
2、有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),则T仁VCC(提问T1会不会等于5V,哪位有测试)检测到白纸有接收到反射光LM324,2脚比较器反向端T1=0V,3脚比较器同向端=3V同向端大于反向端则OUT1输出1
检测到黑线没接收到反射光了,LM324,2脚比较器反向端T1=5V,3脚比较器
同向端=3V,反向端大于同向端则OUT1输出0
调试方法,黑色物体遮挡传感器检测T1脚电压变化是否正常,调节电位器R13,使得3脚电压介于(2脚)T1电压的最大和最小值之间
管脚连接图
当时候发光二极管亮,起捋示作用
接单片机5个引脚,单片机iaaifw句识别對6为测到有黑线
JI
2122
TtT
vcc
5V电源电路
R1
Rei2
150
VCC
TCRT500G
Optoisolatorl
+*v
二]
5V
不加谑被电容后的输出
117CM
I
5.6CM
2.8CM
2.2CM
22CM
2JCM
最适合2-3CM黑线
传感器距离地面3-5CM
电机驱动模块设计建议
CONA
1.-
、_
i-
CON
JI
D9V0C
单片机控制悄号镇入
5
7
ID
J?
nBuININININ
OT.TJ
0LIT2
OLIT3
PUT4
•«—
if
1
T7
setisjiL^AsetisjiisBQND
Ivim'
jp-输出给WT」氐机
BJJ
anbleA
tiisibkBJ代
L298M
vcc/J?
愷髭端吕¥有敕工榨
OLTAJ
OITA:
电机驱动模块介绍
T7卜5
~j
帀
3
1
EN
INI
OUTI
IN2
OIJT2
JN3
UUT3
IN4
OUT4
fensmgA
senstngB
GND
enableA
enableE
Vs
Vss
U2
VCC
L298M
+刃
~8
•i|卩
△§B1L
L
1
2
ENA
3
J2
ENB
J3VCC
POWER.-(N=
J8POWER-JUMP
Cl
220U
机1TB:
\rCC]
VCC
^0(
<1(
Iffl04007
OUTJU
OUTA2
OUTBI
OVTB2
「
1
2
3
4
5
OUTAl
OUTA2
CUTS]
OUTB2
STEPMOTO
VS5
D17
芻M2CT
vJ师
4-5V
L
330
J5
+5V
注湛甲的vuu为犬电压罡给电机槌供电漏
6
CON
CUTAI
1R2
20K
DI〒
LED*2f
D2
OUTA2
DALED*2
)UTBI
R3
2QK
□UT&2
1
J4
OUTAl
1
OUTA2
2
2
DOMOTO
Dc-y
OTO
OtJTAl
QIJTA2
□UTB]
]
7
J3
OUTBI
2
OUTB2
OUT&2
]
+3V3
SPZH17
■i*
C3
33U1C<
J2
POWER丄ED
J10
DC-MOTO
LNgOUT
33U
C5
1、VDD越大电机A,B速度越快,VDD所接电池盒或者直流电源最好不要超过11V,否则比较容易烧毁。
VDDr6-9V
接电池盒或
宜洗总圧电曲
Pow»rIn
®#6V-9VJ
A电机
正反转指示灯
3.3V^MCU
控制信号切换
I一丿
B电机
正反转指示灯
VDD输人电压经过转離后输岀
A1坨给电机A
注:
蓝色接线柱
和排针两种方式
帘可以辅出给电机。
通常用藍色接线柱
接电机厝塞。
4个脚接单片机的
单片<4-1-10口
输入信号给
A1盟控制A电机
输入信号给
控制EI电机
<--
MCU-EN
单片机
给EHA
ENB
槌供懐能
信号
雲音初学者ENAENB的發路幅保持鹿状F墓功込
2、控制时请尽量避免电机在短时间频繁正反转,这样容易也烧毁
注:
有的电机是不带线的,要一头接A1一头焊接在电机上,其他同理
接到4线步进电机
PowerIn
W?
6.5V-9V
也可找通过莽针接到小车的电机日
接电池盒或自说稳压电源外韶电压输入
单片机模块设计
UG-rt
色昵柱接到小车的电机日
5
012345
765432101*11Ji1x■■■■^―i□
H
-♦J
■
T
«
R
X-
PPPPPP:
7
3.
p
小车结构
前方
直流电机小家电小车
步进电机空调门
伺服电机舵机机械手
轮胎2个
减速箱+电机2套
万向滑轮1个
黄色底盘PCB敷铜板亚克力板
螺丝卡簧固定片
小车寻迹算法以3路探测为例
前方
电
P1.3P12
P1.1P1.0
LA
LE
RA
RB
0
0
不转
0
0
不转
0
1
刖转
0
1
刖转
1
0
后转
1
0
后转
1
1
不转
1
1
不转
左电机右电机
单片机通过电机驱动4M控制力碎运行方法
P1.3
P12
P1.3
P12
0
1
0
1前进
1
0
1
0后退
1
1
0
1左转弯
0
1
1
1右转弯
单片机通过电机驱动电路控制小车运行方法
左
左]
减
轮」
g
P13P12
驱动速
R(右
电路电
减
右
轮
P1.3
P0.0
P1.2
(0有障碍)
P1.1
P1.0
0
d
10
1
前进
1
1
01
0
后退
0
1
10
1左转弯
0程序设计
11
1右转弯
前万
P13P12
注:
检测到黑线输出低电平
if(POO==O){
P1=0X0A
}
else
{
P1=0X05
}
系统软件设计
4-1方向的判别程序
在寻黑胶带模式下:
车前从左至右安装5个红外发送接收对管。
(白色输出0,黑色输出1)
A
B
C
D
E
小车运动状态
0
0
1
0
0
直线行走
0
1
1
10
10
一级左转
1
1
0
0
0
二级左转
1
0
0
:
0
:
0
原地左转
0
0
1
h
10
一级右转
0
0
0
1
1
二级右转
0
0
0
:
0
[1
原地右转
0
0
0
0
0
后退
其他情况
不动
#include#defineuintunsignedint#defineucharunsignedchar#include#defineuintunsignedint#defineucharunsignedcharuchari=0,j=0,k,temp;
sbitP10=P1A0;/Z循迹传感器最左有测得信号低电平有效
sbitP1仁PM1;//循迹传感器次左有测得信号
sbitP12=P1A2;//循迹传感器中有测得信号
sbitP13=P1A3;//循迹传感器次右有测得信号sbitP14=P1A4;//循迹传感器最右有测得信号
sbitP23=P2A3;//单片机输出到
sbitP24=P2A4;//单片机输出到sbitP25=P2A5;//单片机输出到
sbitP26=P2A6;//单片机输出到voidinit()
{TMOD=0x01;
TH0=(65536-1000)/256;//1ms
TL0=(65536-1000)%256;
EA=1;
ET0=1;
TR0=1;
}
voidzuo()〃左走
{P23=1;
P24=1;
P25=1;
P26=0;
}
voidyou()//右走
{P23=1;
P24=0;
P25=1;
P26=1;
}
voidzhi()//直走
{P23=1;
P24=0;
P25=1;
P26=0;
}
voidting()//停止
{P23=1;
P24=1;
P25=1;
P26=1;
}
voidmain()
{init();
while
(1)
{};
}
voidtime0()interrupt1
{TH0=(65536-1000)/256;//1msTL0=(65536-1000)%256;
temp=(P1|OxeO);//亭僻高三位
switch(temp)
{caseOxf7:
i=1;you();break;
caseOxef:
i=2;you();break;
caseOxe7:
i=3;you();break;
caseOxe3:
i=4;you();break;
caseOxf3:
i=5;you();break;
caseOxfe:
j=1;zuo();break;
caseOxfc:
j=2;zuo();break;
caseOxf8:
j=3;zuo();break;
caseOxf9:
j=4;zuo();break;
caseOxfd:
j=5;zuo();break;
caseOxfb:
k=1;zhi();break;
caseOxf1:
k=2;zhi();break;
caseOxeO:
ting();break;
caseOxff:
if(i==1||i==2||i==3||i==4||i==5){i=O;you();}if(j==1||j==2||j==3||j==4||j==5){j=O;zuo();}if(k==1||k==2){k=0;zhi();}break;
default:
break;
}
}
表1控制代码表
传感器循迹代码
转向灯控制代码
显示器显示码
电动机控制代码
小车运动状态
0x0f,0x17,0x1f,0x37,0x3f,0x7f
0x2f
0xbf,0xbf,0xbf,0xb0
0x4f
右转
0x47,0x67,0x87,0xc7,0xe7,0xf7
0x1f
0x86,0xbf,0xbf,0xbf
0x1f
左转
0x77
0x2f
0xf9,0xf9,0xf9,0xf9
0x5f
直行
0xff
0xff
0xbf,0xbf,0xbf,0xbf
Ox0f
后退
0x00
0xcf
0xc0,0xc0,0xc0,0xc0
0xff
停止