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

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
 
(17 revisões intermediárias por um outro usuário não estão sendo mostradas)
Linha 1: Linha 1:
[[Arquivo:Pingo-logo-300x472.png|200px|right]]
+
[[Arquivo:Pingo-logo.svg|125px|right]]
   
'''Pingo''' pretende ser API universal (!) para programação de alto nível de placas com pinos de entrada e saída programáveis, como [[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"'''.
   
  +
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].
=== Blink ===
 
  +
  +
== Descrição ==
  +
  +
No Pingo, cada placa é uma subclasse de <code>pingo.Board</code>. Para conhecer os pinos GPIO
  +
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)
 
Este exemplo faz um led piscar em um Raspberry Pi (como no sketch Blink do Arduino)
Linha 10: Linha 26:
 
from time import sleep
 
from time import sleep
 
 
placa = pingo.rpi.RaspberryPi() # *
+
placa = pingo.rpi.RaspberryPi() # <--
pino_led = placa.pins[11]
+
led = placa.pins[11]
pino_led.set_mode(pingo.OUTPUT)
+
led.mode = pingo.OUT
 
while True:
 
while True:
pino_led.high()
+
led.high()
 
sleep(1)
 
sleep(1)
pino_led.low()
+
led.low()
 
sleep(1)
 
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.
+
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.
   
== Repositórios ==
+
== Veja também ==
   
- repositório principal: https://github.com/garoa/pingo
+
- 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 38: Linha 60:
 
- 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: Arduino]]
 
[[Categoria: Mini PC]]
 
[[Categoria: Mini PC]]
 
[[Categoria: IoT]]
 
[[Categoria: IoT]]
 
[[Categoria: Turing Clube]]
 
[[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/