机械臂整体图(280px)

简介

Explorer OA1开源机械臂是专门为创客爱好者设计的一款金属四轴机械臂。本机械臂的主体结构全部采用铝合金加工而成,关节部分均采用高精密级的轴承连接,驱动舵机均采用高质量金属齿轮舵机。整体精致、美观、耐用。
-      我们的机械臂能做什么?
-     1、标准套件中集成了气压吸嘴的所有配件。吸附重量最大可达500克。
-     2、标准套件中集成了机械夹持器,可以轻松做有趣的夹持应用。
-     3、我们的机械臂主板romeo mini BLE集成了蓝牙4.0 。
-     4、可以使用PC、iphone、手柄等多种终端来无线控制机械臂。我们免费提供客户端程序。
-     5、我们免费提供气压吸嘴配件、夹持器配件、核心算法程序、PC端程序、手机客户端,通讯协议,
-     6、你可以使用arduino代码无限拓展机械臂的功能。比如你可以用机械臂来画画、写字、下棋、帮你夹取物品、甚至在纸上画出数学函数图。

产品规格

本套件包含以下零配件:

  • 1、完整的机械结构零件、连接线、开关-------1套
  • 2、控制板-------------------------------1个
  • 3、气压传感器----------------------------1个
  • 4、大力矩金属齿轮舵机--------------------3个
  • 5、微型MG90金属齿轮舵机------------------1个
  • 6、完整的底座云台配件--------------------1套
  • 7、气泵、电磁阀、气嘴、气管、三通---------1套
  • 8、机械夹持器完整套件--------------------1套

提供多套完整的实例程序, 详情请见装箱清单。

技术参数:

  • 1、整机尺寸(收拢状态) :直径200mm×高270mm
  • 2、机械臂工作范围 :半径R:41mm~154mm,高度H:0~108mm
  • 3、整机重量 :1.5kg
  • 4、底座云台最大旋转角度 :180度

工作范围立面(280px) 工作范围顶面(280px)

装箱清单

序号 名称 编号 单位 数量
1 尾架底板 A1 1
2 尾架顶板 A2 1
3 电机支架1 A3 1
4 电机支架2 A4 1
5 右侧舵机支撑 A5 1
6 左侧舵机支撑 A6 1
7 前臂 A7 2
8 左后臂 A8(L) 1
9 右后臂 A8(R) 1
10 左后支臂 A9(L) 1
11 右后支臂 A9(R) 1
12 前支臂 A10 1
13 三角架 A11 1
14 后小臂 A12 1
15 多功能支架 A13 1
16 舵机安装架 A14 1
17 吸嘴支板下 A15 1
18 吸嘴支板上 A16 1
19 连接件 A17 1
20 大底盘 A18 1
21 电磁阀 B1 1
22 气泵 B2 1
23 控制板 B3 1
24 气压传感器 B4 1
25 开关 B5 1
26 插座 B6 1
27 舵机DF15RMG B7 3
28 MG90舵机 B8 1
29 光电接触板 B9 1
30 舵机延长线 B10 3
31 电源适配器 B11 1
32 USB数据线 B12 1
33 云台壳体 C1 1
34 轴承 C2 1
35 云台转台 C3 1
36 云台底盖 C4 1
37 蘑菇头吸盘 C5 6
38 真空吸盘 C6 1
39 吸嘴 C7 1
40 遮光环 C8 1
41 三通 C9 1
42 硅胶软气管 C10 1.5
43 PU小气管 C11 0.2
44 M2×6螺丝 N1 3
45 M2螺帽 N2 2
46 M3×4螺丝 N3 9
47 M3×6螺丝 N4 51
48 M3×8螺丝 N5 25
49 M3×14螺丝 N6 2
50 M3弹垫 N7 8
51 M3螺帽 N8 14
52 M4×6螺丝 N9 1
53 M4×10自攻螺丝 N10 4
54 M2.3×6自攻螺丝 N11 6
55 M3×10自攻螺丝 N12 6
56 M3×4mm立柱 N13 4
57 M3×11立柱 N14 11
58 M3X12mm立柱 N15 4
59 M3×15mm单通立柱 N16 4
60 M3×17mm立柱 N17 2
61 M3×40mm立柱 N18 4
62 M2×4螺丝 N19 1
63 备用螺丝包 N20 1
64 金属舵机盘 N21 2
65 舵机垫片 N22 2
66 塑料舵机盘 N23 1
67 MG90舵机连杆 N24 1
68 MG90舵机圆盘 N25 1
69 ROB0131机械夹持器 N26 1
70 小号两用螺丝刀 N27 1
71 说明书 1

