跳转到主要内容

控制BeagleBone IO通道的模块

项目描述

Adafruit Beaglebone I/O Python API

Documentation Status PyPI version PyPI pyversions

Adafruit BBIO是一个API,用于从运行在Beaglebone上的Python应用程序中启用GPIOPWMADCUARTSPIeQEP(正交编码器)硬件访问。

在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_24
    • UART2:/dev/ttyO2,Rx:P9_22,Tx:P9_21
    • UART4:/dev/ttyO4,Rx:P9_11,Tx:P9_13
    • UART5:/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_32
    • PB-UART1:/dev/ttyO1,Rx:P2_11,Tx:P2_09
    • PB-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
    • 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
  • 示例
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的组所有权和权限,具体可参考GPIOPWM的配置

报告问题

在报告问题时,请运行以下脚本,该脚本将打印系统配置

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 (78.4 kB 查看哈希值)

上传时间

支持者