5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 我的QSC舵机控制器详细教程(随时更新) [打印本页]

作者: xqi2    时间: 2011-4-26 21:43
标题: 我的QSC舵机控制器详细教程(随时更新)

我在这里写舵机控制器的教程
产品参数:
输出通道:24路(脉冲调制输出或TTL电平输出);
独立供电简化其他舵机板需要两个供电的需求:DC6V~7.4V;两个接口都为舵机供电接口,接一个可直接运行,没有逻辑电源接口
驱动分辨率:1uS, 0.09°;
驱动速度分辨率:1uS/秒,0.09°/秒;
通讯接口:USB/TTL串口接口;
串口波特率:2400、9600、38.4k、115.2k;
电路板尺寸:54X68;

我的板子的地址
http://item.taobao.com/item.htm?id=9998037487&

只是个舵机板 没有ARDUINO板,注意的是需要ARDUINO板才能实现PS2手柄无线控制 以及其他扩展功能

这是小舵机板的地址

http://item.taobao.com/item.htm?id=10209023247&




[ 本帖最后由 xqi2 于 2011-6-9 18:12 编辑 ]
作者: xqi2    时间: 2011-4-26 22:00
这是24路舵机板+ARDUINO  以ARDUINO做为主控来控制舵机控制板 24路舵机控制板上预留了PS2无线手柄接收端口
按键暂时支持为 ↑↓← →  △□×○  L1  R1  L2 R2  SELECT  START 共14个
注意:PS2无线手柄暂不支持摇杆控制,以后加入摇杆控制
接线图如下:
(, 下载次数: 90) (, 下载次数: 80)
代码范例  手柄通过ARDUINO控制舵机程序
  
if (PRESSED_TRIANGLE(PSX_PAD1)) {
    Serial.println("Pressed triangle");   //按下△  
     Serial.println("#9P2500T1000");   //9号舵机用1000MS时间转到2500脉冲位置
    delay(1000);
  }
if (RELEASED_TRIANGLE(PSX_PAD1)) {
  Serial.println("Released triangle");   //松开△
       Serial.println("#9P1500T1000");   //9号舵机用1000MS时间转到1500脉冲位置
    delay(1000);
  //  PSX.motor(PSX_PAD1, MOTOR1_OFF, 0x00);
  }
  if (PRESSED_UP(PSX_PAD1)) {
Serial.println("Pressed Up");  //按下 ↑  0号舵机用1000MS时间转到500脉冲位置

      Serial.println("#0P500T1000");
    delay(1000);
  }
  if (RELEASED_UP(PSX_PAD1)) {
   Serial.println("Released Up");   //松开↑ 0 号舵机用1000MS时间转到1500脉冲位置

      Serial.println("#0P1500T1000");
    delay(1000);
  }


[ 本帖最后由 xqi2 于 2011-4-30 23:03 编辑 ]
作者: xqi2    时间: 2011-4-26 23:08
见图 已有详解
作者: xqi2    时间: 2011-4-26 23:18
基本控制指令,可单舵机动作到24路舵机联动
# <ch> P <pw> S <spd>... # <ch> P <pw> S <spd> T <time><cr>
<ch> =舵机号, 0 - 23.
<pw> =脉冲宽度单位 微秒 , 范围500 - 2500.
<spd> =移动速率 us/s 每秒移动脉宽数针对一个舵机有效(Optional)
<time> =移动到指定位置使用的毫秒数 (Optional)
<cr> = ASCII 13. (回车)

例子 "#9 P1600 S650 <cr>"
移动舵机号9 到脉宽 1600us 速率为每秒移动脉宽650微秒
"#5 P1600 #10 P850 T2500 <cr>"
移动舵机号9 到脉宽 1600us 移动舵机号10 到脉宽 850us 使用时间为2500ms
注: T 可以对前面所有舵机有效除了有S的舵机号
#5 P1600 #10 P750 #12 P1700S500 T2500 5号和10舵机是使用2.5S完成移动12舵机看它以速率 500us/s实际使用时间确定

