在本教程中,我们将学习如何制作一个Arduino机械臂,它可以使用自定构建的Android应用程序进行无线控制和编程。我将向您展示构建它的整个过程,从设计和3D打印机器人部件,连接电子组件和编程Arduino,到开发我们自己的Android应用程序来控制机械臂。
使用应用程序中的滑块,我们可以手动控制机械臂的每个伺服或轴的运动。同样使用“保存”按钮,我们可以记录每个位置或步骤,然后机械臂可以自动运行并重复这些步骤。使用相同的按钮,我们可以暂停自动操作以及重置或删除所有步骤,以便我们可以记录新的步骤。
Arduino Robot Arm 3D模型
首先,我使用Solidworks 3D建模软件设计了机械臂。手臂有5个自由度。
对于前3轴,腰部,肩部和肘部,我使用了MG996R伺服系统,而对于另外2轴,腕部滚动和腕部间距,以及夹具我使用了较小的SG90微型伺服系统。
您可以下载和下面的3D模型。
3D打印机械臂使用我的新3D打印机,Creality CR-10,我3D打印了Arduino机械臂的所有部件。
为了完成组装,我们只需使用一些螺栓和支架连接上部和下部框架,然后使用提供的电缆将电子组件与控制箱连接。
在尝试之前,建议检查滚轮是否足够紧,如果没有,可以简单地使用偏心螺母将它们拧紧。就是这样,在调平3D打印床之后,您就可以将3D创作变为现实。
我在几个小时内准备好Arduino Robot Arm的所有部件。
组装机械臂好的,我们准备组装机械臂。我从基座开始,我使用其包装中的螺丝连接了第一台伺服电机。然后在伺服的输出轴上我固定了一个圆角螺栓。
在它的顶部,我放置上部并用两个螺丝固定。
这里再次首先进入伺服,然后将圆形喇叭放到下一个部件上,然后使用输出轴上的螺栓将它们固定在一起。
我们在这里可以注意到,在肩轴上最好包括某种弹簧,或者在我的情况下,我使用橡皮筋为伺服提供一些帮助,因为这种伺服也承载了其余部分的整个重量。作为有效载荷。
以类似的方式,我继续组装机械臂的其余部分。至于夹具机构,我使用了大约4毫米的螺栓和螺母来组装它。
最后,我将夹具机构安装到最后一个伺服机构上,完成了Arduino机械臂。
Arduino机械臂电路图下一阶段是连接电子产品。该项目的电路图实际上非常简单。我们只需要一个Arduino板和一个HC-05蓝牙模块与智能手机进行通信。六个伺服电机的控制引脚连接到Arduino板的六个数字引脚。
为了给伺服电机供电,我们需要5V,但这必须来自外部电源,因为Arduino无法处理所有电流都可以吸收的电流量。电源必须能够处理至少2A的电流。因此,一旦我们将所有内容连接在一起,我们就可以继续编写Arduino并制作Android应用程序。
Arduino机械臂代码由于代码有点长,为了更好地理解,我将在每个部分的描述部分发布程序的源代码。在本文的最后,我将发布完整的源代码。
首先,我们需要包含SoftwareSerial库,用于蓝牙模块和伺服库的串行通信。这两个库都包含在Arduino IDE中,因此您无需在外部安装它们。然后我们需要定义六个伺服器,HC-05蓝牙模块和一些用于存储伺服器当前和先前位置的变量,以及用于存储自动模式的位置或步骤的阵列。
#include
#include
Servo servo01;
Servo servo02;
Servo servo03;
Servo servo04;
Servo servo05;
Servo servo06;
SoftwareSerial Bluetooth(3, 4); // Arduino(RX, TX) - HC-05 Bluetooth (TX, RX)
int servo1Pos, servo2Pos, servo3Pos, servo4Pos, servo5Pos, servo6Pos; // current position
int servo1PPos, servo2PPos, servo3PPos, servo4PPos, servo5PPos, servo6PPos; // previous position
int servo01SP[50], servo02SP[50], servo03SP[50], servo04SP[50], servo05SP[50], servo06SP[50]; // for storing positions/steps
int speedDelay = 20;
int index = 0;
String dataIn = "";
在设置部分,我们需要初始化伺服器和蓝牙模块,并将机械臂移动到其初始位置。我们使用write()函数来做到这一点,它只是将伺服器移动
1