“32路舵机控制器”的版本间的差异

来自YFRobotwiki
跳转至: 导航搜索
(以“ 32路舵机控制器 === 产品简介 === <br> 32路舵机控制器采用FTDI高性能串口通信芯片FT232RL,...”为内容创建页面)
 
第28行: 第28行:
 
[[Image:32路舵机控制器引脚示意图.png|center|32路舵机控制器]]
 
[[Image:32路舵机控制器引脚示意图.png|center|32路舵机控制器]]
 
<br><br>
 
<br><br>
*|16-31号舵机,共用同一电源,电流最大10A。其中G为GND,V为舵机电源,S为信号线。
+
:1.16-31号舵机,共用同一电源,电流最大10A。其中G为GND,V为舵机电源,S为信号线。
*0-15号舵机,共用同一电源,电流最大10A。其中G为GND,V为舵机电源,S为信号线。
+
*主控MCU,ATMEGA8L-PU,工作频率14.7456M。
+
*
+
  
 +
:2.0-15号舵机,共用同一电源,电流最大10A。其中G为GND,V为舵机电源,S为信号线。
  
=== 应用示例 ===
+
:3. 主控MCU,ATMEGA8L-PU,工作频率14.7456M
<br>
+
<font color="darkorenge">''' 提示'''</font>:以下程序需使用到 IRremote库文件,文件下载地址见页末 - 参考资料。下载后将其解压至arduinoIDE安装目录/libraries文件夹中,例如: "D:\Program Files\Arduino\arduino-1.6.4-windows\arduino-1.6.4\libraries"
+
<br><br>
+
'''电路连接示意图'''
+
<br>
+
:'''红外接收模块'''的 G、V、S分别连接 '''Arduino UNO'''的GND、VCC(+5V)、D11引脚。
+
+
<!--[[Image: 红外接收模块.jpg|400px|center|红外接收模块接线图]]-->
+
  
 +
:4.16-31号舵机电源输出,VS2接电源正极。
  
 +
:5.0-15号舵机电源输出,VS1接电源正极。
  
'''示例代码'''
+
:6. 逻辑端供电输出,电压范围:7.5-15V,VIN为正,GND为负。
<br><br>
+
<font color="darkcyan">'''示例一'''</font>:获取键值
+
<pre >
+
/*
+
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
+
* An IR detector/demodulator must be connected to the input RECV_PIN.
+
* Version 0.1 July, 2009
+
* Copyright 2009 Ken Shirriff
+
* http://arcfn.com
+
*/
+
  
#include <IRremote.h>
+
:7. 串口波特率,通过指拨开关设置,对应波特率如下:
  
int RECV_PIN = 11;
+
{|border="1" cellspacing="0" align="center" cellpadding="5" width="800px"
 +
|-
 +
|align="center"|ON ON
 +
|align="center"|115200
 +
|align="center"|OF OFF
 +
|align="center"|9600
 +
|-
 +
|align="center"|OFF ON
 +
|align="center"|38400
 +
|align="center"|OFF OFF
 +
|align="center"|2400
 +
|}
  
IRrecv irrecv(RECV_PIN);
+
:8.ABCD 4个模拟/数字输入端子,可以设置为静止或者是锁存。
  
decode_results results;
+
:9.FT232RL通信芯片。
  
void setup()
+
:10. 串口选择,可以使用USB转TTL做扩展使用,默认连接。
{
+
  Serial.begin(9600);
+
  irrecv.enableIRIn(); // Start the receiver
+
}
+
  
