使用ServoStudio 12程序和Arduino开发板,您可以创建自己的机器人,而无需编写任何代码



大概有许多发现电子世界的人迟早会考虑如何创建自己的机器人,或者仅仅是家庭自动化或无线电控制的模型。 但是,如果机械手或多或少都清楚了,那么开发控制这种设备的程序(其中许多伺服器应一起工作)的开发就造成了很多困难。 复杂的硬件软件ServoStudio 12允许您控制这样的设备,同时控制12个伺服器,并使用可视化编辑器创建运动序列。 而且,该复合体将成为调试设备机制和创建自己的程序的便捷工具。

如有必要,可以将创建的运动序列导出为Arduino IDE草图,以便在没有PC的情况下进行独立操作。 或者只是作为关键点值的数组,以便在程序中进一步使用。 ServoStudio 12具有直观的界面,即使是初学者也可以理解。 Arduino板作为执行控制设备的使用使该系统在重复和制造中易于访问。

有点背景。 受谢尔盖·格里申科Sergey Grishchenko)创建方便的伺服测试仪的想法启发,我决定创建自己的系统,该系统易于使用,同时又方便又实用。 与上述伺服测试仪不同,ServoStudio 12软件负责个人计算机上的所有控制,而Arduino板一次最多支持12个伺服器。 硬件是广泛使用的Arduino Nano或Arduino Uno开发板。 此外,该软件还包含上述伺服测试仪的工作。

最初,我计划创建一个小程序,在其中重现伺服器控制信号的值的顺序,但是在开发过程中,我有了新的想法,并且一个简单的程序发展成为机器人机械手的成熟控制单元,能够通过热设置运动速度和游乐运动键。

伺服-与收集器马达不同,它可以使您旋转一定角度。 旋转角度由控制信号的脉冲宽度设置。 这些脉冲的宽度可以在800-2300μs之间变化。



首先,我们需要以下内容:


连接图非常简单。 引脚D2-D13连接到伺服器的控制输入。 电源连接到Arduino电源引脚。 由于伺服器消耗大量电流,因此必须连接外部电源。



首先,在ServoStudio 12程序的菜单中,您需要选择“代码生成器”项和子项“创建ServoStudio HardWare草图”,将该草图保存到磁盘并在Arduino IDE中打开并将其填充到Arduino Nano / Uno中。 一切就绪,硬件准备就绪! 使用新的Arduino开发板,此操作仅执行一次。

首先,您需要创建一个新项目(菜单文件/新建)。 在对话框中,选择所需的PWM通道数(伺服器数),选择测试板的类型并输入设备名称(为方便起见)。



现在关于程序界面



底部是用于创建关键点序列的工具。 通过移动相应通道的控制器的滑块,可以设置相应通道上控制信号的脉冲宽度值(伺服驱动器的旋转角度)。 如果选中“实时控制”复选框,则当移动控制器的滑块时,连接到该通道的伺服驱动器将移动,这非常方便,因为此时驱动器的位置立即可见。 在所有必需的通道上设置了控制信号后,您需要使用“添加”按钮创建下一个“帧”(下一个关键点)。 并且以同样的方式,在监管机构的帮助下,创建新的关键点,并在必要时创建新的关键点。 伺服器必须以给定角度旋转的时间是针对每个帧分别设置的,在“步进时间”字段中,时间以毫秒为单位设置。 给定值越大,运动越慢,速度越快越小。 步骤字段显示序列的当前帧。 如有必要,在此字段中更改步骤编号,您可以编辑前面的步骤。 为方便起见,可通过双击旋钮左侧的通道名称来更改通道名称。

在曲线图的上部,视觉上显示了伺服器的控制信号的宽度变化。

并且,当创建某种完成的动作(例如,向前移动)时,可以通过单击程序窗口右侧的“序列”面板中的“添加”按钮,将当前序列另存为单独的完成序列。 例如,您可以创建多个序列以向前,向后,向左,向右等移动。 通过双击鼠标,或者从上下文菜单以及“远程控制”窗口中可以播放这些序列,而彼此无关。 因此,再现这些序列,控制设备(机器人)。 您还可以将保存的序列添加到主序列中,从而创建一个较大的动作序列。 这对于演示设备的操作非常有用。

同样,可以将主序列(当前在编辑器中打开)导出为Arduino IDE的草图,以供Arduino板离线回放,而无需使用PC。 为此,请在“代码生成器”菜单中选择“导出序列”项,然后单击对话框中的“生成”按钮,然后可以将此草图复制到剪贴板或另存为Arduino IDE的草图。 此外,可以以通常的方式将此草图填充到Arduino板的控制器中。



通过设置或取消选中“循环重复”框,可以循环播放此序列或仅播放一次。 也可以将关键点导出到数组,如果您已经有自己的微控制器程序并且需要在其中设置移动,这很有用,并且可以选择通过设置相应的标志将位置设置时间值添加到数组。 如果在刷新该草图之后,必须再次将Arduino板与ServoStudio 12程序一起使用,然后再次在菜单中选择“代码生成器”项和“创建ServoStudio HardWare草图”子项目,将该草图保存到磁盘并在Arduino IDE中打开并将其上传到Arduino纳米/ Uno。

窗口“控制面板”



允许您使用热键播放单个音序。 首先,您需要单击“分配键”按钮,从下拉列表中选择所需的序列,然后为其分配热键。 安装所有组件后,必须单击“记住”按钮。 现在,当此窗口打开时,按热键将播放分配给它的序列。

菜单项“起始位置”并非不重要-这是打开时伺服器的位置,或者仅仅是伺服器旋转角度的“正常位置”。 换句话说,如果您不希望机器人在打开时倾斜,请使用调节器为其选择最佳位置,然后选择菜单项“在Arduino EEPROM中记录当前帧作为起始位置”,此功能仅适用于Arduino板。 还有点“将当前帧写为起始位置”和“在当前帧中插入起始位置”,如果您需要开始新的序列和起始点,这将非常有用。 初始位置保存在项目文件中,并且在打开文件时可用,因此无需重新选择它。



该程序还具有将项目文件与ServoStudio 12关联的功能。为此,您需要以管理员权限运行1次。 ServoStudio 12完全可移植,由1个文件组成(当您关闭程序时,仍会创建最后一个打开的项目的文件),并且不需要安装。

有关作品的更多详细信息,请参见视频。



ServoStudio 12软件下载链接

关于未来的计划:

  • 我想创建一个可以打开项目文件并使用手机控制机器人的Android应用程序。 通过蓝牙或WiFi通过TCP-UART适配器进行管理。
  • 我还想为大量渠道创建一个版本,以管理更复杂的设备。
  • 添加来自连接的传感器的信号处理(例如,如果前方有障碍物,请绕过它)。
  • 添加了控制数字输出的功能(例如,打开LED或其他功能)

但是,这些计划是仅保留计划还是在程序的下一个版本中发布,取决于对该组合系统的兴趣。

Source: https://habr.com/ru/post/zh-CN402645/


All Articles