访问覆盆子PI上HCSR04传感器的模块
hcsr04sensor的Python项目详细描述
覆盆子PI上的HC-SR04超声波传感器
使用HCSR04超声波声音传感器和覆盆子PI计算距离和深度测量值。说明假设您使用的是raspbian linux。
该模块也适用于JSN-SR04T防水声音传感器。
python3安装
sudo apt-get install python3-pip
sudo pip3 install hcsr04sensor
2020年1月1日之后不再支持Python2版本的HCSR04传感器
sudo apt-get install python-pip
sudo pip install hcsr04sensor
说明
模块执行以下操作;
通过使用已排序的 样品。注-默认样本量为11个读数。
您可以指定 通过将sample_size=x传递到raw_distance(其中x是您需要的 读数的数量)。如果你需要减少样本量 快速阅读。小心可能会得到错误的读数 随着样本量的减少而增加。就我而言,11个读数的样本给出了一致的 我可以信任的值,用大约3秒来运行0.1 单个样本之间的第二个等待时间。
也可以通过将一个较低的值传递给 样品在原始距离等待。
数值越低,因维度越快 将采集样本。默认值0.1是安全等待时间,但这可以是 进一步减少。CPU使用率随着读取速度的提高而增加 犯错的机会。
此模块使用车身控制模块针脚值。请参阅您的模型的覆盆子PiPin布局文档。
默认情况下使用bcm pin值。支持板管脚值。
通过调整音速,根据温度调整读数。
允许以公制和英制单位测量距离和深度。请参见;
Pydoc HCSR04传感器传感器
如果故障电缆或传感器阻止接收回音脉冲,则引发异常。
计算不同类型容器的体积。参见菜谱中的例子。
读数精度
如果你需要非常精确的阅读,那么这个模块将不适合你的项目。在这种情况下,你可能应该使用阿杜诺而不是覆盆子皮。
linux不是一个实时操作系统,所以每次读取时都会有一个小的变化,通常在实际值的半厘米内。我说“通常”是因为每隔一段时间你就能得到一个超出范围的读数。这是因为操作系统在获取距离读数之前执行了其他任务。这就是为什么我要使用一个读数样本。我一直相信我的11个读数样本的中位数是好的。
某些应用不需要高精度的读数。例如,我在为污水泵监控器编写的应用程序中使用此模块。我不担心毫米精度的应用。一米深的坑里有1厘米的差异,这足以提醒我注意问题。
另一个例子是计算一个饮用水井的水量(直立的圆柱形)。 如果你在1000加仑的读数下减掉一加仑,那就没关系了。
距离限制
HCSR04传感器适用于短距离读数。说明书上说它最适合13英尺。我已经测试过它的深度,但是超过12英尺的任何东西都会出现周期性的奇怪读数。 这个模块不适合长途旅行。
用法
参见https://github.com/alaudet/hcsr04sensor/tree/master/recipes
中的示例脚本如果使用0.5.11版本的rpi.gpio,则访问覆盆子pi gpio管脚需要提升权限。运行示例 带sudo的脚本。
测试模块
添加了一个安装到/usr/local/bin的名为hcsr04.py的脚本。 此实用程序目前不支持板pin值。使用车身控制模块针脚值。
usage: hcsr04.py [-h] -t TRIG -e ECHO [-sp SPEED] [-ss SAMPLES]
Script tests the HCSR04 sensor under different configurations
optional arguments:
-h, --help show this help message and exit
-t TRIG, --trig TRIG Trig Pin (Required - must be an integer, must use
BCM pin values)
-e ECHO, --echo ECHO Echo Pin (Required - must be an integer, must use
BCM pin values)
-sp SPEED, --speed SPEED
Time between individual reading samples (Optional -
must be a float, default is 0.1 seconds)
-ss SAMPLES, --samples SAMPLES
Reading Sample Size (Optional - must be an integer, default is
11)
读取基本读数
如果你不想使用读数样本进行错误处理、警告或pin清除我在measurement类中包含了一个静态方法,它将返回一个基本的度量读数。它返回传感器和rpi.gpio提供的精确一次性读数。这允许您在代码中根据自己的喜好处理所有这些事情。
请参见https://github.com/alaudet/hcsr04sensor/tree/master/recipes中的示例basic_reading.py脚本
贡献
欢迎对HCSR04Sensor的贡献。请在问题中打开一个问题 在拉取请求之前跟踪。
新特性和错误修复应该针对devel分支而不是master应用。对总分行的供款将被拒绝。
鼻目前用于测试。所有测试应在发布前通过 拉取请求。