中国教育机器人大赛智能搬运比赛演示程序说明Word文档格式.docx
- 文档编号:21616589
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:30
- 大小:633.71KB
中国教育机器人大赛智能搬运比赛演示程序说明Word文档格式.docx
《中国教育机器人大赛智能搬运比赛演示程序说明Word文档格式.docx》由会员分享,可在线阅读,更多相关《中国教育机器人大赛智能搬运比赛演示程序说明Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
该文档的宝贝车上装BASICStamp微控制器,将BASICStamp微控制器换成C51+AVR教学板即可,安装要求教学板上的面包板在车体前方。
)。
以下用表格描述各传感器与教学板的电路连接方式。
表2.1电机、QTI线跟踪套件、超声波传感器与C51教学板的电路连接
设备名称
设备端口
C51教学板端口
右电机
白线
P10
红线
Vin
黑线
GND
左电机
P11
QTI1
SIG
P00
QTI2
P01
QTI3
P02
QTI4
P03
超声波传感器
Trlg
P20
Echo
P21
VCC
5V
表格补充说明,以宝贝车的车体前方为正方向,则对应的左右两边为左右电机,如图2.6所示。
4个QTI线跟踪传感器的命名顺序是从右边第一个开始为QTI1,第二个为QTI2,第三个为QTI3,第四个为QTI4。
图2.6智能小车左右电机标明图
按照上面描述的安装方法完成智能小车安装,安装完成的小车效果图,如图2.7、图2.8、图2.9所示。
图2.7智能小车安装效果俯视图图2.8智能小车安装效果正面图
图2.9智能小车安装效果小车下方图
第三章超声波传感器测试说明
3.1超声波传感器技术参数介绍
DM-S28018-B超声波提供了精确的、非接触式的距离测量,测量范围从2cm到5m,它非常方便的与单片机连接,只需要两个IO口就可以控制。
(1)使用方法为:
a)采用IO触发测距,给TRIG至少10us的高电平信号。
b)模块自动发送8个40KHz的方波,自动检测是否有信号返回。
c)有信号通过ECHO返回,ECHO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。
(2)产品特性:
a)使用电压:
DC5V;
b)静态电流:
小于2mA;
c)电平输出:
高电平VCC>
0.2V,低电平<
0.2V;
d)感应角度:
不大于15度;
e)探测距离:
0.02m-5m;
f)探测精度:
3mm。
(3)电气参数:
a)工作电压:
b)工作电流:
10mA;
c)工作频率:
40Hz;
d)最远射程:
5m;
e)最近射程:
2cm;
f)输入触发信号:
10uS的TTL脉冲;
g)输出回响信号:
输出TTL电平信号,与射程成比例;
h)规格尺寸:
43*20*15mm。
(4)管脚定义
表3.1管脚定义
引脚
引脚说明
电压+5V
out
空脚
trig
触发信号端
接收端
(5)模块时序图
图3.1模块时序图
(6)使用时注意事项
测量距离是注意事项:
a)在测量距离超过3.3m时,测量误差会增大,可能使得测量距离不是准确等。
b)如果超声波传感器与障碍物的倾角大雨45度使得没有接受信号等。
c)测量物体大小,可能无法测量真实值。
环境温度带来的影响:
如果考虑较高的精度,就不能忽略温度的影响,下面将给出具体计算超声波传输速度公式。
(式1)
3.2超声波测试程序
假设测试程序的定时器计数值(high+low),则该值除于58就是转换为cm为单位的测量距离。
超声波传感器和C51教学板的连接方式与表2.1相同。
#include<
AT89X52.h>
uart.h>
stdio.h>
Boebot.h>
#defineTrigLP2_0//左超声波触发信号
#defineEchoLP2_1//左超声波echo引脚信号
#defineucharunsignedchar
#defineuintunsignedint
uchartimer_cnt=0;
//记录进定时器中断次数
uintsonar_used_time=0;
//定时器初始化
voidInitTimer(void)
{
TMOD|=0x01;
TH0=0x0;
TL0=0x0;
EA=1;
ET0=1;
TR0=0;
}
//定时器0溢出中断
voidInterrupt(void)interrupt1
//测距函数
//返回值:
返回测量得的距离值
uintGetSonarDis(void)
uintdis=0;
uinthigh,low;
TrigL=0;
EchoL=0;
//各I/O口置低
TrigL=1;
//trig置高发出10us的高电平信号
delay_nus(25);
while(EchoL==0);
TR0=1;
//开启定时器开始计时
while(EchoL==1&
&
TR0==1);
//等待echo置低
TR0=0;
high=TH0*256;
low=TL0;
dis=(high+low)/58;
returndis;
voidmain()
uintm;
uart_Init();
while
(1)
{
InitTimer();
//定时器初始化
m=GetSonarDis();
printf("
ultrasonic=%d\n"
m);
delay_nms(1000);
}
第四章QTI线跟踪传感器测试说明
4.1QTI传感器技术参数介绍
(1)QTI边线检测传感器性能参数:
Ø
工作温度:
-40℃~85℃
参考电压:
5V
连续电流:
50mA
功耗:
100mW
最佳距离:
10mm
最佳距离最大散射角度65度
探测到黑色物体输出高电平,探测到白色物体输出低电平。
响应时间:
(V=5v,R=100,I=5mA)
⏹上升沿时间10us
⏹下降沿时间50us
图4.1引脚示意图
4.2QTI传感器测试程序
4个QTI传感器的连线方式与表2.1一样。
#include<
intqtis;
qtis=P0&
0x0f;
switch(qtis)
{case0:
printf("
QTI:
0000\n"
);
break;
case1:
0001\n"
case2:
0010\n"
case3:
0011\n"
case4:
0100\n"
case5:
0101\n"
case6:
0110\n"
case7:
0111\n"
case8:
1000\n"
case9:
1001\n"
case10:
1010\n"
case11:
1011\n"
case12:
1100\n"
case13:
1101\n"
case14:
1110\n"
case15:
1111\n"
}
delay_nms(500);
第五章智能搬运算法说明及程序
5.1智能搬运算法说明
首先把A、B、D、E位置色块搬运到起始区和各转弯线交叉口的连线上。
再回到转弯口,利用超声波搜索F、G、H、I位置最后一块色块,搜索到色块将色块搬运到对应的颜色中心区域内。
最后再回去把起始去和各转弯交叉口的连线上的色块分别搬运到对应的颜色中心区域内。
如图5.1、图5.2、图5.3、图5.4、图5.5、图5.6所示是用图形来描述以上描述的智能搬运算法。
图5.1机器人在起始去图5.2机器人将色块统一放在黑线上
图5.3把搜索到色块并取下色块图5.4把色块搬运到指定颜色中心区域内
图5.5把黑线上的色块分别搬运到图5.6机器人回到起始位置搬运完成
指定颜色中心区域内
5.2智能搬运程序
sbitright_moter=P1^0;
//定义右电机端口
sbitleft_moter=P1^1;
//定义左电机端口
voidturn_right_90(void);
voidturn_left_90(void);
voidturn_right_120(void);
voidturn_left_120(void);
voidturn_right_45(void);
voidturn_left_45(void);
//左转45度
voidturn_right_150(void);
voidturn_left_150(void);
voidturn_back();
//后转
voidturn(uintleft,uintright);
//微转动
voidFast_forward(uchara);
//快速前进
voidstop(void);
voidback(uchara);
voidfast_turn_right_90();
voidturn_r(uintleft,uintright);
//转动
/***********************************************************************/
/*
定时器0溢出中断
*/
//返回值:
{
ucharrecord=0,j=0,ji_shu=0,angle=0;
//变量record指挥小车转弯情况,j,ji_shu用于计数,angle用于记录角度。
charii=0,target[5]={1,2,3,4,5};
//变量ii用于计数,数组target[5]用于记录
uintm,i;
//变量m,i用于计数。
delay_nms(2000);
//延时2秒
Fast_forward(30);
//前进一小段距离
{
P0=0x0f;
//检测黑线
//读取4个巡线传感器的值
Fast_forward
(1);
//前进一小步
switch(qtis)//按照4个巡线传感器的值执行移动指令
{
turn(1550,1550);
//大幅向右转
turn(1550,1500);
//小幅向右转
turn(1450,1450);
//大幅向左转
turn(1500,1450);
//小幅向左转
Fast_forward
(2);
//向前2小步
}
if(qtis==15)//4个巡线传感器都检测的黑线
{
record++;
//指挥变量自增
switch(record)//按照变量的值执行移动命令
{
case1:
turn_left_90();
//左转90度
case2:
turn_right_90();
//右转90度
case3:
Fast_forward(20);
turn_left_45();
//前进20步,再左转45度
case4:
Fast_forward(30);
turn_right_45();
Fast_forward(15);
//前进30步,再右转45度,再前进15步。
case5:
//前进20步,再右转45度。
case6:
Fast_forward(13);
//前进20步,再左转45度,再前进13步。
case7:
//右转90度
case8:
//左转90度
}
ii=0;
//将ii变量清零
}
if(record%2==0&
record>
0)//指挥变量值为偶数,并且非零时才执行以下语句。
ii++;
if(ii>
62-j*6)//小车把物块安放的位置做一定的间隔。
back(32);
turn_back();
ii=0;
j=j+2;
if(record%2==1)//小车检测到白点,取下物块后转
if(qtis==0)
ii++;
4&
qtis==0)
}
if(record==9)//第九次4个巡线传感器都检测到黑线,则前进26步,再右转90度。
Fast_forward(26);
fast_turn_right_90();
stop();
}
//delay_nms(1000);
for(i=0;
i<
500;
i++)//利用超声波搜索第五个物块
{
//启动超声波
//printf("
m=:
%d\n"
delay_nms(100);
turn_r(1510,1510);
//微转动
if(m>
13&
m<
16)
if(ji_shu>
11)//有11次检测到物块,则前进80步,取下物块。
stop();
Fast_forward(80);
break;
ji_shu++;
//将物块所在的位置分类
if(i>
10&
i<
75)angle=30;
//物块在30度位置
75&
130)angle=60;
//物块在60度位置
160&
215)angle=120;
//物块在120度位置
215&
270)angle=150;
//物块在150度位置
switch(angle)//根据物块所在的位置执行相应的指令
case30:
turn_right_150();
case60:
turn_right_120();
case120:
turn_left_120();
case160:
turn_left_150();
Fast_forward
(2);
//向前3步
if(qtis>
0)//根据4个巡线传感器的检测结果执行相应的指令。
switch(angle)
case30:
case60:
case120:
case160:
break;
}
ii=0;
i=0;
m=50;
j=0;
//初始化几个变量的值
if(ii%2==0&
ii>
0&
j%2==0)
InitTimer();
m=GetSonarDis();
//启动超声波传感器
//启动4个巡线传感器
i++;
//计算器i自增
switch(qtis)//根据4个巡线传感器的值,执行相应的指令。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国教育 机器人 大赛 智能 搬运 比赛 演示 程序 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)