机器人实验报告

时间:2024.4.21

机器人实验报告

学 院: 机电学院 专 业:

小组成员:

教 师:

日 期: 机械工程及自动化 2011-5-29 1

一,实验目的 :

1,熟悉机器人的基本组成和结构。 2,掌握单片机的基本组成,结构,特点,外围接口和基本功能。 3,掌握C语言程序在实践项目中的应用。 4,掌握伺服驱动电机的数字化控制。 5,掌握红外线传感器的基本原理和在机器人巡线方面的应用,掌握机械接触传感器在机器人感知方面的应用。

6,能够熟练地掌握单片机的编程,调试流程。 7,熟悉机器人的控制。 8,提高自身的工程实践能力。

二,实验设备:

宝贝车机器人及其他元件

三,实验内容:

1. 机器人宝贝车的简单介绍、AT89S52单片机的组成及功能介绍,C语言编辑器Keil软件的应用。

2. 相关软件如Keil、ISP工具的使用方法,程序下载,串口助手的使用方法等。

3. 伺服电机的调试,小车巡航控制,包括小车前进、后退、拐弯,小车的加速行驶和减速行驶。

2

4. 传感器在小车巡航控制中的应用,包括触须传感器、红外传感器电路的搭。

5. LCD的原理介绍及应用编程。

6. QTI寻线传感器的工作原理介绍、电路搭建、调试等,寻线机器人的设计。

四、实验过程中遇到的问题及解决方法

问题1:使用红外线发射和接受器件探测道路测试阶段,调试终端不是预料的值。

解决方法:检查电路和输入的程序没有问题,调整红外发射器的角度,使IR LED和探测器不会受左面等物体的影响,问题依旧,荧光灯会干扰,关掉荧光屏,重新测试,最后缺点是IR LED损坏,换了一个调试终端与预料值一致。

问题2:下载可执行文件到单片机时显示加载失败

解决方法:①、将三位开关拨到一位状态

②、将ISP下载线与电脑连接紧一点

五,实验体会和心得:

通过本实验加深我们对机器人的了解,更进一步的掌握了各部件之间的功能特性。让我们在以后更多的实验中能灵活应用探究方法和操作能力。除此,我们在机器人教学中培养了我们的兴趣,创新能力,

3

分析能力和动手操作能力,激发了我们学习、探索、掌握和运用智能机器人技术的兴趣,提高我们爱科学、学科学、用科学的积极性,丰富我们的课余文化生活,增强我们的探究意识、进取意识、团队意识和竞争意识。特别是在机器人的编程和调试方面,我们通过亲手装配、实验、编程和实施机器人项目、直至达到我们所需要的结果。这过程使们们获得发自内心的快乐,同时也培养了我们的动手实践能力、创新思维能力、综合应用能力和团结协作能力。通过机器人实验我们觉得自己变得更从容、更自信、更具有成就感。通过实验操作,我们的能力在动手操作和探究方面都得到较大的提升。同时我们也体会到了团队合作的重要性。

五,实验对社会的意义:

在二十一世纪科技社会时代,人类社会将全面进入以智能机器人为代表的智能时代。相信在不久的将来有关机器人的研究与应用水平将取得重大突破。机器人的广泛应用将极大促进社会生产力的发展与产业结构的调整。机器人的制造与销售将成为一个新的经济增长点。这必将会推进中国在世界的发展脚步。因此实施基础教育领域开展智能机器人的教育,是为了让中国的学生能够有准备地迎接属于我们的明天——智能机器人时代的到来。虽然我们的机器人不能在生产中得以利用和开发,但是它将是开发设计高智能机器人的雏形和创新的源泉。

4

附程序:

#include<BoeBot.h> #include<uart.h> int P1_5state() {

return (P1&0x20)?1:0; }

int P1_4state() {

return (P1&0x10)?1:0; }

int P1_3state() {

return (P1&0x08)?1:0; }

void Forward() {

P1_1=1;

delay_nus(1700); P1_1=0; P1_0=1;

delay_nus(1300); 5

P1_0=0;

delay_nms(20); }

