Parallax Servo Controller(#28023)Rev B:强大的16通道伺服控制器

电子说

1.4w人已加入

描述

Parallax Servo Controller(#28023)Rev B:强大的16通道伺服控制器

在机器人设计领域,随着机器人规模的增大,对伺服电机和I/O的需求也随之增加。Parallax Servo Controller(PSC)就是一款能有效解决这一问题的产品,下面就为大家详细介绍这款控制器。

文件下载:28023.pdf

一、产品概述

Parallax Servo Controller(#28023)Rev B是一款16通道的伺服控制器,具备斜坡控制功能。它可以控制多达16个伺服电机,还能通过网络连接,让两个PSC使用单条I/O线控制32个伺服电机。该控制器能管理所有伺服脉冲,减轻主机控制器的负担,同时斜坡功能可单独设置每个伺服电机的速度,实现“设置后无需再管”的功能。

二、包装清单

拿到产品后,我们需要核对包装内的物品是否齐全,清单如下:

  • Parallax Servo Controller
  • 分流跳线
  • 三芯电缆
  • 文档资料

三、产品特性

  1. 运行时可选波特率:通过串行消息可在2400到38k4之间切换波特率。
  2. 16个伺服通道:可同时、连续驱动伺服电机,旋转角度为0 - 180°,分辨率为2μS。
  3. 伺服斜坡功能:每个伺服电机可从63种斜坡速率中选择。
  4. 位置报告:用户可随时请求单个伺服电机的位置。
  5. 网络就绪:两个模块可连接在一起,同时驱动32个伺服电机。

四、使用前准备

PSC处理器需要5VDC电源,而伺服电机需单独使用4 - 7.5VDC的电源。要确保伺服电源能在合适的电压下提供足够的电流,且不会损坏伺服电机。

五、开始使用

  1. 取出控制器:从防静电袋中取出Parallax Servo Controller,它的外观应与图1相似。
  2. 安装控制器:使用4 - 40螺丝(或等效物)安装控制器,其安装孔间距和其他尺寸与Rev A相同,如图2所示。
  3. 连接电源和伺服电机:确保控制器上的伺服电源开关关闭,将伺服电源连接到螺丝端子,注意极性。使用附带的三芯电缆将接地、+5VDC和串行I/O线连接到主机系统。如果不使用Rev C BOE,将三芯电缆的电线连接到主机系统的VSS(黑色)、+5VDC(红色)和所选的I/O引脚。连接伺服电机到提供的3针端子,图3展示了典型的连接方式。
  4. 启动控制器:将BOE上的电源开关滑到“2”位置,此时PSC上的红色LED和BOE上的绿色LED应亮起。

六、串行命令格式

PSC支持通过RS - 232串行协议发送的多个命令,串行线的电压摆幅为0 - 5VDC(TTL电平)。每个串行命令必须以感叹号“!”和字母对“SC”开头,形成前导码“!SC”,用于区分PSC命令和其他消息。命令和相关参数发送后,第八个也是最后一个字符是$0D(CR),用于终止字符串。如果命令使PSC回复,将在1.5mS延迟后发送一个三字节的回复。

七、主要命令介绍

1. VER?命令 - 识别固件版本号

  • 语法:“!SCVER?” $0D
  • 回复:“1.3” 该命令用于获取PSC的固件版本号。通过以下代码片段可以查找和识别PSC:
    '{$PBASIC 2.5}
    Sdat PIN 15
    ' Serial Data I/O pin
    Baud CON 396
    ' Constant for 2400 baud
    buff VAR Byte (3)
    ' temporary variable
    FindPSC: ' Find and get the version
    DEBUG "Finding PSC", CR ' number of the PSC.
    SEROUT Sdat, Baud+$8000, ["!SCVER?",CR] 
    SERIN Sdat, Baud, 500, FindPSC, [STR buff3]
    DEBUG "PSC ver: ", buff(0), buff(1), buff(2), CR
    STOP

    2. SBR命令 - 设置波特率

  • 语法:“!SCSBR” x $0D
  • 回复:“BR” x (x为0表示2400,为1表示38K4) 建立与PSC的通信后,可将波特率提高到38K4。示例代码如下:
    '{$PBASIC 2.5}
    ' Serial Data I/O pin
    Sdat PIN 15
    ' Constant for 2400 baud
    Baud CON 396
    ' temporary variable
    buff VAR Byte (3)
    SetBaud:
    DEBUG "Setting Baudrate", CR 
    SEROUT Sdat, Baud+$8000, ["!SCSBR",1,CR] 
    SERIN Sdat, 6,500, SetBaud, [STR buff3] 
    DEBUG "Baud reply: ", buff(0), buff(1), DEC1 buff(2), CR
    STOP

    3. 位置命令 - 设置伺服通道的位置

  • 语法:“!SC” C R pw.LOWBYTE, pw.HIGHBYTE, $0D
  • 回复:无 该命令用于控制伺服电机的位置,包含头“!SC”、三个参数C、R和PW以及命令终止符$0D。C参数对应伺服通道号,R参数控制斜坡功能,P参数对应所需的伺服位置。示例代码如下:
    '{$PBASIC 2.5}
    ch VAR Byte
    ch
    pw VAR Word
    pw
    ra VAR Byte
    ra
    Sdat
    Sdat CON 15
    baud CON 396
    ra = 7
    ch = 11
    DO
    pw = 1250
    SEROUT Sdat, Baud+$8000,["!SC", ch, ra, pw.LOWBYTE, pw.HIGHBYTE, CR]
    PAUSE 1000
    pw = 250 
    SEROUT Sdat, Baud+$8000,["!SC", ch, ra, pw.LOWBYTE, pw.HIGHBYTE, CR] 
    PAUSE 1000
    LOOP

    4. RSP命令 - 报告伺服通道的位置

  • 语法:“!SCRSP” x $0D
  • 回复:x y z(x为通道号,z:y为报告的值) 该命令用于获取指定伺服通道的当前位置,即使伺服电机因斜坡命令仍在移动,也可读取位置。示例代码如下:
    '{$PBASIC 2.5}
    ch VAR Byte
    pw VAR Word
    ra VAR Byte
    x VAR Byte
    Buff VAR Byte(3)
    Sdat CON 15
    baud CON 396
    ch
    pw
    X
    Sdat
    baud
    ra
    ra
    pw=
    Init:
    ra = 15: ch = 0
    pw = 1240: GOSUB WRservo
    DO
    pw = 240: GOSUB WRservo
    LOOP
    WRservo:
    SEROUT Sdat, Baud+$8000,["!SC", ch, ra, pw.LOWBYTE, pw.HIGHBYTE, CR]
    FOR x = 0 TO 4
    PAUSE 1000
    SEROUT Sdat, Baud+$8000, ["!SCRSP", ch, CR]
    SERIN Sdat, Baud, 1000, Init,[STR Buff3]
    DEBUG "Servo ", DEC buff(0), " ", HEX2 buff(1), " :", HEX2 buff(2), CR
    NEXT
    RETURN

八、网络连接两个PSC

可以将两个PSC连接在一起,最多控制32个伺服电机。只需使用第二条三芯电缆将两个PSC串联,如图6所示。通过分流器区分Unit 0(通道0 - 15)和Unit 1(通道16 - 31)。需要注意的是,在这种配置下,向一个单元发送串行命令时,两个单元都会接收。设置伺服位置的命令会被另一个单元忽略,其他命令都会引发回复,Unit 0先回复,Unit 1大约3mS后回复。由于所有回复固定为3字节长度,需要将SERIN命令配置为接收6字节。

九、版本修订列表

Hardware Firmware 说明
Rev A 1.0 (仅发布了测试版)90度旋转,4μS分辨率,1 - 2mS脉冲,8位PWM,15种可能的斜坡值,位置轮询,38k4波特率的串行接口。可串联,但只有一个通信连接,实现较困难。丝印大部分在PCB底部。去除了Ch0和Ch8的干扰。
Rev B 1.1 2004年3月1日发布,连接器略有更改,便于实现串联方案。丝印修正,相关信息位于PCB顶部。串行接口扩展为支持2400或38k4波特率。
Rev B 1.2 2004年3月16日发布,固件增强,支持16位PWM,180度旋转,2μS分辨率和63种斜坡速率。串行代码优化,能比BS2更快地接收消息。
Rev B 1.3 2004年4月19日发布,修复了固件中的报告位置错误。具体来说,轮询伺服位置时,无论请求的通道号如何,都会报告最后写入的伺服位置。
Rev B 1.4 2005年1月12日发布,解决了PSoC芯片内的中断争用问题,该问题导致部分输出通道出现小干扰,使一些伺服电机在应静止时振荡。PWM通道重构,中断争用不再影响PWM性能,输出干扰从±2μS降低到小于±100nS。

PSC是可重新编程的,如果固件不是最新版本,可以寄回Parallax进行免费固件升级,只需支付运费。

大家在使用过程中有没有遇到什么问题呢?或者对于这款控制器的应用,你有什么独特的想法吗?欢迎在评论区分享交流。

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

全部0条评论

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

×
20
完善资料,
赚取积分