Autumn Servo Controller - 舵机控制器
本帖最后由 三水 于 2012-7-13 23:02 编辑OpenJumper Autumn Servo Controller - 舵机控制器
模块特点:
1. 自动识别波特率,免去对舵机控制器波特率设置;
2. 1us高精度32路同步PWM输出,满足舵机控制时的同步及进度要求;
3. 每路PWM输出速度可调,可同步调速可异步调速;
4. 每路PWM输出加速度可调,可同步加速可异步加速;
5. PWM输出频率可调,1-500Hz,适用舵机范围更广;
6. 方便接插tiny作为主控器件,同时可接插蓝牙,apc等无线通信模块;
7. 可以脱机储存动作组380条,每条255字节;
8. 动作组间可以跳转,一条指令可以控制255条动作组的执行;
9. 动作组间跳转可以正向执行可以逆向执行;
10. 使用在线编程,实现高速读写片内flash。在不使用256kbit(32k)或512kbit(64k)的eeprom情况下获得高达76K的脱机储存空间及更高速的读写速度。
模块规格
1. 主芯片 NXP LPC12xx;
2. 工作电压3.3V;
3. 输入电压5~16V;
4. 长宽尺寸5.5*4.5cm;
使用说明:
(一). Autumn舵机控制器上端左右各有一颗LED,右端为电源指示灯,左端为波特率识别指示灯(如图所示):
1. CPU电源接口接上提供的接线端子,左端为电源正极,右端为电源负极。若未反接切供电电压稳定,电源指示灯将会点亮。输入电压5~16V,推荐输入电压为5~7.2V;
2. 主机或电脑通过串口发送字符‘a’或者'A'用于识别器件及自动识别波特率,识别成功后左端波特率识别指示灯会自动点亮,若识别失败将不会点亮,用户按下复位按键再次识别即可;
(二). Autumn舵机控制器与舵机连接(如图所示):
1. 舵机控制器上排针为白红黑三种颜色塑封——白色为舵机控制信号PWM、红色为舵机供电正极、黑色为舵机供电负极。与大部分舵机上引出线颜色相同,可直观的表达排针含义让减少用户反接可能;
2. 舵机供电分为两组供电,0-15号为VS1,16-31号为VS2。红色接线柱旁有标注电源正极,按正负要求接线,切勿反接,舵机供电端推荐使用4.8V~6V电源接入,以免过压烧坏舵机;
3. 舵机控制器左上角有3针为电源选择跳线接口,依次为VS1、VS2、VM。VS1为0-15舵机供电正极,VS2为16-31号舵机供电正极,VM为CPU供电正极。若需VS1与V2共用一个电源时可在VS1与VS2间接上短接跳帽。
(三). Autumn舵机控制器指令集:
1. 舵机控制器启动后波特率自动识别命令:
a<cr>或者A<cr>
a或者A 字符,必须发送;
<cv> 结束回车符,ASCII中的13,必须发送。
2. 舵机控制器启动后舵机控制信号频率设置命令:
FR<fre><cr>
<fre> Pulse Width Modulation frequency 舵机控制信号PWM的频率,单位Hz,默认启动后自动设置为50hz,0-500,可选设置;
<cv> 结束回车符,ASCII中的13,必须发送。
3. 单个或多个舵机运动控制命令:
#<sch>P<pos>S<spd>... #<sch>P<pos>S<spd>T<tim>A<acc>G<gac><cr>
<sch>servo control channel 舵机控制通道号,为0-31,必须发送;
<pos>servo control position 舵机控制器输出控制信号脉冲宽度,单位us,为500-2500,必须发送;
<tim> servo control time 舵机控制单个通道速度,单位us,0-65535,可选发送,默认2000;
<spd>servo control speed 舵机控制多个连续通道速度,单位us,0-65535,可选发送,默认2000;
<acc>servo control accelerate 舵机控制单个通道脉冲单位周期内步进加速度值,单位us,0-255,可选发送(但是必须发送<spd>或<tim>后再发送<acc>),默认0;
<gac>servo control group accelerate 舵机控制多个连续通道脉冲单位周期内步进加速度值,单位us,0-255,可选发送(但是必须发送<spd>后再发送<gac>),默认0;
<cv> 结束回车符,ASCII中的13,必须发送。
4. 舵机控制器当前输出脉宽查询命令:
QP<cr>
query servo control position 发送后返回舵机控制器所以通道号当前输出控制信号的脉冲宽度,单位us;
5. 舵机控制器进入写入运动控制动作组命令:
AM<cr>
autumn servo controller memory 发送后若舵机控制器成功进入写入动作组模式,舵机控制器将返回ASCMemoryReady!此时可写入需要保存的动作组,动作组写入成功将会返回ASCMemorydone! %d Array返回数据%d为动作组编号,方便用户记录保存了多少组动作组。若写入动作组失败将会返回ASCMemoryError!;
6. 舵机控制器退出写入运动控制动作组命令:
AN<cr>
autumn servo controller none array 发送后舵机控制器将退出写入动作组模式并返回ASCMemoryQuit!;
7. 单个或多个舵机运动控制动作组调用命令:
SQ<scq>...SQ<scq><cr>
<scq>servo control arry query 调用执行动作组编号,0-379;
8. 多个舵机运动控制动作组调用跳转命令;
SQ<scq>X<xscq><cr>
<scq> servo control arry query 调用执行指定动作组编号,0-379;
<xscq> xiphoid servo control arry query 调用跳转到指定动作组编号,0-379(但是abs(<xscq> - <scq>),即前后两动作组编号相减后的绝对值不能大于255);
(四).Autumn舵机控制器调试方法:
焊上排座的Autumn,未焊排座的Autumn,蓝牙模块,Tiny 2.0,蓝牙适配器;
当插上蓝牙或者Tiny2.0时直接与Autumn通信时将通信选择拨向左端;
如果需要同时插上蓝牙和Tiny2.0时可以拨向右端,Tiny2.0使用软串口与蓝牙通信;
Tiny2.0中若有烧写如下测试程序:
void setup(){
Serial.begin(9600);//串口初始化;
Serial.println('a');//发送波特率识别码让Autumn初始化串口并识别波特率;
}
void loop(){
Serial.println("#0p500t1a2");//0号舵机每周期步进1us,步进加速值2us运动到负90度位置;如:1s时候速度为3us,2s时候为5us;
delay(3000);
Serial.println("#0p2500t1a2");//0号舵机每周期步进1us,步进加速值2us有负90度位置运动到正90度位置;
delay(3000);
}
插上蓝牙,打开电脑蓝牙即可调试,若电脑没有蓝牙,配上蓝牙适配器即可调试。
/*
待更新,暂存
*/ :D:D不错好靓、 刚刚才在arduino.cn看到,原來大神們都是無處不在的啊:lol 支持IIC 么? RX/TX 已占用了 CY57 发表于 2012-6-29 21:05 static/image/common/back.gif
刚刚才在arduino.cn看到,原來大神們都是無處不在的啊
{:soso_e112:} 大家共同学习进步 幻生幻灭 发表于 2012-6-29 21:20 static/image/common/back.gif
支持IIC 么? RX/TX 已占用了
舵机控制器不支持i2c,但是tiny可以接i2c设备后再与舵机控制器通信。然后还能选择蓝牙与arduino通信,arduino再与舵机控制器通信,最下边两个即为通信切换开关。 回复的真快,呵呵
最近在刚开始玩舵机,果然吃资源严重,如果不单独控制的话,基本系统就不用干别的了 幻生幻灭 发表于 2012-6-29 21:25 static/image/common/back.gif
回复的真快,呵呵
最近在刚开始玩舵机,果然吃资源严重,如果不单独控制的话,基本系统就不用干别的了
嗯,是的,不断中断。。耗费很多资源。我这边写了函数在MCU空闲里处理数据。现在还在想加点别的什么功能。 本帖最后由 txmg 于 2012-6-30 09:28 编辑
不错呀支持一下!!
教程更新,稍后还将继续更新。 {:soso_e109:}买的PS2是坏的。。
PS2使用教程后面更新 不知道,大神在哪卖的舵机控制器,我是刚刚接触这个,求指点,买什么样的比较适合呢 还好啊 发表于 2012-9-24 11:18 static/image/common/back.gif
不知道,大神在哪卖的舵机控制器,我是刚刚接触这个,求指点,买什么样的比较适合呢
这个是我自己做的,如果需要可以联系我的。 加速度怎么实现的,能透露一下不:D 三水 发表于 2012-9-27 13:06 static/image/common/back.gif
这个是我自己做的,如果需要可以联系我的。
三水什么时候做个磁力IC控制电机的扩展呀?
页:
[1]
2