void Right_Turn() {

int i;

for(i=1;i<=2;i++) {

P1_1=1;

delay_nus(1700); P1_1=0; P1_0=1;

delay_nus(1700); P1_0=0;

delay_nms(20); }

}

void Right_Turn1() {

int i;

for(i=1;i<=1;i++) {

6

P1_1=1;

delay_nus(1700); P1_1=0; P1_0=1;

delay_nus(1700); P1_0=0;

delay_nms(20); }

}

void Left_Turn() {

int i;

for(i=1;i<=2;i++) {

P1_1=1;

delay_nus(1300); P1_1=0; P1_0=1;

delay_nus(1300); P1_0=0;

delay_nms(20); }

7

}

void Backward() {

int i;

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); }

}

void goleft() {

Forward();

if(P1_3state()==1) {

8

Left_Turn(); }

else if(P1_4state()==0) {

Right_Turn(); }

}

void goright() {

Forward();

if(P1_4state()==0) {

Left_Turn(); }

else if(P1_5state()==1) {

Right_Turn(); }

}

void left()

{

int i;

9

for(i=1;i<=31;i++) {

P1_1=1;

delay_nus(1300); P1_1=0; P1_0=1;

delay_nus(1300); P1_0=0;

delay_nms(20); }

}

void right()

{

int i;

for(i=1;i<=30;i++) {

P1_1=1;

delay_nus(1700); P1_1=0; P1_0=1;

delay_nus(1700); P1_0=0; 10

} } delay_nms(20);

int main()

{

int i;

uart_Init();

i=0;

while(i==0)

{

goleft();

if(P1_3state()==1&&P1_4state()==1&&P1_5state()==1) i=1;

}

for(i=0;i<19;i++)

Forward();

left();

i=0;

while(i==0)

{

goleft();

if(P1_3state()==1&&P1_4state()==1&&P1_5state()==1)

11

i=1;

}

for(i=0;i<19;i++)

Forward();

left(); i=0;

while(i==0)

{

goleft();

if(P1_5state()==1)

i=1;

}

for(i=0;i<22;i++)

Forward();

right(); i=0;

while(i==0)

{

goleft();

if(P1_5state()==1&&P1_4state()==1&&P1_3state()==1) i=1;

}

12

for(i=0;i<20;i++)

Forward();

i=0; while(i==0)

{

goleft();

if(P1_5state()==1&&P1_4state()==1&&P1_3state()==1) i=1;

}

for(i=0;i<22;i++)

Forward();

Right_Turn();

Right_Turn();

Right_Turn();

i=0; while(i==0)

{

goleft();

if(P1_5state()==1&&P1_4state()==1&&P1_3state()==1) i=1;

}

for(i=0;i<22;i++) 13

Forward();

i=0; while(i==0)

{

goleft();

if(P1_5state()==1&&P1_4state()==1&&P1_3state()==1) i=1;

}

for(i=0;i<0;i++)

Forward();

i=0; while(i==0)

{

goleft();

if(P1_5state()==1&&P1_4state()==1&&P1_3state()==1) i=1;

}

for(i=0;i<20;i++)

Forward();

i=0; while(i==0)

{

14

goleft();

if(P1_5state()==1&&P1_4state()==1&&P1_3state()==1) i=1;

}

for(i=0;i<20;i++)

Forward();

i=0; while(i==0)

{

goleft();

if(P1_5state()==1&&P1_4state()==1&&P1_3state()==1) i=1;

}

for(i=0;i<20;i++)

Forward();

}

15


第二篇:机器人技术实验报告


 

                         

(课程实验报告)

实验一:仿生蛇形机器人

一、实验背景:

串联式机械手是一种重要的机械结构形式,蛇形机器人是一种重要的仿生机器人,相对于有足的仿生机器人而言,它具有他特别的用处,本实验设计一个仿生蛇。有四部电机来控制它,使其具有四个自由度。

近几年来,仿生机器人学正在机器人领域占有越来越重要的位置,蛇形机器人由于其结构的特殊性,已成为仿生领域的研究热点。蛇形机器人在战场上的扫雷,爆破,矿井和废墟中探测营救,管道维修以及外行星地表探测等条件恶劣,且要求有高可靠性的领域有着广阔的应用前景。模块化设计和高冗余度设计等新思路的提出和逐步完善,使蛇形机器人成为研究的亮点。

