基于Arduino的八轴机械臂代码
本帖最后由 YangLeo118 于 2016-5-10 14:37 编辑求助!
新人玩了一段时间的Arduino 小车以后,现在对机械臂十分着迷。
今天收到以后看了下卖家给了一段测试代码(连注释都没的),懵逼中~~。
尝试写了一段程序,发现完全是Bullshit!!!
求大神赐予我力量~~~ 如果有懂的 麻烦告诉一下编程思想和如何实现。
我想的是,先写一个能写字的程序,比如我发送某个字母或者汉字,是否有可能让机械臂在纸上写出来。
头晕中~好像叙述得不是很清楚! 麻烦了!
我也想知道,哈哈 正常,一句一句读就行,费点时间而已 坐等大神解答 更正一下 应该是8轴的 我自己写了个鸡腿控制六轴的 冷大喵 发表于 2016-5-10 17:33
我自己写了个鸡腿控制六轴的
能够给我发下 学习学习吗? YangLeo118 发表于 2016-5-10 23:59
能够给我发下 学习学习吗?
#include <Servo.h>
#include <math.h>
#include <stdlib.h>
#include "Wire.h"
#include "WiiChuck.h"
Servo servo1;// create servo object to control a servo
Servo servo2;
Servo servo3;
Servo servo4; // a maximum of eight servo objects can be created
Servo servo5;
Servo servo6;
WiiChuck wii = WiiChuck();
int pos1,pos2,pos3,pos4,pos5,pos6,x,y,z,c; // variable to store the servo position
void setup()
{
// attaches the servo on pin 9 to the servo object
servo1.attach(8);
servo2.attach(9);
servo3.attach(10);
servo4.attach(11);
servo5.attach(12);
servo6.attach(13);
pos1 = 60;
pos2 = 50;
pos3 = 100;
pos4 =100;
pos5 = 90;
pos6 = 90;
servo1.write(pos1);
servo2.write(pos2);
servo3.write(pos3);
servo4.write(pos4);
servo5.write(pos5);
servo6.write(pos6);
wii.initWithPower();
}
void loop()
{
if(true == wii.read() )
{
//读取手柄值
x=wii.getJoyAxisX();
y=wii.getJoyAxisY();
c=wii.getButtonC();
z=wii.getButtonZ();
}
if(x==255&& y>120 && y<140&& c == 0 && z==1)//一号舵机
{ pos1 = pos1+10;
servo1.write(pos1);
delay (40);
if(pos1>160)
{
pos1=160;
servo1.write(pos1);
}
}
else if(x==255 && y>120 && y<140 && z==0 && c==1 )
{ pos1 = pos1-10;
servo1.write(pos1);
delay(40);
if(pos1<20)
{
pos1=20;
servo1.write(pos1);
}
}
else if(x>220&& y==0&& c == 0 && z==1) //2号舵机
{
pos2 = pos2+10;
servo2.write(pos2);
delay (40);
if(pos2>160)
{
pos2=160;
servo2.write(pos2);
}
}
else if(x>220 && y==0&& z==0 && c==1 )
{
pos2 = pos2-10;
servo2.write(pos2);
delay(40);
if(pos2<90)
{
pos2=90;
servo2.write(pos2);
}
}
else if(x>110&& x<140&& y==0&& c == 0 && z==1) //3号舵机
{
pos3 = pos3+10;
servo3.write(pos3);
delay (40);
if(pos3>160)
{
pos3=160;
servo3.write(pos3);
}
}
else if(x>110&& x<140&& y==0&& z==0 && c==1 )
{
pos3 = pos3-10;
servo3.write(pos3);
delay(40);
if(pos3<20)
{
pos3=20;
servo3.write(pos3);
}
}
else if(x==0&& y==0&& c == 0 && z==1) //4号舵机
{
pos4 = pos4+10;
servo4.write(pos4);
delay (40);
if(pos4>160)
{
pos4=160;
servo4.write(pos4);
}
}
else if(x==0 && y==0&& z==0 && c==1 )
{
pos4 = pos4-10;
servo4.write(pos4);
delay(40);
if(pos4<20)
{
pos4=20;
servo4.write(pos4);
}
}
else if(x==0&& y==128&& c == 0 && z==1) //5号舵机
{
servo5.write(pos5);
pos5 = pos5+10;
delay (40);
if(pos5>170)
{
pos5=160;
}
}
else if(x==0 && y==128&& z==0 && c==1 )
{
servo5.write(pos5);
pos5 = pos5-10;
delay(40);
if(pos5<20)
{
pos5=30;
}
}
else if(x==0 && y>240&& c == 0 && z==1) //6号舵机
{
servo6.write(pos6);
pos6 = pos6+10;
delay (40);
if(pos6>120)
{
pos6=119;
}
}
else if(x==0 && y>240&& z==0 && c==1 )
{
servo6.write(pos6);
pos6 = pos6-10;
delay(40);
if(pos6<45)
{
pos6=41;
}
}
}
只做到了拿鸡腿控制,超级简单的语句,, 什么味的鸡腿?
冷大喵 发表于 2016-5-11 13:37
#include
#include
#include
非常感谢 我这边也有一个 通过串口输入 控制机械臂的代码 YangLeo118 发表于 2016-5-12 19:51
非常感谢 我这边也有一个 通过串口输入 控制机械臂的代码
你发下串口控制的呗。我现在不太会用串口控制 冷大喵 发表于 2016-5-14 16:06
你发下串口控制的呗。我现在不太会用串口控制
要等一下下 还没有 写完 ~目前只做到 控制Auto 和 Stop 没有写到 随意控制不同舵机的角度 YangLeo118 发表于 2016-5-15 05:29
要等一下下 还没有 写完 ~目前只做到 控制Auto 和 Stop 没有写到 随意控制不同舵机的角度 ...
请问写完了吗
页:
[1]