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(); }
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); }
/// <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; }
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; }