机器人小车论文概况.docx
- 文档编号:29356998
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:18
- 大小:131.86KB
机器人小车论文概况.docx
《机器人小车论文概况.docx》由会员分享,可在线阅读,更多相关《机器人小车论文概况.docx(18页珍藏版)》请在冰豆网上搜索。
机器人小车论文概况
机器人小车
队员:
刘汝磊、陈齐、谈仲武
陈喜、吴天威、沈博伟、孟杰
单位:
黄山学院
指导老师:
孙中胜
2008年7月14日
机器人小车
摘要:
本系统以89C52单片机为核心,辅以步进电机、LCD显示、红外传感器和触须传感器数据采集等电路组成,实现了机器人小车的前后行走、左右转弯、灵巧避障,寻轨行走、LCD显示等功能。
避障采用了红外避障和触须避障两种方案,能更好且更精确的避开障碍物。
使用LCD显示,丰富小车功能和构造。
Abstract:
Thesystemisdesignedtoconstructawiredmonitorsystemofamasterstationcontrollingmultipleslavestations,withamicro-controller89C52asthekey,complimentedbysteppermotor
drive,LCDdisplay,infraredsensorsandsensordataacquisitiontentacles,andothercircuitcomponents,toachievearobotwalkingaroundthecar,turningaround,ingeniousobstacleavoidance,lookfortracksWalking,LCDdisplay,andotherfunctions.Obstacleavoidanceoftheuseofinfraredobstacleavoidanceandtentaclesobstacleavoidancetwoprogrammes,betterandmoreprecisetoavoidobstacles.TheuseofLCDdisplay,richcarfunctionsandstructure.
一、功能与方案
1、前后行走与左右转弯
小车行走是依靠左右边的两个伺服电机,伺服电机的工作原理与普通的电机不通,它的动力来源于不同频率的脉冲。
在这里,给它1.3ms左右的脉冲时,它就正转,如图1所示。
给它1.5ms左右的脉冲时,它就静止,如图2所示。
给它1.7ms左右的脉冲时,它就反转,如图3所示。
伺服电机与单片机的连接如图4所示:
不同频率的脉冲是由单片机通过编程送出,如程序一所示:
程序一:
while
(1)
{
P1_0=1;//P1_0输出高电平
delay_nus(1500);//延时1.5ms
P1_0=0;//P1_0输出低电平
delay_nus(20000);//延时20ms
}
(伺服电机静止)
while
(1)
{
P1_0=1;//P1_0输出高电平
delay_nus(1300);//延时1.3ms
P1_0=0;//P1_0输出低电平
delay_nus(20000);//延时20ms
}
(伺服电机正转)
{
P1_0=1;//P1_0输出高电平
delay_nus(1700);//延时1.7ms
P1_0=0;//P1_0输出低电平
delay_nus(20000);//延时20ms
}(伺服电机反转)
机器人小车的转弯是通过让一个伺服电机转动,另一个不转或是反转来实现的。
2、机器人小车的避障功能
避障采取了两种方案,一种是红外避障,另一种是触须避障。
a、红外避障
要想让红外接收装置最大范围地接收到反射回来的信号,就一定要调整探头和接收装置的角度问题,尽量让它们工作在同一条直线上。
有两种方法可以控制红外的探测范围,一种是软件方法,一种是硬件方法。
软件方法是通过程序修改红外的发射频率,从而达到控制探测范围的效果,硬件方法是在红外发射装置上接上一个电阻,便会减小红外探测范围,电阻越大,红外探测也就越小。
红外探测电路如图5所示:
图5
例小车左红外探测如程序二:
程序二:
#include
#include
intP1_2state(void)
{
return(P1&0x04)?
1:
0;
}
intmain(void)
{
intcounter;
intirDetectLeft;
uart_Init();
printf("ProgramRunning!
\n");
while
(1)
{
for(counter=0;counter<38;counter++)
{
P1_3=1;
delay_nus(13);
P1_3=0;
delay_nus(13);
}
irDetectLeft=P1_2state();
printf("irDetectLeft=%d\n",irDetectLeft);
delay_nms(100);
}
}
b、触须探测:
触须也是相当于一个开关作用,当遇到障碍物变形后,便会触碰到触须附近的弹片,这样就相当于形状闭合,电路接通后便会送出一个信号到我们小车上的单片机上,单片机经过处理后,送出一个信号到伺服电机,告诉前方有障碍物,需要转弯,这样就完成了小车避障的功能。
触须探测电路如图6:
图6
触须探测如程序三:
程序三:
#include
#include
intP1_4state(void)//获取P1_4的状态
{
return(P1&0x10)?
1:
0;
}
intP2_3state(void)//获取P2_3的状态
{
return(P2&0x08)?
1:
0;
}
intmain(void)
{
uart_Init();
printf("WHISKERSTARTES\n");
while
(1)
{
printf("右边胡须的状态:
%d",P1_4state());
printf("左边胡须的状态:
%d\n",P2_3state());
delay_nms(150);
}
}
3、小车寻轨
轨道是用黑色绝缘在白色纸板上做成的一个U字型轨道。
利用红外识别轨道,红外遇到白纸被反射,遇到黑色轨道就被吸收。
在小车的前端左右两边分别有一个红外探测器,当小车的红外接收装置接收到反射回来的信号时,小车就直走,当红外接收装置没有接收到信号时,小车就转弯,左边接收到就左转弯,右边接收到就右转弯。
这样就可以让小车寻着轨道行走了。
轨道如图7所示:
图7
寻轨如程序四:
程序四:
#include
#include
#defineLeftIRP1_2//左边红外接受连接到P1_2
#defineRightIRP3_5//右边红外接收连接到P3_5
#defineLeftLaunchP1_3//左边红外发射连接到P1_3
#defineRightLaunchP3_6//右边红外发射连接到P3_6
#defineKpl70
#defineKpr-70
#defineSetPoint3
#defineCenterPulse1500
unsignedinttime;
intleftdistance,rightdistance;//左边和右边的距离
intdelayCount,distanceLeft,distanceRight,irDetectLeft,irDetectRight;
unsignedintfrequency[5]={29370,31230,33050,35700,38460};
voidtimer_init(void)
{
IE=0x82;//开总中断EA,允许定时器0中断ET0
TMOD|=0X01;//定时器0工作在模式1:
16位定时器模式
}
voidFreqOut(unsignedintFreq)
{
time=256-(50000/Freq);
TH0=0XFF;
TL0=time;
TR0=1;
delay_nus(800);
TR0=0;
}
voidTimer0_Interrupt(void)interrupt1
{
LeftLaunch=~LeftLaunch;
RightLaunch=~RightLaunch;
TH0=0XFF;
TL0=time;
}
voidGet_lr_Distances()
{
unsignedcharcount;
leftdistance=0;//初始化左边的距离
rightdistance=0;//初始化右边的距离
for(count=0;count<5;count++)
{
FreqOut(frequency[count]);
irDetectRight=RightIR;
irDetectLeft=LeftIR;
if(irDetectLeft==1)
leftdistance++;
if(irDetectRight==1)
rightdistance++;
}
}
voidSend_Pulse(unsignedintpulseLeft,unsignedintpulseRight)
{
P1_1=1;
delay_nus(pulseLeft);
P1_1=0;
P1_0=1;
delay_nus(pulseRight);
P1_0=0;
delay_nms(18);
}
intmain(void)
{
unsignedintpulseLeft,pulseRight;
uart_Init();
timer_init();
//printf("ProgamRunning!
\n");
//printf("FREQENCYETECTED\n");
while
(1)
{
Get_lr_Distances();
pulseLeft=(SetPoint-leftdistance)*Kpl+CenterPulse;
pulseRight=(SetPoint-rightdistance)*Kpr+CenterPulse;
printf("distanceLeft=%ddistanceRight=%d\n",leftdistance,rightdistance);
Send_Pulse(pulseLeft,pulseRight);
}
}
4、LCD显示功能
这一功能是为了让小车更加的智能化。
具体的功能是:
显示小车动作的命令,例如:
小车要左转弯,LCD就显示turnleft,右转弯显示turnright前进显示forward.
LCD显示有如程序五:
程序五:
#include
#include
#include
voidForward(void)
{
inti;
for(i=1;i<=65;i++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
}
voidLeft_Turn(void)
{inti;
for(i=1;i<=26;i++)
{
P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
}
voidRight_Turn(void)
{inti;
for(i=1;i<=26;i++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
voidBackward(void)
{inti;
for(i=1;i<=65;i++)
{
P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
intmain(void)
{
charNavigation[10]={'F','L','F','F','R','B','L','B','B','Q'};
intaddress=0;
LCM_Init();
while(Navigation[address]!
='Q')
{
switch(Navigation[address])
{
case'F':
Forward();
Display_List_Char(0,0,"case:
F");
Display_List_Char(1,0,"Forward");
delay_nms(500);
break;
case'L':
Left_Turn();
Display_List_Char(0,0,"case:
L");
Display_List_Char(1,0,"TurnLeft");
delay_nms(500);
break;
case'R':
Right_Turn();
Display_List_Char(0,0,"case:
R");
Display_List_Char(1,0,"TurnRight");
delay_nms(500);
break;
case'B':
Backward();
Display_List_Char(0,0,"case:
B");
Display_List_Char(1,0,"Backward");
delay_nms(500);
break;
}
address++;
}
while
(1);
}
LCD显示器引脚说明如表一所示:
编号
符号
引脚说明
编号
符号
引脚说明
1
GND
电源地
9
D2
双向数据口
2
Vcc
电源正极
10
D3
双向数据口
3
V0
对比度调节
11
D4
双向数据口
4
RS
数据/命令选择
12
D5
双向数据口
5
R/W
读/写选择
13
D6
双向数据口
6
E
模块使能端
14
D7
双向数据口
7
D0
双向数据口
15
BLA
背光源正极
8
D1
双向数据口
16
BLK
背光源地
表1
LCD模块与52单片机连接图如图8所示:
图8
二、总结
机器人小车的完整电路如图9所示:
制作机器人小车的重点在于要掌握protel,掌握单片机原理与运用,会使用C语言或VB语言编程,掌握模电、数电,会电路设计,另外,还要熟悉各元器件的性能参数,例如红外发射器和红外接收器的性能参数。
有了这些基础,制作一个机器人小车就很容易了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人 小车 论文 概况