Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.70 KB | None | 0 0
  1. #define ForwardA -40
  2. #define ForwardC -40
  3. #define rotate90deg 430
  4. #define obstacle 15
  5.  
  6.  
  7. byte dist;
  8.  
  9. task main(){
  10.  
  11.      SetSensorLowspeed(IN_1);
  12.      
  13.  
  14.  
  15.      OnFwd(OUT_A,ForwardA);
  16.      OnFwd(OUT_C,ForwardC+5);
  17.  
  18.       while(1)
  19.       {
  20.               dist = SensorUS(IN_1);
  21.               ClearScreen();
  22.               TextOut(0,0,"Distance");
  23.               NumOut(0,10,dist);
  24.               if(dist < obstacle)
  25.               {
  26.                     break;
  27.               }
  28.               else Wait(10);
  29.       }
  30.  
  31.       Off(OUT_AC);
  32.       RotateMotor(OUT_A,70,rotate90deg/2);
  33.       RotateMotor(OUT_C,70,-rotate90deg/2);
  34.      
  35.       RotateMotor(OUT_B,70,-90);
  36.  
  37.  
  38.       Wait(500);
  39.       ResetTachoCount(OUT_AC);
  40.       OnFwd(OUT_A,ForwardA);
  41.       OnFwd(OUT_C,ForwardC+5);
  42.  
  43.       while(1)
  44.       {
  45.               dist = SensorUS(IN_1);
  46.               ClearScreen();
  47.               TextOut(0,0,"Distance");
  48.               NumOut(0,10,dist);
  49.               if(dist > obstacle + 10) //napotkal przeszkode
  50.               {
  51.                     break;
  52.               }
  53.               else Wait(10);
  54.       }
  55.      
  56.       Wait(1000);
  57.       long width1 =  MotorTachoCount (OUT_C);
  58.       long width2 =  MotorTachoCount (OUT_A);
  59.       long width =  (width1+width2)/2;
  60.       ResetTachoCount(OUT_AC);
  61.       Off(OUT_AC);
  62.  
  63.       RotateMotor(OUT_C,70,rotate90deg/2);
  64.       RotateMotor(OUT_A,70,-rotate90deg/2);
  65.  
  66.  
  67.  
  68.       OnFwd(OUT_A,ForwardA);
  69.       OnFwd(OUT_C,ForwardC+5);
  70.       Wait(4000);
  71.  
  72.       while(1)
  73.       {
  74.               dist = SensorUS(IN_1);
  75.               ClearScreen();
  76.               TextOut(0,0,"Distance");
  77.               NumOut(0,10,dist);
  78.               if(dist > obstacle) // koniec przeszkody
  79.               {
  80.                     break;
  81.               }
  82.               else Wait(10);
  83.       }
  84.      
  85.  
  86.      
  87.       Wait(1500);
  88.       Off(OUT_AC);
  89.      
  90.  
  91.       RotateMotor(OUT_C,70,rotate90deg/2);
  92.       RotateMotor(OUT_A,70,-rotate90deg/2);
  93.  
  94.       Wait(1000);
  95.      
  96.  
  97.       OnFwd(OUT_A,ForwardA);
  98.       OnFwd(OUT_C,ForwardC+5);
  99.       RotateMotor(OUT_B,70,90);
  100.      
  101.             while(1) {
  102.       long wwidth1 =  MotorTachoCount (OUT_C);
  103.       long wwidth2 =  MotorTachoCount (OUT_A);
  104.       long wwidth =  (wwidth1+wwidth2)/2;
  105.             if (wwidth>width)  break;
  106.       }
  107.      
  108.       RotateMotor(OUT_A,70,rotate90deg/2);
  109.       RotateMotor(OUT_C,70,-rotate90deg/2);
  110.      
  111.      
  112.      
  113.      
  114.  
  115.  
  116.  
  117.  
  118.     /* while(1) {
  119.       RotateMotor   (   OUT_B,70,90);
  120.       Wait(1000);
  121.       RotateMotor   (   OUT_B,70,-90);
  122.       Wait(1000);
  123.       RotateMotor   (   OUT_B,70,-90);
  124.       Wait(1000);
  125.       RotateMotor   (   OUT_B,70,90);
  126.       Wait(1000);
  127.                     }   */
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement