开发
该项目的 GitHub 主仓库位于
https://github.com/gpiozero/gpiozero
对于任何希望参与该项目的人,我们建议首先熟悉一些简单的设备类。选取 LED 这样的类,然后按照其继承顺序回溯到 DigitalOutputDevice。然后再追溯到 OutputDevice,这 样你就能很好地理解简单的输出设备,并掌握 GPIO Zero 如何在很大程度上依赖继承来完善设备的功能。输入设备以及更复杂的设备(复合设备和基于 SPI 的设备)也可以采用同样的方法。
开发安装
如果您希望自行开发 GPIO Zero,我们建议您通过克隆 GitHub 代码库获取源代码,然后使用 Makefile 的 "develop" 目标,该目标会将软件包安装为指向克隆代码库的链接,从而实现就地开发(它还会生成一个标签文件,以便与 vim/emacs 和 Exuberant 的 ctags 工具配合使用)。下面的示例在虚拟 Python 环境中演示了这种方法:
sudo apt install lsb-release build-essential git exuberant-ctags \
virtualenvwrapper python-virtualenv python3-virtualenv \
python-dev python3-dev
安装 virtualenvwrapper 后,你需要重启 shell 才能正确执行 mkvirtualenv 等命令。重启 shell 后,请继续:
cd
mkvirtualenv -p /usr/bin/python3 gpiozero
workon gpiozero
git clone https://github.com/gpiozero/gpiozero.git
cd gpiozero
make develop
您可能希望在虚拟环境中安装一个或多个引脚实现(如果不安装,GPIO Zero 将使用 "原生" 引脚实现,该引脚在现阶段可用,但不支持 PWM 等功能):
pip install rpi.gpio pigpio
如果您使用的是 SPI 设备,您可能还希望安装 spidev 软件包,以提供硬件 SPI 功能(同样,GPIO Zero 在不安装此软件包的情况下也能正常工作,但会使用一个会限制带宽的庞大软件 SPI 实现):
pip install spidev
将 git 中的最新改动提取到克隆中并更新安装:
workon gpiozero
cd ~/gpiozero
git pull
make develop
deactivate
rmvirtualenv gpiozero
rm -rf ~/gpiozero
构建文档
如果你想构建文档,还需要一些依赖项。Inkscape 用于将 SVG 转换为其他格式,Graphviz 用于渲染某些图表,而 TeX Live 则是构建 PDF 输出所必需的。以下命令应能安装所有需要的依赖项:
sudo apt install texlive-latex-recommended texlive-latex-extra \
texlive-fonts-recommended texlive-xetex graphviz inkscape \
python3-sphinx python3-sphinx-rtd-theme latexmk xindy
安装完成后,就可以使用 "doc" 目标来构建文档了:
workon gpiozero
cd ~/gpiozero
make doc
HTML 输出将写入 build/html,而 PDF 输出将写入 build/latex。