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