SolidSnake II 结合了国内外蛇形机器人的发展现状,充分考虑了蛇类生物的运动特点,从仿生学的角度,结合机器人动力学和摩擦学等的相关理论,建立了基于行为控制理论的蛇类运动学模型,把蛇类生物的复杂运动形式化解为局部的、简单的行波状态,并以固定的相位差沿蛇体进行传播。采用中央处理机(即蛇的大脑)集中控制的方式把各种运动方式进行合成,实现了机器蛇的蠕动、游动、侧移、侧滚、抬头、翻越障碍物等运动形式。在对蛇类运动机理深入研究的基础上,得出了利用杆状结构的角度变化和运动时延,相位差去控制机器蛇运动的速率和运动方向的规律,并在实验中验证。本次实验是以其为背景的展开的一次实验。

二、实验目的

1.       了解蛇形机器人的概念,蛇形机器人的动作规划,步态规划的基本知识。

2.       熟悉蛇形机器人的构架搭接。

3.       掌握创意之星机器人的构建搭接的技巧与方法。

4.       熟悉掌握各种搭建元件的使用方法和电机舵机的使用技巧。

三、实验材料

本实验使用博创科技的“创意之星”的全套实验器材,以及一些实验工具,电脑一台,参考书博创实验指导书。

四.实验步骤

      1.清理自己的实验材料,找全本实验所需的各个器件。

      2.关节的搭建

搭建一个关节

首先我们需要搭建出 5 个单独的关节,以组合出完整的机器人。单个关节的结构部分(不包括舵机和舵盘)如下图所示:

下图的装配示意图表明了该关节的安装方式。

A 为 3 个 M3x10 螺钉,D 是 3 个 M3 自锁螺母。A 和 D 把零件 C、E 固定在一起。C 为零件“U3-4-3”, E 为零件“舵机固定板 2”。

B 为 4 个 M3x10 螺钉, G 是 4 个 M3 自锁螺母。B 和 G 把 F(舵盘)固定在零件 C 上。

装配的时候需要注意的是以下几点: G 可以预先放到 F 的螺母槽中,便于装配。C 和 E 的连接要注意位置。C 的中间横梁(图中连接位置)有三组孔,必须使用中间的一组孔。并且,为了下一步安装舵机方便,这里只使用三组螺钉。预先把螺母放进六角套筒,再用螺丝刀紧固螺钉,可以更方便、省力地连接。

请检查连接好后,各个位置是否如下图所示:

下一步是要装入舵机。使用 M3x10 螺钉和自锁螺母把舵机连接到“舵机固定架 2”零件的安装孔上去。如下图所示:

需要注意的是,连接舵机的一共有 4 个螺钉孔位,但是我们只用其中三个,如上图所示。空出一个来的原因是空位的空间紧凑,很难把螺母对到位置上去并拧紧。我们在上一步中,连接 C 和 E 的时候只使用三颗螺钉也是为了留出空间来,便于拧紧固定舵机的螺母。此处拧紧螺母仍然需要使用六角套筒。

完成的关节应该如下图所示:

完成整机装配

完成一个关节之后,重复上述过程,再完成其余的 4 个关节。只是,最后一个关节不需要安装舵机。完成所有关节后,即可将它们组装在一起,如下图所示:

现在这个简单的机器蠕虫的结构已经完全搭建好。美中不足的是舵机引出的电缆太短,并且散乱很不美观,还会影响运动。所以我们最好用电缆套管将线缆包裹起来。具体包裹方式并不固定,只需要以不影响运动、清晰明了为原则。

完成这一步后,蠕虫机器人就完成了。

3.下面我们需要连接所有线缆

需要连接的电缆一共有三种:

(1)3 芯的舵机线,共有 4 个舵机,4 条线;按照从头到尾的顺序,把 4 个舵机的引线分别顺序插入上面图 F 区的 PW0~PW3。黄色线是信号线,插好之后应该位于靠电路板内侧。请注意,这里各个舵机的顺序必须是按照机体上的头尾顺序,从 1 号到 4 号,或者从 4 号到 1 号。

