跳转到主要内容

用于控制探索者HAT树莓派附加板的模块

项目描述

Pibrella

Pibrella附加板的代码和API库的支持。

安装

简单方法

Python 3

sudo apt-get install python3-pip sudo pip-3.2 install pibrella

Python 2

sudo apt-get install python-pip sudo pip install pibrella

替代方法

或者,您可以克隆此存储库并安装

git clone http://github.com/pimoroni/pibrella cd pibrella sudo python setup.py install

尝试示例

git clone http://github.com/pimoroni/pibrella cd pibrella/examples sudo python siren.py

使用方法

以root身份运行!

Pibrella依赖于RPi.GPIO > 0.5.4,这需要root访问您的GPIO。

如果您正在使用交互式shell,您应该:sudo python -i,否则sudo python yourscript.py

第一步

要开始,您需要导入pibrella。简单

import pibrella

这将为您设置GPIO,并将Pibrella的所有输入和输出收集到一些便于命名的对象中。

例如,如果您想打开一个LED,您可以

pibrella.light.red.on()

再次关闭它

pibrella.light.red.off()

Pibrellas集合(lights,inputs,outputs)还允许您同时控制一组事物。要关闭所有LED,您可以简单地

pibrella.light.off()

或开启

pibrella.light.on()

闪烁和脉冲LED

灯光不仅仅是为了开和关。任何好的照明显示都需要脉冲、淡入淡出、闪烁和频闪。Pibrella也提供了这些功能。

控制Pibrella的红色灯光闪烁:pibrella.light.red.blink(ON_TIME, OFF_TIME)

还有更多令人兴奋的功能

控制Pibrella的红色灯光脉冲:pibrella.light.red.pulse(FADE_IN_TIME, FADE_OUT_TIME, ON_TIME, OFF_TIME)

细心的观察者会意识到这些是等价的

pibrella.light.red.pulse(0, 0, 1, 1) pibrella.light.red.blink(1, 1)

您还可以使LED从一种亮度渐变到另一种亮度,例如

pibrella.light.red.fade(0, 100, 2) # 在2秒内从0到100%

输入和输出

输入和输出集合对应于Pibrella的4个输入和4个输出引脚。这些输入用a、b、c、d命名,输出用e、f、g、h命名 - 您可以在板上看到这些标签。

要打开输出“e”,您可以

pibrella.output.e.on()

您也可以显式写入一个值(1是开/高,0是关/低)

pibrella.output.e.write(1)

这在您想程序化地切换引脚的开/关,或将输入值直接写入输出时很有用。

如果您愿意,可以同时写入整个输出集合

pibrella.output.write(1)

输入类似,只是您是在读取它们而不是打开或关闭它们。要读取单个输入

my_value = pibrella.input.e.read()

或读取所有输入到字典中

inputs = pibrella.input.read() input_e = inputs[‘e’]

按钮

从所有目的来看,Pibrella按钮只是另一个输入。然而,它启用了下拉电阻以防止将其作为按钮点击读取随机电气波动。

与输入类似,您可以在任何时间读取按钮状态

pibrella.button.read()

蜂鸣器

蜂鸣器只是另一个输出。然而,仅仅打开和关闭它并不能让您得到比一个简单的响声更多,它需要快速切换以产生连续的音调。我们为此提供了函数。

首先,您可以以特定的频率蜂鸣

pibrella.buzzer.buzz(frequency)

或播放音符(您可以在这里使用正数和负数,0表示440Hz的A音)

pibrella.buzzer.note(1)

或播放内置音调

pibrella.buzzer.fail() pibrella.buzzer.success()

处理事件

如果您想捕获输入状态的改变并运行特定函数,您可以在任何输入或按钮上使用changed、pressed和released。Changed将在引脚从1(高/开)变为0(低/关)或反之亦然时触发。Pressed将在它从0变为1时触发,而Released则在它从1变为0时触发。

例如

def button_pressed(pin)

