コード例 #1
0
ファイル: Program.cs プロジェクト: RoninWest/monoev3
		public static void Main (string[] args)
		{
			IRChannel[] channels = {IRChannel.One, IRChannel.Two, IRChannel.Three, IRChannel.Four};
			
			int channelIdx = 0;
			ManualResetEvent terminateProgram = new ManualResetEvent(false);
			var sensor = new EV3IRSensor(SensorPort.In1);
			ButtonEvents buts = new ButtonEvents ();
			LcdConsole.WriteLine("Use IR on port1");
			LcdConsole.WriteLine("Up distance");
			LcdConsole.WriteLine("Down beacon location");
			LcdConsole.WriteLine("Enter read command");
			LcdConsole.WriteLine("Left change channel");
			LcdConsole.WriteLine("Right read as string");
			LcdConsole.WriteLine("Esc. terminate");
			buts.EscapePressed += () => { 
				terminateProgram.Set();
			};
			buts.UpPressed += () => { 
				LcdConsole.WriteLine("Distance " + sensor.ReadDistance() +  " cm");
			};
			buts.EnterPressed += () => { 
				LcdConsole.WriteLine("Remote command " + sensor.ReadRemoteCommand() + " on channel " + sensor.Channel);									
			};
			buts.DownPressed += () => { 
				BeaconLocation location  = sensor.ReadBeaconLocation();
				LcdConsole.WriteLine("Beacon location: " + location.Location + " Beacon distance: " + location.Distance + " cm"); 
				
			};
			buts.LeftPressed += () => { 
				channelIdx = (channelIdx+1)%channels.Length;
				sensor.Channel = channels[channelIdx];
				LcdConsole.WriteLine("Channel is set to: " + channels[channelIdx]);
			};
			buts.RightPressed += () => { 
				LcdConsole.WriteLine(sensor.ReadAsString());	
			};
			terminateProgram.WaitOne(); 
			
		}
コード例 #2
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);
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: moonmile/MonoBalancer
 /// <summary>
 /// コンストラクタ
 /// </summary>
 public Balanc3R()
 {
     motorR = new Motor(MotorPort.OutA); // 右足
     motorL = new Motor(MotorPort.OutD); // 左足
     speaker = new Speaker(0);
     gyro = new EV3GyroSensor(SensorPort.In2);
     // 角速度を取得
     gyro.Mode = GyroMode.AngularVelocity;
     ir = new EV3IRSensor(SensorPort.In4);
     ir.Mode = IRMode.Remote;
 }
コード例 #4
0
ファイル: SensorFactory.cs プロジェクト: tudor-olariu/monoev3
		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;
		}