“(SKU:RB-04M003)RB-65PG舵機”的版本間的差異
來自ALSROBOT WiKi
(→?規(guī)格參數(shù)) |
(→?應用例程) |
||
第16行: | 第16行: | ||
[[文件:jjjjj.jpg|500px|縮略圖|居中]] | [[文件:jjjjj.jpg|500px|縮略圖|居中]] | ||
==應用例程== | ==應用例程== | ||
+ | :利用一個簡單的程序,從串口監(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將重啟程序,舵機將會轉到中間位置。現(xiàn)在可以使用串口監(jiān)視器發(fā)送命令給Arduino,通過發(fā)送“L”字符控制左邊的舵機,接下來輸入0到180之間的數(shù)字表示轉動角度。右側舵機控制時通過發(fā)送一個字符“R”和一個數(shù)字實現(xiàn)。我們可以單獨給每一個舵機發(fā)送命令,也可以同時給兩個舵機發(fā)送命令,中間需要用空格或逗號隔開。命令形式如下:<br/> | ||
+ | * 單獨控制左側舵機串口發(fā)送:L180 | ||
+ | * 單獨控制右側舵機串口發(fā)送:R77 | ||
+ | * 同時控制兩個舵機串口發(fā)送:L45 R135 或 L180,R90<br/> | ||
==產(chǎn)品相關推薦== | ==產(chǎ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ù)旋轉舵機與180度旋轉舵機] | 舵機特性對比展示視頻網(wǎng)址:[http://v.youku.com/v_show/id_XMzEyNzQwMTY=.html 360度連續(xù)旋轉舵機與180度旋轉舵機] |
2015年7月1日 (三) 21:22的版本
目錄 |
產(chǎn)品概述
RB-65PG是奧松機器人推出的最新一代大扭矩大轉角范圍的機器人專用伺服舵機,其內部采用的電機為直流有刷空心杯電機,內部采用無鐵轉子,具有能量轉換效率高、激活制動響應速度快、運行穩(wěn)定性可靠、自適應能力強、電磁干擾少等優(yōu)點,與同等功率的鐵芯電機相比體積小、重量輕;舵機反饋電位器采用導電塑料電位器,其精度和耐磨程度大大優(yōu)于線饒電位器;電機控制集成電路(IC)采用數(shù)字芯片與功率開關組成H橋電路,電壓控制雙極性驅動方式具有反應速度更快、無反應區(qū)范圍小、定位精度高、抗干擾能力強兼容性好等優(yōu)勢,超越傳統(tǒng)舵機更適合機器人與航模領域廣泛應用。
規(guī)格參數(shù)
- 重量大小:40g
- 尺寸大小:40.8mm X 20.1mm X 38mm
- 工作電壓:4.8V-7.2V
- 使用溫度:0℃-60℃
- 無負載速度:0.14秒/60度(4.8V);0.12秒/60度(6.0V)
- 扭矩大小:5.5Kg·cm(4.8V);6Kg·cm(6V);6.5Kg·cm(7.2V)
- 死區(qū)設定:10us
- 舵機控制:PWM信號,脈寬500us到2500us,周期20ms
- 旋轉角度:0到180度
使用方法
應用例程
:利用一個簡單的程序,從串口監(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將重啟程序,舵機將會轉到中間位置?,F(xiàn)在可以使用串口監(jiān)視器發(fā)送命令給Arduino,通過發(fā)送“L”字符控制左邊的舵機,接下來輸入0到180之間的數(shù)字表示轉動角度。右側舵機控制時通過發(fā)送一個字符“R”和一個數(shù)字實現(xiàn)。我們可以單獨給每一個舵機發(fā)送命令,也可以同時給兩個舵機發(fā)送命令,中間需要用空格或逗號隔開。命令形式如下:
- 單獨控制左側舵機串口發(fā)送:L180
- 單獨控制右側舵機串口發(fā)送:R77
- 同時控制兩個舵機串口發(fā)送:L45 R135 或 L180,R90
產(chǎn)品相關推薦
購買地址:RB-65PG舵機
舵機特性對比展示視頻網(wǎng)址:360度連續(xù)旋轉舵機與180度旋轉舵機