控制BeagleBone IO通道的模块
项目描述
Adafruit Beaglebone I/O Python API
Adafruit BBIO是一个API,用于从运行在Beaglebone上的Python应用程序中启用GPIO、PWM、ADC、UART、SPI和eQEP(正交编码器)硬件访问。
-
建议使用官方BeagleBoard.org Debian镜像
- 目前推荐的镜像: Debian 10.3 "Buster" IoT (2020-04-06) (默认内核为4.19.x-ti)
-
Adafruit_BBIO支持Linux内核3.8至4.19
-
Adafruit_BBIO的新版本可能会破坏向后兼容性。请阅读变更日志。
-
建议使用Python 3
在Debian上的安装
注意:按照BeagleBoard.org上的说明进行操作以连接到互联网
最简单
sudo apt-get update
sudo apt-get install build-essential python3-dev python3-pip -y
sudo pip3 install Adafruit_BBIO
手动
sudo apt-get update
sudo apt-get install build-essential python3-dev python3-pip -y
git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git
cd adafruit-beaglebone-io-python
sudo python3 setup.py install
将Adafruit_BBIO升级到最新版本PyPI
sudo pip3 install --upgrade Adafruit_BBIO
用法
使用库与在Raspberry Pi上使用的优秀RPi.GPIO库非常相似。以下是示例。
引脚编号
请注意,引脚编号没有'0'前缀。例如,P8引脚上的7号引脚是P8_7
。
正确
GPIO.setup("P8_7", OUT )
错误
GPIO.setup("P8_07", OUT )
请参阅common.c中的所有引脚标签。
config-pin
config-pin现在用于官方BeagleBoard.org Debian Jessie和Stretch镜像来控制引脚模式(例如,引脚复用)。
debian@beaglebone:~$ config-pin -q P9_14
P9_14 Mode: pwm
debian@beaglebone:~$ config-pin -l P9_14
default gpio gpio_pu gpio_pd pwm
debian@beaglebone:~$ config-pin P9_14 gpio
debian@beaglebone:~$ config-pin -q P9_14
P9_14 Mode: gpio Direction: in Value: 0
debian@beaglebone:~$ config-pin P9_14 pwm
debian@beaglebone:~$ config-pin -q P9_14
P9_14 Mode: pwm
GPIO设置
导入库,并设置GPIO.OUT或GPIO.IN:
import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_14", GPIO.OUT)
您也可以参考引脚名称:
GPIO.setup("GPIO0_26", GPIO.OUT)
GPIO输出
设置引脚为输出,并写入GPIO.HIGH或GPIO.LOW。或者您可以使用1或0:
import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_14", GPIO.OUT)
GPIO.output("P8_14", GPIO.HIGH)
板载LED
板载LED(USR0-USR3)由LED类驱动程序处理,而不是GPIO引脚驱动程序。
它们在/sys/文件系统中有不同的路径。
设置引脚为输出并写入GPIO.HIGH或GPIO.LOW:
import Adafruit_BBIO.GPIO as GPIO
import time
for i in range(4):
GPIO.setup("USR%d" % i, GPIO.OUT)
while True:
for i in range(4):
GPIO.output("USR%d" % i, GPIO.HIGH)
time.sleep(1)
for i in range(4):
GPIO.output("USR%d" % i, GPIO.LOW)
time.sleep(1)
GPIO输入
输入的工作方式与输出类似。
import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_14", GPIO.IN)
轮询输入
if GPIO.input("P8_14"):
print("HIGH")
else:
print("LOW")
等待边缘(GPIO.RISING,GPIO.FALLING或GPIO.BOTH
GPIO.wait_for_edge(channel, GPIO.RISING)
or
GPIO.wait_for_edge(channel, GPIO.RISING, timeout)
检测事件
GPIO.add_event_detect("P9_12", GPIO.FALLING)
#your amazing code here
#detect wherever:
if GPIO.event_detected("P9_12"):
print("event detected!")
PWM
在0.0.15中,PWM占空比的范围从100(关闭)-0(开启)反转到0(关闭)-100(开启)。请相应地更新您的代码。
import Adafruit_BBIO.PWM as PWM
#PWM.start(channel, duty, freq=2000, polarity=0)
#duty values are valid 0 (off) to 100 (on)
PWM.start("P9_14", 50)
PWM.set_duty_cycle("P9_14", 25.5)
PWM.set_frequency("P9_14", 10)
PWM.stop("P9_14")
PWM.cleanup()
#set polarity to 1 on start:
PWM.start("P9_14", 50, 2000, 1)
ADC
import Adafruit_BBIO.ADC as ADC
ADC.setup()
#read returns values 0-1.0
value = ADC.read("P9_40")
#read_raw returns non-normalized value
value = ADC.read_raw("P9_40")
UART
config-pin P9.21 uart # UART2_TXD
config-pin P9.22 uart # UART2_RXD
config-pin P9.24 uart # UART1_TXD
config-pin P9.26 uart # UART1_RXD
sudo pip install pyserial
import Adafruit_BBIO.UART as UART
import serial
UART.setup("UART1")
with serial.Serial(port = "/dev/ttyO1", baudrate=9600) as ser:
print("Serial is open!")
ser.write(b"Hello World!")
- BeagleBone上的可用UART名称
UART1
:/dev/ttyO1,Rx:P9_26,Tx:P9_24UART2
:/dev/ttyO2,Rx:P9_22,Tx:P9_21UART4
:/dev/ttyO4,Rx:P9_11,Tx:P9_13UART5
:/dev/ttyO5,Rx:P8_38,Tx:P8_37- 注意:
UART5
需要在/boot/uEnv.txt
中设置disable_uboot_overlay_video=1
- PocketBeagle上的可用UART名称
PB-UART0
:/dev/ttyO0,Rx:P1_30,Tx:P1_32PB-UART1
:/dev/ttyO1,Rx:P2_11,Tx:P2_09PB-UART2
:/dev/ttyO2,Rx:P1_08,Tx:P1_10
- 使用UART1和UART2进行环回测试
SPI
- 使用
config-pin
设置引脚模式来设置SPI引脚。- SPI0
- SPI0_CS0:
config-pin p9.17 spi_cs
- SPI0_D0:
config-pin p9.21 spi
- SPI0_D1:
config-pin p9.18 spi
- SPI0_SCLK:
config-pin p9.22 spi_sclk
- SPI0_CS0:
- SPI1
- SPI1_CS0:
config-pin p9.20 spi_cs
- SPI1_CS0:
config-pin p9.28 spi_cs
- SPI1_CS1:
config-pin p9.19 spi_cs
- SPI1_CS1:
config-pin p9.42 spi_cs
- SPI1_D0:
config-pin p9.29 spi
- SPI1_D1:
config-pin p9.30 spi
- SPI1_SCLK:
config-pin p9.31 spi_sclk
- SPI1_CS0:
- SPI0
- 示例
from Adafruit_BBIO.SPI import SPI
#spi = SPI(bus, device) #/dev/spidev<bus>.<device>
# /dev/spidev0.0
spi = SPI(1,0)
print(spi.xfer2([32, 11, 110, 22, 220]))
spi.close()
# /dev/spidev0.1
spi = SPI(1,1)
print(spi.xfer2([32, 11, 110, 22, 220]))
spi.close()
# /dev/spidev1.0
spi = SPI(2,0)
print(spi.xfer2([32, 11, 110, 22, 220]))
spi.close()
# /dev/spidev1.1
spi = SPI(2,1)
print(spi.xfer2([32, 11, 110, 22, 220]))
spi.close()
eQEP
要使用增强型正交编码器脉冲(eQEP)模块,请参考编码器
模块的文档。
运行测试
安装py.test以运行测试。您还需要pytest的python编译器包
sudo pip3 install pytest
在项目的根目录中执行以下命令
pytest
注意:通常不需要sudo
,因为udev已配置GPIO和PWM的组所有权和权限,具体可参考GPIO和PWM的配置
报告问题
在报告问题时,请运行以下脚本,该脚本将打印系统配置
sudo /opt/scripts/tools/version.sh
并将输出粘贴到回复中。
此脚本应存在于从以下位置下载的任何Debian或Ubuntu镜像中:https://beagleboard.org/或https://rcn-ee.com/
致谢
BeagleBone IO Python库最初是从Ben Croston编写的优秀MIT许可的RPi.GPIO库分叉而来的。
许可证
由Justin Cooper和Adafruit Industries编写。BeagleBone IO Python库在MIT许可下发布。1.1.2
Daniel Nguyen(2):更新common.c 更新common.c
Drew Fustini(28):再次上传到PyPI以解决#293问题,不要在BeagleBone Blue上设置pinmux,移除deug输出,修复到bone.js的断链问题#296,强制Encoder周期为整数#299,忽略gcc 8.2.0的新编译器警告,更新setup.py,不要为内置USRn LED设置pin模式,将P1_3的名称更改为与bone.js匹配,修复关于类型不兼容的函数类型转换的警告#308,修复截断的打印格式字符串的警告#308,修复关于类型不兼容的函数类型转换的警告#308,修复格式截断和strncpy中的sizeof警告#308,修复关于类型不兼容的函数类型转换的警告#308,更新travis配置以指定Python 3.6,更新tox.ini以Python 3.6,合并来自adafruit/issue308的pull请求,更新ISSUE_TEMPLATE.md,更新README.md,合并来自adafruit/issue308的pull请求,更新README.md,合并来自zer0cod3r/master的pull请求,合并来自SamPovilus/docfix的pull请求,更新README.md,更新README.md,移除CFLAGS中的-Werror,更新setup.py中的版本到v1.2
Sam Povilus(1):修复文档位置和版本,因为当前位置无法加载
1.1.1
再次尝试上传到PyPI以避免在问题#293中报告的错误
1.1.0
Aaron Marburg(1)
- 在成功通过udev启用PWM后添加usleep。
Drew Fustini(16)
- 合并来自zsserg/fixed_segfault_in_event_detection的pull请求#233
- 合并来自zsserg/develop的pull请求#257
- 合并来自amarburg/master的pull请求#251
- 合并来自fcooper/documentation-updates的pull请求#271
- 更新ADC.rst
- 更新Encoder.rst
- 更新ADC.rst
- 为PocketBeagle添加UART条目(问题#242)
- 更新安装和测试shell脚本
- 更新README中的UART部分
- 合并来自erikwelsh/master的pull请求#282
- 不要加载BeagleBone Blue的overlays #283
- 合并来自sam-bristow/py3-docs的pull请求#284
- 合并来自sam-bristow/bugfix/uart-error-reporting的pull请求#285
- 修复PocketBeagle和BeagleBone Blue上的PWM #286
- 移除调试日志
Erik Welsh(1)
- 修复GPIO导出问题;在最新BeagleBone图像上PocketBeagle的GPIO处于不良状态
Franklin S Cooper Jr(3)
- docs/SPI.rst:修复示例中的总线编号
- docs/GPIO.rst:添加有关闪烁LED的信息
- docs/GPIO.rst:使文档对新手更友好
Sam Bristow(3)
- 在所有代码和文档中使用print()函数
- 使用新的python-serial API
- 对于失败的用户界面返回错误码
zserg(5)
- 修复在python回调函数内部调用remove_event_detect()时的SEGFAULT。
- 修复在python回调函数内部调用remove_event_detect()时的SEGFAULT。
- 修复了event_gpio,c中的SEGFAULT问题,增加了更详细的epoll()错误日志
- 进行了一些小的样式调整
1.0.10
新功能
- 自动设置UART的引脚模式(PR #158)
- 编码器:README.md:增加了关于eqep组更改的说明(PR #214)
- 弃用过时的Adafruit_I2C.py(PR #215)
- 将编码器模块信息添加到主README.md中(PR #217)
- 添加自动API文档生成(PR #219)
- 将API文档分别放入模块中(PR #221)
短日志
-
David Planella(46)
- 编码器:README.md:增加了关于eqep组更改的说明
- 将编码器模块信息添加到主README.md中
- 使用Google语法和Sphinx支持添加了文档字符串,目前用于生成编码器和PWM模块的API文档。
- 仅在运行在beaglebone时执行内核版本检查。导入编码器模块的readthedocs构建器具有旧的3.3内核,自动文档构建失败
- 使用默认的readthedocs主题
- 如果在那里构建文档,使用readthedocs主题,删除冗余的搜索链接
- Readthedocs主题调整
- 移除冗余的目录,添加全局描述
- 添加UART文档
- 添加文档徽章
- 添加ADC API文档,修复UART模块定义
- API文档:添加SPI模块
- 添加SPI模块属性文档
- 将Python徽章添加到README文件
- 添加SPI引脚表和GPIO模块的第一稿。函数仍需文档化
- 将https://github.com/dplanella/adafruit-beaglebone-io-python的'readthedocs'分支合并到readthedocs
- 记录API文档构建过程
- 使用Google语法和Sphinx支持添加了文档字符串,目前用于生成编码器和PWM模块的API文档。
- 仅在运行在beaglebone时执行内核版本检查。导入编码器模块的readthedocs构建器具有旧的3.3内核,自动文档构建失败
- 使用默认的readthedocs主题
- 如果在那里构建文档,使用readthedocs主题,删除冗余的搜索链接
- Readthedocs主题调整
- 移除冗余的目录,添加全局描述
- 添加UART文档
- 添加文档徽章
- 添加ADC API文档,修复UART模块定义
- API文档:添加SPI模块
- 添加SPI模块属性文档
- 将Python徽章添加到README文件
- 添加SPI引脚表和GPIO模块的第一稿。函数仍需文档化
- 记录API文档构建过程
- 将https://github.com/dplanella/adafruit-beaglebone-io-python的'readthedocs'分支合并到readthedocs
- 更新README.md
- 添加了一些API文档内容
- 从上游master同步
- 进行了一些小的文档和配置改进
- 完成了GPIO的文档化
- rST修复
- 更新README.md
- API文档的微小改进
- 将https://github.com/dplanella/adafruit-beaglebone-io-python的'readthedocs'分支合并到readthedocs
- 从主索引和每个模块的单独文件生成API文档
- 从上游master同步
- 改进API文档输出配置
- 更新文档生成描述以反映新的独立模块
- 更新ADC API文档
-
Drew Fustini(10)
- 使用set_pin_mode()设置uart引脚复用(#158)
- 在README中添加SPI说明(#158)
- 更新README.md
- 修复spidev路径不匹配问题(#216)
- 合并pull request #217 from dplanella/patch-2
- 合并pull request #214 from dplanella/patch-1
- 弃用Adafruit_BBIO.I2C,改为Adafruit_GPIO.I2C(#215)
- 合并pull request #219 from dplanella/readthedocs
- 重新定位doc目录以避免混淆(#218)
- 合并pull request #221 from dplanella/readthedocs
1.0.9
功能
- 问题#194:编码器位置无法设置
- PR #205:编码器:添加读取/写入sysfs属性的支持
修复
- 问题#198:在distribute_setup.py中使用https作为DEFAULT_URL
- 问题#197:修复pwm启用文件描述符泄漏
- 问题#189:修复PWM在Python 3.6中的seg fault
- 问题#180:澄清没有0前缀的引脚标签
- PR #201:编码器:执行内核检查,PEP8清理
- PR #202:编码器:修正内核检查逻辑
- PR #207:编码器:改进使用文档
- PR #210:编码器:修复sysfs导入,使代码兼容Python 3
- PR #212:编码器:修复Python 3兼容性
- PR #213:编码器:修复从周期计算频率的问题
短日志
-
David Planella(18)
- 编码器:仅初始化指定的通道
- 从master同步
- 编码器:执行内核检查,PEP8清理
- 编码器:添加sysfs模块
- 编码器:使用sysfs写入QEP属性
- 编码器:修正内核检查逻辑
- 合并pull request #2 from adafruit/master
- 编码器:将get/set方法转换为属性,更新apidoc字符串
- 编码器:更新README
- 编码器:添加README apt install说明
- 编码器:版权转让说明,更新评论
- 编码器:添加使用说明
- 编码器:改进使用文档
- 编码器:修复使用示例中的小错误
- 编码器:添加关于权限的说明
- 编码器:将sysfs改为兼容Python 2和3的相对导入
- 编码器:使用items()代替iteritems()以兼容Python 3
- 编码器:修复频率获取器
-
Drew Fustini (18)
- 在distribute_setup.py中使用https作为DEFAULT_URL (#198)
- 修复Python 3的except语法
- 对于Python 3,使用dict.items()代替dict.iteritems()
- 修复set_brightness()中的错误
- 在停止PWM输出时关闭enable_fd (#197)
- 合并来自dplanella/patch-1的拉取请求 #199
- 修复PWM使能文件描述符的泄漏 (#197)
- 合并来自dplanella/encoder-cleanup的拉取请求 #201
- 删除test_rotary.py,因为它不适用于pytest
- 修复Python 3.6中的PWM段错误 (#189)
- 合并来自dplanella/patch-2的拉取请求 #202
- 澄清没有0前缀用于引脚标签 (#180)
- 合并来自dplanella/encoder-sysfs的拉取请求 #205
- 将新文件的版权转让给Adafruit Industries
- 添加bash脚本来帮助安装和测试
- 合并来自dplanella/patch-4的拉取请求 #212
- 合并来自dplanella/patch-3的拉取请求 #207
- 合并来自dplanella/fix-encoder-frequency的拉取请求 #213
1.0.8
修复
- 问题 #196:缓存板类型以避免性能不佳
- 问题 #192:修复PocketBeagle PWM引脚拼写错误
- 问题 #191:默认关闭RotaryEncoder的调试输出
- 问题 #188:GPIO极慢(切换需要20ms)
- 问题 #186:UART存在问题
短日志
-
David Planella (12)
- 将编码器模块的注释复制到README.md
- 格式化编码器README的markdown
- 修复编码器README格式
- 从编码器模块中删除QEP指令
- 修复编码器README
- 更新编码器README
- 编码器README:添加有关专用覆盖层的信息
- 编码器README:更新关于先决条件的信息
- 更新编码器README
- 更新编码器README
- 添加日志支持,关闭无条件调试输出
- 编码器:删除未使用的日志代码
-
Drew Fustini (3)
- 合并来自dplanella/master的拉取请求 #195
- 修复PocketBeagle PWM引脚拼写错误 (#192)
- 缓存板类型以避免性能不佳 (#196)
1.0.7
修复
- 问题 #188:GPIO极慢(切换需要20ms)
短日志
- Drew Fustini (4)
- 更新README.md
- 将config-pin示例添加到README
- 过滤DEBUG系统日志以避免性能不佳 #188
- 将日志级别从INFO更改为DEBUG #188
1.0.6
功能
- 添加对Linux 4.14内核的支持,包括/sys中PWM条目的新"udev"风格
- 修复由于BeagleBone Blue LED支持而导致的GPIO回归问题(问题 #178)
- 添加对PocketBeagle的支持(问题 #172)
短日志
-
Drew Fustini (39)
- 添加-Wno-unit_address_vs_reg以避免dtc警告
- 检查板是否为BeagleBone Blue或PocketBeagle
- 在访问非标准LED之前检查是否为BeagleBone Blue
- 添加GPIO回归测试 #178
- 将syslog掩码级别更改为DEBUG
- 将"Adafruit_BBIO"添加到syslog()
- 更新问题 #178的测试
- 移除PWM的极性"hack" #170
- 在设置周期后移动pwm_set_polarity()
- 为问题 #170添加测试
- 仅当不使用 u-boot 重叠层时检查内核重叠层
- 尝试使用 udev ecap 路径来设置 pwm 路径
- 添加对所有 BeagleBone PWM 输出的测试脚本
- 更新 PWM 测试以适用于 4.14 内核 udev 路径
- 对 pwm 调试日志进行微小更改
- 睡眠以避免 udev 竞态条件 #185
-
Mark A. Yoder (1)
- 添加了 BAT25、BAT50、BAT75、BAT100 和 WIFI LED
-
Peter Lawler (1)
- 缺少回车换行符
-
Robert Nelson (10)
- source/common.c: 添加初始 PocketBeagle 值
- source/common.c: PocketBeagle,没有 slots 文件,一切内置
- source/common.c: PocketBeagle,没有 slots 文件在此也禁用
- source/c_pwm.c: HACK: U-Boot 预先设置一切,不要搜索特定重叠层
- source/c_pwm.c: HACK: PocketBeagle:v4.14.x
- source/c_pwm.c: debug pwm_path/pwm_path_udev
- source/c_pwm.c: pwm:添加对 pwmchipX/pwm-X:Y 语法的支持
- source/c_pwm.c: 禁用 pwm_set_polarity(在 v4.9.x/v4.14.x 中损坏)
- source/common.c: 修正 Blue Fix GP0_3 id
- source/common.c: 修正 PocketBeagle Fix P2.24
1.0.5
-
@pdp7 (5)
- 合并来自 MarkAYoder/master 的 pull request #153
- 修正打印语法以避免 python3 错误
- 合并来自 MarkAYoder/master 的 pull request #160
- 说明如何读取 QEP1
- 更新 rotary-encoder-eqep-test.md
-
@MarkAYoder (20)
- 让 GP0_1 工作
- 移除 --force 以加快速度
- 添加 GP0 1、2 和 3
- 闪烁 4 个 LED
- 与按钮一起工作
- 闪烁红绿 LED
- 闪烁所有 6 个 GPIO
- 添加红绿 LED
- i2c 工作
- PWD 尚未工作
- 添加端口设置
- 切换到 apt install
- 添加 tmp101 到名称
- 添加 LED 矩阵示例
- 从打印中移除换行符
- 添加淡入淡出效果
- 添加 uart1 的 GPIO 定义
- 测试 UT1_0,尚未工作
- 将 GP0_0 切换到 GP0_3 等。
- 添加 PAUSE 和 MODE 按钮。
1.0.4
-
@djsutton (1)
- 修复 wait_for_edge 中 TypeError:函数需要精确 3 个参数(给出 2 个)的错误
-
@pdp7 (29)
- 指示用户打开 GitHub 问题而不是发电子邮件
- 添加 udev 规则和脚本以实现非 root 访问 gpio
- 修复 gpio_set_value() 中的文件描述符泄露
- 说明如何测试所有 GPIO 引脚的读写
- 将 pytest 中的 ADC 读取从 10,000 减少到 1,000
- 关闭文件描述符以避免泄露
- 移除 ctrl_dir 和 ocp_dir 大小的条件逻辑
- 增加 ctrl_dir 和 ocp_dir 的大小以供将来使用
- 记录如何在引导时运行 config-pin
- 记录如何测试与旋转编码器的 eQEP
- 为读取 eQEP 添加 Encoder 模块框架
- 从 PyBBIO.RotaryEncoder 添加 Encoder.QEP 代码
- 从 PyBBIO.RotaryEncoder 适配代码
- 添加旋转编码器的测试
- 从 eqep 位置文件读取
- 从 getPosition() 返回位置
- 记录如何启用所有 eqep 引脚
- 记录如何测试旋转编码器与 eqep 引脚
- 运行 config-pin 以设置 qep 的引脚复用
- 更新 QEP 测试
- 更新 QEP 测试以修复问题 #122
- 测试内核是否带有 u-boot 重叠层启动
- 检查内核命令行是否为 uboot 重叠层
- 添加有关 u-boot 重叠层的文档
- 当 u-boot 重叠层启用时返回 BBIO_OK
- 移除调试打印
- 如果 u-boot 重叠层启用,则跳过检查已加载设备树
- 在加载 ADC 重叠层后睡眠以允许驱动程序加载
- 直到修复 TIMERn 错误为止,作为测试失败的解决方案
-
@ltjax (3)
- 使用查找表以防止重复导出引脚
- 处理已导出的引脚
- 修复 build_path 内存泄露
-
@Vadim-Stupakov (1)
- 修复问题 #145 GPIO 库不释放 GPIO 文件描述符。文件描述符泄露。进行了一些重构
-
@cocasema (8)
- 在根 Makefile 中声明 PHONY 目标
- 将 BBIO_err 提取到单独的头文件中
- 添加 syslog 和调试消息
- 添加包含 PWM/GPIO C++ 封装的 libadafruit-bbio
- 添加具有 c++98 和 c++11 abi 的库的两个版本
- 正确安装头文件
- 向 pwm::start() 方法添加默认值。
- 添加 PWM C++ 测试
-
@zsserg (2)
- 在 gpio.setup() 中添加了设置引脚方向的错误检查(Python)
- 添加了 set_pin_mode() 的调试输出
1.0.3
- 将 -Wno-strict-aliasing 添加到 CFLAGS 中以忽略 gcc 警告
- 解决 GitHub 问题 #133,由 @archey 提出
1.0.2
- 合并拉取请求 #130 从 adafruit/issue129-usr-leds [1439133]
- 添加对替代 USR LED 标签的支持
- 合并拉取请求 #131 从 adafruit/fix-gcc-warnings [f0ee018]
- 修复 gcc 警告
- 合并拉取请求 #132 从 buckket/setup_unicode_fix [4c67dfc]
- 在 setup.py 中使用 io.open() 并显式文件编码
1.0.1
- 合并拉取请求 #124 从 jpbarraca/master [cf9771a]
- 为 wait_for_edge 添加超时支持(替代 PR #62)
- 合并拉取请求 #123 从 bubbapizza/master [8b4f7f2]
- 为 GPIO.setup() 添加延迟参数以处理 udev 权限
- 合并拉取请求 #121 从 dengber/master [50e8883]
- ADC.read() 返回错误值
- 合并拉取请求 #64 从 olegantonyan/master [d1e8dc1]
- 等待 GPIO 文件出现在 /sys 文件系统上(问题 #36)
- 合并拉取请求 #106 从 cocasema/master [12b79d7]
- 将警告视为错误
- 合并拉取请求 #119 从 JesseMcL/pr [e7e987a]
- 添加 GPIO 拉起配置,并修复在内核 4.1+ 上的 PWM 死机问题
- 合并拉取请求 #116 从 kozga/master [1b04cdf]
- 修复 SPI: IOError: [Errno 22] 无效参数 在 xfer 和 xfer2 函数中…
1.0.0
- 合并拉取请求 #108 从 MatthewWest 为 Linux 内核 4.1+ 中的 PWM 支持提供支持
- 合并拉取请求 #96 从 PeteLawler 为 Linux 内核 4.1+ 中的 ADC 支持提供支持
- 最终发布新版本到 PyPi
- 增加主版本号以表示自上次发布以来的长时间
0.0.30
- 合并来自 Github 用户 westphahl 的 Python 3 兼容性修复
- 将 setup.py 中缺失 py_compile 的旧 Angstrom 构建 fix 移动到单独的文件
0.0.20
- 修复 SPI 未能根据加载顺序正确加载 spidevX.X 的问题
- 在 unload_device_tree #63 中初始化 ctrl_dir
- 清理未使用/已废弃的代码
0.0.19
- 修复 SPI.xfer 导致 python 在 3 次调用后崩溃的问题
- 添加重试读取,以避免在两个模拟输入之间来回读取时导致资源在每 16 次扫描时不可用(zthorson)
- 更新 build_path 以使其在选择路径时更加挑剔(zthorson)
- 更新 README 中的 Debian 安装说明(justinledwards)
- 增加用于存储设备树名称的缓冲区大小(SaintGimp)
0.0.18
- UART - 包含 UART 覆盖,并在安装时编译
- UART - 重命名 UART 覆盖
- Adafruit_I2C - 删除 readU16Rev 和 readS16Rev
- Adafruit_I2C - 更新 readU16/readS16 以进行正确的 16 位读取
0.0.17
- 修复 SPI 内存泄漏
- 清理 PWM 代码(bit-hacker,jwcooper)
- 删除 UART 调试语句
0.0.16
- 将极性作为 PWM.start() 的可选第四个参数。有效值是 0 和 1。默认值仍然是 0。
- 修复在 start 中实际设置极性的问题。
- 添加新的单元测试以检查极性是否被正确设置,并传递了有效值。
0.0.15
- 修复 PWM 负载周期,使 0 为关闭,100 为开启。默认极性设置为 0。
- 在 export 和 unexport 函数中为超过 2 位的 gpio 提供额外的缓冲空间(Chris Desjardins)
- 为 3 位数 gpio 添加新的测试用例(Chris Desjardins)
- 修复 test_direction_readback。gpio_get_direction 没有正确地 null 终止方向字符串(Chris Desjardins)
0.0.14
- 修复 GPIO.gpio_function 以与 IO 名称一起工作(zthorson)
- 修复在将覆盖加载到设备树时,fopen 失败时未引发 IOErrors(bradfordboyle,jwcooper)
- 添加新的 UART 测试
0.0.13
- 从回调中删除 gpio 参数(cdesjardins)
0.0.12
- 由于 PyPi 问题而增加版本号
0.0.11
- 新的 UART 模块用于导出 UART 覆盖
- 对 SPI 的 alpha 支持
- 在加载任何设备树覆盖后添加小的延迟
0.0.10
- 修复事件检测代码的方向
- 修复在 add_event_detect 上的段错误
0.0.9
- 修复 ADC 段错误
0.0.8
- 临时移除覆盖编译。Ubuntu 失败。
0.0.7
- 重构并清理 adc 和 pwm
- 修复 Adafruit_BBIO 重命名后的测试
0.0.6
- 将 Adafruit_I2C.py 包含为顶层模块
0.0.5
- 将 BBIO 重命名为 Adafruit_BBIO 以减少库冲突和混淆。
0.0.4
- 支持 pip 和 easy_install
0.0.3
- ADC 已启用
0.0.2
- PWM 已启用
0.0.1
- 初始提交
- GPIO 主要功能正常
- 初始 GPIO 单元测试
- PWM 进行中
项目详情
Adafruit_BBIO-1.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5edcb8abd32b5f78365f6131f1d24cd78c419d60f469fc828518688cf39fdbad |
|
MD5 | 0a5e6883af4341bbb40a8e5f3c960ff2 |
|
BLAKE2b-256 | 19db0d7afa47b97bb3786b564032fe56b0cf2bf7537ef96c24ae1d95fa4c54e9 |