机电综合实训实验报告

时间:2024.4.7

北京邮电大学

机电综合实训实验

        实验名称:仿生蛇形机器人

  实验目的

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 芯的舵机线,共有 15个舵机,4 条线;按照从头到尾的顺序,把 15个舵机的引线分别顺序插入上面图 F 区的 PW0~PW3。黄色线是信号线,插好之后应该位于靠电路板内侧。请注意,这里各个舵机的顺序必须是按照机体上的头尾顺序,从 1 号到 15号,或者从 15号到 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”这个动作文件。我们这里使用蛇形机器人的动作文件,是为了简单起见。暂时不考虑怎么为它编写动作,尽快让我们的第一个机器人运动起来!

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

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

Solidworks 仿真图如下:

实验总结:

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

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

五 附录

程序如下:

 #include  "Apps/SystemTask.h"

uint8 SERVO_MAPPING[9] = {1,2,3,4,5,6,7,8,9};

int main()

{

    int  i = 0;

    int  j = 0;

    MFInit();

    MFInitServoMapping(&SERVO_MAPPING[0],9);

    MFSetPortDirect(0x00000FFF);

    MFSetServoMode(1,0);

    MFSetServoMode(2,0);

    MFSetServoMode(3,0);

    MFSetServoMode(4,0);

    MFSetServoMode(5,0);

    MFSetServoMode(6,0);

    MFSetServoMode(7,0);

    MFSetServoMode(8,0);

    MFSetServoMode(9,0);

    //红外距离传感器

    j = MFGetAD(0);

    MFSetServoPos(1,512,512);

    MFSetServoPos(2,512,512);

    MFSetServoPos(3,512,512);

    MFSetServoPos(4,512,512);

    MFSetServoPos(5,512,512);

    MFSetServoPos(6,512,512);

    MFSetServoPos(7,512,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,620,512);

    MFSetServoPos(2,512,512);

    MFSetServoPos(3,512,512);

    MFSetServoPos(4,512,512);

    MFSetServoPos(5,512,512);

    MFSetServoPos(6,512,512);

    MFSetServoPos(7,512,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,620,512);

    MFSetServoPos(2,620,512);

    MFSetServoPos(3,512,512);

    MFSetServoPos(4,512,512);

    MFSetServoPos(5,512,512);

    MFSetServoPos(6,512,512);

    MFSetServoPos(7,512,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,620,512);

    MFSetServoPos(2,620,512);

    MFSetServoPos(3,620,512);

    MFSetServoPos(4,512,512);

    MFSetServoPos(5,512,512);

    MFSetServoPos(6,512,512);

    MFSetServoPos(7,512,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,404,512);

    MFSetServoPos(2,620,512);

    MFSetServoPos(3,620,512);

    MFSetServoPos(4,620,512);

    MFSetServoPos(5,512,512);

    MFSetServoPos(6,512,512);

    MFSetServoPos(7,512,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,404,512);

    MFSetServoPos(2,404,512);

    MFSetServoPos(3,620,512);

    MFSetServoPos(4,620,512);

    MFSetServoPos(5,620,512);

    MFSetServoPos(6,512,512);

    MFSetServoPos(7,512,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,404,512);

    MFSetServoPos(2,404,512);

    MFSetServoPos(3,404,512);

    MFSetServoPos(4,620,512);

    MFSetServoPos(5,620,512);

    MFSetServoPos(6,620,512);

    MFSetServoPos(7,512,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,620,512);

    MFSetServoPos(2,404,512);

    MFSetServoPos(3,404,512);

    MFSetServoPos(4,404,512);

    MFSetServoPos(5,620,512);

    MFSetServoPos(6,620,512);

    MFSetServoPos(7,620,512);

    MFSetServoPos(8,512,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(500);

    MFSetServoPos(1,620,512);

    MFSetServoPos(2,620,512);

    MFSetServoPos(3,404,512);

    MFSetServoPos(4,404,512);

    MFSetServoPos(5,404,512);

    MFSetServoPos(6,620,512);

    MFSetServoPos(7,620,512);

    MFSetServoPos(8,620,512);

    MFSetServoPos(9,512,512);

    MFServoAction();

    DelayMS(2000);

    while (1)

    {

        if (j>400)

        {

            MFSetServoPos(1,620,512);

            MFSetServoPos(2,620,512);

            MFSetServoPos(3,549,512);

            MFSetServoPos(4,630,512);

            MFSetServoPos(5,630,512);

            MFSetServoPos(6,620,512);

            MFSetServoPos(7,651,512);

            MFSetServoPos(8,634,512);

            MFSetServoPos(9,695,512);

            MFServoAction();

        }

        else

        {

            MFSetServoPos(1,620,512);

            MFSetServoPos(2,620,512);

            MFSetServoPos(3,620,512);

            MFSetServoPos(4,404,512);

            MFSetServoPos(5,404,512);

            MFSetServoPos(6,404,512);

            MFSetServoPos(7,620,512);

            MFSetServoPos(8,620,512);

            MFSetServoPos(9,620,512);

            MFServoAction();

            DelayMS(500);

            MFSetServoPos(1,404,512);

            MFSetServoPos(2,620,512);

            MFSetServoPos(3,620,512);

            MFSetServoPos(4,620,512);

            MFSetServoPos(5,404,512);

            MFSetServoPos(6,404,512);

            MFSetServoPos(7,404,512);

            MFSetServoPos(8,620,512);

            MFSetServoPos(9,620,512);

            MFServoAction();

            DelayMS(500);

            MFSetServoPos(1,404,512);

            MFSetServoPos(2,404,512);

            MFSetServoPos(3,620,512);

            MFSetServoPos(4,620,512);

            MFSetServoPos(5,620,512);

            MFSetServoPos(6,404,512);

            MFSetServoPos(7,404,512);

            MFSetServoPos(8,404,512);

            MFSetServoPos(9,620,512);

            MFServoAction();

            DelayMS(500);

            MFSetServoPos(1,404,512);

            MFSetServoPos(2,404,512);

            MFSetServoPos(3,404,512);

            MFSetServoPos(4,620,512);

            MFSetServoPos(5,620,512);

            MFSetServoPos(6,620,512);

            MFSetServoPos(7,404,512);

            MFSetServoPos(8,404,512);

            MFSetServoPos(9,404,512);

            MFServoAction();

            DelayMS(500);

            MFSetServoPos(1,620,512);

            MFSetServoPos(2,404,512);

            MFSetServoPos(3,404,512);

            MFSetServoPos(4,404,512);

            MFSetServoPos(5,620,512);

            MFSetServoPos(6,620,512);

            MFSetServoPos(7,620,512);

            MFSetServoPos(8,404,512);

            MFSetServoPos(9,404,512);

            MFServoAction();

            DelayMS(500);

            MFSetServoPos(1,620,512);

            MFSetServoPos(2,620,512);

            MFSetServoPos(3,404,512);

            MFSetServoPos(4,404,512);

            MFSetServoPos(5,404,512);

            MFSetServoPos(6,620,512);

            MFSetServoPos(7,620,512);

            MFSetServoPos(8,620,512);

            MFSetServoPos(9,404,512);

            MFServoAction();

            DelayMS(500);

            MFSetServoPos(1,620,512);

            MFSetServoPos(2,620,512);

            MFSetServoPos(3,549,512);

            MFSetServoPos(4,630,512);

            MFSetServoPos(5,630,512);

            MFSetServoPos(6,620,512);

            MFSetServoPos(7,651,512);

            MFSetServoPos(8,634,512);

            MFSetServoPos(9,695,512);

            MFServoAction();

            DelayMS(500);

        }

    }

}

北京邮电大学课程设计报告

北京邮电大学课程设计报告

更多相关推荐:
机电一体化系统综合实训报告

瑞安电大机电一体化系统综合实训报告年级专业学号姓名实习单位岁月如流水般一去不返作为数控专业的一名学生通过大学提供的综合型学习平台整合课堂中相关专业技能知识从而具备了一名数控专业学生应该具备的基本能力以及素质尤其...

机电一体化系统综合实训报告2

机电一体化系统综合实训一课程性质目的和任务机电一体化系统综合实训是数控技术专业专科的重要的综合实践课之一本课程4学分课内学时为72本实训环节是在课程试验的基础上以机电一体化系统的硬件连接控制原理控制软件编制安装...

机电一体化系统综合实训报告

维修电工专业实习报告时光匆匆,岁月如梭!转眼一学期的PLC综合实训实习结束了。在实习期间虽然很累、很苦,但我却感到很快乐!因为我们在学到了作为一名电气专业学生所必备的知识的同时还锻炼了自己的动手能力。而且也让我…

机电一体化综合实训报告

机电一体化技术与系统实训报告姓名胡忠波班级机电0911指导老师徐爱亲实训时间20xx12520xx129实训成绩机电一体化技术与系统实训报告实训目的通过本次实训对自动化生产线有一个更详细的了解提高我们对所掌握的...

机电一体化实训报告

机电一体化综合实训实习报告学生姓名专业_学号_班级指导教师年月机电一体化综合实训实习报告1概述1.1实习目的通过这次的实习,可以使我们在实践中接触与本专业相关的一些实际工作,培养和锻炼我们综合运用所学的基础理论…

机电实训报告

产品设计与制造实训项目技术报告班级机电1031姓名**学号**小组第3组指导老师**南京工业职业技术学院机械工程学院第1章绪论11.1齿轮油泵的用途及应用11.2齿轮油泵的工作原理21.3齿轮油泵的特点3第2章…

机电综合控制实训报告1

机电综合控制实训报告班级机制002姓名阮博学号10040077实训项目名称光电传感器测试系统一实训目的1掌握光电传感器测转速的基本原理2理解并掌握通过单片机技术获取信号并在数码管显示的程序中编写二实训过程中的工...

机电一体化系统综合实训报告

机电一体化综合实训实习报告1概述实习目的通过这次的实习,可以使我们在实践中接触与本专业相关的一些实际工作,培养和锻炼我们综合运用所学的基础理论、基本技能和专业知识,去独立分析和解决实际问题的能力,把理论和实践结…

机电一体化系统综合实训报告

机电一体化系统综合实训报告一、实训地点及时间在这最后一学期学校安排我们进行为期三个月的PLC学习,主要以亚龙335A型自动生产线为样机的机电一体化实训,经过多个课题的练习,从简单到困难,深刻理解自动生产线编程的…

机电一体化系统综合实训课程标准112课时

机电一体化系统综合实训课程标准二课程性质和任务机电一体化系统综合实训是机电一体化技术三年制高职专业设置的核心课程之一是一门实践课程全面提升学生机电一体化技能本课程开设一学期教学时数为112学时4学分机电一体化系...

数控技术专业(机电方向)《综合实训》报告

人才培养模式改革和开放教育试点数控专业专科机电方向综合实训报告实训项目市校学号姓名指导教师职称实训时间年月日至年月日年月日实训报告

机电一体化实训报告[1].doc

中央广播电视大学机电一体化实训报告课题PLC应用技术分校安徽电大蚌埠机械教学点专业数控技术机电方向专科班级09秋10春姓名学号指导教师20xx年6月数控系统的连接及调试一实验目的1熟悉HED21S数控系统综合试...

机电综合实训报告(28篇)