(2)232 通讯电缆,需要和 USB-232 转换电缆配合使用。将 232 通讯电缆和 USB-232 转换电缆连接好,5 针插头插到图上 D 区的 5 针排针。插好之后标签应该位于电路板的外侧。USB 端子插入计算机的 USB 接口,并从“控制面板/设备管理器”中查看新增加的 RS-232 串口号,如下图所示。记下这个端口号,后面我们在 UP-MRcommander 软件中将要使用。注意:这个端口号会随着插入的不同 USB 端口而改变。每次更换 USB 端口的时候需要重新察看新的端口号是多少。

(3)电源线。需要插到 MultiFLEX 控制卡上以提供电源。将适配器插上交流电源,输出端白色端子插入 MultiFLEX 控制卡的电源插座(图上 A 区),控制卡上的红黄两色指示灯会亮起,表示工作正常。验证完 MultiFLEX 控制卡工作正常后,断开电源.

连接好电缆后应该如下图所示

完成电缆连接工作后,插上适配器电源,此时将会看到尚未完成的蠕虫机器人运动了。它有可能处于一个扭曲的姿态,可能如上图所示,也可能是别的姿态。这是因为我们在安装舵机的时候并没有调节它的初始位置。舵机是依靠一个花键(可以当成一个有很多牙的圆柱)和舵盘上的花键槽连接的。可以通过调整花键和花键槽之间的安装角度来调整舵机及与其相连的结构件的相对角度。

4 .机器人动作的写入

以上完成了硬件的结构搭建,下来为机器人导入动作:

1.打开 UP-MRcommander 软件,如下图所示。点击菜单栏中的按钮,打开“蛇形机器人/10 关节蠕动-步距 0.125 波长-正弦波.mra”这个动作文件。我们这里使用蛇形机器人的动作文件,是为了简单起见。暂时不考虑怎么为它编写动作,尽快让我们的第一个机器人运动起来!

调入动作文件后,程序界面如下图所示

通过调节对各个舵机进行控制,实现对机器人的控制。完成各个动作,观察实验结果,分析蛇形机器人的运动。

五.实验总结:

在做这个试验后,掌握了机器人搭建的基本方法,知道了是怎么具体的控制每个运动,怎么实现预定的动作,怎么实现在线调试,怎么烧制程序到控制板中,怎么样才能把各个电路线路连接的整齐美观,完成一个机器人的构架的搭建,对于机械设计知识理解,对于自动控制都有了一个全面的认知。而在做完蛇形机器人后,蛇形机器人可以完成一定的工作了。这只是一个最原始的机器人,只有 5 个自由度,并且不具备传感器,无法根据工作情况来调整自己的反应。从这个意义上来说,它甚至不应该被称为“机器人”。

但是我们还要继续组装这样的各种构型的机器人。我们的目的是通过这些组装和学习,掌握“创意之星”套件的使用,从而能够灵活地发挥自己的想象力,最终用这个套件设计和组装出自己的机器人。也是自己对以前所学习的理论知识有了一个很好的掌握,现在将实际中动手操作,组装了一台机器人,对机器人,电机还有机械构架的装配有了更好而且切身的体会,现在对已整体刚度的理解和以后试验中要注意的事项有了一个更好的而且深刻的理解。达到了自己做实验的目的。同时也提高了自己动手能力,达到了理论和实际相结合的目的。

实验二: 挖掘作业机器人结构搭建

一.  实验目的:

挖掘机是一种典型的工程车辆,它具有强壮的底盘和一个大型的机械手,其末端有一个挖斗一辆挖掘机能替代数十人的同时劳动。在本实验中,我们将构建一辆自动化的挖掘机,它有 4 个轮子,能原地转弯;能够自动地按程序执行一系列行进、挖掘并转移的工作。

1.了解轮式车辆的移动方式和转向方式;

2.了解几种常见的轮式驱动配置方式;

3.熟悉四轮独立驱动的挖掘机。

