4轴码垛机械手全3d版
本帖最后由 弘毅 于 2016-4-9 23:18 编辑码垛机械手全3d版
使用3d打印机做的码垛机器人。用ps2舵杆控制。操作不是很方便,或是我的操作水平太差。
usb供电。使用nano板子。
sg90舵机X4
这一版提高了3d的数量,颜色也统一了
没有教程?就一个淘宝链接? 广告要被举报咧 darkorigin 发表于 2016-4-9 08:09 static/image/common/back.gif
没有教程?就一个淘宝链接? 广告要被举报咧
这就是广告帖;P 广告帖广告帖广告帖广告帖广告帖广告帖 广告地址。。清理了。。
D5a轴水平旋转
D6b轴主臂
D9c轴升降轴
D10d轴机械手
A0左x轴
A1左y轴
A2右x轴
A3右Y轴
*/
int v_a=100;
int v_b=100;
int v_c=100;
int v_d=100;
int f19=4;//消除抖动值。值越大越迟钝
int servopin;
int servopin_a=5;//定义数字接口5连接伺服舵机信号线
int servopin_b=6;//定义数字接口6 连接伺服舵机信号线
int servopin_c=9;//定义数字接口9 连接伺服舵机信号线
int servopin_d=10;//定义数字接口10 连接伺服舵机信号线
int in_wlx=0;//定义模拟接口0
int in_wly=1;//定义模拟接口1
int in_wrx=2;//定义模拟接口2
int in_wry=3;//定义模拟接口3
//+++++++++++++++++++++++++++++++++++++++++++++++++++
int myangle;//定义角度变量
int pulsewidth;//定义脉宽变量
int val;
void servopulse(int servopin,int myangle)//定义一个脉冲函数
{
for(int i=0;i<=5;i++) //给予舵机足够的时间让它转到指定角度
{
pulsewidth=(myangle*11)+500;//将角度转化为500-2480 的脉宽值
digitalWrite(servopin,HIGH);//将舵机接口电平至高
delayMicroseconds(pulsewidth);//延时脉宽值的微秒数
digitalWrite(servopin,LOW);//将舵机接口电平至低
delay(20-pulsewidth/1000);
}
}
void setup()
{
pinMode( servopin_a,OUTPUT);//设定舵机接口为输出接口
pinMode( servopin_b,OUTPUT);//设定舵机接口为输出接口
pinMode( servopin_c,OUTPUT);//设定舵机接口为输出接口
pinMode( servopin_d,OUTPUT);//设定舵机接口为输出接口
Serial.begin(9600);//连接到串行端口,波特率为9600
Serial.println("servo=o_seral_simple ready" ) ;
}
void loop()//将0 到9 的数转化为0 到180 角度,并让LED 闪烁相应数的次数
{
val=analogRead(in_wlx);// 读取传感器的模拟值并赋值给val
Serial.print(val ) ;
Serial.print("," ) ;
Serial.print(v_a ) ;
Serial.println("A" ) ;
if(abs(val-v_a)>f19){
v_a=val;
Serial.print(val ) ;
Serial.print("," ) ;
Serial.print(v_a ) ;
Serial.println("A" ) ;
val=map(val,0,1023,0,180);
servopin=servopin_a;
servopulse(servopin,val);//引用脉冲函数
}
val=analogRead(in_wly);// 读取传感器的模拟值并赋值给val
if(abs(val-v_b)>f19){
v_b=val;
val=map(val,0,1023,60,160);
servopin=servopin_b;
servopulse(servopin,val);//引用脉冲函数
Serial.print(val ) ;
Serial.print("," ) ;
Serial.print(v_b ) ;
Serial.println("B" ) ;
}
val=analogRead(in_wrx);// 读取传感器的模拟值并赋值给val
if(abs(val-v_c)>f19){
v_c=val;
val=map(val,0,1023,40,150);
servopin=servopin_c;
servopulse(servopin,val);//引用脉冲函数
Serial.print(val ) ;
Serial.print("," ) ;
Serial.print(v_c ) ;
Serial.println("C" ) ;
}
val=analogRead(in_wry);// 读取传感器的模拟值并赋值给val
if(abs(val-v_d)>f19){
v_d=val;
val=map(val,0,1023,60,180);
servopin=servopin_d;
servopulse(servopin,val);//引用脉冲函数
Serial.print(val ) ;
Serial.print("," ) ;
Serial.print(v_d ) ;
Serial.println("D" ) ;
}
}
页:
[1]