ARDUINO里面的程序范例
Serial.println("#9P2500T1000");   //9号舵机用1000MS时间转到2500脉冲位置
    delay(1000);//等待完成的时间

[ 本帖最后由 xqi2 于 2011-4-26 23:20 编辑 ]
作者: xqi2    时间: 2011-4-26 23:19
相对位置移动
# <ch> PO <offset value> ... # <ch> PO <offset value> <cr>
<offset value>=相对位置值100 TO -100
范例"#1PO50<cr>"
在1号舵机现有的位置上再移动50ms
作者: xqi2    时间: 2011-4-26 23:22
舵机板逻辑输出
# <ch> <lvl> ... # <ch> <lvl> <cr>
<lvl>逻辑位输出,  'H'  or 'L'
范例"#3H #4L <cr>"
3号舵机位置高(1),4号舵机位置低(0)
作者: xqi2    时间: 2011-4-26 23:23
多路舵机位逻辑输出
# <bank> : <value> <cr>
<bank> (0表示 0-7舵机, 1 表示 8-15舵机, 2 代表 16-23舵机, )
范例"#2:123 <cr>"
123是十进制,将十进制转为二进制(01111011)分别输出给舵机16-23
作者: xqi2    时间: 2011-4-26 23:26
2路数字输入.
"A B  AL BL  <cr> "
读取的是 A路跟B路的数字量,用于接数字传感器,接数字传感器的时候需要一个50K的上拉电阻
A B 是普通读取,返回为1 0
AL BL 为锁存输入读取
范例"A BL <cr>"  A为普通位读取 B为锁存输入读取
2路模拟输入.
"VA VB <cr>"
读取的是 A路跟B路的模拟量,用于接模拟传感器
作者: xqi2    时间: 2011-4-27 08:32
正/背面放大图

舵机板背面板载500MA自恢复保险丝,用于保护芯片的过载
注意电源的供电端口   /GND VCC/     /VCC  GND/  不要接反 以免短路烧毁舵机板
舵机口排序为
0     8
1     9
2     10
3     11
4     12
5     13
6     14
7     15
16   20
17   21
18   22
19   23
舵机接口为S + -
MG995的黄色线或普通舵机的白色线接S

[ 本帖最后由 xqi2 于 2011-4-29 14:42 编辑 ]
作者: ly8008csko    时间: 2011-4-27 09:51
呵呵,LZ焊工不错啊
作者: xqi2    时间: 2011-4-29 08:13
关于电池的选择,很多使用者出现 几个舵机同步工作的时候只有一两个电机可以运行,还有就是通电就直接死机或者上位机软件容易死机都是由于电源供电电流不足造成的,建议几种电源配置,一是用开关电源10A以上,最好15A以上。二是使用倍率电池2S/7.4V的航模电池还有 18650 的A123铁锂电池,三是用镍氢动力电池,几种电池尽量保持放电电流在10A以上
充电器的问题,两节A123电池的电压为6.6V建议充电电压为7-8V,镍氢电池跟A123充电电压相同,可以自己找一个变压器给他充电,航模电池可用简易充电器,

[ 本帖最后由 xqi2 于 2011-5-18 10:11 编辑 ]
作者: xqi2    时间: 2011-4-29 18:48
拿到板子 先给板子上的电源接口供电,供电电压为6V-7.4V
然后用USB线一块一块的连接上 分别给他们装上驱动,驱动的地址是 例如:D:\arduino-0018\drivers\FTDI USB Drivers
注意:舵机板不供电是安装不了驱动程序的
然后打开上位机软件,设置好端口还有波特率即可运行,QSC24的(BAUD)波特率必须跟上位机相同,否则将无法实现通讯
(, 下载次数: 90)


