Pingo
Pingo pretende ser API universal (!) para programação de alto nível de placas com pinos de entrada e saída programáveis, como Arduino, Raspberry Pi, pcDuino, UDOO, BeagleBone Black etc. O nome é uma homenagem ao Garoa Hacker Clube e também pode ser lido em inglês como "pin go".
Esta página é apenas uma breve introdução ao projeto. A documentação oficial em inglês fica em Pingo.io.
Descrição
No Pingo, cada placa é uma subclasse de pingo.Board. Para conhecer os pinos GPIO
disponíveis em um Raspberry Pi, o usuário acessa RaspberryPi.pins: um
dicionário que associa identificadores a objetos Pin. A sub-classe de
Pin (DigitalPin, AnalogPin, VccPin etc.) informa a função do pino, como ele pode ser
usado, e oferece os métodos necessários, por exemplo, pin.high(),
pin.low(), pin.toggle() para controlar a tensão em um pino digital. O
método pin.flash(interval, [duration_high]) inicia uma thread para
alternar o estado do pino automaticamente. Pinos DigitalPwmPin e
AnalogPin também terão APIs de alto nível.
Leia mais em http://www.pingo.io/docs/ (em inglês).
Exemplo: blink.py
Este exemplo faz um led piscar em um Raspberry Pi (como no sketch Blink do Arduino)
import pingo
from time import sleep
placa = pingo.rpi.RaspberryPi() # <--
led = placa.pins[11]
led.mode = pingo.OUT
while True:
led.high()
sleep(1)
led.low()
sleep(1)
Para fazer o mesmo programa funcionar em um Arduino Yún, BeagleBone Black, pcDuino ou em qualquer outra placa suportada, basta trocar o nome da placa na linha assinalada com <--, e alterar o número do pino linha seguinte, caso necessário.
Veja também
- repositório principal: https://github.com/pingo-io
- documentação oficial (em inglês): http://www.pingo.io/docs/
- slides: https://speakerdeck.com/ramalho/programando-gpio-com-python-e-pingo
- demonstração Pingo/IoT Roadshow
Repositórios de projetos que podem ser úteis
- RPi.GPIO, para programar pinos GPIO do Raspberry Pi (Python): http://sourceforge.net/projects/raspberry-gpio-python/
- Breakfast Serial, para controlar remotamente um Arduino via Firmata (Python): https://github.com/theycallmeswift/BreakfastSerial
Repositórios de projetos de referência
- Noduino: https://github.com/semu/noduino
- BoneScript: https://github.com/jadonk/bonescript
- WebIOPi 0.7 - Internet of Things framework (Python) https://code.google.com/p/webiopi/