机器人创新实践报告.docx
《机器人创新实践报告.docx》由会员分享,可在线阅读,更多相关《机器人创新实践报告.docx(18页珍藏版)》请在冰豆网上搜索。
机器人创新实践报告
课程设计报告
题目:
智能机器人创新实践
学生姓名
学生学号
指导教师
课程编号
课程学分
教师评语
教师签名:
日期:
设计原理
方案论证
2.1巡线模块设计
2.2巡线模块设计
设计方案
3.1小车的总体结构设计
3.1.1结构元件的选择
3.1.2小车结构图
3.1.3电路驱动部分电路原理图...
3.1.4小车的成品外观图
3.2巡线功能介绍
3.2.1反射型光电探测器RPR220
3.2.2寻迹电路图分析
3.2.3寻迹元件在小车的具体实现
3.2.4电源部分
3.3小车三路巡迹算法
3.3.1.直线寻迹图
3.3.2左转弯巡迹图
3.3.3右转弯巡迹图
3.4巡线与电机驱动程序
结果与分析
10
10
11
11
智能巡线小车
由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强
弱来判断实际的“道路”情况,使小车在白色地板上循黑线行走。
通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时
发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线
2方案论证
2.1巡线模块设计
尺寸
采用一体反射式红外对管,所谓一体就是发射管和接受管固定在一起,反射式的工作原理就是接收管接收到的信号是发射管发出的红外光经过反射物的反射后得到的,所以使用红外对管进行循迹时必须是白色地板加黑色引导条。
这次设计中由于是近距离探测,故采用红外对管来完成数据采集。
由于红外光波比可见光长,因此受可见光的影响较小。
同时红外线系统还具有以下优点:
小、质量轻,便于安装。
反射式光电检测器就是其中的一种器件,它具有体积小、灵敏度高、线性好等特点,外围电路简单,安装起来方便,电源要求不高。
用它作为近距离传感器是最理想的,电路设计简单、性能稳定可靠。
1.2.2供电方案设计与比较
2.2巡线模块设计
方案一:
采用两个电源供电,将电动机驱动电源以及其周边电路与单片机电源分别供电,由于单片机的电压较低,而电机需要的电压较高,容易使单片机电压过高而损坏,使用两个电池供电,可以提高系统稳定性,但是多一组电池,增加了小车的质量,同时也增加了小车的惯性,降低了灵敏度。
方案二:
采用单一电源供电。
电源直接给单片机供电,通过单片机的10口连接到电动机上,这样输出的电压稳定,同时也减轻了小车的质量,使小车更加灵活。
但是加高的电压提高了损坏单片机的风险。
从安全性考虑,我们选择方案一。
3设计方案
3.1小车的总体结构设计
3.1.1结构元件的选择
轮胎,减速箱,电机,万向滑轮,黄色底盘,pcb敷铜板,亚克力板,螺丝,卡簧,固定片等。
3.1.2小车结构图
一右减廈电机一
一左减速电机一
3.1.3电路驱动部分电路原理图
川
+5\-
1
1if.
s
17
T
s-
1,
10
6,€
I--
4
p
r
12
1
1
1
J15
h|1
18
1
i
1
A
16
曲NS
+5V
B
111
1
—1
f_—
'9.
A
3
CON3
J7'
CON占
INI
ora
IN:
01叮:
!
IN3
on?
3
IN4
ora
sei卤咱4
GND
enable.^
eiiableB
Vss
mI
L:
98NI
—
(:
)CTA2|
1
1
—1
丨oCtbO
1
1
亠onB:
!
1
I1)9i\rc
OVTHlU^~M~*'HP]
4007
40071-4001
VCC巧
OLTAl
OLTA2
OUTBl
OLTB2
f?
CN7
I
3.1.4小车的成品外观图
;—H3__—i.二—
3
宜士-
—-Th
14
匚m--云
B.-L.
24J
■--JI
I.3■■匕扣于
■
-訐聲.
讣爲
<-节
I
可-
-•二-n/
A
fe
Ml叫2-亠二■
\
wfe^Ha
:
丄
rLfm八yMHBMkJjjgmalHalBMltRrmfs牛二
3.2巡线功能介绍3.2.1反射型光电探测器RPR220
RPR220是一种一体化反射型光电探测器。
其探测器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电二极管。
主要应用在游戏机,复印机和办公自动化等设备中。
本巡线小车就是用该元件作为检测元件,即是通过检测黑线有没有来达到控制小车巡线的目的的。
3.2.2寻迹电路图分析
RI?
1R28
|4"k
R2-
33(
TJi1^0
47k
T1I
T2
1,
〈^CRT5OOO1\
二」LJ
1\
7弄
3
\|rURT?
000
1J
1EI
(1)没有检测到黑线,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通T1接地等于0。
(2)有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),T1等于VCC。
3.2.3寻迹元件在小车的具体实现
11.7CMI
d
I
圈5.6CM
J---r
Xy
、
-X
Xj
2.8CM
2.2CM
22CMI2,8CM|
3.2.4电源部分
3.3小车三路巡迹算法
3.3.1.直线寻迹图
注:
检测到黑线输出低电平
前方
单片机通过电机驱动电路控制小车运行方法
P1.3
0
1
P\2
1
0
P1.1
0
1
0
1
P1.0P02P0JP0.0
1前进101
0后退
1右峯弯011
1右转弯
卡|';序设汁(a1:
果1问探测头P01右测到黑线,则小乍前进)
if(P0==0x05)
P1=0XO5
3.3.2左转弯巡迹图
前方
单片机通过电机驱动电路控制小车运行方法
P1.3P1.2P1.1
010
101
110
011
P1.0
1前进
0后退
1左转弯
1右转弯
P02P0.1P0.0
101
稗序设汁(如果右边探测头P02测到黑线,则小午偏了,小午左转弯)
if(P0=0x03)
P1=0X0D
3.3.3右转弯巡迹图
圧检対iff;
线输出瑋•
单片机通过电机驱动电路控制小车运行方法
(1
V
P1.3P1.2
P1.0
P0-2P0-1
P0.0
P0.0F
X
P0.2
1前进
前方
0后退
LALB
左
RARB
电
机
1左转弯
1右转弯
P13P12
C3
程序设计(如果左边探测头P00测到!
慣线,则小乍偏了,转弯)
if(P0==0x06)
小乍右
万向滑轮
P1=0X07
3.4巡线与电机驱动程序
#include〃包含51单片机相关的头文件
sbitLeftLed=PiO;
sbitRightLed=卩0人7;
sbitFontLled=P1人0;
//定义前方左侧指示灯端口
//定义前方右侧指示灯端口
sbitLeftIR=卩3人5;
sbitRightIR=卩3人6;
sbitFontIR=卩3人7;
//定义前方左侧红外探头端口
//定义前方右侧红外探头端口
//定义前方正前方红外探头端口
sbitM1A=POP;
sbitM1B=POX;
//定义左侧电机驱动A端
//定义左侧电机驱动B端
sbitM2A=P0A2;
sbitM2B=P0A3;
//定义右侧电机驱动A端
//定义右侧电机驱动B端
sbitB1=P0人4;
sbitSB仁P0A6;
//定义语音识识别传感器端口
//定义蜂鸣器端口
voidtingzhi(){
M1A=0;
M1B=0;
M2A=0;
M2B=0;
//将M1
//将M1
//将M2
电机A端初始化为
电机B端初始化为
电机A端初始化为
voidqianjin(){
M1A=1;
M1B=0;
M2A=1;
M2B=0;
}
voidhoutui(){
M1A=0;
M1B=1;
M2A=0;
M2B=1;
}
voidzuozhuan(){
M1A=0;
M1B=1;
M2A=1;
M2B=0;
}
voidyouzhuan(){
M1A=1;
M1B=0;
M2A=0;
M2B=1;
}voiddelay_nus(unsignedinti)//延时:
i>=12,i的最小延时单12us{
i=i/10;
while(--i);
}
voiddelay_nms(unsignedintn)//延时nms{
n=n+1;
while(--n)
//延时1ms,同时进行补偿
delay_nus(900);
voidControlCar(unsignedcharConType)//定义电机控制子程序
{
break;
}
case8:
〃停止{
tingzhi();break;
}
}
}
voidmain()
{
bitRunFlag=0;//RunShow=0;
//判断用户是否选择形式8
//退出当前选择
//主程序入口
//定义小车运行标志位
//初始化显示状态
//初始化小车运行状态
//程序主循环
ControlCar(8);while
(1)
{
Start:
LeftLed=LeftIR;
RightLed=RightlR;
FontLled=FontIR;
SB仁LeftIR;
if(LeftIR==0&&RightIR==0){
ControlCar
(1);delay_nms(10);gotoNextRun;
}
//前方左侧指示灯指示出前方左侧红外探头状态
//前方右侧指示灯指示出前方右侧红外探头状态
//三个红外检测到黑线,就前进
//左侧没有信号时,
开始向右转一定的角度
if(LeftIR==0&&RightIR==1){
ControlCar(3);delay_nms(10);gotoNextRun;
}
//右侧没有信号时
,开始向左转一定的角度
if(LeftlR==1&&RightIR==0){
ControlCar(4);delay_nms(10);gotoNextRun;
}
//右侧没有信号时
,开始向左转一定的角度
gotoStart;
NextRun:
ControlCar(8);
}
}
4结果与分析
小车的运行如视频附件所示,能实现常规的巡线,遥控,寻光功能