作者: xqi2    时间: 2011-4-29 23:30
编程软件用ARDUINO 0018 里面自带 有我做好了PS2手柄的控制程序。
装了驱动后打开ARDUINO 0018  在TOOL选项里设置好BOARD-----选择为ARDUINO ATMEGA328,然后再选择SERIAL PORT 为刚刚装上去的那个COM口,不能确定COM口的时候 拔掉USB口 看那个没有了 再插回去 哪个又出来了 就是哪个COM口
硬件设置完后(OPEN)打开ARDUINO0018里面的Q_ROBOT文件夹里面的PS。 然后选择下 载(UPLOAD)
程序就下 载完成了,如果PS2手柄的连线正确,且舵机板供电 手柄接收器 应该会出现电源指示灯,这时随便按个手柄按键 就接收器指示灯就应该有反应了 点一下亮一下 松开又亮一下

(, 下载次数: 89)
设置BOARD
(, 下载次数: 85)

设置COM口

(, 下载次数: 80)
打开文件
(, 下载次数: 79)
找到Q_ROBOT文件夹
(, 下载次数: 96)
打开PS文件
(, 下载次数: 96)
下 载程序进A板

[ 本帖最后由 xqi2 于 2011-5-18 10:39 编辑 ]
作者: xqi2    时间: 2011-4-30 22:37
(, 下载次数: 88)
给接收器做了头子  顺便把连线做短了

(, 下载次数: 98)
后背板上加入两个电源开关,用来连接两块电池供电。还有三个拨位开关(拨位开关是三脚的) 左边的用来引出POWER跳线(下 载程序的时候需要给ARDUINO断电) 右边两个用来引出TXD RXD,这样就不要在板子上插拔跳线了 直接用开关来选择是USB模式还是ARD模式,帮助调试
外接拨位开关接线图
(, 下载次数: 104)

(, 下载次数: 93)
拨位开关 可用这个来代替,手上有现成的小开关 ,现场采用

[ 本帖最后由 xqi2 于 2011-5-1 17:11 编辑 ]
作者: xqi2    时间: 2011-5-2 11:46
(, 下载次数: 80)
20路的小型舵机控制板 接口跟使用可参考24路的
(, 下载次数: 101)
跟舵机比大小
这块板子第一次设计 有些小失误,只做到了19路,第16路不要接舵机 基本完美了

地址

[ 本帖最后由 xqi2 于 2011-5-23 19:59 编辑 ]
作者: xqi2    时间: 2011-5-4 22:41
(, 下载次数: 74)
今天安装了下控制板  控制板是安装在以前开好的孔上的 所以 位置有些靠左 并不是正中间,右边的空间用来放置接收器,接收器 竖着放
(, 下载次数: 80) (, 下载次数: 79)
修改了电池的接口连线
作者: xqi2    时间: 2011-5-8 14:47
(, 下载次数: 84)
QSC20分两块板子,左边是20路舵机控制 右边是独立的USB-TTL,他们之间用4P线连接,等调试好后就可以拔掉USB-TTL,20路舵机板可独立工作
图如下:
(, 下载次数: 79)

(, 下载次数: 83)

QSC20 的板载接口通讯图如下
(, 下载次数: 89)

[ 本帖最后由 xqi2 于 2011-5-8 14:48 编辑 ]
作者: xqi2    时间: 2011-5-10 18:12
(, 下载次数: 73)
PS2 接收器   斜口朝下 对着自己放置  从左到右 分别是 1  2  3  4  5  6  7  8  9
(, 下载次数: 82)
上面一般会有一个电源指示灯一个 通讯指示灯
我的只有通讯指示灯 和复位按钮

[ 本帖最后由 xqi2 于 2011-5-10 18:16 编辑 ]
作者: scottmaxwell    时间: 2011-5-12 09:35
不错
LZ的动作调试软件是怎么样的呀
作者: xqi2    时间: 2011-5-12 09:48
(, 下载次数: 85)
软件是这样的 界面太垃圾了 所以就不拿出来丢人了
作者: scottmaxwell    时间: 2011-5-12 09:56
这个是我写的界面  以后多多交流  

