示例#1
0
文件: Main.cs 项目: AlfaOne/LegoV3
        public static int SensorAfstand()
        {
            MonoBrickFirmware.Sensors.EV3UltrasonicSensor UltraSensor = new MonoBrickFirmware.Sensors.EV3UltrasonicSensor(MonoBrickFirmware.Sensors.SensorPort.In1);
            int distance = UltraSensor.Read();

            LcdConsole.WriteLine("Distance: " + distance);
            return(distance);
        }
        // センサ/モータ
        // タッチセンサ 1
        // 超音波センサ 2
        // カラーセンサ 3
        // ジャイロセンサ 4
        // 尻尾用モータ A
        // 右車輪用モータ B
        // 左車輪用モータ C

		public EquipmentParameters ()
		{
			// 車両情報

			// ポート番号
            TailMoter = new Motor(MotorPort.OutA);
            MpRight = new Motor(MotorPort.OutB);
            MpLeft = new Motor(MotorPort.OutC);

			TouchSensors = new EV3TouchSensor(SensorPort.In1);
            // TODO : 超音波センサーはLのみ(Primary)
            DistSensors = new EV3UltrasonicSensor(SensorPort.In2, UltraSonicMode.Centimeter);
            // 反射
            LightSensors = new EV3ColorSensor(SensorPort.In3, ColorMode.Reflection);
            GyroSensors = new EV3GyroSensor(SensorPort.In4, GyroMode.AngularVelocity);
		}
示例#3
0
		public static void Main (string[] args)
		{
			ManualResetEvent terminateProgram = new ManualResetEvent (false);
			UltraSonicMode[] modes = {UltraSonicMode.Centimeter, UltraSonicMode.Inch, UltraSonicMode.Listen};
			int modeIdx = 0;
			ButtonEvents buts = new ButtonEvents ();
			var sensor = new EV3UltrasonicSensor(SensorPort.In1, modes[modeIdx]);
			LcdConsole.WriteLine("Use sonic on port1");
			LcdConsole.WriteLine("Up change mode");
			LcdConsole.WriteLine("Enter read");
			LcdConsole.WriteLine("Esc. terminate");
			buts.EscapePressed += () => { 
				terminateProgram.Set ();
			};
			buts.UpPressed += () => { 
				modeIdx = (modeIdx+1)%modes.Length;
				sensor.Mode = modes[modeIdx];
				LcdConsole.WriteLine("Mode: " + modes[modeIdx]);
			};
			buts.EnterPressed += () => {
				LcdConsole.WriteLine (sensor.ReadAsString());
			};
			terminateProgram.WaitOne ();  
		}
示例#4
0
        public static ISensor GetSensor(SensorPort port)
        {
            ISensor sensor = null;

            SensorType     sensorType     = SensorManager.Instance.GetSensorType(port);
            ConnectionType connectionType = SensorManager.Instance.GetConnectionType(port);

            switch (sensorType)
            {
            case SensorType.Color:
                sensor = new EV3ColorSensor(port);
                break;

            case SensorType.Gyro:
                sensor = new EV3GyroSensor(port);
                break;

            case SensorType.IR:
                sensor = new EV3IRSensor(port);
                break;

            case SensorType.NXTColor:
                sensor = new NXTColorSensor(port);
                break;

            case SensorType.NXTLight:
                sensor = new NXTLightSensor(port);
                break;

            case SensorType.NXTSound:
                sensor = new NXTSoundSensor(port);
                break;

            case SensorType.NXTTouch:
                sensor = new NXTTouchSensor(port);
                break;

            case SensorType.NXTUltraSonic:
                sensor = new NXTUltraSonicSensor(port);
                break;

            case SensorType.Touch:
                sensor = new EV3TouchSensor(port);
                break;

            case SensorType.UltraSonic:
                sensor = new EV3UltrasonicSensor(port);
                break;

            case SensorType.NXTI2c:
                var helper = new I2CHelper(port);
                sensor = helper.GetSensor();
                break;

            case SensorType.Unknown:
                if (connectionType == ConnectionType.UART)
                {
                    var uartHelper = new UARTHelper(port);
                    sensor = uartHelper.GetSensor();
                }
                if (connectionType == ConnectionType.InputResistor)
                {
                    sensor = new EV3TouchSensor(port);
                }
                break;

            case SensorType.I2CUnknown:

                break;

            case SensorType.NXTTemperature:

                break;

            case SensorType.LMotor:

                break;

            case SensorType.MMotor:

                break;

            case SensorType.NXTTest:

                break;

            case SensorType.Terminal:

                break;

            case SensorType.Test:

                break;

            case SensorType.Error:

                break;

            case SensorType.None:

                break;
            }
            return(sensor);
        }
