机器人服务电机控制的无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。该芯片高效地将所有电路的重要元器件集成在一个较小的体积内,不需要外部微控制器,只需要使用很少的外部元器件。

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

继续阅读
美国Labrador Systems公司部署首款老年辅助机器人,减轻护理人员负担

芥末堆文 近日,美国消费级机器人公司Labrador Systems在老年生活社区等地进行广泛试点后,开始将其首款辅助老年人的机器人Retriever Pro系统部署到少数B端客户中。

英国首次采用机器人进行微创手术,成功切除患者咽喉部肿瘤

英国格洛斯特郡皇家医院(GRH)的外科医生近日采用名为Versius的下一代机器人进行微创手术,成功为一名患者切除咽喉部一个2.3英寸的肿瘤。据悉,这是英国首次进行此类手术。

30秒内自动采集,“智能咽拭子机器人”有望投用!

自动化收集和封装样本,紫外线消杀、负压过滤,防止交叉感染。由清华大学计算机与科学技术系师生研发的智能咽拭子采集机器人,已经在本市多家医院和外地进行了近一万例测试。未来正式投用后,有望缓解人工采集咽拭子的压力,助力科学防疫。来听北京交通广播记者陈常松的报道:

机器人自己造自己,像搭积木一样轻松

还没完——机器人2号刚来到这个世界,立刻就能和1号那样身手敏捷,然后它还给自己“戴上”两个饰品,哦不,配件。

操控机器人“火星”上架设信号塔

“快,启动能量阀门,收集信号方舱!”“超变战场”一触即发。11月27日,第二届厦门市中小学人工智能嘉年华暨WRC世界教育机器人大赛城市选拔赛进入第二天的“超变战场”赛程。“超变战场”项目赛,故事背景发生于火星,参赛队伍须自行搭建机器人,之后操控机器人在复杂地形的战场上完成方舱扫描、碎片收集、阀门开启等任务,并在对抗中架设信号塔。这考验着选手动手创新、合作分工、操控技巧以及临场应变能力。

精彩活动