“(SKU:RB-04M003)RB-65PG舵機”的版本間的差異

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
?規(guī)格參數(shù)
?應(yīng)用例程
第16行: 第16行:
 
[[文件:jjjjj.jpg|500px|縮略圖|居中]]
 
[[文件:jjjjj.jpg|500px|縮略圖|居中]]
 
==應(yīng)用例程==
 
==應(yīng)用例程==
 +
:利用一個簡單的程序,從串口監(jiān)視器發(fā)送命令來控制兩個舵機。<br/>
 +
實驗代碼:
 +
<pre style='color:blue'>#include <Servo.h>
 +
 +
char buffer[10];
 +
Servo servo1;
 +
Servo servo2;
 +
 +
void setup()
 +
{
 +
  servo1.attach(5);
 +
  servo2.attach(6);
 +
  Serial.begin(9600);
 +
  Serial.flush();
 +
  servo1.write(90);
 +
  servo2.write(90);
 +
  Serial.println("STARTING...");
 +
}
 +
void loop()
 +
{
 +
  if(Serial.available() > 0)
 +
  {
 +
        int index = 0;
 +
        delay(100);
 +
  int numChar = Serial.available();
 +
        if(numChar>10)
 +
        {
 +
          numChar = 10;
 +
        }
 +
        while (numChar--)
 +
        {
 +
          buffer[index++] = Serial.read();
 +
        }
 +
        splitString(buffer);
 +
  }
 +
}
 +
void splitString(char* data)
 +
{
 +
  Serial.print("Data entered:");
 +
  Serial.println(data);
 +
  char* parameter;
 +
  parameter = strtok (data,",");
 +
  while ( parameter != NULL)
 +
  {
 +
    setServo(parameter);
 +
    parameter = strtok (NULL, ",");
 +
  }
 +
  for(int x=0;x<9;x++)
 +
  {
 +
    buffer[x]='\0';
 +
  }
 +
  Serial.flush();
 +
}
 +
 +
void setServo(char* data)
 +
{
 +
  if((data[0] == 'L') || (data[0] == 'l'))
 +
  {
 +
    int firstVal = strtol(data+1,NULL,10);
 +
    firstVal = constrain(firstVal,0,180);
 +
    servo1.write(firstVal);
 +
    Serial.print("Servo1 is set to: ");
 +
    Serial.println(firstVal);
 +
  }
 +
  if((data[0] == 'R') || (data[0] == 'r'))
 +
  {
 +
    int secondVal = strtol(data+1,NULL,10);
 +
    secondVal = constrain(secondVal,0,255);
 +
    servo2.write(secondVal);
 +
    Serial.print("Servo2 is set to: ");
 +
    Serial.println(secondVal);
 +
  }   
 +
}</pre>
 +
代碼效果:運行代碼,打開串口監(jiān)視器窗口,Arduino將重啟程序,舵機將會轉(zhuǎn)到中間位置。現(xiàn)在可以使用串口監(jiān)視器發(fā)送命令給Arduino,通過發(fā)送“L”字符控制左邊的舵機,接下來輸入0到180之間的數(shù)字表示轉(zhuǎn)動角度。右側(cè)舵機控制時通過發(fā)送一個字符“R”和一個數(shù)字實現(xiàn)。我們可以單獨給每一個舵機發(fā)送命令,也可以同時給兩個舵機發(fā)送命令,中間需要用空格或逗號隔開。命令形式如下:<br/>
 +
* 單獨控制左側(cè)舵機串口發(fā)送:L180
 +
* 單獨控制右側(cè)舵機串口發(fā)送:R77
 +
* 同時控制兩個舵機串口發(fā)送:L45 R135 或 L180,R90<br/>
  
 
==產(chǎn)品相關(guān)推薦==
 
==產(chǎn)品相關(guān)推薦==
 
