Facebook
From Funky Pheasant, 4 Years ago, written in C#.
Embed
Download Paste or View Raw
Hits: 153
  1. using Lego.Ev3.Core;
  2. using Lego.Ev3.Desktop;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9.  
  10. namespace ConsoleApp2
  11. {
  12.     class Program
  13.     {
  14.         static int kubicaCounter = 0;
  15.         public static void Main(string[] args)
  16.         {
  17.             MainAsync().GetAwaiter().GetResult();
  18.         }
  19.         static async Task MainAsync()
  20.         {
  21.             Brick brick = new Brick(new BluetoothCommunication("COM8"));
  22.             await brick.ConnectAsync();
  23.             while (true)
  24.             {
  25.                 var value = brick.Ports[InputPort.Three].RawValue;
  26.                 Console.WriteLine(value);
  27.                 if ( value < 10)
  28.                 {
  29.                     Console.WriteLine("Black");
  30.                     kubicaCounter++;
  31.                     if (kubicaCounter >6)
  32.                     {
  33.                         kubicaCounter = 0;
  34.                         await KubicaMode(brick);
  35.                         Console.WriteLine("eeeeeeee");
  36.  
  37.                     }
  38.                 }
  39.                 else if (value > 75 && value < 101)
  40.                 {
  41.                     Console.WriteLine("Red");
  42.                     await TurnRight(brick);
  43.                     if (value > 95)
  44.                         await TurnRightStronger(brick);
  45.                     kubicaCounter = 0;
  46.                 }
  47.                 else if (value > 10 && value <= 15)
  48.                 {
  49.                     Console.WriteLine("Blue");
  50.                     await TurnLeft(brick);
  51.  
  52.                     kubicaCounter = 0;
  53.  
  54.                 }
  55.                 else if (value > 30 && value < 80)
  56.                 {
  57.                     Console.WriteLine("Else");
  58.                     await MoveSlower(brick);
  59.                     kubicaCounter = 0;
  60.  
  61.                 }
  62.  
  63.                 Thread.Sleep(15);
  64.             }
  65.         }
  66.  
  67.         async static Task KubicaMode(Brick brick)
  68.         {
  69.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 50);
  70.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 50);
  71.         }
  72.  
  73.         async static Task MoveSlower(Brick brick)
  74.         {
  75.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 20);
  76.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 20);
  77.             return;
  78.         }
  79.         async static Task TurnRight(Brick brick)
  80.         {
  81.            
  82.                 await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 10);
  83.                 await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 35);
  84.            
  85.            
  86.         }
  87.         async static Task TurnRightStronger(Brick brick)
  88.         {
  89.  
  90.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 10);
  91.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 35);
  92.  
  93.  
  94.         }
  95.         async static Task TurnLeft (Brick brick)
  96.         {
  97.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 35);
  98.             await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C,10);
  99.         }
  100.     }
  101. }
  102.