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

使用物联网远程控制机械臂

组件和用品

Arduino MKR1000
× 1

必要的工具和机器

激光切割机(通用)

应用和在线服务

MATLAB
Arduino IDE

关于这个项目

简介

我真的很想尝试完全从头开始设计机械臂。有许多可用的开源设计,但我认为如果我能从无到有设计、构建和编程一个(并且确实如此),那将是令人欣慰的。

我将讨论设计和编程阶段。但我会更多地关注编程方面,因为它不仅仅是控制伺服角度。

这是最终项目的视频链接 - https://www.mathworks.com/videos/how-to-control-a-robotic-arm-from-a-remote-location-using-iot-1538564659095。

我使用 Simulink 对 Arduino MKR1000 进行编程,它是控制机械臂的 MCU。然后,我添加了通过 ThingSpeak(具有 MATLAB 分析功能的开放式物联网平台)几乎从任何地方控制机械臂的功能。

硬件需求

  • 15” x 20” 1/8 英寸胶合板
  • Arduino MKR1000
  • 5x GS9025MG 舵机
  • 2.1 毫米面包板友好型 DC 桶形插孔
  • 6 V DC 桶形插孔电源
  • 跳线
  • 3 个 2n2222a 晶体管
  • 10 个 M2 螺母
  • 10x M2 x 10 螺丝
  • 40 个 M3 螺母
  • 40x M3 x 25 螺丝

使用的软件

  • MATLAB
  • 模拟链接
  • Arduino 硬件的 MATLAB 支持包
  • Arduino 硬件的 Simulink 支持包
  • 用于 ThingSpeak 的 MATLAB 支持包

设计

我想保持较低的零件成本,所以我为业余爱好者设计了这个,特别是 GS-9025MG 模型。这意味着最终的重量和尺寸是有限的。这是因为微型伺服系统无法施加太大的扭矩,因此无法举起沉重的杠杆臂。

我尝试用 1/4 英寸胶合板制作原型,结果证明这对伺服系统来说太重了。我减少了臂的长度并使用了 1/8 英寸的胶合板,这解决了伺服控制问题。我使用 Fusion 360 绘制设​​计,并将设计下载为 .dxf 文件,然后进行激光切割。

此外,事实证明,从墙上插座提供持续的直流电压是必要的,因为从电池组汲取的电流非常大,而且消耗得非常快。

关于控制电机,Arduino MKR1000 有 4 个 PWM 引脚,但我需要 5 个来控制 5 个舵机。我很有创意,用一个 PWM 引脚来控制 2 个舵机,用一个数字引脚在两个舵机之间切换并一次控制一个。

这是描述该电路的电路:

这是舵机到 Arduino 的接线:

编程

编程分为两个部分,原型设计阶段,我组装它并让舵机控制某个位置,以及精确控制阶段,我能够使用 ThingSpeak 控制舵机的位置。

原型制作

使用滑块和常量块,我能够命令 Arduino 上的伺服系统移动到特定角度。我使用这个模型来找出指令角度和手臂实际角度之间的偏差,以及每个舵机的允许角度范围。

带有齿轮的块是PWM写入块,用于命令发球在0到180之间的某个角度。

我对二维平面运动中的手臂使用逆运动学来求解将手臂移动到 XY 坐标所需的角度。我发现这个链接很好地解释了运动学:https://appliedgo.net/roboticarm/

精准控制

虽然这看起来比另一个更复杂,但逻辑仍然相同。输出块仍然是带有齿轮的伺服写入块。输入块现在不是滑块/常量块输入,而是从 ThingSpeak 通道读取。稍后我将详细说明使用 ThingSpeak。输入是手臂的 X 和 Y 位置,使用 loc2angles MATLAB 功能块将其转换为手臂的命令角度。模型顶部的angles2loc 块只是一种监控系统以确保伺服使用正向运动学将角度转换为正确的输入位置。我在这个项目中使用的 Simulink 的一个很酷的工具是外部模式 .这使我能够在系统运行在 Arduino 本身时对其进行监控。

带有灰色云彩的块是内置于 Arduino 的 Simulink 支持包中的 ThingSpeak 读取块。我输入通道 ID、要检索的数据字段编号和 API 读取密钥,然后它输出来自该通道和字段的数据。别担心,如果您不熟悉这些术语中的任何一个,我会尽快详细说明。

使用 ThingSpeak:创建和使用频道

1. 前往 https://thingspeak.com/

2. 点击右上角的“登录”,然后使用您的免费 MathWorks 帐户登录。

3. 在仪表板页面上点击“新频道”

4. 填写如下数据。显示的数据是您需要填写的全部内容。

5. 点击底部的“保存频道”

6. 您现在已经创建了一个 ThingSpeak 频道

7. 在 MATLAB 命令窗口或使用 MATLAB 移动应用程序中,您可以输入类似于以下内容的命令:thingSpeakWrite(chID, [0.6963.94 -12 0 0], 'WriteKey', APIKEY, 'Fields', [1 2 3 4 5]);

这会将新数据写入 ThingSpeak 通道中的指定字段。您可以更改函数调用的第二个参数中的值以更改相应字段的值。更改值后,通道数据应如下所示:

运行模型

完成 ThingSpeak 通道的设置后,您可以在 Arduino 上以外部模式运行模型,也可以部署到硬件。在 Simulink 模型中,通过单击顶部菜单面板中的小齿轮转到“模型配置参数”,选择“硬件实现”并确保“硬件板”是 Arduino MKR 1000。在“目标硬件资源”下相同的选项卡,单击 WiFi 属性并输入 WiFi 凭据以访问网络。

单击绿色运行按钮以外部模式运行模型或单击蓝色部署按钮将其部署到硬件。

模型运行后,您可以从 MATLAB 或手机上的 MATLAB mobile 将新数据写入 ThingSpeak 通道中的字段,并观察它如何移动您的机械臂!

代码

https://www.mathworks.com/matlabcentral/fileexchange/68880-controlling-a-robotic-arm-from-anywhere-using-iot


制造工艺

  1. 使用 Arduino、1Sheeld 和 Android 的通用远程控制
  2. 使用 Arduino 控制硬币接收器
  3. Arduino 控制中心
  4. 使用物联网的心率监测器
  5. IOT - 使用 ESP8266、Arduino 和超声波传感器的智能罐
  6. Arduino 3D 打印机械臂
  7. 使用 Firmata 和 Xbox One 控制器控制 Arduino Rover
  8. Arduino 加湿器控制
  9. Nunchuk 控制机械臂(使用 Arduino)
  10. 使用 Arduino 的简单智能机械臂
  11. 使用 Alexa 和 Arduino IoT Cloud 完全控制您的电视
  12. 使用智能手机控制您的灯光系统