Advertisement
KRITSADA

POP-7 Machanum Wheel Gripper and RC Remote Control

Aug 7th, 2019
1,144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <pop7.h>   // POP-7 Board
  2. int Count = 0;
  3. void setup() {
  4.   OK();
  5.   Serial.begin(115200);
  6.   pinMode(A0,INPUT);
  7.   pinMode(A1,INPUT);
  8.   pinMode(A2,INPUT);
  9.   pinMode(A3,INPUT);
  10.   servo(2,170);
  11. }
  12.  
  13. void loop() {
  14.   int Turning_Wheel = pulseIn(A0, HIGH);
  15.   int Throttle_Trigger = pulseIn(A1, HIGH);
  16.   int servo1 = pulseIn(A2, HIGH);
  17.   int servo2 = pulseIn(A3, HIGH);
  18.  
  19.   int Throttle = 0+((Throttle_Trigger - 1500)/4); //หาค่าเฉลี่ยสำหรับตัวควบคุมเดินหน้า-ถอยหลัง
  20.   int Turning  = 0+((Turning_Wheel - 1500)/4);    //หาค่าเฉลี่ยตัวหมุนเลี้ยวซ้าย-ขวา
  21.   int SERVO1   = 80 + ((servo1 - 1000)/10);       //หาค่าเฉลี่ยเซอร์โวสำหรับยกขึ้น-ลง
  22.  
  23.   Throttle = Throttle * -1;
  24.  
  25.   if(Throttle > 100){ Throttle = 100; }           //กำหนดให้ค่าควบคุมเดินหน้า-ถอยหลังอยู่ระหว่าง -100 ถึง 100
  26.   else if(Throttle < -100){ Throttle = -100; }
  27.  
  28.   if(Turning > 100){ Turning = 100; }              //กำหนดให้ค่าควบคุมเลี้ยวซ้าย-ขวาอยู่ระหว่าง -100 ถึง 100
  29.   else if(Turning < -100){Turning = -100;}
  30.  
  31.   if(SERVO1 < 80){SERVO1 = 80;}                    //กำหนดให้ตัวยกมีองศาระหว่าง 80 - 160 องศา
  32.   if(SERVO1 >160){SERVO1 = 160;}
  33.  
  34.   servo(1,SERVO1); //ตัวยกขึ้น-ลง
  35.  
  36. //  Serial.print(A);Serial.print("\t");
  37. //  Serial.print(B);Serial.print("\t");
  38. //  Serial.print(C);Serial.print("\t");
  39. //  Serial.print(D);Serial.print("\t");
  40. //  Serial.print(E);Serial.print("\t");
  41. //  Serial.print(servo2);Serial.print("\t");
  42. //  Serial.print(F);Serial.println("\t");
  43.  
  44.   if((Turning_Wheel  > 1400 && Turning_Wheel < 1600) && (Throttle_Trigger  > 1400 && Throttle_Trigger < 1600) ){
  45.      motor(1,0);motor(2,0);motor(3,0);motor(4,0);       //STOP    
  46.   }
  47.   else if(Throttle_Trigger  < 1400 || Throttle_Trigger > 1600){
  48.      motor(1,Throttle);motor(2,Throttle);motor(3,Throttle);motor(4,Throttle);  // FORWARD AND BACK  
  49.   }
  50.   else if(Turning_Wheel  < 1400  ){
  51.      motor(1,Turning);motor(2,Turning);motor(3,Turning*-1);motor(4,Turning*-1); //SPIN LEFT    
  52.   }
  53.   else if(Turning_Wheel  > 1600 ){
  54.      motor(1,Turning);motor(2,Turning);motor(3,Turning*-1);motor(4,Turning*-1); //SPIN RIGHT      
  55.   }
  56.   else if(Turning_Wheel  < 1400 &&  Throttle_Trigger  < 1400 ){
  57.      motor(1,Throttle-40);motor(2,Throttle-40);motor(3,Throttle);motor(4,Throttle); //TURN LEFT      
  58.   }
  59.   else if(Turning_Wheel  > 1600 &&  Throttle_Trigger  < 1400 ){
  60.      motor(1,Throttle);motor(2,Throttle);motor(3,Throttle-40);motor(4,Throttle-40); //TURN LEFT        
  61.   }
  62.  
  63.   if(servo2 > 1500 ){   //ควบคุมเซอร์โวสำหรับหนีบ
  64.     Count = Count+1;
  65.     delay(200);
  66.     if(  Count == 1){
  67.       servo(2,69);
  68.     }
  69.     else if(Count > 1){
  70.       servo(2,170);
  71.       Count = 0;
  72.     }
  73.   }
  74.  
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement