在没有 MCU 的情况下实现两轴机械臂控制器

电子说

1.3w人已加入

描述

机械臂广泛用于机器人应用中。它们可以做出类似于人手的动作。机器人手臂可以是一个独立的应用程序,也可以是更大机器人系统的一部分。机械臂在工业中主要用于取放应用。它们也存在于移动安全摄像头和玩具中。

机械臂通常由几个连杆组成,这些连杆通过可以旋转的关节连接起来。在这个项目中,我们将构建一个包含两个旋转关节的机械臂,一个用于 x 轴,另一个用于 y 轴。这些将由来自操纵杆的模拟信号控制。该电路将采用GreenPAK SLG46620 芯片、两个 Tower Pro SG90 伺服电机和一个模拟操纵杆设计(图 1 和图 2)。

点击查看完整大小的图片

 

机械臂


图 1. 系统框图。(来源:瑞萨电子)

点击查看完整大小的图片

 

机械臂


图 2. 电路原理图。(来源:瑞萨电子)

该项目不需要微控制器,因为 GreenPAK 芯片包含构建能够独立控制伺服电机的静态 IC 所需的所有元素。

工作原理

GreenPAK 芯片将执行系统的所有功能。它从操纵杆的 x 输出接收模拟信号,该信号在内部被数字化并用作伺服电机的 PWM 信号。然后将输入通道更改为从操纵杆的 y 输出读取,并重复该过程。模拟信号将每 10 ms 读取一次,在 x 和 y 输出之间交替。因此,每个信号每 20 ms 读取一次,因此输出频率为 50 Hz。这适用于伺服电机的操作。

伺服电机

两个 Tower Pro SG90 伺服电机(图 3)将用于构建机器人手臂。电机需要一个 PWM 信号来控制其旋转角度,从 0° 到 180° 不等。当引入 0.5 ms 脉冲宽度时,电机旋转到 0°。当脉冲宽度等于 2.5 ms 时,电机旋转 180°。因此,脉冲宽度必须在每 20 ms 0.5 – 2.5 ms 之间,以获得 0° 和 180° 之间的角度。

 

机械臂


图 3. Tower Pro SG90 伺服电机。(来源:瑞萨电子)

模拟操纵杆

模拟操纵杆因其价格低廉且易于连接而广泛用于机器人应用。操纵杆由两个交叉放置的电位器组成(图 4)。它提供三个输出:x、y 和中间的按钮。我们应用程序中的操纵杆将提供伺服系统的手动控制。

为了获得适合 GreenPAK ADC 规格的范围,操纵杆将使用芯片的 VREF,而不是连接外部分压器。这将减少外部零件的数量。

 

机械臂


图 4. 模拟操纵杆模块。(来源:瑞萨电子)

GreenPAK 设计

GreenPAK 设计是在免费的基于 GUI 的GreenPAK Designer 软件中创建的,它是 Go Configure™ 软件中心的一部分(链接到设计文件)。该设计由几个部分组成(图 5)。

点击查看完整大小的图片

 

机械臂


图 5. GreenPAK 设计 - 矩阵 0。(来源:瑞萨电子)

模拟 MUX 根据定义的时间间隔接收来自两个不同输出的信号。100 Hz 的脉冲发生器每 10 ms 发出一个脉冲。在前 10 ms 接收 x 信号,在接下来的 10 ms 接收 y 信号。

Pin8 和 Pin9 配置为连接到配置为模拟多路复用器的 PGA 的模拟输入。来自 Pin16 的信号在其两个通道之间切换。当信号 CH Selector 设置为 HIGH 时,读数来自 Pin8,当设置为 LOW 时,读数来自 Pin9。模拟信号转换为数字信号后,从 FSM0 中读取。FSM0 从 ADC 模块的输出(ADC 数据)获取其输入。FSM0 配置为下降沿 DLY。

延迟时间=(计数器值+1)/时钟。

时钟 = 256/2ms = 128kHz

