Advertisement
KRITSADA

IPST-SE JOY-PSX Control Motor and Gripper

Oct 21st, 2016
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.86 KB | None | 0 0
  1. #include <ipst.h> // IPST-SE Board
  2. #include <PS2X_lib.h>
  3. #define PS2_DAT  16  
  4. #define PS2_CMD  17
  5. #define PS2_SEL  18
  6. #define PS2_CLK  19
  7. int error;
  8. int x,a=85,b=0;
  9. PS2X psx;
  10. void setup(){
  11.   pinMode(16,INPUT_PULLUP);
  12.   pinMode(17,INPUT_PULLUP);
  13.   pinMode(18,INPUT_PULLUP);
  14.   pinMode(19,INPUT_PULLUP);
  15.   setTextSize(2);glcdMode(1);
  16.   glcd(0,0,"OK->Bluetooth");
  17.   glcd(1,0,"SW1->JOY PSX");
  18.   while(1){
  19.     if(sw1()){joy();}
  20.     if(sw_OK()){blue();}
  21.   }
  22. }
  23. void loop(){}
  24. void blue(){
  25.   glcdClear();
  26.   setTextSize(3);glcdMode(1);
  27.   setTextColor(GLCD_BLUE);
  28.   glcd(1,0,"Bluetooth");
  29.   pinMode(2,INPUT_PULLUP);
  30.   while(!sw1()){
  31.     if (uart1_available()) {
  32.        x=uart1_getkey();
  33.       if(x==0x38){fd(100);}
  34.       else if(x==0x32){bk(100);}
  35.       else if(x==0x34){sl(100);}
  36.       else if(x==0x36){sr(100);}
  37.       else {ao();}
  38.     }
  39.   }
  40. }
  41. void joy(){
  42.   glcdClear();
  43.   setTextSize(3);glcdMode(1);
  44.   setTextColor(GLCD_YELLOW);
  45.   glcd(1,0,"JOY PSX");
  46.    while(1){
  47.     if (!psx.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, false, false)){
  48.       setTextColor(GLCD_RED);setTextSize(2);
  49.       glcd(3,0,"Connected ");
  50.       break;
  51.     }
  52.    }
  53.    while(!sw_OK()){
  54.     psx.read_gamepad(0,0);    // Read PSX
  55.     if(psx.Button(PSB_PAD_UP)){fd(100);}  
  56.     else if(psx.Button(PSB_PAD_DOWN)){bk(100);}
  57.     else if(psx.Button(PSB_PAD_LEFT)){sl(100);}
  58.     else if(psx.Button(PSB_PAD_RIGHT)){sr(100);}
  59.     else if(psx.Button(PSB_L1)){keep();delay(1000);}
  60.     else if(psx.Button(PSB_L2)){push();delay(1000);}
  61.     else if(psx.Button(PSB_TRIANGLE)){sPush();}
  62.     else if(psx.Button(PSB_CROSS)){sPull();}
  63.     else if(psx.Button(PSB_SQUARE)){sKeep();}
  64.     else if(psx.Button(PSB_CIRCLE)){sRel();}
  65.     else{ao();}
  66.   }
  67. }
  68. void sHome(){
  69.   servo(0,85);a=85;servo(1,0);b=0;
  70.   delay(1000);
  71.  // servo(0,-1);servo(1,-1);
  72. }
  73. void keep(){
  74.   servo(0,150);delay(300);
  75.   servo(1,150);b=150;delay(300);
  76.   servo(0,85);a=85;delay(300);
  77.  // servo(0,-1);servo(1,-1);
  78. }
  79. void push(){
  80.   servo(0,150);delay(300);
  81.   servo(1,60);delay(300);
  82.   servo(0,85);a=85;delay(300);
  83.   servo(1,0);b=0;delay(300);
  84.   //servo(0,-1);servo(1,-1);
  85. }
  86. void sPush(){
  87.   if(a>85){a--;servo(0,a);delay(10);}
  88. }
  89. void sPull(){
  90.   if(a<150){a++;servo(0,a);delay(10);}
  91. }
  92. void sKeep(){
  93.   if(b<150){b++;servo(1,b);delay(10);}
  94. }
  95. void sRel(){
  96.   if(b>0){b--;servo(1,b);delay(10);}
  97. }
  98.  
  99.  
  100. /*
  101. ยก 85 //
  102. วาง 150
  103. คีบ 150
  104. กางสุด 0
  105. กางกว้าง 60
  106.   PSB_SELECT      0x0001
  107.   PSB_L3          0x0002
  108.   PSB_R3          0x0004
  109.   PSB_START       0x0008
  110.   PSB_PAD_UP      0x0010
  111.   PSB_PAD_RIGHT   0x0020
  112.   PSB_PAD_DOWN    0x0040
  113.   PSB_PAD_LEFT    0x0080
  114.   PSB_L2          0x0100
  115.   PSB_R2          0x0200
  116.   PSB_L1          0x0400
  117.   PSB_R1          0x0800
  118.   PSB_TRIANGLE    0x1000
  119.   PSB_CIRCLE      0x2000
  120.   PSB_CROSS       0x4000
  121.   PSB_SQUARE      0x8000
  122.  
  123.  
  124. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement