机器谱

S106】基于“探索者”创新套件的自动化培训平台

图文展示3264(1)

图文展示3264(1)

副标题

作品说明

1. 作品概述

1.1 作品设计来源与概念

      本作品设计来源于工业生成实践,具体是一套用于大学生及中学生课外实践、课程实验及技术培训等方面的自动化加工系统。该产品用于大学生学习自动化加工及工业机器人制作的相关知识,培养大学生对嵌入式、结构设计、C语言编程等多方面技术的能力。

1.2 市场调研及研发背景

      近年来,随着工业4.0及中国制造2025等概念的持续推进,中国工业机器人产业得到了较好的发展,并在众多领域得到广泛应用。国产工业机器人的市场份额从最早的被国外品牌垄断,到现在能在国内市场占有超过30%的市场份额。

      据《机器人产业发展规划(2016-2020年)》设定的目标,到2020年,自主品牌工业机器人年产量达到10万台,六轴及以上工业机器人年产量达到5万台以上,培育3家以上具有国际竞争力的龙头企业,打造5个以上机器人配套产业集群。截至目前,中国自主品牌工业机器人年产量达到10万台的目标已经实现,2017年前10个月,累计生产工业机器人超过10万台,近年的机器人产量如下图所示:

作者:姚寓智 刘彤彬 张梦涵 房银杰

单位:东北林业大学

指导老师:王伟

作品说明

国内机器人产量

      目前,国内已形成以沈阳新松为代表的环渤海机器人产业集聚区,以上海各外资品牌为代表的长三角机器人产业集聚区,以芜湖埃夫特为代表的芜湖合肥马鞍山机器人产业集聚区,以广州数控、东莞启帆为代表珠三角机器人产业集聚区,以重庆两江新区为代表的西部机器人产业集聚区,以及正在形成的以武汉、长沙、南昌为代表的中部城市群机器人产业集聚区。

      虽然国内机器人技术在近年来发展迅速,但中国工业机器人产业仍任重道远。为了振兴中国自动化及工业机器人产业,必然会产生大量的技术人才需求。相关技术人才的培养是实现中国工业现代化的关键。目前众多高校均响应号召,开设相关专业,同时开展众多相关大赛以培养大学生的兴趣爱好。

国内机器人企业分布

1.3 产品服务类型

      鉴于市场上相关结构型材、控制器件以及电机的种类多且型号繁杂,我团队计划采用“探索者系列创新套件”。这是一套机器人创新套件,由机器时代科技有限公司结合了机械、电子、传感器、计算机软硬件、控制、人工智能和造型技术等众多的先进技术研发的教育机器人平台,部分相关开发元器件如下图所示。

      该教育平台是一种以公益的形式面向大学生和中小学生,用于大学生及中小学生课外实践、课程实验及 技术培训等方面的学习平台。其中大学生学习平台为一套自动化加工系统,该系统为一种模拟的小型自动化加工生产线,包括搬运机器人,物料台,传送带,搅拌机等,可实现物料的自动夹取及运输工作、物料的传送工作,物料的加工工作等。面向中小学生的学习平台主要为对抗机器人以及全地形机器人设计。以比赛的形式拓展中小学生对机器人技术的兴趣。

(a) ARM主控板

(b) 圆周舵机

相关开发设备

2. 作品描述

2.1 大学生培训项目

      大学生有一定的计算机程序或了解一定的机械原理,我们基于“探索者系列创新套件”制作相应的自动化结构,从而达到提高他们的机械设计、程序编写能力的效果,也通过培训提高他们的创造、创新能力以及团队协作能力,如制作模拟自动化加工系统综合培训。

      该系统由搬运机器人、物料台、传送带、搅拌机等组成,模拟自动化加工过程中的系列过程。首先搬运机器人对物件进行搬运,将物件从放置台上取下并沿预定路线运送,最后放置到传送带上;传送带先将物件传送到加工点,在加工点处,搅拌机将对物件进行模拟加工过程,模拟加工过程结束后再由传送带将物件送往其他部分。整个模拟过程结束。为完成整个模拟过程,共由四个培训组成。

培训项目一 搬运机器人设计及运行培训

培训目的:

      ① 加深学生对机械手爪结构及工作原理的认识。

      ② 熟悉模块概念,培养学生机构运动创新设计意识。

      ③ 训练学生的工程实践动手能力。

培训内容:

      ① 结构部分

      搬运机器人由车身、机械手抓两部分组成,具体如下图所示:

搬运机器人

      车身为刚性车身,四轮结构,独立控制,四轮为橡胶轮,增加了地面摩擦力与稳定性,为机械手抓的使用提供稳定性支持。机械手抓为连杆伸缩机构,可进行伸缩抓取物品,配合舵机,还可完成机械手抓的抬升。

② 控制部分

      车身底部装有白标传感器,可根据地面黑线引导,返回相应的参数值,通过ARM7主控板程序进行判断,并发出相应程序命令。车轮由四个舵机组成,通过主控板的程序控制提供车的行进、转弯进行动力输出;四个舵机互不影响,增加了小车的活动能力,以便完成各种动作。机械手抓是由两个舵机控制,两个舵机互不干扰,相互配合可根据主控板的程序对机械手抓的抬高、抓取动作提供动力输出,保证动作的顺利进行。搬运机器人代码如下:

#include "config.h"

#include "lib_io.h"

#include "lib_arm.h"

int main(void)

{int s;

//int i;

Initial_ARM();


while(1)

{

       if(Input(1,1)==0&&Input(2,1)==0&&Input(3,1)==0)

{

s=0;

   LedIn(1,0);

   LedIn(2,0);

   LedIn(3,0);

}

else if(Input(1,1)==0&&Input(2,1)==0&&Input(3,1)==1)

     {

s=1;

LedIn(1,0);

    LedIn(2,0);

    LedIn(3,1);

}

else if(Input(1,1)==1&&Input(2,1)==0&&Input(3,1)==1)

{

s=2;

    LedIn(1,0);

    LedIn(2,1);

    LedIn(3,0);

}

else if(Input(1,1)==0&&Input(2,1)==1&&Input(3,1)==1)

{

s=3;

LedIn(1,0);

LedIn(2,1);

           LedIn(3,1);

  }

else if(Input(1,1)==1&&Input(2,1)==0&&Input(3,1)==0)

     {

s=4;

  LedIn(1,1);

      LedIn(2,0);

          LedIn(3,0);

}         

else if(Input(1,1)==1&&Input(2,1)==1&&Input(3,1)==0)

{

s=5;

LedIn(1,1);

    LedIn(2,1);

    LedIn(3,0);

    }

else if(Input(1,1)==1&&Input(2,1)==1&&Input(3,1)==1)

{

s=6;

LedIn(1,1);

LedIn(2,1);

     LedIn(3,1);  

   }

else

s=7;

switch(s) //根据变量s低3位所存储的传感器触发状态,分别让小车的左转、右转或直行

{

case 0:{Servo(1,82);Servo(2,82);Servo(3,93);Servo(4,93);}break;

case1:{Servo(1,98);Servo(2,98);Servo(3,82);Servo(4,82);Delay(150);

          Servo(1,82);Servo(2,82);Servo(3,100);Servo(4,100);Delay(150);

if(Input(2,1)==0);break;}break;

case 2:{Servo(1,82);Servo(2,82);Servo(3,93);Servo(4,93);Servo(5,110);

Servo(1,98);Servo(2,98);Servo(3,82);Servo(4,82);}break;

case 3:{Servo(1,98);Servo(2,98);Servo(3,82);Servo(4,82);Delay(150);      Servo(1,82);Servo(2,82);Servo(3,100);Servo(4,100);Delay(200);

if(Input(2,1)==0);break;}break;

case 4:{Servo(1,93);Servo(2,93);Servo(3,80);Servo(4,80);Delay(150);

  Servo(1,77);Servo(2,77);Servo(3,93);Servo(4,93);Delay(200);

if (Input(2,1)==0);break;}break;

       case 5:{Servo(1,93);Servo(2,93);Servo(3,80);Servo(4,80);Delay(200);

Servo(1,77);Servo(2,77);Servo(3,93);Servo(4,93);Delay(200);

if (Input(2,1)==0);break;}break;

   case 6:{Servo(1,82); Servo(2,82);Servo(3,93); Servo(4,93);}break;

   case 7:{Servo(1,82);Servo(2,82);Servo(3,93);Servo(4,93);Servo(5,20);

Servo(1,98);Servo(2,98);Servo(3,82);Servo(4,82);Delay(150);

          Servo(1,82);Servo(2,82);Servo(3,100);Servo(4,100);Delay(150);

if(Input(2,1)==1);break;}break;

   default:break;

}

}

return(1);

}


培训项目二 履带小车和传送带设计及运行培训

培训目的:

      ① 加深学生对带传动及自动化输送设备的认识。

      ② 熟悉模块概念,培养学生机构运动创新设计意识。

      ③ 训练学生的工程实践动手能力。

培训内容:

      ① 结构部分

      传送带由机架与履带部分组成,传送带具体如下图所示:

传送带

      机架为刚性架身,五点支撑,使整个结构更加稳定,不会再运输加工过程中产生影响加工的震动。

      履带如下图所示,该部分使用两个主动轮,四个从动轮,一个主动轮与两个从动轮搭配以履带连接,使运动过程中两条履带的速度,力度一致,已达到货物平稳运输的作用。中间两个从动轮不仅起到运输作用,也起到支撑作用,保证履带运输平缓进行。

带传动示意图

实物图

履带

② 控制部分

      机架前中后部分分别装有三个白标传感器,如下图所示,当物体接近时传感器收到信号将会对传送物体进行识别,返回相应的参数值,通过ARM7主控板进行判断,并发出相应程序命令。当物体由搬运机器人放入传送带首段时触发第一个白标传感器,传送带开始工作;当物体进入加工点时,通过触发第二个白标传感器,使搅拌机的搅拌头落下开始搅拌工作。搅拌完成后传送带再次启动将物体运送至传送带末端,这时触发第三个传感器,停止传送带运动等待物体搬运后再继续工作。两个主动轮使用一个舵机传动,通过主控板程序对两个主动轮的转速,力度进行控制,保证物件在传送带上的运输与加工的正常进行。当物件进入到加工区时,传感器返回数据,主控板接受并发出命令,传送带停转,物体进行加工,待加工完成后,传送带正常运行,将物块运出加工区。白标传感器经过延时后,继续监测物件是否运输到加工位置,为加工做好准备。

白标传感器

搅拌机

培训项目三 四轮小车和搅拌器设计及运行培训

培训目的:

      ① 使学生了解“探索者”机器人创新套件ARM主控板的结构组成,使学生掌握舵机控制方法及其与相关组件连接方法。

      ② 加深学生对电机拖动的认识和理解及自动化生产设备的认识。

      ③ 熟悉模块概念,培养学生机构运动创新设计意识。

      ④ 训练学生的工程实践动手能力。

培训内容:

      ① 结构部分

      搅拌机由机架与搅拌部分组成。机架为刚性结构,四点支撑,保证结构稳定性。搅拌部分为连杆机构,可使搅拌头可以完成上升与下架,与传送带配合,完成在工作点的加工动作。

      ② 控制部分

      由于本产品由传送带与搅拌机配合完成自动化加工作业,因此二者公用一个ARM7控制主板进行系统控制,自动化加工系统由下图所示。当物品到达加工区,传送带的白标返回信息通过主控板处理,使搅拌部分下降,搅拌头启动,完成加工动作。加工动作完成后,返回原处,等待下次一加工。系统代码如下:

#include "config.h"

#include "lib_io.h"

#include "lib_arm.h"

int main(void)

{

//UART0_Init(); //取消注释后,可启动串口接收中断

Initial_ARM();

        Servo(1,82);

Servo(2,150);Delay(2000);

while(1)

{


if(Input(1,1)==1)

{

Servo(1,86);

Servo(2,180);

Servo(3,80);Delay(2000);

Servo(2,150);

Servo(3,88);

Servo(1,82);Delay(10000);

}

}

return(1);

}


#include "config.h"

#include "lib_io.h"

#include "lib_arm.h"

int main(void)

{

int s;

int i;

Initial_ARM();

while(1)

{

s=0;

for(i=0;i<2;i++) //依次读取2个传感器的触发状态,并给变量s的低2位分别置0或者置1

{

s=s|(Input(i+1,1)<<i);

    if(Input(i+1,1)==1) LedIn(i+1,2);

else LedIn(i+1,0);

}

switch(s) //

{

case 0x03 : {if (Input(3,1)==1&&Input(4,1)==0)   

{

Servo(1,130);Servo(3,130);

Servo(4,130);Servo(5,130);

Servo(6,85);break;

}

else if(Input(3,1)==0&&Input(4,1)==1)

{

Servo(1,50);Servo(3,50);

Servo(4,50);Servo(5,50);

Servo(6,85);break;

}

else

{

Servo(1,70);Servo(3,70);

Servo(4,110);Servo(5,110);

Servo(6,70);break; //00000011   正常直线   直走

}

  }   

case 0x02 : {if (Input(1,1)==1&&Input(2,1)==1)

break;

Servo(1,75);Servo(3,75);

Servo(4,80);Servo(5,80);

Servo(6,80);

}break;    //00000010

case 0x01 : {if (Input(1,1)==1&&Input(2,1)==1)

break;

Servo(1,100);Servo(3,100);

Servo(4,105);Servo(5,105);

Servo(6,105);

}break;     //00000001   

case 0x00 : {

Servo(1,10);Servo(3,10);

Servo(4,170);Servo(5,170);

Servo(6,10);

}break;//00000000   全黑 直走

}

}

return(1);

}


#include "config.h"

#include "lib_io.h"

#include "lib_arm.h"

int main(void)

{

int s;

int i;

int flag;

flag=0;

Initial_ARM();

/*Servo(5,50);Servo(2,105);Servo(3,50);Servo(4,105);Delay(3500);*/


while(1)

{

s=0;

for(i=0;i<4;i++) //依次读取4个传感器的触发状态,并给变量s的低3位分别置0或者置1

{

s=s|(Input(i+1,1)<<i);

if(Input(i+1,1)==1) LedIn(i+1,2);

else LedIn(i+1,0);

}

       switch(s) //根据变量s低3位所存储的传感器触发状态,分别让小车的左转、右转或直行    {

case 0x0C : {

if (flag==0)

{

Servo(5,23);

Servo(2,162);

Servo(3,23);

Servo(4,164);

Delay(3000);


if (s==0x0F)

Act_Stop();

flag++;

}

if (flag!=0)

{

Servo(5,70);

Servo(2,125);

Servo(3,70);

Servo(4,125);

Delay(2000);

}

}break;//四号舵机,中间值为90.打转


case 0x0D : {

Servo(5,40);Servo(2,140);Servo(3,40);Servo(4,144);

}break;//如果在全白的情况下,动力不足   前进

case 0x0E : {

Servo(5,140);

Servo(2,40);

Servo(3,140);

Servo(4,44);

}break;//后退00001110

case 0x0F : {Act_Stop();}break;

case 0x04 : {if (flag!=0)

{

Servo(5,95);Servo(2,74);Servo(3,95);Servo(4,74);Delay(2000);

            Servo(5,50);Servo(2,95);Servo(3,55);Servo(4,97);Delay(3000);

}

}break;

case 0x00 : {if (flag!=0)

{

Servo(5,95);Servo(2,74);Servo(3,95);Servo(4,74);Delay(2000);

       Servo(5,50);Servo(2,95);Servo(3,55);Servo(4,97);Delay(3000);

}

}break;

case 0x08 : {if (flag!=0)

{

Servo(5,95);Servo(2,74);Servo(3,95);Servo(4,74);Delay(2000);

     Servo(5,50);Servo(2,95);Servo(3,55);Servo(4,97);Delay(3000);

}

}break;

default:;break;

}

}

return(1);


}


搅拌机与传送带组合

培训项目四 自动化制造系统综合性模拟培训

培训目的:

      ① 加深学生对自动化制造系统结构组成的认识。

      ② 让学生了解自动化制造系统的分散控制,协调运行的工作原理。

      ③ 熟悉模块概念,培养学生机构运动创新设计意识及综合设计的能力。

      ④ 训练学生的工程实践动手能力。

培训设备:

      ① 搅拌器

      ② 传送带

      ③ 搬运机器人

自动化加工系统模型

培训内容:

      在上述三个培训基础上,将搅拌器、传送带和平动机械手小车组装在一起,构建一套小型自动化制造系统模型,并进行模拟自动化加工。整个过程完全模拟工程自动化加工生产线,一方面可以使大学生进行创造性制作整个自动化生产线,另一方面也可以使他们更加了解自动化生产线的过程,完成知识的积累和升华。

通过制作模拟自动化加工系统,可以让大学生从课本知识到实际的转变,理论结合实际,提高大学生的动手能力;通过其自动控制,进一步提高大学生C语言的编写能力,根据需求来写相应的程序语言;通过程序与机械结构进行结合,完成所要完成的目标,提高团队的协作能力。

2.2 中小学生培训项目

      中小学生处于知识积累期,好奇心强,创造能力强,但知识基础薄弱,我们基于“探索者系列创新套件”对中小学生进行简单的基础培训,帮助其产生对机械、对程序语言的兴趣并得到相应的基础知识,增强其动手能力,了解编程语言,养成创造性思维方式,如制作全地形赛车及对抗机器人等。

培训项目一 全地形车设计培训

      通过对结构的调整完成对已有障碍的翻越。地图由黑线为指引线,通过黑(白)标等传感器进行判断,通过ARM7主控板进行控制,完成各种动作以翻越障碍。车型如下图所示:

全地形棘轮车

小车的代码如下所示:

培训项目二 对抗机器人设计培训

      通过对结构的调整,完成两辆车的对抗相撞。地图由黑白组合,通过传感器进行判断,通过ARM7主控板进行控制,完成对车的方向引导以及对抗。

对抗机器人

代码如下所示:

      通过简单的培训,可提高中小学生对于机械以及程序的兴趣,了解简单的机械原理和程序知识,提高其动手操作能力,使其能够完成简单的结构组装和简单的程序编写。

* 本项目未获得作者开源授权,无法提供资料下载

© 2022 机器时代(北京)科技有限公司  版权所有
机器谱——机器人共享方案网站
学习  开发  设计  应用