当然,你们中的许多人都在科幻电影中看到过科学家或极客如何拥有一个可以控制一切并可以像人类一样拾取物体或执行功能的机械臂。由于某些事情变得越来越有可能 Hardware Libre 和 Arduino 项目。但什么是机械臂呢?这个小工具有什么功能呢?机械臂是如何制造的?下面我们就来一一解答这些问题。
什么是机械手臂
机械臂是具有电子基座的机械臂,可对其进行完全编程。 此外,这种类型的手臂可以是单个元件,也可以是机器人或其他机器人系统的一部分。 与其他类型的机械元件相比,机械臂的质量是 机械手可以完全编程,而设备的其余部分则不能。 此功能使我们可以使用一个机械臂来执行各种操作,并执行各种不同的活动,这些活动可以通过电子板(例如Arduino板)来执行。
机械臂的功能
机器人手臂的最基本功能可能是辅助手臂功能。 在某些操作中,我们将需要支持某些元素的第三只手臂,以便一个人可以构建或创建某些东西。 对于此功能,不需要特殊的编程,我们只需要关闭设备本身即可。
机械臂可以用各种材料制成,从而可以将其用作危险操作的替代品。 像操纵污染化学元素一样。 只要机械手臂由坚固耐用的材料制成,它也可以帮助我们执行繁重的任务或需要足够压力的任务。
建筑所需的材料
接下来,我们将教您如何为每个人快速,简单,经济地构建机械臂。 但是,这种机械臂不会像我们在电影中看到的那样强大或有用,但可以用来了解其操作和构造。 以便, 我们将需要用来制造该设备的材料是:
- 一个碟子 Arduino UNO REV3或更高版本。
- 两个开发板。
- 两轴并联伺服
- 两个微型伺服器
- 两个并行的模拟控件
- 开发板的跳线电缆。
- 透明胶带
- 支架的纸板或泡沫板。
- 一把剪刀和剪刀。
- 非常耐心。
集会
该机械臂的组装非常简单。 首先,我们必须用泡沫切出两个矩形。 这些矩形中的每一个都是机械臂的一部分。 正如您在图片中看到的那样,尽管建议将这些矩形设置为我们想要的尺寸, 其中之一的尺寸为16,50 x 3,80厘米。 第二个矩形的尺寸为11,40 x 3,80厘米.
一旦有了矩形,在每个矩形或条带的一端,我们将为每个伺服电机贴上胶带。 这样之后 我们将切成泡沫的“ U”形。 这将作为手臂的握持部分或末端部分,对于人类而言,将是手。 我们将把这块连接到最小矩形的伺服电机上。
现在我们必须制造下部或底座。 为此,我们将执行相同的过程: 我们将切出一个正方形的泡沫,并将两轴伺服电机平行放置,如下图所示:
现在,我们必须将所有电机连接到Arduino板。 但是首先,我们必须将连接连接到开发板,然后将其连接到Arduino板。 我们将黑色导线连接到GND引脚,将红色导线连接到5V引脚,将黄色导线连接到-11,-10、4和-3。 我们还将把机械臂的操纵杆或控件连接到Arduino板,在这种情况下,如图所示:
连接并组装好所有组件后,我们必须将程序传递到Arduino板,为此,我们需要将Arduino板连接到计算机或笔记本电脑。 将程序传递给Arduino板后,我们必须确保 将电缆连接到Arduino板上,尽管我们始终可以继续使用开发板并拆解一切,如果我们只希望它学习,则为后者。
操作所需的软件
尽管看来我们已经完成了机械臂的制造,但事实是,仍然有很多工作要做,也是最重要的事情。 创建或开发程序可以赋予我们机械臂以生命,因为没有它,伺服电动机将不会停止成为无意义旋转的简单时钟机制。
通过将Arduino开发板连接到我们的计算机即可解决此问题,然后打开程序 Arduino IDE,我们将计算机连接到板上,并在空白文件中写入以下代码:
#include <Servo.h> const int servo1 = 3; // first servo const int servo2 = 10; // second servo const int servo3 = 5; // third servo const int servo4 = 11; // fourth servo const int servo5 = 9; // fifth servo const int joyH = 2; // L/R Parallax Thumbstick const int joyV = 3; // U/D Parallax Thumbstick const int joyX = 4; // L/R Parallax Thumbstick const int joyP = 5; // U/D Parallax Thumbstick const int potpin = 0; // O/C potentiometer int servoVal; // variable to read the value from the analog pin Servo myservo1; // create servo object to control a servo Servo myservo2; // create servo object to control a servo Servo myservo3; // create servo object to control a servo Servo myservo4; // create servo object to control a servo Servo myservo5; // create servo object to control a servo void setup() { // Servo myservo1.attach(servo1); // attaches the servo myservo2.attach(servo2); // attaches the servo myservo3.attach(servo3); // attaches the servo myservo4.attach(servo4); // attaches the servo myservo5.attach(servo5); // attaches the servo // Inizialize Serial Serial.begin(9600); } void loop(){ servoVal = analogRead(potpin); servoVal = map(servoVal, 0, 1023, 0, 179); myservo5.write(servoVal); delay(15); // Display Joystick values using the serial monitor outputJoystick(); // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyH); servoVal = map(servoVal, 0, 1023, 0, 180); // scale it to use it with the servo (result between 0 and 180) myservo2.write(servoVal); // sets the servo position according to the scaled value // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyV); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo1.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyP); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo4.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyX); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo3.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there /** * Display joystick values */ void outputJoystick(){ Serial.print(analogRead(joyH)); Serial.print ("---"); Serial.print(analogRead(joyV)); Serial.println ("----------------"); Serial.print(analogRead(joyP)); Serial.println ("----------------"); Serial.print(analogRead(joyX)); Serial.println ("----------------"); }
我们将其保存,然后将其发送到盘子 Arduino UNO. 在完成代码之前,我们将进行相关测试以验证操纵杆是否正常工作。 并且该代码没有任何错误。
我已经安装好了,现在呢?
当然,您中很多人都没有想到过这种类型的机械臂,但是由于它的基础,成本以及教授如何制造机器人的方法,因此它是理想的选择。 从这里开始,一切都属于我们的想象。 也就是说,我们可以更改材料,伺服电机,甚至可以完成编程代码。 不用多说 我们可以将Arduino电路板模型更改为更强大,更完整的模型,从而使我们可以连接遥控器 或使用智能手机工作。简而言之,广泛的可能性 Hardware Libre 和机械臂。
更多信息 - Instructables
绝对3D打印是伟大事物的大门。 我在自己的设计上使用Lion 2进行工作,结果令我着迷。 由于建议我阅读 http://www.leon-3d.es 它已经引起了我的注意,当我尝试并目睹了自动找平和最终结果中的细节时,我知道我做了一笔不错的投资。