(, 下载次数: 114)
作者: xqi2    时间: 2011-5-13 14:25
(, 下载次数: 71)
我喜欢这么调试动作,将手工进行到底!!!!
作者: 大石11111    时间: 2011-5-15 22:29
标题: 支持LZ
LZ要让编程软件做好,造福广大机器人爱好者。能否在板上实现,用一个简单的4路无线模块,完成几个事先编好的动作呢?
作者: aydali    时间: 2011-5-15 22:57

    我也正在编制通用舵机机器人开发系统软件,可以让大、中学生对机器人动作灵活编程,测试版出来会发给大家共享测试。
    设计考虑支持变量嵌入,所以难度比较大。目前还在大概1/3的进度处,呵呵。
    21楼的设计很不错,值得借鉴。请教你的“3D控制”按钮是什么功能?你的软件中“动作速度”是靠时间控制吗?
作者: xqi2    时间: 2011-5-16 10:34
标题: 回复 23楼 大石11111 的帖子
你这个东西挺简单的对我来说简单的不能再简单了  一般的问题我都能解决 不过往大了说就未必能解决
作者: xqi2    时间: 2011-5-16 10:40
我可以很责任的告诉你 3D只是一个噱头,没有真实的实物 且是商业化的产品3D都是拿来看看 没有任何的实际价值的,这东西需要配合商业化成品
很多人都在做控制板 网上也有很多了买了舵机控制板 应该有好几百个是没有问题的 但是基本上是找不到成品机器人的,因为国产舵机板大家都设计的太过简单 很多人拿到他甚至连个玩具都做不出来
拉指示条控制舵机---导入动作卡-----演示动作  这就是现状
作者: scottmaxwell    时间: 2011-5-16 11:08
原帖由 aydali 于 2011-5-15 22:57 发表

    我也正在编制通用舵机机器人开发系统软件,可以让大、中学生对机器人动作灵活编程,测试版出来会发给大家共享测试。
    设计考虑支持变量嵌入,所以难度比较大。目前还在大概1/3的进度处,呵呵。
    21楼 ...

1、3D控制需要机器人结构数据,我现在做的是可以使用其他3D软件画3D图纸,软件就可以导入。
2、现在的3D控制已经可以使用了,但是没有加入物理引擎,现在的任务是加入物理引擎,这样的话  各关节的姿态就有物理引擎给定。
3、软件可以通过插件,可以适用于不同的控制器.
4、如果你的舵机是带有位置反馈的,那你直接设置你机器人的姿态,软件就可以反映出来。


设想是通过微软的kinect 实时生成地形图.来控制机器人如何在环境中运动

(, 下载次数: 97)

[ 本帖最后由 scottmaxwell 于 2011-5-16 11:29 编辑 ]
作者: xqi2    时间: 2011-5-16 12:41
(, 下载次数: 76)
已经开始玩新舵机了
(, 下载次数: 80)
(, 下载次数: 93)
MG995没啥实际价值了

(, 下载次数: 89)
以前的小二足也选择放弃 都没价值的
作者: scottmaxwell    时间: 2011-5-16 14:40
十几个 MG995都扔垃圾桶了,质量实在是太差了
最近准备捣鼓这个,就是齿轮让我伤脑经。


(, 下载次数: 86)
(, 下载次数: 105)
作者: xqi2    时间: 2011-5-16 14:50
自制舵机??
都捣鼓几年了 也没看谁可以捣鼓个舵机出来啊
小弟实在不行啊 就玩玩买的就行了,能用买的舵机搞出一个就已经万幸了   而且还要为新的接口做新的控制板呢 可能吗 。。。不现实
作者: scottmaxwell    时间: 2011-5-16 15:02
呵呵  据我知道 已经有好多人捣鼓出来了 只是我还在原地踏步:em15:
作者: xqi2    时间: 2011-5-16 16:33
据我知道的就是没一个人捣鼓出来的 最后都在原地踏步  最后还是买的成品 好像买了成品舵机的 都没把舵机人做出来  最后没办法 了 就买了成品舵机人
作者: scottmaxwell    时间: 2011-5-16 17:49
LZ说没有就没有啦,我这种只是业余时间玩玩的人,也不能和那些专业做这个的能比的,最近对这个也没有什么兴趣了,继续玩我的平衡车 :em15:

[ 本帖最后由 scottmaxwell 于 2011-5-16 17:52 编辑 ]
作者: md35    时间: 2011-5-16 18:47
不错!:em26:
作者: 大石11111    时间: 2011-5-16 21:30
春天的机器人舵机,谁用谁知道。
作者: 大石11111    时间: 2011-5-16 21:33
拿到成品后,看sr 430p,的连接孔,在说说自己的想法吧。
作者: 大石11111    时间: 2011-5-16 21:46
scottmaxwell的舵机做出来,可能要填补国内空白,这种机器人的舵机,国内有几家机器人公司正在研制,已经进入测试阶段。
作者: xqi2    时间: 2011-5-16 21:49
手上有两个 还行吧
壳子比MG995差  但是不抖舵,虚位小  MG995用手能转动侧向扭动就变形了,用了没多久虚位就出来了   而SR403不通电转不动,纹丝不动
壳子真的是非常垃圾 这个真的没话说 应该是量太小 模具用的太差造成的
不过就一张三维图纸 就能把舵机做出来吗   太扯了些吧   真当小日本一点用都没有啊。5年之内没人搞的出来

[ 本帖最后由 xqi2 于 2011-5-16 21:51 编辑 ]
作者: 大石11111    时间: 2011-5-16 22:03
scottmaxwell不知有没这个耐心做到底, scottmaxwell的舵机控制板还好,xqi2的控制板不知能否加个4路遥控,实现简单的几组动作呢?
作者: yanghaoxin314    时间: 2011-5-17 02:45
scottmaxwell现在弄的很好,应该有希望,ls说四路遥控啥意思,加个接收器?xqi2的板子是配合ps2手柄用的,去掉了不必要的功能,再加个接收器和存储器感觉不必要了。:em15:
作者: xqi2    时间: 2011-5-17 12:15
标题: 回复 39楼 大石11111 的帖子
我也想知道什么叫4路遥控???  难道就是航模4通道遥控器吗???
作者: 大石11111    时间: 2011-5-17 12:37
(, 下载次数: 105) 一、技术参数

工作电压(V):DC5V

静态电流(mA):4.5MA

调制方式:调幅(OOK)

工作温度: -10℃~+70℃

接收灵敏度(dBm):-105DB

工作频率(MHz):315、433.92MHz(266-433MHZ频率段可任选)

编码方式:焊盘编码(固定码)

工作方式:M4(点动:按住不松手就输出,一松手就停止输出)、L4(互锁:四路同时只能有一路输出)、T4(自锁:四路相互独立输出、互不影响,按一下输出再按一下停止输出)

尺寸(LWH):41*23*7mm



二、产品 特点:



    超再生接收模块采用LC振荡电路,内含放大整形,输出的数据信号为解码后的高电平信号,使用极为方便,并且价格低廉,所以被广泛使用。带四路解码输出(同时也可改为六路点动或互锁输出),使用方便;频点调试容易,供货周期短;产品质量一致性好,性价比高。


       接收模块有较宽的接收带宽,一般为±10MHz,出厂时一般调在315MHz或433.92MHZ(如有特殊要求可调整频率,频率的调整范围为266MHz~433MHz。)。接收模块一般采用DC5V供电,如有特殊要求可调整电压范围。

三、脚位及使用说明:





脚位


名称


功能说明




1


VT


输出状态指示




2


D3


数据输出




3


D2


数据输出




4


D1


数据输出




5


D0


数据输出




6


5V


电源正极




7


GND


电源负极





ANT


接天线端



  接收模块一共有八个外部接口,上面有英文表示。“5V”表示接电源正极,“ D0、D1、D2、D" 3”表示输出,“GND”表示接电源负极,“ANT”表示接天线端。

       使用前要接上50欧姆1/4波长的天线,并且天线应该是直的,以达到最佳的接收效果,波长=光速/频率。



四、应用环境(应用领域)

无线遥控开关、遥控插座、数据传输、遥控玩具、防盗报警主机、车库门、卷闸门、道闸门、伸缩门等门控业及其遥控音响领域等。

五、自选配件

与公司发射系列、遥控器系列产品配套使用。

六、备注