購買地址:[http://gharee.com/goods-175.html RB-65PG舵機]<br/>
 
購買地址:[http://gharee.com/goods-175.html RB-65PG舵機]<br/>
 
舵機特性對比展示視頻網(wǎng)址:[http://v.youku.com/v_show/id_XMzEyNzQwMTY=.html 360度連續(xù)旋轉(zhuǎn)舵機與180度旋轉(zhuǎn)舵機]
 
舵機特性對比展示視頻網(wǎng)址:[http://v.youku.com/v_show/id_XMzEyNzQwMTY=.html 360度連續(xù)旋轉(zhuǎn)舵機與180度旋轉(zhuǎn)舵機]

2015年7月1日 (三) 21:22的版本

RB-04M003.jpg

目錄

產(chǎn)品概述

RB-65PG是奧松機器人推出的最新一代大扭矩大轉(zhuǎn)角范圍的機器人專用伺服舵機,其內(nèi)部采用的電機為直流有刷空心杯電機,內(nèi)部采用無鐵轉(zhuǎn)子,具有能量轉(zhuǎn)換效率高、激活制動響應(yīng)速度快、運行穩(wěn)定性可靠、自適應(yīng)能力強、電磁干擾少等優(yōu)點,與同等功率的鐵芯電機相比體積小、重量輕;舵機反饋電位器采用導(dǎo)電塑料電位器,其精度和耐磨程度大大優(yōu)于線饒電位器;電機控制集成電路(IC)采用數(shù)字芯片與功率開關(guān)組成H橋電路,電壓控制雙極性驅(qū)動方式具有反應(yīng)速度更快、無反應(yīng)區(qū)范圍小、定位精度高、抗干擾能力強兼容性好等優(yōu)勢,超越傳統(tǒng)舵機更適合機器人與航模領(lǐng)域廣泛應(yīng)用。

規(guī)格參數(shù)

  1. 重量大小:40g
  2. 尺寸大小:40.8mm X 20.1mm X 38mm
  3. 工作電壓:4.8V-7.2V
  4. 使用溫度:0℃-60℃
  5. 無負載速度:0.14秒/60度(4.8V);0.12秒/60度(6.0V)
  6. 扭矩大小:5.5Kg·cm(4.8V);6Kg·cm(6V);6.5Kg·cm(7.2V)
  7. 死區(qū)設(shè)定:10us
  8. 舵機控制:PWM信號,脈寬500us到2500us,周期20ms
  9. 旋轉(zhuǎn)角度:0到180度

使用方法

Jjjjj.jpg

應(yīng)用例程

:利用一個簡單的程序,從串口監(jiān)視器發(fā)送命令來控制兩個舵機。
實驗代碼:

#include <Servo.h>

char buffer[10];
Servo servo1;
Servo servo2;

void setup()
{
  servo1.attach(5);
  servo2.attach(6);
  Serial.begin(9600);
  Serial.flush();
  servo1.write(90);
  servo2.write(90);
  Serial.println("STARTING...");
}
void loop()
{
  if(Serial.available() > 0)
  {
        int index = 0;
        delay(100);
  int numChar = Serial.available();
        if(numChar>10)
        {
          numChar = 10;
        }
        while (numChar--)
        {
          buffer[index++] = Serial.read();
        }
        splitString(buffer);
  }
}
void splitString(char* data)
{
  Serial.print("Data entered:");
  Serial.println(data);
  char* parameter;
  parameter = strtok (data,",");
  while ( parameter != NULL)
  {
    setServo(parameter);
    parameter = strtok (NULL, ",");
  }
  for(int x=0;x<9;x++)
  {
    buffer[x]='\0';
  }
  Serial.flush();
}

void setServo(char* data)
{
  if((data[0] == 'L') || (data[0] == 'l'))
  {
    int firstVal = strtol(data+1,NULL,10);
    firstVal = constrain(firstVal,0,180);
    servo1.write(firstVal);
    Serial.print("Servo1 is set to: ");
    Serial.println(firstVal);
  }
  if((data[0] == 'R') || (data[0] == 'r'))
  {
    int secondVal = strtol(data+1,NULL,10);
    secondVal = constrain(secondVal,0,255);
    servo2.write(secondVal);
    Serial.print("Servo2 is set to: ");
    Serial.println(secondVal);
  }    
}

代碼效果:運行代碼,打開串口監(jiān)視器窗口,Arduino將重啟程序,舵機將會轉(zhuǎn)到中間位置?,F(xiàn)在可以使用串口監(jiān)視器發(fā)送命令給Arduino,通過發(fā)送“L”字符控制左邊的舵機,接下來輸入0到180之間的數(shù)字表示轉(zhuǎn)動角度。右側(cè)舵機控制時通過發(fā)送一個字符“R”和一個數(shù)字實現(xiàn)。我們可以單獨給每一個舵機發(fā)送命令,也可以同時給兩個舵機發(fā)送命令,中間需要用空格或逗號隔開。命令形式如下:

  • 單獨控制左側(cè)舵機串口發(fā)送:L180
  • 單獨控制右側(cè)舵機串口發(fā)送:R77
  • 同時控制兩個舵機串口發(fā)送:L45 R135 或 L180,R90

產(chǎn)品相關(guān)推薦

購買地址:RB-65PG舵機
舵機特性對比展示視頻網(wǎng)址:360度連續(xù)旋轉(zhuǎn)舵機與180度旋轉(zhuǎn)舵機