六自由度机械臂的驱动

先做静态控制,所以小车底盘啊,轮子啥的先不要。

1 BOM清单

1.友善之臂 Nanopi2

作为上位机,安装ROS机器人操作系统

2.msp430

作为下位机,实现对舵机等硬件设备的控制

具体控制方案见下文
3.电源(5v)

为下位机供电,因为5v-3.3v的电源模块并不能驱动起来

4.舵机驱动板

16路模块 PWM/ 舵机驱动板

5.机械臂

六自由度机械臂

2 软件平台

msp430 LaunchPad 的Arduino开发平台
下载自官网
六自由度机械臂的驱动_第1张图片
初步使用可参考:http://bbs.eeworld.com.cn/thread-370559-1-1.html

3 机械臂的驱动

1)舵机与控制原理
舵机主要是由外 壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由控制器发出PWM(脉冲宽度调制)信号给舵机,经电路板上的IC处理后计算出转动方向, 再驱动无核心马达转动,透过减速齿轮将动力传至摆臂,同时由位置检测器(电位器)返回位置信号,判断是否已经到达设定位置,一
般舵机只能旋转180度。
舵机有3根线,棕色为地,红色为电源正,橙色为信号线,但不同牌子的舵机,线的颜色可能不同,请大家注意。
2)servo类介绍
servo类下有以下成员函数
attach()//连接舵机
write()//角度控制
writeMicroseconds()//
read()//读上一次舵机转动角度
attached()//
detach()//断开舵机连接
3)普通舵机有3根线:GND(黑)、VCC(红)、Signal(黄),一般情况下,我们建议为舵机单独供电,此处实验为了图方便,用msp430为舵机供电。
4) 下载以下例程(程序可以在IDE>File>Examples>Servo>Sweep中找到

// Sweep
// by BARRAGAN  
// This example code is in the public domain.


#include  
 //创建一个舵机控制对象
 //使用Servo类最多可以控制8个舵机 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
//该变量用于存储舵机角度位置
int pos = 0;    // variable to store the servo position 

void setup() 
{ 
//该舵机由单片机第九脚控制
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 


void loop() 
{ 
//从0~180度运动
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  
  // in steps of 1 degree 每次进步一度
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 指定舵机转向的角度
    delay(15);                       // waits 15ms for the servo to reach the position 等待15秒让舵机到达指定位置
  } 
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 指定舵机转向的角度
    delay(15);                       // waits 15ms for the servo to reach the position 等待15秒让舵机到达指定位置
  } 
} 

先驱动了一路舵机,六路待续…..

你可能感兴趣的:(msp430g2553)