# gpiozero
樹莓派基金會的Ben Nuttal以及Dave Jones和其他貢獻者編寫的一個用來處理樹莓派GPIO設備的接口。
**樹莓派鏡像默認安裝了GPIO Zero庫,無需額外安裝**。
## About
編程了提供一個平滑的入門路徑:

```
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
```
僅需要寥寥數行代碼,就可以快速地讓不同元器件之間可以交互,比如用按鈕控制LED燈。
```
from gpiozero import LED, Button
from signal import pause
led = LED(17)
button = Button(3)
button.when_pressed = led.on
button.when_released = led.off
pause()
```
上面這7行代碼,第1、2行分別導出需要的類和函數,第5行聲明了```led```對象,第6行聲明了```button```對象,然后7、8兩行的作用分別是,按鈕按下燈亮,按鈕釋放燈就滅了。
>注意這段代碼windows平臺是不能跑的,因為沒有pause函數,必須在樹莓派上,remote gpio的形式也是不可以的。
而且gpiozero提供了一些高級的工具,比如```source tools```,可以讓我們用聲明式編程的語法來描述不同設備、元器件的行為以及他們之間的交互關系。
```
from gpiozero import LED, MotionSensor, LightSensor
from gpiozero.tools import booleanized, all_values
from signal import pause
garden = LED(17)
motion = MotionSensor(4)
light = LightSensor(5)
garden.source = all_values(booleanized(light, 0, 0.1), motion)
pause()
```
這段代碼的作用是,花園里有一盞燈,當環境光線亮度小于0.1或者有人走動的時候,燈會亮。這個代碼真的是很精簡了。
>譯注:這個```source tools```實現的十分優雅精妙,用到了組合模式應該是,用聲明式編程寫代碼結合python列表推導式的語法糖,控制多態樹莓派簡直不要太爽了。
閱讀本文檔```源/值```一章來獲取關于```source tools```的詳細介紹。
gpiozero庫包含了諸多常見元器件的接口,同時也為復雜的元器件提供了支持,比如各種傳感器,模數轉換器,全彩LED燈,機器人套件以及更多元器件、套件。
閱讀```Recipes```一章來獲取更加詳細的信息。
## 引腳工廠
GPIO Zero庫基于若干底層的樹莓派引腳庫編寫,比如RPi.GPIO和piggpio這兩個樹莓派引腳庫,各有所長。至于整個程序用同一種庫,還是不同的元器件用不同的庫,你可以按需選擇。閱讀```改變引腳工廠````一章來了解更多信息。
同時GPIO Zero庫,提供了“虛假引腳”,以方便測試,可以閱讀```虛假引腳```相關內容了解相關信息。
## 安裝
樹莓派官網[raspberrypi.org](https://www.raspberrypi.org/downloads/)的桌面版鏡像默認自帶了GPIO Zero庫。如果需要在樹莓派Raspbian Lite版本的系統或者其他操作系統安裝遠程GPIO庫,請閱讀[安裝](1)章節。
## 文檔
[https://gpiozero.readthedocs.io/](https://gpiozero.readthedocs.io/).網站上有本庫完整的文檔,如有需要可以參閱。
## 貢獻者



# 大地與星空
大地與星空公眾號講發布文檔的詳細解析。


- 簡介
- 更新樹莓派源
- GPIO Zero基礎案例
- 導入GPIO Zero庫
- 引腳編碼
- 樹莓派代碼編輯器
- LED
- 電磁繼電器
- 呼吸燈
- LED條形圖
- led條
- 交通燈
- 按鈕
- 按鈕控制LED燈
- 用按鈕控制攝像頭
- 舵機
- 關機按鈕
- 按鈕拍照
- 反應速度游戲
- 音樂盒子
- 單個按鈕控制多個元件
- 全彩燈
- 人體紅外傳感器
- 亮度傳感器
- 距離傳感器
- 馬達控制
- 機器人
- 按鈕控制機器人
- 鍵盤控制機器人
- 紅外感應機器人
- 電位器
- 用數模轉換器測量溫度
- 通過3個電位器控制全彩燈
- 時控加熱燈
- 聯網狀態指示
- CPU溫度條形圖
- 更多
- OLED屏幕
- GPIO Zero基礎案例2
- 古德微樹莓派案例
- ws2812燈帶python案例
- ads1115
- 高級秘籍
- 4 配置遠程GPIO
- 5 遠程GPIO案例
- 5.1 LED和按鈕
- 6 樹莓派Zero OTG USB數據線
- 7.數據源和值
- 微信發送疫情
- 8. 命令行工具
- 9. 常見問題
- 10. 從RPi.GPIO庫遷移到GPIO Zero
- 公眾號文章
- Python繪制疫情圖表
- 百度人工智能案例
- vscode配置樹莓派遠程開發環境
- Jupyter Notebook相關
- 樹莓派拍攝定格動畫
- oled
- 創客與音樂
- 如何入門Python
- 交通標志