产品装箱清单

资料下载

使用说明:

  • 重要:组装时注意所有舵机均需要校准到90度位置才能进行安装固定,否则可能导致舵机控制异常
  • 重要:需使用机械臂套装中的电源适配器,主控板供电时需要并联接线,详见文末常见问题。
  • 机械臂既可以由我们开发的电脑端上位机软件“arm_tool”来进行控制,同时也支持arduino编程控制。

arm_tool控制方式操作方法:

  • 1、下载“控制板固件”,解压后将“explorerOA1V1.0”文件夹导入arduino库文件,然后烧录explorerOA1.ino程序
  • 2、下载“PC端软件”,解压后双击运行“arm_tool.exe”,打开串口即可进行控制

arduino编程控制:
根据“库函数说明文档”实用arduino ide进行编程控制

全部资料打包下载:

  • 链接:https://pan.baidu.com/s/1Nskn4huiu-WHNc2ZP-6FyA 提取码:t4b8

  • 机械夹持器产品资料链接1

  • PC端软件下载

  • romeoBLE mini产品资料链接2

示例程序

直线位移

/*!
 * @file exampleLineMove.ino
 * @brief DFRobot's explorer OA1 Mechanical arm
 * @n ino file for DFRobot's explorer OA1 Mechanical arm
 *
 * @copyright   [DFRobot](https://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:ROB0115)_Explorer_OA1%E6%9C%BA%E6%A2%B0%E8%87%82)
 * @author [Zc](shrimp.liu@dfrobot.com)
 * @version  V1.0
 * @date  2016-03-22
 */

#include "DFRobotOA1Calculation.h"
#include "DFRobotOA1Setting.h"
#include "DFRobotOA1Control.h"
#include <Servo.h>

DFRobotOA1Control  control;                 // initialize the OA1 Control library
DFRobotOA1Setting mySetting;                // initialize the OA1 Setting library
int buttonState = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);                    //start serial port at 115200 bps
  mySetting.ServoSetting();                 //to set the Servo port
  mySetting.setMyarm(140,152,50);           //to set the OA1 arms lengths
  mySetting.initialization(155,0,40,1);     //initialize the OA1 coordinates
}

void loop() {
  // put your main code here, to run repeatedly:
   LineMove(100,100,100,5);                   // Linear movement to the coordinates
   delay(1000);
   LineMove(100,-100,100,5);                  // Linear movement to the coordinates
   delay(1000);
}

极坐标位移

/*!
 * @file examplePolarControl.ino
 * @brief DFRobot's explorer OA1 Mechanical arm
 * @n ino file for DFRobot's explorer OA1 Mechanical arm
 *
 * @copyright   [DFRobot](https://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:ROB0115)_Explorer_OA1%E6%9C%BA%E6%A2%B0%E8%87%82)
 * @author [Zc](shrimp.liu@dfrobot.com)
 * @version  V1.0
 * @date  2016-03-22
 */

#include "DFRobotOA1Calculation.h"
#include "DFRobotOA1Setting.h"
#include "DFRobotOA1Control.h"
#include <Servo.h>

DFRobotOA1Control  control;                 // initialize the OA1 Control library
DFRobotOA1Setting mySetting;                // initialize the OA1 Setting library

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);                    //start serial port at 115200 bps
  mySetting.ServoSetting();                 //to set the Servo port
  mySetting.setMyarm(140,152,50);           //to set the OA1 arms lengths
  mySetting.initialization(155,0,40,1);     //initialize the OA1 coordinates
}

void loop() {
  // put your main code here, to run repeatedly:
   for(int i=0;i<80;i++)
   {
     control.LeftTurn();                //turn left
     delay(10);
   }
   for(int i=160;i>0;i--)
   {
     control.RightTurn();              //turn right
     delay(10);
   }
   for(int i=0;i<80;i++)
   {
     control.LeftTurn();               //turn left
     delay(10);
   }
  for(int i=0;i<50;i++)
   {
     control.Spread();                 //spread
     delay(10);
   }
   for(int i=100;i>0;i--)
   {
     control.Shrink();                 //shrink
     delay(10);
   }
   for(int i=0;i<50;i++)
   {
     control.Spread();                 //spread
     delay(10);
   }
}

笛卡尔坐标位移

/*!
 * @file exampleDescareControl.ino
 * @brief DFRobot's explorer OA1 Mechanical arm
 * @n ino file for DFRobot's explorer OA1 Mechanical arm
 *
 * @copyright   [DFRobot](https://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:ROB0115)_Explorer_OA1%E6%9C%BA%E6%A2%B0%E8%87%82)
 * @author [Zc](shrimp.liu@dfrobot.com)
 * @version  V1.0
 * @date  2016-03-22
 */

#include "DFRobotOA1Calculation.h"
#include "DFRobotOA1Setting.h"
#include "DFRobotOA1Control.h"
#include <Servo.h>

DFRobotOA1Control  control;                 // initialize the OA1 Control library
DFRobotOA1Setting mySetting;                // initialize the OA1 Setting library

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);                    //start serial port at 115200 bps
  mySetting.ServoSetting();                 //to set the Servo port
  mySetting.setMyarm(140,152,50);           //to set the OA1 arms lengths
  mySetting.initialization(155,0,40,1);     //initialize the OA1 coordinates
}

void loop() {
  // put your main code here, to run repeatedly:
   for(int i=0;i<50;i++)
   {
     control.xup();                             //Along the x coordinate forward
     delay(10);
   }
   for(int i=100;i>0;i--)
   {
     control.xdown();                          //Along the x coordinate backward
     delay(10);
   }
   for(int i=0;i<50;i++)
   {
     control.xup();                            //Along the x coordinate forward
     delay(10);
   }
  for(int i=0;i<50;i++)
   {
     control.yup();                           //Along the y coordinate forward
     delay(10);
   }
   for(int i=100;i>0;i--)
   {
     control.ydown();                         //Along the y coordinate backward
     delay(10);
   }
   for(int i=0;i<50;i++)
   {
     control.yup();                          //Along the y coordinate forward
     delay(10);
   }
   for(int i=0;i<50;i++)
   {
     control.up();                           //Along the z coordinate forward
     delay(10);
   }
   for(int i=100;i>0;i--)
   {
     control.down();                         //Along the z coordinate backward
     delay(10);
   }
   for(int i=0;i<50;i++)
   {
     control.up();                           //Along the z coordinate forward
     delay(10);
   }
}

机械臂手腕控制

/*!
 * @file exampleElbowControl.ino
 * @brief DFRobot's explorer OA1 Mechanical arm
 * @n ino file for DFRobot's explorer OA1 Mechanical arm
 *
 * @copyright   [DFRobot](https://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:ROB0115)_Explorer_OA1%E6%9C%BA%E6%A2%B0%E8%87%82)
 * @author [Zc](shrimp.liu@dfrobot.com)
 * @version  V1.0
 * @date  2016-03-22
 */

#include "DFRobotOA1Calculation.h"
#include "DFRobotOA1Setting.h"
#include "DFRobotOA1Control.h"
#include <Servo.h>

DFRobotOA1Judgment judgment;                // initialize the OA1 Judgment library
DFRobotOA1Control  control;                 // initialize the OA1 Control library
DFRobotOA1Setting mySetting;                // initialize the OA1 Setting library

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);                    //start serial port at 115200 bps
  mySetting.ServoSetting();                 //to set the Servo port
  mySetting.setMyarm(140,152,50);           //to set the OA1 arms lengths
  mySetting.initialization(155,0,40,1);     //initialize the OA1 coordinates
}

void loop() {
  // put your main code here, to run repeatedly:
   for(int i=0;i<85;i++)
   {
     control.rroll();                   //Turn Right wrist
     delay(10);
   }
   for(int i=170;i>0;i--)
   {
     control.lroll();                   //Turn left wrist
     delay(10);
   }
   for(int i=0;i<85;i++)
   {
     control.rroll();                  //Turn Right wrist
     delay(10);
   }

}

机械爪控制

/*!
 * @file exampleClawControl.ino
 * @brief DFRobot's explorer OA1 Mechanical arm
 * @n ino file for DFRobot's explorer OA1 Mechanical arm
 *
 * @copyright   [DFRobot](https://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:ROB0115)_Explorer_OA1%E6%9C%BA%E6%A2%B0%E8%87%82)
 * @author [Zc](shrimp.liu@dfrobot.com)
 * @version  V1.0
 * @date  2016-03-22
 */