4.熟悉在 UP-MRcommander 软件中,熟悉直流电机的控制

5..掌握对于具有多种执行器(舵机、电机或者其他)的机器人,掌握搭建和调试要领。直流电机的分类与特点,减速器的分类与特点,轮式驱动的分类与特点。轮式驱动是最广泛使用的驱动方式。大街上飞奔的汽车基本都是轮式车辆。按照转向方式可分为左右差动转向和舵轮转向两种(不考虑全向移动机构);按照驱动轮个数可以分为两轮驱动、四轮驱动、六轮驱动等。

二.实验步骤

    1.结构组装。

完成组装的机器人结构如下图所示:

其中操作手臂的结构如图所示:

3.

机器人构件搭接成的效果图:

2.线缆连接

按下表所示顺序连接指定关节的舵机的电缆到 MultiFLEX 控制卡上:

3.初始姿态的调节

打开控制卡的电源,机器人会锁定初始姿势。为了使用配套光盘中附带的动作程序,我们需要手动调整每个关节的姿势,调整方法同 蛇形机器人类似 小节的最后一段所述。调整完毕后应该如下图所示:

4.动作的写入;

调整之后,再次打开电源。我们应该看到组装完成的挖掘机器人保持如上图所示的状态。此时在 UP-MRcommander 软件中调入“UP-MRcommander\全向四驱小车+机械臂\机械臂+四驱车.mra”这个动作文件,并下载执行。挖掘机器人就可以运动起来了。

5.在线控制各个动作的运动,调整设置各个动作。

二.  实验总结:

选择做挖掘机器人是一个很有挑战的工作,说真的,真是一个很富有挑战性的实验,之前自己对于这个小车的装配图一看就觉得犯晕,自己亲手做了这个实验后自己才发现这个实验原来也是很不错的,只是自己以前太那个酱油了,对于所学的只是没有怎么做到理论学习与实际相结合,而本次的机器人技术实验真的做到了对于机器人的一个制造过程的完全认识,真的掌握了怎么去搭建机械构架,怎么去实现一个机器人的动作。

在这个挖掘机的搭建过程中,我们两个人相互合作,体会到了搭建实验的乐趣,体会到了怎么认真的将每一个螺栓。螺母安装到构件上,怎么把每一个电机舵机好友码盘都安装在一起,怎么去固定,怎么样的看那个装配图实现反求设计,怎么在看着图片的情况下做到了,看着图完成构件的搭建,做好每一个零件的组装,整体的规划,对于整体方案的设计,每一步骤的计划,怎么安装怎么样才能实现预定的运动,怎么的结构才能在实际中能稳定的动作,做到每次的运动平稳,实现定向的控制。

总之,在这个挖掘机实验搭建过程,遇到了很多问题,在每一次的修正过程中,真的掌握了对于构件的搭建所需要的耐心。体会了细致工作的重要性,在每一次的失败与调试中,体会了在以后实际工作中也需要不停地返回工作的过程,完成了对挖掘机的认识,同时也提高了实际操作的能力。

实验三:对挖掘机器人进行可编程的控制

一.实验目的

1.       了解并掌握机器人的动作设置。

2.       学习利用C语言编写程序来控制机器人的动作,对动作流程的设置。

3.       熟悉程序编制环境。

4.       对设置的动作进行程序化调试。

5.       熟练掌握机器人的动作的调试,及反馈修正动作。

6.       熟悉并掌握电机控制函数rc_moto_control()以及延时函数delay()的使用方法,理解其函数定义。

7.       熟悉并掌握利用函数控制舵机运动。实验环境:                         已嵌入WinAVR的AVRStudio4.12

二.实验器材

实验二做好的挖掘机器人。  MultiFlex控制卡1块、控制卡电源线1根、串口下载线1根      、舵机4个。

三.实验步骤

本实验使用的实验环境为已嵌入WinAVR的AVRStudio4.12。实验前做好准备,控制卡的PWM0-PWM3与4个舵机正确连接(连接方法参见实验指导书)2.控制卡与电脑之间用并口下载线正确连接 3.控制卡电源线正确连接。

1.       新建工程,创建自己的工程。

