通过I2C驱动Avago APDS9960手势、接近、环境光和RGB颜色传感器的库
RPi.apds9960的Python项目详细描述
连接Avago APDS9960数字传感器模块(能够进行手势 检测、接近检测、环境光传感和RGB颜色传感 在Python2或3中,在Raspberry PI和其他基于Linux的系统上使用I2C 单板计算机。我买的那套特殊的工具可以花几个钱买到 磅来自AliExpress。 有关APDS9960传感器的更多技术细节,请参见 datasheet [pdf]。
GPIO引脚输出
APDS9960是一个I2C设备,因此连接到RPI非常简单:
P1标题
对于原型制作,P1头销应按如下方式连接:
Board Pin | Name | Remarks | RPi Pin | RPi Function |
---|---|---|---|---|
1 | VIN | +3.3V Power | P01-1 | 3V3 |
2 | GND | Ground | P01-6 | GND |
3 | SCL | Clock | P01-5 | BCM 3 (SCL) |
4 | SDA | Data | P01-3 | BCM 2 (SDA) |
5 | INT | Interrupt | P01-16 | BCM 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:
- 运行sudo raspi-config
- 使用向下箭头选择9 Advanced Options
- 向下箭头到A7 I2C
- 当要求您启用I2C时,选择yes
- 当询问是否自动加载内核模块时,也选择yes
- 使用右箭头选择<;finish>;按钮
- 当要求重新启动时,选择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
兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:
上述版权公告及本许可公告须包括在 软件的拷贝或大部分。
本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。