极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 41101|回复: 15

Autumn Servo Controller - 舵机控制器

[复制链接]
发表于 2012-6-29 20:37:18 | 显示全部楼层 |阅读模式
本帖最后由 三水 于 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(){
&#160; Serial.begin(9600);//串口初始化;
&#160; Serial.println('a');//发送波特率识别码让Autumn初始化串口并识别波特率;
}

void loop(){
&#160; Serial.println("#0p500t1a2");//0号舵机每周期步进1us,步进加速值2us运动到负90度位置;如:1s时候速度为3us,2s时候为5us;
&#160; delay(3000);
&#160; Serial.println("#0p2500t1a2");//0号舵机每周期步进1us,步进加速值2us有负90度位置运动到正90度位置;
&#160; delay(3000);
}

插上蓝牙,打开电脑蓝牙即可调试,若电脑没有蓝牙,配上蓝牙适配器即可调试。

/*
待更新,暂存
*/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-6-29 20:59:00 | 显示全部楼层
不错好靓、
回复 支持 反对

使用道具 举报

发表于 2012-6-29 21:05:08 | 显示全部楼层
刚刚才在arduino.cn看到,原來大神們都是無處不在的啊
回复 支持 反对

使用道具 举报

发表于 2012-6-29 21:20:07 | 显示全部楼层
支持IIC 么? RX/TX 已占用了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-29 21:20:46 | 显示全部楼层
CY57 发表于 2012-6-29 21:05
刚刚才在arduino.cn看到,原來大神們都是無處不在的啊

{:soso_e112:} 大家共同学习进步
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-29 21:22:28 | 显示全部楼层
幻生幻灭 发表于 2012-6-29 21:20
支持IIC 么? RX/TX 已占用了

舵机控制器不支持i2c,但是tiny可以接i2c设备后再与舵机控制器通信。然后还能选择蓝牙与arduino通信,arduino再与舵机控制器通信,最下边两个即为通信切换开关。
回复 支持 反对

使用道具 举报

发表于 2012-6-29 21:25:12 | 显示全部楼层
回复的真快,呵呵
最近在刚开始玩舵机,果然吃资源严重,如果不单独控制的话,基本系统就不用干别的了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-29 21:29:03 | 显示全部楼层
幻生幻灭 发表于 2012-6-29 21:25
回复的真快,呵呵
最近在刚开始玩舵机,果然吃资源严重,如果不单独控制的话,基本系统就不用干别的了

嗯,是的,不断中断。。耗费很多资源。我这边写了函数在MCU空闲里处理数据。现在还在想加点别的什么功能。
回复 支持 反对

使用道具 举报

发表于 2012-6-30 09:27:12 | 显示全部楼层
本帖最后由 txmg 于 2012-6-30 09:28 编辑

不错呀支持一下!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-7 00:22:30 | 显示全部楼层

教程更新,稍后还将继续更新。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-13 23:03:52 | 显示全部楼层
{:soso_e109:}买的PS2是坏的。。
PS2使用教程后面更新
回复 支持 反对

使用道具 举报

发表于 2012-9-24 11:18:38 | 显示全部楼层
不知道,大神在哪卖的舵机控制器,我是刚刚接触这个,求指点,买什么样的比较适合呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-27 13:06:56 | 显示全部楼层
还好啊 发表于 2012-9-24 11:18
不知道,大神在哪卖的舵机控制器,我是刚刚接触这个,求指点,买什么样的比较适合呢

这个是我自己做的,如果需要可以联系我的。
回复 支持 反对

使用道具 举报

发表于 2012-11-4 17:22:31 | 显示全部楼层
加速度怎么实现的,能透露一下不
回复 支持 反对

使用道具 举报

发表于 2012-11-4 19:21:17 | 显示全部楼层
三水 发表于 2012-9-27 13:06
这个是我自己做的,如果需要可以联系我的。

三水什么时候做个磁力IC控制电机的扩展呀?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 19:06 , Processed in 0.043535 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表