亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Littlearm 2C:构建 3D 打印的 Arduino 机械臂

组件和用品

Arduino Nano R3
× 1
舵机(Tower Pro MG996R)
MG90S 舵机
× 4
Meped Board
× 1

必要的工具和机器

3D 打印机(通用)

关于这个项目

LittleArm 2C 旨在成为孩子们可以轻松使用的套件,以便 STEM 课程可以实施更多的机器人课程。它变得更坚固,更容易组装,因此孩子们更容易使用。

所有部件都可以轻松进行 3D 打印,旨在使手臂保持时尚和简单。整个设计不到15颗螺丝。

要控制手臂,您可以使用我们的 Windows 应用程序(最初是在此处用 Python 代码编写的)或通过蓝牙以及我们为它制作的 Android 应用程序。

可以在此处找到组装 LittleArm 2C 的完整说明。

3D 打印文件可以从这里下载。

代码

  • LittleArm 2C Arduino 草图
LittleArm 2C Arduino SketchC/C++
// LittleArm 2C arduino 代码// 允许对 LittleArm 2C 3D 打印机械臂进行串行控制 // Created by Slant Concepts#include  //arduino library#include  //standard c library#define PI 3.141Servo baseServo;伺服肩伺服;伺服弯头伺服;伺服抓手Servo;//++++++++++++++++全局变量++++++++++++++++++++++++++++ +++struct JointAngle{ //a struct 是一种将变量组织成一个组的方式 int base;内肩; int肘部;};结构jointAngle所需的角度; //所需的舵机角度desiredGrip; // 不想要的位置 gripperint gripperPos; //当前抓手命令的位置; // 关节角度的集合int desiredDelay; // 伺服器在步骤之间进行的延迟//int ready =0; // 用于向进程发出信号的标记已完成//++++++++++++++++FUNCTION DECLARATIONS++++++++++++++++++++ ++++++++intservoParallelControl(int thePos,Servo theServo); //这是一个控制舵机的功能//++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++void setup() // Setup 为运行准备了 Arduino 板{ Serial.begin(9600); // 打开 USB 通信(串行端口)并让它以每秒 9600 位的速度进行通信 baseServo.attach(5); // 将引脚 5 上的舵机连接到舵机对象肩部Servo.attach(4); // 将引脚 4 上的伺服器连接到伺服器对象弯头Servo.attach(3); // 将引脚 3 上的舵机连接到舵机对象 gripperServo.attach(2); // 将引脚 2 上的伺服连接到伺服对象 Serial.setTimeout(50); // 停止尝试与计算机通话 50 毫秒后没有响应。确保 arduino 不会长时间读取串行 Serial.println("started"); // 打印到计算机“已启动” baseServo.write(90); //舵机的初始位置shallowServo.write(100);肘部伺服器。写(110);//准备=0;}//主要的arduino循环。这是必须放置所有主要程序的地方。void loop() { if (Serial.available()){ // 如果数据通过 USB 端口到达 arduino 那么...// ready =1; // Ready 设置为 1 表示正在执行命令 // 命令以“#,#,#,#,#,\n”的形式从计算机发送 // 下面的代码“解析”该命令// 分别对应于舵机中的基本角度、肩部角度、肘部角度、抓握角度和延迟的整数。 requiredAngle.base =Serial.parseInt();期望角度.肩=Serial.parseInt();期望角度.肘部 =Serial.parseInt(); requiredGrip =Serial.parseInt();期望延迟 =Serial.parseInt(); if(Serial.read() =='\n'){ // 如果最后一个字节是 '\n' 则停止读取并执行命令 '\n' 代表 'done' Serial.flush(); //清除缓冲区中堆积的所有其他命令 Serial.print('d'); //发送完成命令“d”代表“完成执行”} } //这些值是关节是否到达其位置的状态 // 在程序的某些部分声明的变量,像这样, 被称为“局部变量” int status1 =0; //基本状态 int status2 =0; //肩部状态 int status3 =0; //肘部状态 int status4 =0; //夹具状态 int done =0; // 这个值告诉所有关节何时到达它们的位置 while(done ==0){ // 循环直到所有关节都到达它们的位置 &&ready ==1 //将伺服移动到所需的位置 //这块代码使用“Functions”使代码更加简洁。状态 1 =伺服并行控制(desiredAngle.base,baseServo,desiredDelay); status2 =伺服并行控制(desiredAngle.shoulder,shoulderServo,desiredDelay); status3 =伺服并行控制(desiredAngle.elbow,肘部伺服,desiredDelay); status4 =伺服并行控制(desiredGrip,gripperServo,desiredDelay); // 检查所有的关节是否都到达了它们的位置 if (status1 ==1 &status2 ==1 &status3 ==1 &status4 ==1){ done =1; //当完成=1然后循环将停止} }// while结束}//++++++++++++++++++++++++++++++ +功能定义++++++++++++++++++++++++++++++++++++++++++intservoParallelControl(int thePos , Servo theServo, int theSpeed ){ //函数形式:outputType FunctionName (inputType localInputName) //这个函数将舵机移动一定步数到期望的位置,并返回它是否接近或已经回到那个位置 // thePos - 所需的位置 // thServo - 我们想要移动的伺服器的地址引脚 // theSpeed - 伺服器步之间的延迟 int startPos =theServo.read(); //读取我们正在使用的伺服器的当前位置。 int newPos =startPos; // newPos 保持伺服器移动时的位置 // 定义位置相对于命令的位置 // 如果当前位置小于所需的位置,则向上移动位置 if (startPos <(thePos-5)){ newPos =newPos + 1; theServo.write(newPos);延迟(速度);返回0; // 告诉主程序伺服没有到达它的位置 } // Else 如果当前位置大于所需的移动伺服向下 else if (newPos> (thePos + 5)){ newPos =newPos - 1; theServo.write(newPos);延迟(速度);返回0; } //如果舵机在所需范围内为+-5,则告诉主程序舵机已到达所需位置。否则 { 返回 1; } } //结束伺服并行控制

示意图

如果您使用 Littlearm 设计的 Meped 板,则只有四个连接。

制造工艺

  1. 通过蓝牙控制的树莓派机器人
  2. 使用 Arduino 和 Raspberry Pi 构建您的 Internet 控制的视频流机器人
  3. 来自 Haddington Dynamics 的开源 3D 打印机械臂
  4. 双臂 SCARA 机器人
  5. MeArm 机械臂 - 你的机器人 - V1.0
  6. 线跟随机器人
  7. Arduino 3D 打印机械臂
  8. Nunchuk 控制机械臂(使用 Arduino)
  9. 语音控制机器人
  10. 通过以太网控制的机械臂
  11. Arduino 控制的钢琴机器人:PiBot
  12. 自主家庭助理机器人