关节角度控制(非通用)
- 由于微控制器的特性,以下用arduino烧录控制的例程仅适用于微控制器产品,微处理器不适用
单关节控制
arduino
writeAngle(int joint, float value, int speed);
功能:发送单关节角度
参数说明: 关节序号 = joint,取值范围 1-6; 指定角度值 = value,取值范围约-170°~ + 170° 指定速度 = speed, 取值范围 0~100;
返回值:无
#include <MycobotBasic.h>
#include <ParameterList.h>
MycobotBasic myCobot;
//定义一个Angles类型的变量angles,内容如下
Angles angles = { -0.0, -0.0, -0.0, -0.0, -0.0, -0.0 };
void setup() {
//打开通讯串口
myCobot.setup();
//链接atom
myCobot.powerOn();
//赋值angles为{ 0, 0, 0, 0, 0, 0 };
for(auto &val : angles)
val = 0.0;
//关节回到原点
myCobot.writeAngles(angles, 50);
delay(5000);
}
void loop() {
for(int i = 1; i < 7; i++) //依次设定关节正反转90°
{
//myCobot.writeAngle(i,angle,0-100);
myCobot.writeAngle(i, -90, 100); // set joint angle -90 degree
delay(4000);
myCobot.writeAngle(i, 90, 100); // set joint angle 90 degree
delay(4000);
myCobot.writeAngle(i, 0, 100); // set joint angle 0 degree
delay(4000);
}
}
多关节控制
arduino
writeAngles(Angles angles, int speed);
功能:关节角度同步执行,同时发送四个关节的角度给执行器 Angles 为库函数声明的定义类型,指定 angles 是容量大小为 4 个数据的容器,可理解为数组,赋值时可使用 for 循环赋值,也可单独赋值。
参数说明: Angles[0] = 具体角度,Angles[2] = 具体角度,以此类推取值范围 0 – 90(范围为定义,取值范围应和 writeAngle 相同) 单位 ° 运动速度 = speed,取值范围 0~100 单位 %
返回值:无
#include <MycobotBasic.h>
#include <ParameterList.h>
MycobotBasic myCobot;
//定义一个Angles类型的变量angles,内容如下
Angles angles = { -0.0, -0.0, -0.0, -0.0, -0.0, -0.0 };
void setup() {
//打开通讯串口
myCobot.setup();
//链接atom
myCobot.powerOn();
//赋值angles为{ 0, 0, 0, 0, 0, 0 };
for(auto &val : angles)
val = 0.0;
//关节回到原点
myCobot.writeAngles(angles, 50);
delay(5000);
}
void loop() {
for(int i = 1; i < 7; i++) //依次设定关节正反转90°
{
//myCobot.writeAngle(i,angle,0-100);
myCobot.writeAngle(i, -90, 100); // set joint angle -90 degree
delay(4000);
myCobot.writeAngle(i, 90, 100); // set joint angle 90 degree
delay(4000);
myCobot.writeAngle(i, 0, 100); // set joint angle 0 degree
delay(4000);
}
}