2.       动作的设置与分析。

3.       将设置好的动作程序化

4.       程序编译并将生成的.hex文件烧制到控制板中。

5.       运行机器人,及时发现问题并修正程序。

实验程序代码:

***************************************************************************

*#include "Public.h"

#include    "Usertask.h"

void  user_task(void)

{

             uint8        

                   array_rc[23]={0};//舵机控制数组长度为24,可控制12路舵机,舵机运动函数要求array_rc[偶数]为舵机目标角度值,array_rc[奇数]为舵机运动速度值

                   array_rc[0]=90+20; //舵机1,中位为0度(对应数值90),目标角度+20度。取值范围0-180,超过此范围程序会丢弃此数据

                   array_rc[1]=170;//舵机1,速度为170。取值范围0-255,超过范围程序会丢弃此数据

                   array_rc[2]=90-20;//舵机2目标角度设置

                   array_rc[3]=170;//舵机2转动速度设置

                   array_rc[4]=90-20;//舵机3

                   array_rc[5]=170;

                   array_rc[6]=90+20;//舵机4

                   array_rc[7]=170;

                   rc_moto_control(array_rc);//将舵机运动信息交给舵机运动函数,实现舵机运动

                   delay(50);//延时50*20MS= 1S,给舵机提供反应时间,此反应时间应大于舵机实际运动所需时间

                   array_rc[0]=90;

                   array_rc[1]=170;

                   array_rc[2]=90;

                   array_rc[3]=170;

                   array_rc[4]=90;

                   array_rc[5]=170;

                   array_rc[6]=90;

                   array_rc[7]=170;

                   rc_moto_control(array_rc);

                   delay(50);

}

*/

#include   "Public.h"

#include    "Usertask.h"

void  user_task(void)

