设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14516|回复: 12

SSC32路舵机控制器使用说明 附原理图及测试软件

[复制链接]

签到天数: 7 天

[LV.3]偶尔看看II

发表于 2014-3-26 19:42:13 | 显示全部楼层 |阅读模式
本帖最后由 YFRobot 于 2014-3-27 08:35 编辑

概述:
USBSSC32路舵机控制是专为人形机器人、蜘蛛机器人、机械手等多舵机使用而量身定做的多路舵机控制器。该控制器不但保留了原版的所有功能,还在原版的基础上作了升级,将原来的RS232串口改成了USB接口,方便电脑没有串口的用户使用。控制器还增加蓝牙接口,可实现无线远程控制。USBSSC32路舵机控制控制方式包括实时、定时、定速控制等,与 lynxmotion 的控制软件完全兼容.

参数:
1.输出通道:32路(脉冲调制输出或TTL电平输出);
2.舵机供电:根据所接舵机额定电压供电,典型DC4.8V~6V
3.逻辑供电:DC6V~12VUSB供电(具有自恢复保险丝,调试时使用);
4.驱动分辨率:1uS, 0.09°
5.驱动速度分辨率:1uS/秒,0.09°/秒;
6.通讯接口:USB/TTL串口接口;
7.串口波特率:2400960038.4k115.2k可设置;

接口描述:
SSC32舵机控制板接口如下图所示:
接口描述.png
1.  1631号舵机信号控制引脚,其中G表示GND(黑色排针);V表示VCC(红色排针);S表示信号控制引脚(白色排针)。使用时不要把线接反。
2.  015号舵机信号控制引脚,其中G表示GND(黑色排针);V表示VCC(红色排针);S表示信号控制引脚(白色排针)。使用时不要把线接反。
3.  主控制芯片,采用DIP28脚的Atmega8L单片机,工作频率14.7456MHZ
4.  1631号舵机控制电源输入,可以用来驱动一般的模拟或者是数字舵机。工作电压4.8V6V,可以使用5片镍氢电池组供电,其中VS2接电源正极,GND接电源负极。
5.  015号舵机控制电源输入,可以用来驱动一般的模拟或者是数字舵机。工作电压4.8V6V,可以使用5片镍氢电池组供电,其中VS1接电源正极,GND接电源负极。
6.  逻辑供电输入端,输入电压范围7.515V,通过内部的降压给电源提供稳定的5V电源,其中VIN接电源的正极,GND接电源的负极。
7.  通信速率选择,通过两组指拨开关选择不同的通信波特率,对应关系如下:
指拨开关选择表.png
8.  ABCD四组模拟/数字输入端子,可以设置为静止或者是锁存。
9.  FT232rl通信芯片,提高通信的稳定性。
10. 串口选择,默认通过跳线帽连接TR引脚,去除引脚可以将串口留作它用。
11.  USB接口,用来连接控制板到电脑。
12. 内部降压模块,采用78D05降压模块为控制单元提供稳定的5V电源。
13. 扩展功能,暂时用不到。
14. 蓝牙接口,可以通过额外的蓝牙模块轻松实现无线控制。
15. VS1VS2短接跳线,当两组都插有跳线时,VS1=VS2.这时只需要在VS1或者VS2任意输入一组舵机电源即可;如果去除跳线,VS1VS2为两组不同的电源输入,不同的舵机电源从VS1VS2分别输入。

单个舵机和舵机群运动命令
# <ch> P <pw> S <spd>... # <ch> P <pw> S <spd> T <time><cr>
<ch> :舵机通道号,0 – 31
<pw> :脉冲宽度,单位微秒(us),500 – 2500
<spd> :单通道的运动速度,单位us/秒。(可选)
<time> :所有通道的速度,单位毫秒(ms),最大65535(可选)
<cr> :结束回车符,ASCII码中的13(必选)
<esc> :取消当前的命令,ASCI码中的27

一. 单个舵机运动实例:
   #5 P1600 S750 <cr>
通道5将以750us/秒的速度移动到1600us位置。为了更好的理解速度这个概念,举个例子,当舵机从-90度到0度时,脉冲宽度为1ms时间即1000us,也就是说1000us脉冲宽度舵机就会转90度,那么100us/秒的速度就表示舵机花10秒的时间就可以转到90度,2000us/秒的速度就表示舵机花0.5秒的时间就可以转到90度。公式:运行时间(秒)=脉冲宽度(us/速度(us/秒)。
   #5 P1600 T1000 <cr>
通道5将在1秒内从任何位置移动到1600us位置。
舵机群运动实例:
   #5 P1600 #10 P750 T2500 <cr>
通道5移动到1600us位置,通道10移动到750us的位置,2个都同时在2500us内完成,这个命令能协调多个舵机的速度,即使2个舵机的初始位置相差很远,都可以使他们同时开始转动并同时停止到指定位置上。这条命令非常适合人形双足机器人多舵机同时运动,可自动协调所有舵机的速度,完成复杂步态的同步。 你可以使用该命令进行速度和时间组合,组合必须根据下面的规则:
1.所有通道的开始和结束将同时完成。
2.如果某个通道指定了速度,那么它将不会快于指定速度(可以根据需要调节移动速度)。
3.如果某个通道指定了时间,那么它将在指定的时间移动到指定位置(可根据需要调节移动时间)。
   #5 P1600 #17 P750 S500 #2 P2250 T2000 <cr>
通道5移动到1600us位置,通道17移动到750us的位置,通道2机移动到2250us的位置,整个动作需要2000us,但是通道17的舵机不会按500us/秒的速度运行,这个需要取决于通道17的初始位置。假设通道17的初始位置在2000us,它被指定移动1250us,超过500us/秒的限制,那么他将至少花2500us完成动作,再假设通道17初始位置在1000us,只需要它移动250us,那么在500us/秒以内,那么他将花2000us完成动作。
注意:第一条定位命令不能包含速度和时间的,格式为“# <ch> P <pw>”例如先发送一条“#0 P1500 <cr>”指令,确定舵机位置后,才可以发送带有速度和时间控制的指令,否则会发生不可意料的动作。

二.数字输出:
#<ch><lvl> ... # <ch> <lvl><cr>
<ch> :舵机通道号,0 – 31
<lvl> :通道输出逻辑电平,高‘H’或低‘L’
<cr> :结束回车符,ASCII码中的13
该通道将在接受到回车指令20ms内输出电平。
数字输出实例:
   #3H #4L <cr>
该命令使通道3输出高电平(+5V),通道4输出低电平(0V)。

三.字节输出:
#<bank> : <value><cr>
<bank> 0 = 通道0-71 = 通道8-152 = 通道16-233 = 通道24-31
<value> :十进制输出 (0-255)Bit0=LSB
该命令允许一次性写入8位二进制,并将同时更新bank里的所有通道,更新将在接受到回车符号后20ms内完成
字节输出实例: