protected override async Task ExecuteAsync(CancellationToken cancellationToken) { _hcsr04 = new Hcsr04(_triggerPin, _echoPin, _pinNumberingScheme); _prevDistance = Distance; while (!cancellationToken.IsCancellationRequested) { try { Distance = _hcsr04.Distance.Centimeters; _communicationObject.Distance = Distance; } catch { } if (_prevDistance <= _borderDistanceCentimeters && Distance > _borderDistanceCentimeters) { _communicationObject.ObjectInside?.Reset(); _communicationObject.ObjectOutside?.Set(); if (_communicationObject.BorderCrossedEvent != null) { _communicationObject.BorderCrossedEvent(this, BorderCrossed.Outside); } } else if (_prevDistance > _borderDistanceCentimeters && Distance <= _borderDistanceCentimeters) { _communicationObject.ObjectOutside?.Reset(); _communicationObject.ObjectInside?.Set(); if (_communicationObject.BorderCrossedEvent != null) { _communicationObject.BorderCrossedEvent(this, BorderCrossed.Inside); } } _prevDistance = Distance; await Task.Delay(100); } }
public IActionResult GetDistance() { using (var sonar = new Hcsr04(TRIG, ECHO)) { return(Ok(new { distance = sonar.Distance.ToString(), })); } }
public MeadowApp() { hCSR04 = new Hcsr04(Device, Device.Pins.D05, Device.Pins.D06); hCSR04.DistanceDetected += HCSR04DistanceDetected; while (true) { // Sends a trigger signal hCSR04.MeasureDistance(); Thread.Sleep(1500); } }
static void Main(string[] args) { Console.WriteLine("Hello Hcsr04 Sample!"); using (var sonar = new Hcsr04(4, 17)) { while (true) { Console.WriteLine($"Distance: {sonar.Distance} cm"); System.Threading.Thread.Sleep(1000); } } }
public MeadowApp() { Console.WriteLine($"Hello HC-SR04 sample"); hCSR04 = new Hcsr04(Device, Device.Pins.D05, Device.Pins.D06); hCSR04.DistanceDetected += HCSR04DistanceDetected; Console.WriteLine("Starting loop"); while (true) { // Sends a trigger signal hCSR04.MeasureDistance(); Thread.Sleep(2000); } }
/// <summary> /// Initializes a <see cref="Sonar"/> instance /// </summary> public Sonar() { Log.Debug("Initializing sonar hardware and services..."); Distance = new DistanceTuple(0, 0, 0); CenterSonarDevice = new Hcsr04(CENTER_TRIG, CENTER_ECHO); LeftSonarDevice = new Hcsr04(LEFT_TRIG, LEFT_ECHO); RightSonarDevice = new Hcsr04(RIGHT_TRIG, RIGHT_ECHO); Log.Debug("Sonar hardware and services initialized"); MeasurementTimer = new System.Timers.Timer(250); MeasurementTimer.Elapsed += MeasurementTimer_Elapsed; MeasurementTimer.AutoReset = true; MeasurementTimer.Enabled = true; }
private static void Hsc() { Hcsr04 sonar = new Hcsr04(16, 17); while (true) { try { Debug.WriteLine($"Distance: {sonar.Distance.Centimeters} cm"); } catch (Exception) { Debug.WriteLine($"Exception"); } Thread.Sleep(1000); } }
public static void Main(string[] args) { Console.WriteLine("Hello Hcsr04 Sample!"); using (var sonar = new Hcsr04(4, 17)) { while (true) { var res = sonar.TryGetDistance(out Length distance); if (res) { Console.WriteLine($"Distance: {distance.Centimeters} cm"); } else { Console.WriteLine("Error reading sensor"); } Thread.Sleep(1000); } } }
public Hcsr04Sensor(int triggerPin, int echoPin) { _sensor = new Hcsr04(triggerPin, echoPin); }
public void Enable(Accessories accessory) { try { switch (accessory) { case Accessories.Camera: if (camera is null) { this.camera = new Camera(); } else { Disable(Accessories.Camera); this.camera = new Camera(); } break; case Accessories.IMU: if (imu is null) { this.imu = new Mpu6050(I2cDevice.Create( new I2cConnectionSettings(1, Mpu6050.DefaultI2cAddress))); } else { Disable(Accessories.IMU); this.imu = new Mpu6050(I2cDevice.Create( new I2cConnectionSettings(1, Mpu6050.DefaultI2cAddress))); } break; case Accessories.MotorL: if (motorL is null) { this.motorL = DCMotor.Create(6, 12, 13); } else { Disable(Accessories.MotorL); this.motorL = DCMotor.Create(6, 12, 13); } break; case Accessories.MotorR: if (motorR is null) { this.motorR = DCMotor.Create(26, 20, 21); } else { Disable(Accessories.MotorR); this.motorR = DCMotor.Create(26, 20, 21); } break; case Accessories.Motors: Enable(Accessories.MotorL); Enable(Accessories.MotorR); break; case Accessories.ADC: if (adc is null) { this.adc = new Tlc1543(24, 5, 23, 25); } else { Disable(Accessories.ADC); this.adc = new Tlc1543(24, 5, 23, 25); } break; case Accessories.IR: if (ir is null) { this.ir = new IrReceiver(17); } else { Disable(Accessories.IR); this.ir = new IrReceiver(17); } break; case Accessories.Sonar: if (sonar is null) { this.sonar = new Hcsr04(22, 27); } else { Disable(Accessories.Sonar); this.sonar = new Hcsr04(22, 27); } break; case Accessories.LED: if (led is null) { this.led = new Ws2812b(18, 4); } else { Disable(Accessories.LED); this.led = new Ws2812b(18, 4); } break; case Accessories.CPUTemp: if (cpuTemperature is null) { this.cpuTemperature = new CpuTemperature(); } //else { Disable(led); this.led = new Ws2812b(18, 4); } break; case Accessories.All: foreach (var item in Enum.GetValues(typeof(Accessories))) { Enable((Accessories)item); } break; default: Console.WriteLine("Something went wrong (Enabling accessories)"); break; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"Enabling accessory: {Enum.GetName(typeof(Accessories), accessory)} failed."); System.Diagnostics.Debug.WriteLine($"Exception message: {ex.Message}"); Console.WriteLine($"Enabling accessory: {Enum.GetName(typeof(Accessories), accessory)} failed."); Console.WriteLine($"Exception message: {ex.Message}"); } }