{

                   uint8         array_dc[7]={0};//电机控制数组长度为8,可控制4路舵机,电机运动函数要求array_dc[偶数]为电机转动速度,array_rc[奇数]为电机转动时间

             uint8         array_rc[23]={0};

                  

                   array_dc[0] = 0;        // 前       电机1,正转最大速度(0为正转最大转速,0xFE=254为反转最大转速,0x80=128代表电机停止)。范围为0-254,超过此范围程序会丢弃此数据

                   array_dc[1] = 30;     //电机1,转动时间30×0.1=3秒。范围为0-255,超过此范围程序会丢弃此数据

                   array_dc[2] = 0xFE;//电机2,反转最大速度

                   array_dc[3] = 30;

                   array_dc[4] = 0xFE; // 前       电机1,正转最大速度(0为正转最大转速,0xFE=254为反转最大转速,0x80=128代表电机停止)。范围为0-254,超过此范围程序会丢弃此数据

                   array_dc[5] = 30;     //电机1,转动时间30×0.1=3秒。范围为0-255,超过此范围程序会丢弃此数据

                   array_dc[6] = 0;//电机2,反转最大速度

                   array_dc[7] = 30;

                   dc_moto_control(array_dc);//调用直流电机运动控制函数dc_moto_control(),参数为电机控制数组名

                   delay(150);//给电机反应时间150×20MS=3s,此反应时间应不小于电机实际运动时间

                           

                   //uint8     

                   //array_rc[23]={0};//舵机控制数组长度为24,可控制12路舵机,舵机运动函数要求array_rc[偶数]为舵机目标角度值,array_rc[奇数]为舵机运动速度值

                   array_rc[0]=90;

                   array_rc[1]=170;

                   array_rc[2]=90;

                   array_rc[3]=170;

                   array_rc[4]=90;

                   array_rc[5]=170;

                   array_rc[6]=90;

                   array_rc[7]=170;

                   rc_moto_control(array_rc);

                   delay(50);

            // array_rc[0]=90;

                   //array_rc[1]=170;

                   array_rc[2]=90-35;//舵机2目标角度设置

                   array_rc[3]=170;//舵机2转动速度设置

         //      array_rc[4]=90;

         //      array_rc[5]=170;

                   //array_rc[6]=90;

         ///    array_rc[7]=170;

                   rc_moto_control(array_rc);

                   delay(50);

         //      array_rc[0]=90;

         //      array_rc[1]=170;

                   //array_rc[2]=90;

                   //array_rc[3]=170;

                   array_rc[4]=90-90;//舵机3目标角度设置

                   array_rc[5]=170;//舵机3转动速度设置

         //      array_rc[6]=90;

                   //array_rc[7]=170;

                   rc_moto_control(array_rc);

                   delay(100);

                   /*array_rc[0]=90;

                   array_rc[1]=170;

                   array_rc[2]=90;

                   array_rc[3]=170;

                   array_rc[4]=90;

                   array_rc[5]=170;*/

                   array_rc[6]=90+40;//舵机4目标角度设置

                   array_rc[7]=170;//舵机4转动速度设置

                   rc_moto_control(array_rc);

                   delay(100);

                           

                   /*array_rc[0]=90;

                   array_rc[1]=170;

                   array_rc[2]=90;

                   array_rc[3]=170;

                   array_rc[4]=90;

                   array_rc[5]=170;*/

                   array_rc[6]=90+20;//舵机4目标角度设置

                   array_rc[7]=170;//舵机4转动速度设置

                   rc_moto_control(array_rc);

                   delay(50);

                   //array_rc[0]=90;

                   //array_rc[1]=170;

                   array_rc[2]=90+40;//舵机2目标角度设置

                   array_rc[3]=170;//舵机2转动速度设置

         //      array_rc[4]=90;

                   //array_rc[5]=170;

         //      array_rc[6]=90;

         //      array_rc[7]=170;

                   rc_moto_control(array_rc);

                   delay(50);

                   array_dc[0] = 0xFE; // 前       电机1,正转最大速度(0为正转最大转速,0xFE=254为反转最大转速,0x80=128代表电机停止)。范围为0-254,超过此范围程序会丢弃此数据

                   array_dc[1] = 30;     //电机1,转动时间30×0.1=3秒。范围为0-255,超过此范围程序会丢弃此数据

                   array_dc[2] = 0;//电机2,反转最大速度

                   array_dc[3] = 30;

                   array_dc[4] = 0;        // 前       电机1,正转最大速度(0为正转最大转速,0xFE=254为反转最大转速,0x80=128代表电机停止)。范围为0-254,超过此范围程序会丢弃此数据

                   array_dc[5] = 30;     //电机1,转动时间30×0.1=3秒。范围为0-255,超过此范围程序会丢弃此数据

                   array_dc[6] = 0xFE;//电机2,反转最大速度

                   array_dc[7] = 30;

                  dc_moto_control(array_dc);//调用直流电机运动控制函数dc_moto_control(),参数为电机控制数组名

                   delay(150);//给电机反应时间150×20MS=3s,此反应时间应不小于电机实际运动时

       

        array_rc[0]=90-90;//舵机1目标角度设置

                   array_rc[1]=128;//舵机1转动速度设置

                   /*array_rc[2]=90;

                   array_rc[3]=170;

                   array_rc[4]=90;

                  array_rc[5]=170;

                   array_rc[6]=90;

                   array_rc[7]=170;*/

                   rc_moto_control(array_rc);

                   delay(50);

        //array_rc[0]=90;

                   //array_rc[1]=170;

                   array_rc[2]=90-30;//舵机2目标角度设置

                   array_rc[3]=128;//舵机2转动速度设置

                   /*array_rc[4]=90;

                   array_rc[5]=170;

                   array_rc[6]=90;

                   array_rc[7]=170;*/

                   rc_moto_control(array_rc);

                   delay(50);

                   /*array_rc[0]=90;

                   array_rc[1]=170;

                   array_rc[2]=90;

                   array_rc[3]=170;

                   array_rc[4]=90;

                   array_rc[5]=170;*/

                   array_rc[6]=90+50;//舵机4目标角度设置

                   array_rc[7]=170;//舵机4转动速度设置

                   rc_moto_control(array_rc);

                   delay(50);

}

***************************************************************************

