5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 13363|回复: 51
打印 上一主题 下一主题

我的QSC舵机控制器详细教程(随时更新)

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-26 21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我在这里写舵机控制器的教程
产品参数:
输出通道: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 编辑 ]

34.JPG (73.02 KB, 下载次数: 83)

34.JPG

035.JPG (69.08 KB, 下载次数: 86)

035.JPG

欢迎继续阅读楼主其他信息

沙发
 楼主| 发表于 2011-4-26 22:00 | 只看该作者
这是24路舵机板+ARDUINO  以ARDUINO做为主控来控制舵机控制板 24路舵机控制板上预留了PS2无线手柄接收端口
按键暂时支持为 ↑↓← →  △□×○  L1  R1  L2 R2  SELECT  START 共14个
注意:PS2无线手柄暂不支持摇杆控制,以后加入摇杆控制
接线图如下:

代码范例  手柄通过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 编辑 ]
3
 楼主| 发表于 2011-4-26 23:08 | 只看该作者
见图 已有详解

TTL.JPG (50.24 KB, 下载次数: 87)

TTL.JPG

加速度.JPG (24.21 KB, 下载次数: 82)

加速度.JPG

陀螺.JPG (46.09 KB, 下载次数: 84)

陀螺.JPG

BAUD.JPG (35.55 KB, 下载次数: 77)

BAUD.JPG
4
 楼主| 发表于 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 编辑 ]
5
 楼主| 发表于 2011-4-26 23:19 | 只看该作者
相对位置移动
# <ch> PO <offset value> ... # <ch> PO <offset value> <cr>
<offset value>=相对位置值100 TO -100
范例"#1PO50<cr>"
在1号舵机现有的位置上再移动50ms
6
 楼主| 发表于 2011-4-26 23:22 | 只看该作者
舵机板逻辑输出
# <ch> <lvl> ... # <ch> <lvl> <cr>
<lvl>逻辑位输出,  'H'  or 'L'
范例"#3H #4L <cr>"
3号舵机位置高(1),4号舵机位置低(0)
7
 楼主| 发表于 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
8
 楼主| 发表于 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路的模拟量,用于接模拟传感器
9
 楼主| 发表于 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 编辑 ]

20100831_03b09178651815c889f8sZ992hHEyErz.jpg (43.29 KB, 下载次数: 85)

20100831_03b09178651815c889f8sZ992hHEyErz.jpg

PC120034.JPG (112.53 KB, 下载次数: 89)

PC120034.JPG
10
发表于 2011-4-27 09:51 | 只看该作者
呵呵,LZ焊工不错啊
11
 楼主| 发表于 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 编辑 ]
12
 楼主| 发表于 2011-4-29 18:48 | 只看该作者
拿到板子 先给板子上的电源接口供电,供电电压为6V-7.4V
然后用USB线一块一块的连接上 分别给他们装上驱动,驱动的地址是 例如:D:\arduino-0018\drivers\FTDI USB Drivers
注意:舵机板不供电是安装不了驱动程序的
然后打开上位机软件,设置好端口还有波特率即可运行,QSC24的(BAUD)波特率必须跟上位机相同,否则将无法实现通讯


13
 楼主| 发表于 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手柄的连线正确,且舵机板供电 手柄接收器 应该会出现电源指示灯,这时随便按个手柄按键 就接收器指示灯就应该有反应了 点一下亮一下 松开又亮一下


设置BOARD


设置COM口


打开文件

找到Q_ROBOT文件夹

打开PS文件

下 载程序进A板

[ 本帖最后由 xqi2 于 2011-5-18 10:39 编辑 ]
14
 楼主| 发表于 2011-4-30 22:37 | 只看该作者

给接收器做了头子  顺便把连线做短了


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



拨位开关 可用这个来代替,手上有现成的小开关 ,现场采用

[ 本帖最后由 xqi2 于 2011-5-1 17:11 编辑 ]
15
 楼主| 发表于 2011-5-2 11:46 | 只看该作者

20路的小型舵机控制板 接口跟使用可参考24路的

跟舵机比大小
这块板子第一次设计 有些小失误,只做到了19路,第16路不要接舵机 基本完美了

地址

[ 本帖最后由 xqi2 于 2011-5-23 19:59 编辑 ]
16
 楼主| 发表于 2011-5-4 22:41 | 只看该作者

今天安装了下控制板  控制板是安装在以前开好的孔上的 所以 位置有些靠左 并不是正中间,右边的空间用来放置接收器,接收器 竖着放

修改了电池的接口连线
17
 楼主| 发表于 2011-5-8 14:47 | 只看该作者

QSC20分两块板子,左边是20路舵机控制 右边是独立的USB-TTL,他们之间用4P线连接,等调试好后就可以拔掉USB-TTL,20路舵机板可独立工作
图如下:




QSC20 的板载接口通讯图如下


[ 本帖最后由 xqi2 于 2011-5-8 14:48 编辑 ]
18
 楼主| 发表于 2011-5-10 18:12 | 只看该作者

PS2 接收器   斜口朝下 对着自己放置  从左到右 分别是 1  2  3  4  5  6  7  8  9

上面一般会有一个电源指示灯一个 通讯指示灯
我的只有通讯指示灯 和复位按钮

[ 本帖最后由 xqi2 于 2011-5-10 18:16 编辑 ]

PC250051.JPG (30.88 KB, 下载次数: 90)

PC250051.JPG
19
发表于 2011-5-12 09:35 | 只看该作者
不错
LZ的动作调试软件是怎么样的呀
20
 楼主| 发表于 2011-5-12 09:48 | 只看该作者

软件是这样的 界面太垃圾了 所以就不拿出来丢人了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

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