晒一晒自己DIY的桌面码垛机-Arduino中文社区 - Powered by Discuz! Archiver

夏夜繁星 发表于 2015-8-29 19:53

jhw218 发表于 2015-8-29 15:18
很好的东西,我也想做一个,楼主是否可以把Solidworks文档发给我,学习学习,我的邮箱是,谢谢! ...

已发(有部分轴承没画,装配体应该可以帮你了解码垛机的运动机构,然后你就能自己设计自己需要的尺寸了。友情提示,最好不要让手臂部分太长或者太重,除非你用的大扭矩的舵机。。。)

夏夜繁星 发表于 2015-8-29 19:56

lven 发表于 2015-8-29 18:27
我也想做一个,楼主是否可以把Solidworks文档发给我,我的邮箱是,谢谢!

发了:victory:

jhw218 发表于 2015-8-29 21:03

多谢楼主分享!!!

jhw218 发表于 2015-8-29 21:34

夏夜繁星 发表于 2015-8-29 19:56
发了

楼主用的控制是哪个型号的?

夏夜繁星 发表于 2015-8-29 23:31

jhw218 发表于 2015-8-29 21:34
楼主用的控制是哪个型号的?

ps2无线手柄,协议极客工坊上有

夏夜繁星 发表于 2015-8-30 10:18

重新写了注释,希望有帮助吧
#include <PS2X_lib.h>//for v1.6
#include <Servo.h>
PS2X ps2x; // create PS2 Controller Class
Servo myservo;//创建伺服器对象
Servo myservo1;
Servo myservo2;
Servo myservo3;
int serover =3; //定义舵机信号线接口,夹持器
int serover1=4;//小臂
int serover2=5;//大臂
int serover3=6;//基座
int pos;//输入夹持器的角度
int pos1;//输入小臂的角度
int pos2;//输入大臂的角度
int pos3;//输入基座的角度
float x;//定义数学方程变量,小臂末端横坐标
float y;小臂末端纵坐标
float posa;
float A;
float B;
float C;
float D;
float pi=acos(-1.0); //求出π,后面弧度转角度要用
int error = 0;
byte type = 0;
byte vibrate = 0;
byte a = 0;
void setup(){
Serial.begin(115200);//设置通信波特率,此处若改为9600则程序无法正常运行
myservo.attach(serover);myservo连接到serover引脚,即D3引脚
myservo1.attach(serover1);
myservo2.attach(serover2);
myservo3.attach(serover3);
pos=72;//设置码垛机初始位置
x=150;
y=0;
pos3=90;
servo_write();

error = ps2x.config_gamepad(13,11,12,10, false, false);   //setup pins and settings:GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error

if(error == 0){

   Serial.println("");
}

else if(error == 1)
   Serial.println("");

else if(error == 2)
   Serial.println("");
   Serial.println("");

   //Serial.print(ps2x.Analog(1), HEX);

   type = ps2x.readType();
   switch(type) {
       case 0:
      Serial.println("0");
       break;
       case 1:
      Serial.println("1");
       break;
       case 2:
         Serial.println("2");
       break;
   }
}
void loop(){

if(error == 1) //skip loop if no controller found
return;

if(type == 2){ //Guitar Hero Controller

   ps2x.read_gamepad();          //read controller

   return;
}

else { //DualShock Controller

    ps2x.read_gamepad(false, vibrate);         
      if(ps2x.Analog(PSS_LY)<127)            
    {
            y=y-2;         //L--UP    可根据自己需要改变变量的增量,增量越大,速度越快
         servo_write();
   }

       if(ps2x.Analog(PSS_LY)>128)
    {
            y=y+2;         //L--DOWN
            servo_write();
    }
   if(ps2x.Analog(PSS_LX)<127)
    {
            x=x-2;         //L--LEFT
            servo_write();
    }
   if(ps2x.Analog(PSS_LX)>128)
    {
            x=x+2;       //L--RIGHT
            servo_write();   
    }
   if((ps2x.Analog(PSS_LY)==127) && (ps2x.Analog(PSS_LX)==128))
    {
      //b_stop();
    }

   if(ps2x.Analog(PSS_RY)<127)
    {
         pos++;         //R--UP
         servo_write();
    }
      if(ps2x.Analog(PSS_RY)>128)
    {
          pos--;         //R--DOWN
          servo_write();
    }
   if(ps2x.Analog(PSS_RX)<127)
    {
          pos3++;         //R--LEFT
          servo_write();
    }
   if(ps2x.Analog(PSS_RX)>128)
    {
          pos3--;          //R--RIGHT
          servo_write();
    }                                          
}
}
void servo_write()//自己定义角度输入函数
{
   A=sqrt(x*x+y*y);//数学方程
   B=atan(y/x);
   C=acos(A/300);
   D=acos(1.0-A*A/45000);
   D=D/pi*180;//弧度转角度,write()写进去的是角度值
   posa=B+C;
   pos1=posa/pi*180;
   pos2=180-pos1-D;
    myservo.write(pos);//写入各舵机角度
    myservo1.write(pos1);
    myservo2.write(pos2);
    myservo3.write(pos3);
    Serial.print("pos=");//显示pos的值
    Serial.println(pos);
    Serial.print("pos1=");//显示pos1的值
    Serial.println(pos1);
    Serial.print("pos2=");//显示pos2的值
    Serial.println(pos2);
    Serial.print("pos3=");//显示pos3的值
    Serial.println(pos3);
   delay(8);//改变delay()内的数字可以改变码垛机的运动速度
}

lven 发表于 2015-8-30 14:15

谢谢,已经收到。多谢共享。

sunshine083 发表于 2015-8-30 17:23

不错,赞一个

朱飞碟 发表于 2015-8-30 19:19

同求SolidWorks文件学习^-^   邮箱 zhupj1995@163.com先谢过楼主啦

夏夜繁星 发表于 2015-8-30 21:56

jhw218 发表于 2015-8-29 15:18
很好的东西,我也想做一个,楼主是否可以把Solidworks文档发给我,学习学习,我的邮箱是,谢谢! ...

:victory:已发
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: 晒一晒自己DIY的桌面码垛机