void loop() {
+
:11.USB接口,发货清单包含配套的USB转MINI USB 数据线。
  if (irrecv.decode(&results)) {
+
    Serial.print("irCode: ");
+
    Serial.println(results.value, HEX);
+
    delay(200);
+
    irrecv.resume(); // Receive the next value
+
  }
+
}
+
</pre>
+
  程序下载地址:[http://pan.baidu.com/s/1qJCKY IRrecvDemo]
+
  
程序运行结果:接收按键值 并串口打印。偶尔出现 "FFFFFFFF" 码值,属于正常现象,可适当延长延时时间
+
:12.内部降压模块 提供5V电源给主控单元使用
  
最终整理按键值表格:
+
:13.存储(扩展使用,目前无此功能)
  
{|border="1" cellspacing="0" align="center" cellpadding="5" width="800px"
+
:14.蓝牙接口,可以与蓝牙串口模块相连,实现远程 制。
|-
+
 
|align="center"|遥 器字符
+
:15.VS1与VS2短跳跳线,两个短接时VS1=VS2,这里只需要给 一个 电源即可;两个都断开时,VS1与VS2通过对应的接线端子接入电源。
|align="center"|键值
+
 
|align="center"|遥控器字符
+
 
|align="center"|键值
+
 
|-
+
 
|align="center"|红色/关闭键
+
=== 应用示例 ===
|align="center"|0xFFA25D
+
|align="center"|MENU
+
|align="center"|0xFFE21D
+
|-
+
|align="center"|TEST
+
|align="center"|0xFF22DD
+
|align="center"|+
+
|align="center"|0xFF02FD
+
|-
+
|align="center"|返回键
+
|align="center"|0xFFC23D
+
|align="center"|快退/左2三角
+
|align="center"|0xFFE01F
+
|-
+
|align="center"|播放/ 一个 三角
+
|align="center"|0xFFA857
+
|align="center"|快进/右2三角
+
|align="center"|0xFF906F
+
|-
+
|align="center"|0
+
|align="center"|0xFF6897
+
|align="center"|-
+
|align="center"|0xFF9867
+
|-
+
|align="center"|C
+
|align="center"|0xFFB04F
+
|align="center"|1
+
|align="center"|0xFF30CF
+
|-
+
|align="center"|2
+
|align="center"|0xFF18E7
+
|align="center"|3
+
|align="center"|0xFF7A85
+
|-
+
|align="center"|4
+
|align="center"|0xFF10EF
+
|align="center"|5
+
|align="center"|0xFF38C7
+
|-
+
|align="center"|6
+
|align="center"|0xFF5AA5
+
|align="center"|7
+
|align="center"|0xFF42BD
+
|-
+
|align="center"|8
+
|align="center"|0xFF4AB5
+
|align="center"|9
+
|align="center"|0xFF52AD
+
|}
+
 
<br>
 
<br>
 +
'''电路连接示意图'''
 +
<br>
 +
 +
[[Image: 32路舵机控制器连接示意图.jpg|800px|center|32路舵机控制器连接示意图]]
 +
 +
 +
 +
'''控制指令'''
 +
<br><br>
 +
单个舵机和舵机群运动命令
  
<font color="darkcyan">'''示例二'''</font> :红外遥控
+
<nowiki># <ch> P <pw> S <spd>... # <ch> P <pw> S <spd> T <time><cr></nowiki>
<pre >
+
// Infrared remote control test
+
  
#include <IRremote.h>
+
<ch> :舵机通道号,0 – 31。
  
int RECV_PIN = 11;
+
<pw> :脉冲宽度,单位微秒(us),500 – 2500。
int LED_PIN = 13;
+
  
IRrecv irrecv(RECV_PIN);
+
<spd> :单通道的运动速度,单位us/秒。( 可选)
  
decode_results results;
+
<time> :所有通道的速度,单位毫秒(ms),最大65535。(可选)
  
void setup()
+
<cr> :结束回车符,ASCII码中的13。( 必选)
{
+
  Serial.begin(9600);
+
  pinMode(LED_PIN,OUTPUT);
+
  irrecv.enableIRIn(); // Start the receiver
+
}
+
  
void loop() {
+
<esc> :取消当前的命令,ASCI码中的27。
  if (irrecv.decode(&results)) {
+
    Serial.println(results.value, HEX);
+
    controlLED(&results);
+
    irrecv.resume(); // Receive the next value
+
  }
+
}
+
  
//Control the LED
 
void controlLED(decode_results *results) {
 
  switch(results->value){
 
    case 0xFFA25D:
 
      digitalWrite(LED_PIN,LOW);
 
      break;
 
    case 0xFFE21D:
 
      digitalWrite(LED_PIN,HIGH);
 
      break;
 
  }
 
}
 
</pre>
 
程序下载地址:[http://pan.baidu.com/s/1qWBpOpm IRrecvControl]
 
  
  程序 运行结果: 按“MENU 按钮 点亮LED,按下 关闭 按钮 关闭LED
+
'''单个舵机运动示例:'''
 +
  #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> 指令,确定舵机位置后,才可以发送带有速度和时间控制的指令 否则会发生不可意料的动作
  
  
第194行: 第121行:
 
===参考资料===
 
===参考资料===
 
<br>
 
<br>
* [http://pan.baidu.com/s/1bnBGvKF IRremote库文件]
+
* 舵机控制器介绍论坛地址:[http://www.yfrobot.com/thread-2434-1-1.html 32路舵机控制器]
* [http://pan.baidu.com/s/1mgy6Kfm 红外 原理 介]
+
*32路舵机控制器原理图下载地址:[http://www.yfrobot.com/forum.php?mod=attachment&aid=ODU5fGE5OThmYzg4fDE0NDU5MDk2OTN8MnwyNDM0 32路舵机控制器 原理 图]
 +
*FTDI 驱动下载:[http://www.yfrobot.com/forum.php?mod=attachment&aid=ODYwfGU3ZTAxMWE2fDE0NDU5MDk2OTN8MnwyNDM0 USB驱动下载]
 +
*舵机控制器上位机软件 绍:[http://www.yfrobot.com/thread-11562-1-1.html 舵机控制器软件]
  
  

2015年10月27日 (二) 09:42的版本

生成缩略图出错:文件可能丢失:
32路舵机控制器


产品简介


32路舵机控制器采用FTDI高性能串口通信芯片FT232RL,使得控制板更快更稳定。用户可以使用它完成多自由度机器人,机械手臂,云台或多足机器人等的驱动。它可以对舵机进行定速,定时控制;并且兼容多种品牌舵机。板子引出蓝牙接口,可以实现无线远程控制。


规格参数


  • 输出通道:32路(脉冲调制输出或TTL电平输出)
  • 舵机供电:根据实际使用舵机额定电压供电,典型 DC4.8V~6V
  • 逻辑供电:DC7.5V~15V或者USB供电
  • 驱动分辨率:1US,0.09度
  • 通信接口:USB/TTL串口接口
  • 波特率:2400、9600、38400、115200
  • 尺寸:54*71.5mm
  • 模块重量:2.3g



引脚说明


32路舵机控制器



1.16-31号舵机,共用同一电源,电流最大10A。其中G为GND,V为舵机电源,S为信号线。
2.0-15号舵机,共用同一电源,电流最大10A。其中G为GND,V为舵机电源,S为信号线。
3.主控MCU,ATMEGA8L-PU,工作频率14.7456M。
4.16-31号舵机电源输出,VS2接电源正极。
5.0-15号舵机电源输出,VS1接电源正极。
6.逻辑端供电输出,电压范围:7.5-15V,VIN为正,GND为负。
7.串口波特率,通过指拨开关设置,对应波特率如下:
ON ON 115200 OF OFF 9600
OFF ON 38400 OFF OFF 2400
8.ABCD 4个模拟/数字输入端子,可以设置为静止或者是锁存。
9.FT232RL通信芯片。
10.串口选择,可以使用USB转TTL做扩展使用,默认连接。
11.USB接口,发货清单包含配套的USB转MINI USB 数据线。
12.内部降压模块,提供5V电源给主控单元使用。
13.存储(扩展使用,目前无此功能)
14.蓝牙接口,可以与蓝牙串口模块相连,实现远程控制。
15.VS1与VS2短跳跳线,两个短接时VS1=VS2,这里只需要给一个电源即可;两个都断开时,VS1与VS2通过对应的接线端子接入电源。



应用示例


电路连接示意图

生成缩略图出错:文件可能丢失:


控制指令

单个舵机和舵机群运动命令

# <ch> P <pw> S <spd>... # <ch> P <pw> S <spd> T <time><cr>

<ch> :舵机通道号,0 – 31。

<pw> :脉冲宽度,单位微秒(us),500 – 2500。

<spd> :单通道的运动速度,单位us/秒。(可选)

<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>”指令,确定舵机位置后,才可以发送带有速度和时间控制的指令,否则会发生不可意料的动作。


参考资料





返回首页

更多建议和问题欢迎反馈至 YFRobot论坛

购买方式:YFRobot 电子工作室