Skip to content

Commit f1ae05b

Browse files
update the HC-SR04 (ESP32) to nanoFramework.Hardware.Esp32.Rmt version 2.0.1 (#721)
Co-authored-by: Laurent Ellerbach <[email protected]>
1 parent 7d7458d commit f1ae05b

8 files changed

+39
-35
lines changed

devices/Hcsr04.Esp32/Hcsr04.Esp32.cs

+26-16
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public class Hcsr04 : IDisposable
1919
{
2020
ReceiverChannel _rxChannel;
2121
TransmitterChannel _txChannel;
22-
RmtCommand _txPulse;
2322
long _lastMeasurment;
2423

2524
const double _speedOfSound = 340.29;
@@ -39,26 +38,37 @@ public Hcsr04(int trigger, int echo)
3938
{
4039
// Set-up TX & RX channels
4140
// We need to send a 10us pulse to initiate measurement
42-
_txChannel = new TransmitterChannel(trigger);
41+
var txChannelSettings = new TransmitChannelSettings(pinNumber: trigger)
42+
{
43+
// 1us clock ( 80Mhz / 80 ) = 1Mhz
44+
ClockDivider = 80,
45+
EnableCarrierWave = true,
46+
IdleLevel = false,
47+
};
48+
49+
_txChannel = new TransmitterChannel(txChannelSettings);
4350
// we only need 1 pulse of 10 us high
4451
_txChannel.AddCommand(new RmtCommand(10, true, 0, false));
4552

46-
_txChannel.ClockDivider = 80;
47-
_txChannel.CarrierEnabled = false;
48-
_txChannel.IdleLevel = false;
49-
5053
// The received echo pulse width represents the distance to obstacle
5154
// 150us to 38ms
52-
_rxChannel = new ReceiverChannel(echo);
53-
54-
// 1us clock ( 80Mhz / 80 ) = 1Mhz
55-
_rxChannel.ClockDivider = 80;
56-
// filter out 200Us / noise
57-
_rxChannel.EnableFilter(true, 200);
58-
// 40ms based on 1us clock
59-
_rxChannel.SetIdleThresold(40000);
60-
// 100 millisecond timeout is enough
61-
_rxChannel.ReceiveTimeout = TimeSpan.FromMilliseconds(100);
55+
var rxChannelSettings = new ReceiverChannelSettings(pinNumber: echo)
56+
{
57+
// 1us clock ( 80Mhz / 80 ) = 1Mhz
58+
ClockDivider = 80,
59+
60+
// filter out 200Us / noise
61+
EnableFilter = true,
62+
FilterThreshold = 200,
63+
64+
// 40ms based on 1us clock
65+
IdleThreshold = 40_000,
66+
67+
// 100 millisecond timeout is enough
68+
ReceiveTimeout = TimeSpan.FromMilliseconds(100)
69+
};
70+
71+
_rxChannel = new ReceiverChannel(rxChannelSettings);
6272
}
6373

6474
/// <summary>

devices/Hcsr04.Esp32/Hcsr04.Esp32.nfproj

+5-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@
3737
<HintPath>packages\nanoFramework.CoreLibrary.1.14.2\lib\mscorlib.dll</HintPath>
3838
<Private>True</Private>
3939
</Reference>
40-
<Reference Include="nanoFramework.Hardware.Esp32.Rmt, Version=1.3.6.3188, Culture=neutral, PublicKeyToken=c07d481e9758c731">
41-
<HintPath>packages\nanoFramework.Hardware.Esp32.Rmt.1.3.6\lib\nanoFramework.Hardware.Esp32.Rmt.dll</HintPath>
42-
<Private>True</Private>
40+
<Reference Include="nanoFramework.Hardware.Esp32.Rmt">
41+
<HintPath>packages\nanoFramework.Hardware.Esp32.Rmt.2.0.1\lib\nanoFramework.Hardware.Esp32.Rmt.dll</HintPath>
4342
</Reference>
4443
<Reference Include="nanoFramework.Runtime.Events, Version=1.11.6.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
4544
<HintPath>packages\nanoFramework.Runtime.Events.1.11.6\lib\nanoFramework.Runtime.Events.dll</HintPath>
@@ -57,6 +56,9 @@
5756
<ItemGroup>
5857
<None Include="packages.config" />
5958
</ItemGroup>
59+
<ItemGroup>
60+
<Content Include="packages.lock.json" />
61+
</ItemGroup>
6062
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
6163
<ProjectExtensions>
6264
<ProjectCapabilities>

devices/Hcsr04.Esp32/Hcsr04.Esp32.nuspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<dependency id="UnitsNet.nanoFramework.Length" version="4.150.0" />
2525
<dependency id="nanoFramework.Runtime.Events" version="1.11.6" />
2626
<dependency id="nanoFramework.System.Device.Model" version="1.2.216" />
27-
<dependency id="nanoFramework.Hardware.Esp32.Rmt" version="1.3.6" />
27+
<dependency id="nanoFramework.Hardware.Esp32.Rmt" version="2.0.1" />
2828
</dependencies>
2929
</metadata>
3030
<files>

devices/Hcsr04.Esp32/packages.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="nanoFramework.CoreLibrary" version="1.14.2" targetFramework="netnano1.0" />
4-
<package id="nanoFramework.Hardware.Esp32.Rmt" version="1.3.6" targetFramework="netnano1.0" />
4+
<package id="nanoFramework.Hardware.Esp32.Rmt" version="2.0.1" targetFramework="netnano1.0" />
55
<package id="nanoFramework.Runtime.Events" version="1.11.6" targetFramework="netnano1.0" />
66
<package id="nanoFramework.System.Device.Model" version="1.2.216" targetFramework="netnano1.0" />
77
<package id="Nerdbank.GitVersioning" version="3.5.119" targetFramework="netnano1.0" developmentDependency="true" />

devices/Hcsr04.Esp32/packages.lock.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
},
1111
"nanoFramework.Hardware.Esp32.Rmt": {
1212
"type": "Direct",
13-
"requested": "[1.3.6, 1.3.6]",
14-
"resolved": "1.3.6",
15-
"contentHash": "vn+KOC24pOs1BvuYcbWy4NgV7tR6Wjx5v8kFZBZUrwqpffb3C1N+jWHyO6EcGgKxbIFxDFDZKULSHqnQr/H0Xg=="
13+
"requested": "[2.0.1, 2.0.1]",
14+
"resolved": "2.0.1",
15+
"contentHash": "h3xaxgk1vIeWxFYxRa+6bvYmg5TlNuCS9GwYzbVba0T0mq2nYWUNqTUoWtLEGReZY17vmULzu5AXQzGz+q7tZQ=="
1616
},
1717
"nanoFramework.Runtime.Events": {
1818
"type": "Direct",

devices/Hcsr04.Esp32/samples/Hcsr04.Samples.nfproj

+3-4
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@
2424
<HintPath>..\packages\nanoFramework.CoreLibrary.1.14.2\lib\mscorlib.dll</HintPath>
2525
<Private>True</Private>
2626
</Reference>
27-
<Reference Include="nanoFramework.Hardware.Esp32.Rmt, Version=1.3.6.3188, Culture=neutral, PublicKeyToken=c07d481e9758c731">
28-
<HintPath>..\packages\nanoFramework.Hardware.Esp32.Rmt.1.3.6\lib\nanoFramework.Hardware.Esp32.Rmt.dll</HintPath>
29-
<Private>True</Private>
30-
</Reference>
3127
<Reference Include="nanoFramework.Runtime.Events, Version=1.11.6.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
3228
<HintPath>..\packages\nanoFramework.Runtime.Events.1.11.6\lib\nanoFramework.Runtime.Events.dll</HintPath>
3329
<Private>True</Private>
@@ -52,6 +48,9 @@
5248
<ItemGroup>
5349
<ProjectReference Include="..\Hcsr04.Esp32.nfproj" />
5450
</ItemGroup>
51+
<ItemGroup>
52+
<Content Include="packages.lock.json" />
53+
</ItemGroup>
5554
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
5655
<ProjectExtensions>
5756
<ProjectCapabilities>

devices/Hcsr04.Esp32/samples/packages.config

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="nanoFramework.CoreLibrary" version="1.14.2" targetFramework="netnano1.0" />
4-
<package id="nanoFramework.Hardware.Esp32.Rmt" version="1.3.6" targetFramework="netnano1.0" />
54
<package id="nanoFramework.Runtime.Events" version="1.11.6" targetFramework="netnano1.0" />
65
<package id="nanoFramework.System.Device.Model" version="1.2.216" targetFramework="netnano1.0" />
76
<package id="UnitsNet.nanoFramework.Length" version="4.150.0" targetFramework="netnano1.0" />

devices/Hcsr04.Esp32/samples/packages.lock.json

-6
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,6 @@
88
"resolved": "1.14.2",
99
"contentHash": "j1mrz4mitl5LItvmHMsw1aHzCAfvTTgIkRxA0mhs5mSpctJ/BBcuNwua5j3MspfRNKreCQPy/qZy/D9ADLL/PA=="
1010
},
11-
"nanoFramework.Hardware.Esp32.Rmt": {
12-
"type": "Direct",
13-
"requested": "[1.3.6, 1.3.6]",
14-
"resolved": "1.3.6",
15-
"contentHash": "vn+KOC24pOs1BvuYcbWy4NgV7tR6Wjx5v8kFZBZUrwqpffb3C1N+jWHyO6EcGgKxbIFxDFDZKULSHqnQr/H0Xg=="
16-
},
1711
"nanoFramework.Runtime.Events": {
1812
"type": "Direct",
1913
"requested": "[1.11.6, 1.11.6]",

0 commit comments

Comments
 (0)