FSM0 的 CLK 管脚通过 EXT CLK0 连接到 CNT5 输出以获得 128 kHz,因此当从 ADC 接收到 255 的值时,输出的脉冲宽度为 2 ms。因此,CNT5 的输出周期为 7.8125 µs,CNT5 数据为 210。

2-L0 逆变器和 CNT6 定义了 100 Hz 发生器,它每 10 ms 发出一个脉冲,以便每 20 ms 向两个伺服电机输出 PWM 信号。发生器的输出触发 CNT9,它被配置为下降沿 DLY,延迟时间为 0.5 ms。CNT9 输出触发 FSM0 输出一个宽度为 FSM 数据 + 0.5 的信号,该信号将在 0.5 和 2.5 ms 之间。这通过 LUT 传递到合适的伺服系统。

CNT0 用于在每个工作周期提供 2.5 ms 的脉冲宽度,作为将信号输出到伺服电机(每个依次)以防止任何错误的最大允许时间范围。

DFF0、2-L1、3-L2 用于控制输入通道,其中每 10 ms 在 PGA 的通道 1 和 2 之间进行周期性切换。Pin6 外部连接到 Pin16,该 Pin16 链接到 PGA 的 CH 选择器引脚。

4 位 LUT0、3 位 LUT0、3 位 LUT1 和 2-L2 构成解复用器,将 PWM 信号传递给请求的伺服电机(图 6)。

点击查看完整大小的图片

 

机械臂


图 6. LUT 配置。(来源:瑞萨电子)

当 CH Selector 信号为 HIGH 时,读数来自通道 1 通过 Pin8,修改后的 PWM 信号通过 Pin4 传递到 x – 伺服电机。当 CH 选择器设置为 LOW 时,读数来自通道 2,信号传递到 Pin5,然后传递到 y - 伺服电机。

从周期开始经过 2.5 ms 后,通道随着 CNT0 输出的下降沿而改变,以在下一个周期开始时输出脉冲(参见图 7)。这为信号读取和稳定性提供了充足的时间。

点击查看完整大小的图片

 

机械臂


图 7.时序图。(来源:瑞萨电子)

为防止在信号较小(小于 40 mV)时 ADC 出现任何错误,DCMP0 用于将 ADC 值与寄存器 0 进行比较。如果值小于 9,角度将被视为 0°,输出CNT9 将直接传递给请求的伺服电机。

操纵杆来自 GreenPAK 芯片内部的 VREF0,因此操纵杆读取的信号在 ADC 的工作范围内。VREF0 连接到 Pin19,其中源选择器设置为 ACMP0,调整为 1200 mV。操纵杆包含一个可用于附加功能的按钮。使用 CNT8 构建去抖动器,改进后的信号通过 Pin20 输出。Pin12 配置为低压数字输入,因为操纵杆电压为 1200 mV(图 8)。

点击查看完整大小的图片

 

机械臂


图 8. GreenPAK 设计 – 矩阵 1。(来源:瑞萨电子)

为了测试设计,GreenPAK Designer 的信号向导用于将不同的信号应用于输入(图 9)并监控输出(图 10)。

点击查看完整大小的图片

 

机械臂


图 9. 生成锯齿波。(来源:瑞萨电子)

点击查看完整大小的图片

 

机械臂


图 10. Pin8(黄色)、Pin9(蓝色)、Pin5(红色)和 Pin6(绿色)。(来源:瑞萨电子)

以下视频显示了工作项目,也可在此处获得。

结论

在本文中,我们使用 GreenPAK SLG46620 芯片构建了一个电路,该电路使用两个通过模拟操纵杆操作的伺服电机来控制两个关节 x 和 y 的机器人手臂。该芯片高效地将所有电路的重要元件集成在一个小空间内。不需要外部微控制器,并且只需要很少的外部元件。

通过连接多个芯片,这种设计可以扩展为构建自由度更大的机器人手臂。这样的系统可以应用于许多不同的工业应用。

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分