通过I2C驱动Avago APDS9960手势、接近、环境光和RGB颜色传感器的库

RPi.apds9960的Python项目详细描述


https://travis-ci.org/rm-hull/apds9960.svg?branch=masterhttps://img.shields.io/pypi/v/rpi-apds9960.svghttps://img.shields.io/maintenance/yes/2017.svg?maxAge=2592000

连接Avago APDS9960数字传感器模块(能够进行手势 检测、接近检测、环境光传感和RGB颜色传感 在Python2或3中,在Raspberry PI和其他基于Linux的系统上使用I2C 单板计算机。我买的那套特殊的工具可以花几个钱买到 磅来自AliExpress。 有关APDS9960传感器的更多技术细节,请参见 datasheet [pdf]。

mounted

GPIO引脚输出

APDS9960是一个I2C设备,因此连接到RPI非常简单:

P1标题

对于原型制作,P1头销应按如下方式连接:

Board PinNameRemarksRPi PinRPi Function
1VIN+3.3V PowerP01-13V3
2GNDGroundP01-6GND
3SCLClockP01-5BCM 3 (SCL)
4SDADataP01-3BCM 2 (SDA)
5INTInterruptP01-16BCM 23 (SDA)

先决条件

确保i2c内核驱动程序已启用:

$ dmesg | grep i2c
[    4.925554] bcm2708_i2c 20804000.i2c: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100000)
[    4.929325] i2c /dev entries driver

或:

$ lsmod | grep i2c
i2c_dev                 5769  0
i2c_bcm2708             4943  0
regmap_i2c              1661  3 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_core

如果没有列出内核模块,并且没有使用dmesg显示任何内容,则这意味着 内核I2C驱动程序未加载。按如下方式启用I2C:

  1. 运行sudo raspi-config
  2. 使用向下箭头选择9 Advanced Options
  3. 向下箭头到A7 I2C
  4. 当要求您启用I2C时,选择yes
  5. 当询问是否自动加载内核模块时,也选择yes
  6. 使用右箭头选择<;finish>;按钮
  7. 当要求重新启动时,选择yes

重新启动后,重新检查dmesg | grep i2c命令是否显示 在继续之前加载I2C驱动程序。

或者,为了提高性能,从默认值增加I2C波特率 通过将/boot/config.txt更改为包含:

dtparam=i2c_arm=on,i2c_baudrate=400000

然后重新启动。

然后将您的用户添加到I2C组:

$ sudo adduser pi i2c

安装一些软件包:

$ sudo apt-get install i2c-tools python-pip

接下来检查设备是否正常通信(如果使用rev.1板, 总线使用0而不是1):

$ i2cdetect -y 1
       0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  00:          -- -- -- -- -- -- -- -- -- -- -- -- --
  10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  70: -- -- -- -- -- -- 76 --

安装python包

对于python2,在bash提示下,输入:

$ sudo python setup.py install

这将在^{tt7}中安装python文件$ 使它们可以在其他程序中使用。

对于python3,也可以键入:

$ sudo python3 setup.py install

cheeseshop安装

或者,可以使用pypi上的版本,只需执行以下操作:

$ sudo pip install RPi.apds9960

软件驱动程序-示例用法

安装后,请确认i2c地址(请参阅先决条件,它将是 可能是0x76或0x77)和端口。

然后在python脚本或repl中:

# TODOimportsmbus2importapds9960port=1address=???bus=smbus2.SMBus(port)

参考文献

>;待办事项

许可证

麻省理工学院许可证(MIT)

版权所有(c)2017 Richard Hull

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的拷贝或大部分。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。

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

推荐PyPI第三方库


热门话题
java如何在sqlite数据库中保存特定列的历史记录   java如何更改/更新timeseriechart名称(JFreeChart)   java如何将整数转换为可绘制的   汇编什么解释Java的字节码   java查找已编译的类版本号   我应该什么时候在ColdFusion应用程序中使用Java?   java当一个实体的两个字段为(unique=true)时,如何处理JPA异常?   java为什么在所有其他实例都正确的情况下返回错误的布尔值?   java Hibernate每次都准备语句   java停留在平均字长上   对Java和日语字符进行编码   java如何将导致异常的方法的错误消息传递给侦听器中的onTestFailure方法   java代码没有打印结果   java为什么私有内部接口的方法必须是公共的?   休眠发生错误。有关详细信息,请参阅错误日志。JAVAlang.NullPointerException