机器人服务电机控制的无MCU实现

分享到:

伺服电机被广泛用于机器人应用中,用来驱动机器人手臂做出类似于人手的动作。机器人手臂可以是一个独立的应用,也可以是更大机器人系统的一部分。机器人手臂在工业领域中主要用于物品的取放,而在移动安保摄像头和玩具中亦有应用。

机器人手臂通常包括数个可以旋转的关节以及与之相连的连杆。本案例将构建一个包括两个旋转关节的机器人手臂,一个用于x轴,另一个用于y轴。这些关节将由来自操纵杆的模拟信号进行控制。该电路设计包括一个GreenPAK SLG46620芯片、两个Tower Pro SG90伺服电机和一个模拟操纵杆。系统方框图和电原理图分别如图1和图2所示。

 

b4ec495ac54328cabff0ba699472e606

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

 

8eff9440fee3152aca2c3d9ce2024942

图2:电原理图。

本案例不需要微控制器(MCU),因为GreenPAK芯片本身已包含了构建能够独立控制伺服电机的静态IC所需的全部元素。

工作原理

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

伺服电机

两个Tower Pro SG90伺服电机(图3)用于构建机器人手臂。电机需要一个PWM信号来控制旋转角度,旋转角度位于0°到180°之间。当输入0.5ms脉冲宽度时,电机旋转到0°,而当脉冲宽度等于2.5ms时,电机旋转到180°。因此,每隔20ms时间,将会出现一个位于0.5–2.5ms之间的脉冲宽度,以获取与之对应的、位于0°和180°之间的某个旋转角度。

 

50f8eaf1faf95418978d19fe7be0c641

图3:Tower Pro SG90伺服电机。

模拟操纵杆

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

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

 

33a612e8778f651cd3a2bfe46a970a97

图4:模拟操纵杆模块。

GreenPAK设计

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

 

717c6cce73654b18d099275625e293ec

图5:GreenPAK设计-矩阵0。

模拟复用器根据定义好的时间间隔接收来自两个不同的输出信号。频率为100Hz的脉冲发生器每10ms发出一个脉冲,在前一个10ms接收x信号,在下一个10ms接收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输出,得到的时钟频率为128kHz,当从ADC接收到255的值时,输出的脉冲宽度为2ms。因此,CNT5的输出信号周期为7.8125µs,对应的CNT5的数据为210。

2-L0反相器和CNT6组成100Hz发生器,发生器每隔10ms发出一个脉冲,目的是每隔20ms向两个伺服电机输出PWM信号。发生器的输出信号触发CNT9,它被配置为下降沿DLY,延迟时间为0.5ms。CNT9输出触发FSM0输出一个宽度为FSM数据+0.5的信号,该信号宽度位于0.5和2.5ms之间,然后通过LUT传递给对应的伺服器。

每个工作周期内,CNT0提供一个宽度为2.5毫秒的脉冲,作为发送到伺服电机(每个电机依次轮换)输出信号的最大时间框,以防止出现任何错误。

DFF0、2-L1、3-L2用于控制输入通道,使其每10ms在PGA的通道1和通道2之间进行周期性切换。Pin6通过外部连接到Pin16,后者再连接到PGA的CH Selector引脚。

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

 

1cb6fb1017b7c056722333fba90af610

图6:LUT配置。

当CH Selector信号为HIGH时,读信号来自通道1,中间会经过Pin8,处理后的PWM信号再通过Pin4传送给x–伺服电机。当CH选择器设置为LOW时,读信号来自通道2,该信号先传送给Pin5,再到y-伺服电机。

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

 

 

098e0c8b0be3b64070f7b0648d05a666

图7:时序。

为防止信号较小(小于40mV)时ADC工作出错,用DCMP0对ADC值与寄存器0进行比较。如果值小于9,角度将被视为0°,则直接将CNT9的输出传送给对应的伺服电机。

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

 

597b447fa265a2502d078f1fff17ca34

图8:GreenPAK设计-矩阵1。

为了对设计进行测试,可以用GreenPAK Designer的信号向导,施加不同的信号到输入端上(图9),然后观察输出结果(图10)。

 

79ec1afb44d21609abb38a4d388cfd17

图9:生成锯齿波。

 

a49bef5b4ab61ab82267f92951e137d9

图10:不同端子上的输出信号(Pin8-黄色、Pin9-蓝色、Pin5-红色、Pin6-绿色)。

本文小结

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

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

继续阅读
AI机器人活了?

谷歌公司里边有一个负责跟人工智能对话,那个工程师在社交媒体上更新了一个帖子,就把自己跟谷歌AI对话的内容贴出来,这时候世界炸锅了...

国内首套可在水深500米工作的海洋平台检测机器人通过验收

近日,哈尔滨工程大学研发了国内首套海洋结构物水下无损检测机器人,并通过了国家科技部组织的验收,实现了国内水下无损检测的工程化示范应用。记者从哈尔滨工程大学获悉,该水下检测机器人可在水下500米完成各类海洋结构物的无损检测,填补了国内在该领域的空白。

新软体机器人:一种可断肢重生、自然伪装的海星

海星,属于棘皮动物中结构生理最具代表性的一类。它的绝招便是再生之术,海星如同蚯蚓一般,切割成几段还会依据碎片重新长出几只完整的海星。

国际顶尖机器人研究开发公司机构实验室——宇宙机器人研究所

除了机器人和信息系统领域外,还有几个领域也涉及大量的信息技术、数据分析和相关技术。宇宙宣言机器人研究所 (COSMIC MANIFESTO ROBOT INSTITUTE)致力于研发最新的机器人科技,当中许多属于最前沿的科技发明,可说以概念性产品为主。

科学家仿萤火虫创造出闪电虫机器人,可发光和互相通信

萤火虫是无脊椎动物,又名亮火虫、闪电虫、火金姑等,是一种在黑夜中能够发光的昆虫。不仅如此,萤火虫的卵、幼虫、蛹、成虫均能发出红、橙、黄、绿以及黄绿色等多种荧光。

精彩活动