示例#5
0
		public static ISensor GetSensor (SensorPort port)
		{
			ISensor sensor = null;
			
			SensorType sensorType = SensorManager.Instance.GetSensorType (port);
			ConnectionType connectionType = SensorManager.Instance.GetConnectionType (port);
			switch (sensorType) {
			case SensorType.Color:
				sensor = new EV3ColorSensor (port); 
				break;
			case SensorType.Gyro:
				sensor = new EV3GyroSensor (port); 
				break;
			case SensorType.IR:
				sensor = new EV3IRSensor (port);
				break;
			case SensorType.NXTColor:
				sensor = new NXTColorSensor (port);
				break;
			case SensorType.NXTLight:
				sensor = new NXTLightSensor (port);
				break;
			case SensorType.NXTSound:
				sensor = new NXTSoundSensor (port);
				break;
			case SensorType.NXTTouch:
				sensor = new NXTTouchSensor (port);
				break;
			case SensorType.NXTUltraSonic:
				sensor = new NXTUltraSonicSensor (port);
				break;
			case SensorType.Touch:
				sensor = new EV3TouchSensor (port);
				break;
			case SensorType.UltraSonic:
				sensor = new EV3UltrasonicSensor (port);
				break;
			case SensorType.NXTI2c:
				var helper = new I2CHelper (port);
				sensor = helper.GetSensor ();
				break;
			case SensorType.Unknown:
				if (connectionType == ConnectionType.UART) {
					var uartHelper = new UARTHelper (port);
					sensor = uartHelper.GetSensor ();
				}
				if (connectionType == ConnectionType.InputResistor) {
					sensor = new EV3TouchSensor (port);
				}
				break;
			case SensorType.I2CUnknown:
						
				break;
			case SensorType.NXTTemperature:
						
				break;
			case SensorType.LMotor:
						
				break;
			case SensorType.MMotor:
						
				break;
			case SensorType.NXTTest:
						
				break;
			case SensorType.Terminal:
						
				break;
			case SensorType.Test:
						
				break;
			case SensorType.Error:
					
				break;
			case SensorType.None:
				sensor = new NoSensor (port);
				break;
			}
			if (sensor == null) 
			{
				sensor = new UnknownSensor(port);
			}
			return sensor;
		}
示例#6
0
 public static void moveUntilObject(double cm, Boolean silent)
 {
     //Geeft aan wat de robot gaat doen
     LcdConsole.WriteLine ("Moving until closer than "+cm);
     double distanceInCm; //Zodat de robot niet meteen stopt
     var sensor = new EV3UltrasonicSensor(SensorPort.In1, UltraSonicMode.Centimeter);
     do{
         vehicle.Forward(25);
         distanceInCm = sensor.Read () / 55; //Maakt centimeters van de output
     } while(distanceInCm > cm);
     //Stop
     vehicle.Off ();
     LcdConsole.WriteLine ("Done, stopped " + Math.Round(distanceInCm) + " cm from object");
     if (!silent) {
         speaker.Buzz ();
     }
     //Geef die motor even rust
     Thread.Sleep (100);
 }