机器人实训报告4

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机器人模块拆装实训报告

班级:

学号:

XX:

一、课程目的

1、锻炼动手能力和团队精神;

2、系统训练创新能力和实践能力;

3、认识小型机器人硬件原理及编程,学习积木机器人原理,掌握齿轮控制等机械知识。

二、课程内容

1、用AS-UII型机器人寻光

2、用AS-EI型机器人组建电动工业机械手

3、自主创新:用AS-EI型机器人模拟电梯

三、方案设计

1、用AS-UII型机器人寻光:

AS-UII型机器人上配有光敏电阻,通过配备的编程软件,可以检测出两边光敏电阻根据光照的不同得到的电阻差值,以此作为根据来控制机器人行走,并寻找到房间里的最亮地点。

2、用AS-EI型机器人组建电动工业机械手:

AS-EI型机器人相当于积木型机器人,可以自由组合,配合AS-UII型机器人的扩展卡,编程时有方便的数字输入、输出,电机驱动等模块,可以灵活进行控制。本实训将组建成电动工业机械手,使用四级电机控制,并通过齿轮的加减速,AS-EI型上配备的电机5:1减速零件,使机械手可以转向,伸高、低,伸前、后,机械手X开和收缩。并用四个指示灯显示电动机状态,每个指示灯配合电机工作,电机运动,相应的指示灯就会亮。四个电机控制是用八个磁敏开关进行控制正反转,以达到电动工业机械手控制的目的。

3、用AS-EI型机器人模拟电梯:

有了组建机械手的经验,在自主创新环节中,我们选择了组建一个模拟电梯,通过电机正反转来控制电梯的升、落。然后通过两个点动开关和三个磁敏开关开控制电梯的升降,并配有三个指示灯。电梯控制流程是:开关一有信号,程序通过磁敏开关判断电梯的位置,然后确定其升降(当三层的磁敏开关没信号,那么

判断二层的磁敏开关,若二层有信号,点动开关一按下,则电梯升至三层,点动开关二按着,然后按下点动开关一,则电梯降至一层;若二层无信号,则电梯在一层,要升至二层;若三层的磁敏开关有信号,则电梯降至二层)。指示灯亮的个数显示电梯所在的层数(一层一个灯亮,二层两个灯亮,三层三个灯亮)。

四、实现结果

1、用AS-UII型机器人寻光:

程序:

注:

1、第一个亮度检测用来检测两个光敏电阻值的偏差,偏差小于等于0,机器人

左拐;偏差大于0,机器人右拐。

2、其余三个亮度检测用来寻找房间里的最亮点,第一个检测两个光敏电阻值偏

差是否等于0,否的话就跳出循环,是的话就检测左、右边光敏电阻值是否小于某一值(根据房间里不同光照条件确定),否的话跳出循环,是的话就能找到房间里的最亮点,这时就执行循环里的指令。

其C语言程序如下:

int photo_1=0;

void main()

{

while(1)

{

photo_1 =photo(1)-photo(2);

if(photo_1 <= 0)

{

motor( 1 , 20 );

motor( 2 , 50 );

}

else

{

motor( 1 , 50 );

motor( 2 , 20 );

}

photo_1 =photo(1)-photo(2);

if(photo_1 == 0)

{

photo_1 =photo(1);

if(photo_1 <= 130)

{

photo_1 =photo(2);

if(photo_1 <= 130)

{

stop();

tone(523.200012,2.000000); wait( 100.000000 );

}

}

}

}

}

3、用AS-EI型机器人组建电动工业机械手:机器人照片:

程序:

下图接上图右边

注:

用8个数字输入条件判断来控制机械手动作;

1、通道1通,马达1正转,机械手右转;

2、通道2通,马达1反转,机械手左转;

3、通道3通,马达2正转,机械手向前;

4、通道4通,马达2反转,机械手向后;

5、通道5通,马达3正转,机械手向上;

6、通道6通,马达3反转,机械手向下;

7、通道7通,马达4正转,机械手爪子X开;

8、通道8通,马达4反转,机械手爪子闭合。其C语言程序如下:

int md_1=0;

int mcm_1=0;

int mcd_1=0;

void main()

{

while(1)

{

md_1 = read(0x4000);

if( (md_1 & 0b1) == 0b0)

{

mcm_1 = (mcm_1 & 0b11111100) | 0b11;

write( 0x4000 ,mcm_1);

mcd_1 =(mcd_1 & 0b1110) | 0b1;

write( 0x5000 ,mcd_1);

mcd_1 =(mcd_1 & 0b1);

write( 0x5000 ,mcd_1);

}

else

{

md_1 = read(0x4000);

if( (md_1 & 0b10) == 0b0)

{

mcm_1 =(mcm_1 & 0b11111100) | 0b1;

write( 0x4000 ,mcm_1);

mcd_1 =(mcd_1 & 0b1110) | 0b1;

write( 0x5000 ,mcd_1);

mcd_1 =(mcd_1 & 0b1);

write( 0x5000 ,mcd_1);

}

else

{

md_1 = read(0x4000);

if( (md_1 & 0b100) == 0b0)

{

mcm_1 =(mcm_1 & 0b11110011) | 0b1100; write( 0x4000 ,mcm_1);

mcd_1 =(mcd_1 & 0b1101) | 0b10;

write( 0x5000 ,mcd_1);

mcd_1 =(mcd_1 & 0b10);

write( 0x5000 ,mcd_1);

}

else

{

md_1 = read(0x4000);

if( (md_1 & 0b1000) == 0b0)

{

mcm_1 =(mcm_1 & 0b11110011) | 0b100; write( 0x4000 ,mcm_1);

mcd_1 =(mcd_1 & 0b1101) | 0b10;

write( 0x5000 ,mcd_1);

mcd_1 =(mcd_1 & 0b10);

write( 0x5000 ,mcd_1);

相关文档
最新文档