Mudanças entre as edições de "Pingo"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
 
(29 revisões intermediárias por um outro usuário não estão sendo mostradas)
Linha 1: Linha 1:
  +
[[Arquivo:Pingo-logo.svg|125px|right]]
'''Pingo''' é uma API universal (!) para programação de alto nível de placas com pinos de entrada e saída programáveis, como o Raspberry Pi, BeagleBone Black, Arduino Yún, Intel Galileo etc. O nome é uma homenagem ao '''Garoa Hacker Clube''' e também pode ser lido em inglês como '''"pin go"'''.
 
   
 
'''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"'''.
>>> from time import sleep
 
>>> import pingo
 
>>>
 
>>> board = pingo.rpi.RaspberryPi()
 
>>> board.pins[11]
 
<DigitalPin #11>
 
>>>
 
>>> led_pin = board.pins[11]
 
>>> led_pin.mode = pingo.OUTPUT
 
>>> led_pin.state = 1
 
>>> led_pin.state
 
1
 
>>> sleep(1) # 1 second
 
>>> led_pin.state = 0
 
>>> led_pin.state
 
   
  +
Esta página é apenas uma breve introdução ao projeto. A documentação oficial em inglês fica em [http://www.pingo.io/ Pingo.io].
   
== Repositórios ==
+
== Descrição ==
   
  +
No Pingo, cada placa é uma subclasse de <code>pingo.Board</code>. Para conhecer os pinos GPIO
- repositório principal: https://github.com/garoa/pingo
 
  +
disponíveis em um Raspberry Pi, o usuário acessa <code>RaspberryPi.pins</code>: um
  +
dicionário que associa identificadores a objetos <code>Pin</code>. A sub-classe de
  +
<code>Pin</code> (<code>DigitalPin</code>, <code>AnalogPin</code>, <code>VccPin</code> etc.) informa a função do pino, como ele pode ser
  +
usado, e oferece os métodos necessários, por exemplo, <code>pin.high()</code>,
  +
<code>pin.low()</code>, <code>pin.toggle()</code> para controlar a tensão em um pino digital. O
  +
método <code>pin.flash(interval, [duration_high])</code> inicia uma thread para
  +
alternar o estado do pino automaticamente. Pinos <code>DigitalPwmPin</code> e
  +
<code>AnalogPin</code> 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 <code>&lt;--</code>, 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 ===
 
=== Repositórios de projetos que podem ser úteis ===
Linha 34: Linha 59:
   
 
- BoneScript: https://github.com/jadonk/bonescript
 
- BoneScript: https://github.com/jadonk/bonescript
  +
  +
- WebIOPi 0.7 - Internet of Things framework (Python) https://code.google.com/p/webiopi/
  +
  +
[[Categoria: Pingo]]
  +
[[Categoria: Arduino]]
  +
[[Categoria: Mini PC]]
  +
[[Categoria: IoT]]
  +
[[Categoria: Turing Clube]]
  +
[[Categoria:Python]]

Edição atual tal como às 05h22min de 23 de agosto de 2015

Pingo-logo.svg

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/