#include "DFRobotOA1Calculation.h"
#include "DFRobotOA1Setting.h"
#include "DFRobotOA1Control.h"
#include <Servo.h>

DFRobotOA1Control  control;                 // initialize the OA1 Control library
DFRobotOA1Setting mySetting;                // initialize the OA1 Setting library

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);                    //start serial port at 115200 bps
  mySetting.ServoSetting();                 //to set the Servo port
  mySetting.setMyarm(140,152,50);           //to set the OA1 arms lengths
  mySetting.initialization(155,0,40,1);     //initialize the OA1 coordinates
}

void loop() {
  // put your main code here, to run repeatedly:
   for(int i=0;i<28;i++)
   {
     control.cls();                      //Paw closed
     delay(10);
   }
   for(int i=65;i>0;i--)
   {
     control.ope();                     //Paw open
     delay(10);
   }
   for(int i=0;i<37;i++)
   {
     control.cls();                     //Paw closed
     delay(10);
   }
}

气泵控制

/*!
 * @file examplePumpControl.ino
 * @brief DFRobot's explorer OA1 Mechanical arm
 * @n ino file for DFRobot's explorer OA1 Mechanical arm
 *
 * @copyright   [DFRobot](https://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:ROB0115)_Explorer_OA1%E6%9C%BA%E6%A2%B0%E8%87%82)
 * @author [Zc](shrimp.liu@dfrobot.com)
 * @version  V1.0
 * @date  2016-03-22
 */

#include "DFRobotOA1Calculation.h"
#include "DFRobotOA1Setting.h"
#include "DFRobotOA1Control.h"
#include <Servo.h>

DFRobotOA1Control  control;                 // initialize the OA1 Control library
DFRobotOA1Setting mySetting;                // initialize the OA1 Setting library

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);                    //start serial port at 115200 bps
  mySetting.ServoSetting();                 //to set the Servo port
  mySetting.setMyarm(140,152,50);           //to set the OA1 arms lengths
  mySetting.initialization(155,0,40,1);     //initialize the OA1 coordinates
}

void loop() {
  // put your main code here, to run repeatedly:
  control.pumpOn();                   //pump on
  delay(5000);
 control.pumpOff();                   //pump off
 control.valveOn();                   //valve on
 delay(1000);
 control.valveOff();                  //valve off
}

气压传感器气泵控制

/*!
 * @file exampleBaroceptorControl.ino
 * @brief DFRobot's explorer OA1 Mechanical arm
 * @n ino file for DFRobot's explorer OA1 Mechanical arm
 *
 * @copyright   [DFRobot](https://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:ROB0115)_Explorer_OA1%E6%9C%BA%E6%A2%B0%E8%87%82)
 * @author [Zc](shrimp.liu@dfrobot.com)
 * @version  V1.0
 * @date  2016-03-22
 */

#include "DFRobotOA1Calculation.h"
#include "DFRobotOA1Setting.h"
#include "DFRobotOA1Control.h"
#include <Servo.h>

const int analogInPin = pressure_SENSOR;
DFRobotOA1Control  control;                 // initialize the OA1 Control library
DFRobotOA1Setting mySetting;                // initialize the OA1 Setting library

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);                    //start serial port at 115200 bps
  mySetting.ServoSetting();                 //to set the Servo port
  mySetting.setMyarm(140,152,50);           //to set the OA1 arms lengths
  mySetting.initialization(155,0,40,1);     //initialize the OA1 coordinates
}

void loop() {
  // put your main code here, to run repeatedly:
  sensorValue = analogRead(analogInPin);
  if(sensorValue>180)
  {
    control.pumpOff();                          //air pumpoff
  }
  else if(sensorValue<180)
  {
    control.pumpOn();                          //air pumpon
  }
}

常见问题

Q:机械臂安装完之后不正常动作是怎么回事?
A:机械臂舵机安装时一定要校准到90°位置安装,否则无法正常执行动作,严重情况下会堵转舵机造成损坏。

Q:机械臂安装完成之后开机静止状态抖动严重是怎么回事?
A:供电不足,需要使用配套的5V电源,并且扩展板上四个供电口需要并联供电。

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖! |}

更多

shopping_car.png [Link DFRobot商城购买链接] |}