VCC电压要与模块工作电压一致,且要做好电源滤波;
天线对模块的接收效果影响很大,最好接1/4波长的天线,一般采用50欧姆单芯导线,天线的长度315M的约为23cm,433M的约为17cm;
天线位置对模块接收效果亦有影响,安装时,天线尽可能伸直,远离屏蔽体,高压,及干扰源的地方;
使用时接收频率、解码方式应与发射匹配。

[ 本帖最后由 大石11111 于 2011-5-17 12:39 编辑 ]
作者: 大石11111    时间: 2011-5-17 12:42
这个价格十几元。
作者: xqi2    时间: 2011-5-17 13:01
标题: 回复 43楼 大石11111 的帖子
这东西太简单了 我以前研究过的 他是焊不同的几个连接 来确定不同的发送代码  以免影响干扰  接收器那里就是简单的4路开关输出量 是拿来接4路的 继电器用的 就是按下输出1   然后用这个1来控制舵机板就行了

接收器 一个通道接一个ARDUINO NANO的 数字IO口就可以了 共接4个IO还有地跟VCC连上就能用了  这是最简单的遥控器控制了

就是不知道你用来干啥的
作者: 大石11111    时间: 2011-5-17 21:16
用这个控制机器人的,前进,后退,各种的动作,如果编程好的话,可以控制机械臂去抓取东西。这个价格低一般的玩家都可以接受。
作者: 大石11111    时间: 2011-5-17 21:18
如用你的控制板,不知该怎样编程呢
   。
作者: xqi2    时间: 2011-5-17 22:03
4路 遥控没意思的 四个 按键  为什么不多加20-30块钱买个手柄呢
主要是我的板子上基本上没有预留 ARDUINO的 IO接口  所以不好接其他的遥控设备了
不过可以用PS2 的那几个口    你说的那个 需要接4个 IO  然后从板子上找5V GND连上去就行了

编程方面就那个IO口读取HIGH(1) 就给舵机板发送代码就OK了
这是编程相对简单的知识  估计你是机械整多了 这些不太会

[ 本帖最后由 xqi2 于 2011-5-17 22:07 编辑 ]
作者: xqi2    时间: 2011-5-18 00:16
还在做实验 发现20路的小舵机板有个小问题(24路的没有这个问题) 就是NANO插在舵机板上 手柄接收器也插在板子上时候  USB线插在NANO上识别不了驱动
问题的原因在于手柄接收器的电源供电为FT232RL提供电源,在插USB的一瞬间 FT232RL电压被拉低而不能正常工作造成的,而24路的没有这个问题,说明MINI_USB的供电能力是相当的差劲。。。。这个需要在下一个版本来修正这个错误。  解决的方法就是 给NANO接USB线的时候 手柄接收器先不要插板子上 也可以 外接一个小开关把 PS2区域的5脚 用个开关外接出来 给他断电,等程序下 载完 再给PS2接收器供电就行了
板子不是很完美有待改进

[ 本帖最后由 xqi2 于 2011-5-18 00:23 编辑 ]
作者: xqi2    时间: 2011-5-18 16:30
(, 下载次数: 83)
想了想还是把我的板子上焊上红外接收头好了  虽然没用了 但是可供于别人学习之用
红外接收头接在了ARDUINO   NANO的 数字接口 D12

[ 本帖最后由 xqi2 于 2011-5-19 10:32 编辑 ]
作者: 大石11111    时间: 2011-5-19 19:16
对你的板子很感性趣,最近在制作机械手,想使用你的板子,和PS2控制,对电路除了热情,还真是不是很懂。PS2,能单独控制几个舵机呢?
作者: xqi2    时间: 2011-5-19 20:45
我的板子还不是很成熟 你可以用MAX 的他的跟我的一样的
手柄按键很多的 够用了  每个按键可以是一个舵机 也可以是全部舵机 甚至是舵机动作组 都行 看怎么玩了

[ 本帖最后由 xqi2 于 2011-5-19 21:26 编辑 ]
作者: zhangyongsheng1    时间: 2011-12-21 07:49
:em15:




欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://bbs.5imx.com/) Powered by Discuz! X3.3