用于控制piBrella Raspberry Pi附加板的模块
项目描述
piBrella
piBrella附加板的代码和支持API库。
安装
简单方法
我们创建了一个超级简单的安装脚本,它会安装所有先决条件,并让您快速将piBrella启动并运行。要在Raspberry Pi桌面上运行它,请启动终端,您可以在菜单 -> 附件 -> 终端找到它,如下所示
在新的终端窗口中,键入以下内容并按照说明操作
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 22b0fdf71a90882038c10f318fb3883ca9ff8d1c6b63cf003186711c60abfa32 |
|
MD5 | 11ba53b62b1dd32f3b792b7d2ae912a5 |
|
BLAKE2b-256 | a3feee83e8d24649cdc7210c984f63e3dc398f4c5d5010518e73edd3a5b01892 |
pibrella-1.4.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2fef2e1078b3140bc1fefbb909d7802b7d5a62b79e2c9afc659fca98ed254eb5 |
|
MD5 | 773720e8b1061db5a78902b0e2613dc4 |
|
BLAKE2b-256 | 8fbd4b895beb890fef610e3fbd8b6d17215adb015eba05f49e432c8bfc8d88c8 |