跳转到主要内容

用于控制piBrella Raspberry Pi附加板的模块

项目描述

piBrella

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

安装

简单方法

我们创建了一个超级简单的安装脚本,它会安装所有先决条件,并让您快速将piBrella启动并运行。要在Raspberry Pi桌面上运行它,请启动终端,您可以在菜单 -> 附件 -> 终端找到它,如下所示

Finding the terminal

在新的终端窗口中,键入以下内容并按照说明操作

curl -sS get.pimoroni.com/pibrella | bash

如果您选择下载示例,您可以在 /home/pi/Pimoroni/pibrella 中找到它们,但您也可以在: examples 中查看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

使用方法

piBrella依赖于RPi.GPIO > 0.5.4,这需要root权限来访问您的GPIO。较新版本不需要此要求,因此您可以尝试使用和不用'sudo',看看哪个对您适用。

如果您正在使用交互式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.light.red.blink(ON_TIME, OFF_TIME)

还有更多令人兴奋的功能

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) # From 0 to 100% in 2 seconds

输入和输出

输入和输出集合对应于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.a.read()

或者将所有输入读取到一个字典中

inputs = pibrella.input.read()
input_a = inputs['a']

按钮

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("You pressed the button!")

pibrella.button.pressed(button_pressed)

pibrella.pause()

包含在pibrella.pause()命令中是为了防止您的程序立即退出,因为事件是在后台处理的,否则就没有什么可以让您的程序忙碌。

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

def button_changed(pin):
    if pin.read() == 1:
        print("You pressed the button!")
    else:
        print("You released the button!")

pibrella.button.changed(button_changed)

pibrella.pause()

如果您想在按钮按下时打开灯光,您的代码应该类似于以下这样

import pibrella

def button_changed(pin):
    pibrella.light.red.write(pin.read())

pibrella.button.changed(button_changed)

pibrella.pause()

就这样,在5行代码中,您就起步了事件驱动编程!

快速参考

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

pibrella.light[0]        # By index
pibrella.light['red']    # By name, for use with a variable
pibrella.light.red       # By name

您也可以一次引用整个集合,只需省略索引或名称即可

pibrella.light

帮助文本

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

pibrella.lights

或者,然后您将获得支持名称的列表。

灯光

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

.on()       # Turn a light on
.off()      # Turn a light off
.high()     # Same as on
.low()      # Same as off

.toggle() # Toggle a lights status from on to off and off to on
# If lights are pulsing/blinking toggle will always turn them off

.pulse( transition_on, transition_off, time_on, time_off )    # Pulse a light, values in seconds
.blink( time_on, time_off )     # Blink a light, values in seconds
.write( value )                 # Turn on if value = 1, or off if value = 0

输出

输出可以做灯光能做的一切,除了名称外它们是相同的!

输入

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

通用

pibrella.pause() # Wrapper for signal.pause(), great for pausing your application after calling blink, pulse or loop

pibrella.loop( function_name )  # Pass pibrella a function to run over and over again, asyncronously
# You must call pibrella.pause() after giving it a function to loop, or your code will simply exit!

变更日志

1.4.1

  • Python 3的修复
  • 使用setup.cfg重新打包

1.4.0

  • 首次发布到apt

1.3.1

  • 修复了Manifest

1.3.0

  • 重新结构化库,以包括Pibrella包中的pins/main代码
  • 修复了对记号的支持,以便音符能够正确播放

1.2.0

  • 显著版本升级,以突出推出生产/稳定状态
  • 小幅调整,以允许使用with,例如:“with pibrella.light.red as red:”

1.1.7

  • 在播放旋律后固定蜂鸣器停止
  • 包装了更改/按下/释放的功能,以便可以同时注册
  • 为引脚集合添加了"len",以支持random.choice(pibrella.light)
  • 添加了在没有root权限运行时的错误

1.1.6

  • 填充了LICENSE.txt

1.1.5

  • 将琥珀色重命名为黄色,并添加了向后兼容的别名支持
  • 添加了灯、输入、输出和引脚作为light、input等的复数别名
  • 调整了在脉冲/闪烁期间如何处理对灯/输出的开关/切换调用

1.1.4

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

1.1.3

  • 内置异步警报声音!pibrella.buzzer.alarm()
  • 将xrange替换为range

1.1.2

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

1.1.1

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

1.1.0

  • 删除了.all.关键字,使用pibrella.input.read()代替pibrella.input.all.read()
  • 添加了列出引脚的辅助程序,尝试:在交互式shell中pibrella.input
  • 为引脚集合添加了['name']和[idx]支持,尝试:pibrella.input[0] pibrella.input['a']
  • 将蜂鸣器添加到pibrella.pin
  • 大多数方法添加了返回值

1.0.0

  • 初始开发/测试版发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pibrella-1.4.1.tar.gz (18.3 kB 查看哈希值)

上传时间:

构建分布

pibrella-1.4.1-py3-none-any.whl (13.4 kB 查看哈希值)

上传时间: Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面