print(“您按下了按钮!”)

pibrella.button.pressed(button_pressed)

按钮按下函数的“pin”参数是触发事件的Pibrella引脚,在这种情况下“pin”将等于“pibrella.button”,因此您可以.read()它。

def button_changed(pin)
if pin.read() == 1

print(“您按下了按钮!”)

else

print(“您释放了按钮!”)

pibrella.button.changed(button_changed)

如果您想在按钮按下时打开灯光,则您的代码应类似于以下内容

import pibrella

def button_changed(pin)

pibrella.light.red.write(pin.read())

pibrella.button.changed(button_changed)

并且仅用4行代码,您就入门了事件驱动编程!

快速参考

Pibrella的所有输入、输出和灯光都存储在集合中。您可以通过以下三种方式通过名称或索引引用引脚

pibrella.light[0] # 通过索引 pibrella.light[‘red’] # 通过名称,用于变量 pibrella.light.red # 通过名称

您还可以同时引用整个集合,只需省略索引或名称即可

pibrella.light

帮助文本

Pibrella有一些内置的帮助。如果您想知道灯光、输入或输出的名称,只需输入

pibrella.lights

或任何其他内容,您将获得支持名称的列表。

灯光

以下方法适用于每个Pibrella灯光

.on() # 打开灯光 .off() # 关闭灯光 .high() # 与on相同 .low() # 与off相同

.toggle() # 切换灯光状态,从开启到关闭,从关闭到开启 # 如果灯光正在闪烁/闪烁,则切换始终关闭灯光

.pulse(transition_on, transition_off, time_on, time_off) # 使灯光闪烁,值以秒为单位 .blink(time_on, time_off) # 使灯光闪烁,值以秒为单位 .write(value) # 如果value = 1则开启,如果value = 0则关闭

输出

输出可以做灯光能做的任何事情,它们在名称之外都是相同的!

输入

以下方法适用于每个Pibrella输入

通用

pibrella.pause() # 对signal.pause()的包装,非常适合在调用blink、pulse或loop后暂停您的应用程序

pibrella.loop(function_name) # 向pibrella传递一个要反复运行的函数,异步 # 您必须在使用pibrella.loop()后调用pibrella.pause(),否则您的代码将简单地退出!

变更日志

1.2

  • 重要版本升级以突出显示发布到生产/稳定状态

  • 微调以允许使用with,例如:“with pibrella.light.red as red:”

1.1.7-dev

  • 修复了蜂鸣器在播放旋律后的停止问题

  • 包装了changed/pressed/released,以便可以同时注册

  • 添加了“len”到引脚集合中,以支持random.choice(pibrella.light)

  • 添加了在没有root权限运行时的错误

1.1.6-dev

  • 填充LICENSE.txt

1.1.5-dev

  • 将琥珀色重命名为黄色,并添加了向后兼容的别名支持

  • 添加了灯光、输入、输出和引脚作为light、input等的复数别名

  • 微调了在pulse/blink期间处理lights/outputs的on/off/toggle调用

1.1.4-dev

  • 向所有输出添加了pulse()、blink()和fade()

1.1.3-dev

  • 内置异步闹钟声音!pibrella.buzzer.alarm()

  • 用range替换了xrange

1.1.2-dev

  • 添加了对REV 1 Raspberry Pi的支持

1.1.1-dev

  • 为灯光添加了fade(from,to,duration)

1.1-dev

  • 移除了.all.关键字,请使用pibrella.input.read()代替pibrella.input.all.read()

  • 添加了列出引脚的帮助器,尝试:在交互式shell中pibrella.input

  • 添加了对[‘name’]和[idx]对引脚集合的支持,尝试:pibrella.input[0] pibrella.input[‘a’]

  • 向pibrella.pin添加了蜂鸣器

  • 大多数方法都添加了返回值

1.0-dev

  • 初始开发/测试版发布

项目详细信息


由以下组织支持