四.实验总结

  本次实验主要是对于机器人的程序控制的练习,使用实验二完成的机器人模型,做好了在线调试的工作,记录下每一个步骤的实验数据。在程序的编制过程中不断地烧制不断地进行实际运动的验证,对程序的功能实时反馈。

  在本次试验中,体会了怎么用程序化的语言去控制一个机械结构实现一个特定的运动,实现特定的运动,体会了编程控制机电一体化的机构的运动,对于机器人的多多规划和程控的自动化有了深刻的体会。

实验分组:

    本次实验我们两个人相互协作共同完成了各个实验的构件的搭建和程序的编制,实验报告编写赵保顺。

更多相关推荐:
机器人实验报告

班级电气0901姓名廖勇为学号0912108110实验七机器人走迷宫实验实验内容步骤1机器人从迷宫入口出发用最少的时间走出迷宫到达迷宫的出口2走出迷宫后显示出行走的时间行走时间越少越好分析首先需要检测地面传感器...

智能机器人实验报告

《智能机器人》实验报告学院:数理与信息工程学院专业:计算机科学与技术(师范)学号:姓名:教师:上交时间:20XX年12月19日成绩:实验中用到函数整理l函数:drive(x,y)功能:控制两个电机的转动。说明:…

制作机器人实验报告二心得

机器人实验报告二仿生机器人、人形机器人运动控制[实验目的]熟悉仿生机器人、人形机器人运动控制方法。制作仿生机器人取物品的动作,制作人形机器人行走动作。【实验方法】1.首先观察机器人行走的每一个动作,并记录动作是…

机器人实验报告

班级测控0802姓名24任晓亮060820xx23张肖肖060820xx机器人实验报告实验一创意之星标准版开发环境入门一实验目的1熟悉NorthSTAR图形化开发环境2掌握流程图和代码编程方法以及程序的下载调试...

机器人实验报告

院系电气信息工程学院班级XX级电气X班姓名XXX提交日期机器人实验报告前言作为先进制造业中不可替代的重要装备和手段工业机器人已经成为衡量一个国家制造水平和科技水平的重要标志机器人的应用越来越广泛需求越来越大其技...

机器人实验报告1

工业机器人IRB1400操作实验指导书系别机械工程学院专业机械设计制造及其自动化学号姓名桂林航天工业学院机械工程学院一实验目的1了解IRB1400的组成及各部分的作用2了解IRB1400的示教器的使用方法3了解...

机器人报告

西南科技大学学生实验报告实验课程名称数字化设计与制造开课实验室智能机器人与虚拟模机实验室学院制造学院专业材料成型班级学生姓名学号开课时间20xx至20xx学年第一学期制造科学与工程学院制数字化设计与制造实验报告

简易机器人拆装实验报告

简易机器人拆装实验报告学号08009219姓名杨威成绩一简述对机器人的认识机器人是自动执行工作的机器装置机器人可接受人类指挥也可以执行预先编排的程序也可以根据以人工智能技术制定的原则纲领行动机器人执行的是取代或...

移动机器人综合实验实验报告

移动机器人综合实验姓名学号实验报告南京理工大学自动化学院目录实验一机器人UII测试2实验二机器人传感器实验8实验三机器人运动控制实验15实验四机器人避障实验20实验五机器人跟随运动实验231一实验目的实验一机器...

机器人走多边形实验报告

实验报告单实验名称机器人走四五边形组别第四组日期20xx年3月19日星期二实验者陈建妹苏玲娇孙璐璐一实验目的体验机器人仿真的基本方法与过程具体为1VJC仿真平台上探索转弯90的不同参数设定方案2VJC仿真平台上...

机器人你叫我应实验实验报告

机器人你叫我应实验实验报告一实验目的学会应用各种传感器二实验要求要求机器人实现应答的功能要求机器人可以根据指令作运动三实验内容步骤1在较安静的情况下机器人静止不动当有人发出声音时有节奏的回应2在较安静的情况下机...

工业机器人实验报告

工业机器人拆装实验报告学校湖南大学学院机械与运载工程学院专业机自1201姓名吴子超20xx11020xx1徐文达20xx11010122纪后继20xx10010108刘建国20xx040101101前言六自由度...

机器人实验报告(33篇)