具有可编程 IO 引脚的控制板的通用 API。
项目描述
Pingo 为 Raspberry Pi、BeagleBone Black、pcDuino 等设备编程提供统一的 API,就像 Python DBAPI 为 Python 中的数据库编程提供统一的 API 一样。
API 是面向对象的,但易于使用:板是Board子类的实例。每块板都有一个名为pin的字典,其中列出了板上的所有 GPIO 管脚。每个引脚都是Pin子类的一个实例,您可以检查这些属性以了解其功能。
Pingo这个名字是对Garoa Hacker Clube的致敬,该项目是从那里开始的(pingo和garoa这两个词在葡萄牙语中是相关的)。对于我们说英语的朋友,我们喜欢说它的意思是“别针,走!” – 这个包的主要目的。
基本用法
要使用pingo,第一步是建立一个具体的Board。每个 Pingo 驱动程序都是一个具体的板,例如,pingo.rpi.RaspberryPi和pingo.arduino.ArduinoFirmata就是两个这样的板。
在最常见的情况下,Pingo 可以自动检测电路板。如果它在受支持的板上运行,则 pingo.detect.MyBoard() 会返回正确的板实例。如果 Pingo 在不受支持的机器上运行(例如,运行 GNU/Linux 的 PC),它将尝试通过 USB 使用 Firmata 协议查找远程 Arduino,如果成功,将返回pingo.arduino.ArduinoFirmata实例。
一旦你有了一个板实例,就可以通过board.pins字典访问它的引脚。
import pingo
from time import sleep
board = pingo.detect.MyBoard()
led_pin = board.pins[13]
led_pin.mode = pingo.OUT
while True:
led_pin.hi()
sleep(1)
led_pin.lo()
sleep(1)
驱动程序
pingo.udoo.udoo pingo.arduino.yun是驱动的例子,Udoo和YunBridge分别扩展了pingo.board.Board接口类。
下表列出了当前计划或正在开发的驱动程序。
木板 |
类型 |
模块/封装 |
地位 |
笔记 |
---|---|---|---|---|
Arduino 固件 |
偏僻的 |
Arduino |
1级 |
需要任何 Arduino 板上的固件协议 |
阿杜诺云 |
在船上 |
实验。 |
需要Arduino Yún 上的Bridge 草图 |
|
TI BeagleBone 黑色 |
在船上 |
bbb |
实验。 |
|
Cubietech立方体板 |
在船上 |
没有任何 |
||
幻想曲 |
伪造的 |
鬼 |
1级 |
不是真正的板子,只是用于测试的假软件 |
SolidRun 蜂巢板 |
在船上 |
没有任何 |
||
英特尔伽利略 |
在船上 |
伽利略 |
没有任何 |
|
德州仪器 MSP430 |
偏僻的 |
没有任何 |
需要任何 MSP430 板上的固件协议 |
|
LinkSprite pcDuino |
在船上 |
个人电脑 |
1级 |
|
element14 树莓派 |
在船上 |
rpi |
0级 |
需要树莓派上的RPi.GPIO |
山高 UDOO |
在船上 |
乌杜 |
0级 |
驱动程序类型
- 在船上
Pingo 和用户代码使用安装在其中的 Python 解释器在板上运行。
- 偏僻的
Pingo 和用户代码在连接到电路板的主机上运行,远程控制电路板。适用于无法运行 Python 的板,例如 Arduino UNO。
- 伪造的
Pingo 和用户代码在主机计算机上运行,在软件中模拟一个虚拟板。用于测试board.py中的基类以及教学和演示。
司机状态
- 0级
数字 I/O:获取/设置数字引脚的高/低状态(不支持 PWM)。
- 1级
模拟输入:从模拟引脚读取值。
- 2级
PWM 输出:为具有 PWM 功能的数字引脚设置可变值。
- 实验
该板已经完成了一些 Python 实验。请参阅实验/目录以获取可能有助于为电路板启动新驱动程序的代码。
- 没有任何
什么都没做。您有很好的机会通过实验做出贡献和/或开始一个新的驱动程序。