Generic API to control boards with programmable IO pins.
Project description
Pingo provides a uniform API to program devices like the Raspberry Pi, BeagleBone Black, pcDuino etc. just like the Python DBAPI provides an uniform API for database programming in Python.
The API is object-oriented but easy to use: a board is an instance of a Board subclass. Every board has a dictionary called pins which lists all GPIO pins on the board. Each pin is an instance of a Pin subclass with attributes that you can inspect to learn about its capabilities.
The name Pingo is a tribute to Garoa Hacker Clube, where it started (Portuguese skills needed to understand the link). To our English-speaking friends we like to say that it means “pin, go!” – the main purpose of this package.
Basic usage
Blink.py on an UDOO board:
import pingo
from time import sleep
board = pingo.udoo.Udoo()
led_pin = board.pins[13]
led_pin.set_mode(pingo.OUTPUT)
while True:
led_pin.high()
sleep(1)
led_pin.low()
sleep(1)
To do the same on a Arduino Yún, just change the line were the board is instantiated, and the pin numbers as needed:
import pingo
from time import sleep
board = pingo.arduino.yun.YunBridge() # <---
led_pin = board.pins[13]
led_pin.set_mode(pingo.OUTPUT)
while True:
led_pin.high()
sleep(1)
led_pin.low()
sleep(1)
Drivers
In the examples above, pingo.udoo pingo.arduino.yun are drivers, and the respective Udoo and YunBridge are classes implementing the pingo.board.Board interface.
The following table lists the drivers currently planned or under development.
Board |
Type |
Package |
Notes |
---|---|---|---|
Arduino Firmata |
remote |
arduino.firmata |
requires firmata library on any Arduino board |
Arduino Yún |
on-board |
arduino.yun |
requires Bridge sketch on the Arduino Yún |
BeagleBone Black |
on-board |
beagle |
|
Fantasma |
mock |
ghost |
not a real board, just a mock for testing clients |
Raspberry Pi |
on-board |
rpi |
|
pcDuino |
on-board |
pcduino |
|
UDOO |
on-board |
udoo |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.