访问覆盆子PI上HCSR04传感器的模块

hcsr04sensor的Python项目详细描述


覆盆子PI上的HC-SR04超声波传感器

Hcsr04sensor Web Page

使用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应用。对总分行的供款将被拒绝。

鼻目前用于测试。所有测试应在发布前通过 拉取请求。

捐赠

Your Donation is Appreciated

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将PHP生成的公钥转换为Java公钥   java在服务中启动可取消的后台任务   java我能做这个通用的事情吗?   java Axis 1.4.1版在IBM上的部署为8.5版   java如何进行同步web服务调用   java从Spring控制器中的多个select获取值   java如何在JFrame中声明类(包含sapache Poi)的对象   jaxb反序列化XML以在Java中动态创建类   java如何为部署在Google云上的应用程序实现Google OAuth?   java我想了解libgdx的资产管理器   Java整数溢出   Windows任务管理器javaw。exe内存与Java任务控制   java如何让Android等待?