用于控制探索者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.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
初始开发/测试版发布