multirão python - introdução ao py serial com gtk3 e arduino

18
 Multirão Python - Introdução ao PySerial e Gtk3 com Arduino http://www.pycursos.com http://www.linuxresort.blogspot.com Antonio Thomacelli Gome [email protected] http://arduino.cc http://gtk.org http://www.pycursos.com/

Upload: antonio-thomacelli

Post on 08-Jul-2015

1.554 views

Category:

Education


1 download

DESCRIPTION

Multirão Python - Introdução ao PySerial e Gtk3 com Arduino por Antonio Thomacelli Gomes

TRANSCRIPT

Page 1: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com

Antonio Thomacelli [email protected]

http://arduino.cc http://gtk.org

http://www.pycursos.com/

Page 2: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Quem é o Arduino

O que é PySerial

Porque usar o Gtk3●

Page 3: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Arduino : Quem é ele ?

Arduino é um micro­controlador, existem diversos modelos oficiais e não oficiais.

Com ele podemos controlar um carrinho ou até mesmo alimentar seu animal de estimação a distancia ou de forma autônoma , há vários projetos desse tipo no YouTube.

A IDE do Arduino utiliza uma linguagem baseada em C++, alguns trechos foram mastigados e adaptados, pois o público alvo do Arduino, eram estilistas, etc.Como o público alvo não tinham conhecimento em informática ou eletrônica a linguagem do Arduino foi feita da forma mais fácil.

http://www.arduino.cc

Page 4: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Arduino : Programando

Requisitos mínimos para usar a IDE do Arduino é ter o java instalado e funcionando no PC.Ela roda em qualquer plataforma.Para fazer o download da IDE acesse: http://www.arduino.cc/download

Page 5: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Arduino : Programando

Dentro da IDE do Arduino temos dois corpos principais:

void setup { codigo }    Onde define os tipos de cada pinagem ou função padrão.→

void loop { codigo }   Onde sera repetido infinitamente a estrutura até ser interrompida.→

Page 6: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Arduino : Programando

LED = 13;                                             Cria uma variável com valor 13→void setup() {                                        Inicia a entrada padrão→   pinMode( LED, OUTPUT );               Define que o LED será para saída de energia OUTPUT→}                                                            Fecha a definição padrão→

void loop() {                                          Inicia o corpo para repetir infinitamente→   digitalWrite( LED, HIGH);                 Atribui a variável LED energia de 5→   Delay(1000);                                     Aguarda 1 segundo→   digitalWrite( LED, LOW);                  Retira da variável LED energia→   Delay(1000);                                     Aguarda 1 segundo→}                                                            Fecha loop infinito→

 

Page 7: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Arduino : Comunicando via Serial

LED = 13;                                             Cria uma variável com valor 13→VALOR = 0;                                          Criamos uma variável vazia→void setup() {                                        Inicia a entrada padrão→   pinMode( LED, OUTPUT );                Define que o LED será para saída de energia OUTPUT→   Serial.begin (115200);                       Inicia a comunicação Serial→}                                                            Fecha a definição padrão→

void loop() {                                          Inicia o corpo para repetir infinitamente→   VALOR = Serial.read();                     Armazena o que foi digitado dentro da variável VALOR→   If ( VALOR == '1' ){                            Se o valor digitado for 1→      digitalWrite( LED, HIGH);                Atribui a variável LED energia de 5→   }   elif ( VALOR == '2' ){                          Se o número digitado for 2→         digitalWrite( LED, LOW);              Retira da variável LED energia→   }}                                                              Fecha loop infinito→

 

Page 8: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Arduino : Comunicando via Serial ( Entendendo )

Serial.begin(115200);    Habilita o Arduino a realizar comunicação via Serial→

Serial.read()    É o comando para ler uma informação via porta serial→Serial.write()    É o comando para escrever/enviar uma informação via porta serial→

Page 9: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

PySerial : O que é ?

É uma biblioteca criada em 2006, ela foi desenvolvida para facilitar a comunicação do Python com dispositivos eletrônicos via porta Serial.

http://pyserial.sourceforge.net/appendix.html#license

Page 10: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Projetos que usam PySerialBitPim ­ crossplatform application to view and manipulate data on CDMA phones from LG, Samsung, Sanyo and other manufacturers.

RFIDIOt ­ an open source python library for exploring RFID devices (see also "RFID enabled e­passport skimming proof of concept code released (RFIDIOt)" and "Code highlights e­passport eavesdropping risk")

t616hack ­ a distribution providing access to the contacts, phonebook and messages on the Sony Ericsson T610/T616 and compatible mobile telephones

jaraco.nxt ­ a package implementing low­level API communication with the LEGO Mindstorms NXT robot kit.

Twisted ­ Uses pySerial to provide an asynchronous serial port transport which can be used like any other stream­oriented transport (eg TCP, SSL).

Fonte: http://wiki.python.org/moin/PySerial

Page 11: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

PySerial : Como instalar ?

Quem utiliza GNU\Linux, nos repositórios já existem a versão 2.6­3 para download.

Utilizando o PyPi com o comando: pip install pyserial

Page 12: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

PySerial : Ferrametas para testes

Depois que a biblioteca estiver instalada você terá adquirido o software “miniterm”. Ele estabelece a conexão em tempo real, tanto para escrita como leitura.

Page 13: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Gtk : Porque usar Gtk

Primeiro para quem não conhece Gtk é uma interface gráfica, semelhante ao Qt

Por opção pessoal preferi o Gtk pois sua documentação pareceu ser mais rica e fácil de entender

http://python­gtk­3­tutorial.readthedocs.org/

Page 14: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Gtk : Instalando

Nos repositórios GNU\Linux basta procurar pelo pacote : python­gobject

Para quem utiliza outras versões deverá utilizar o jhbuild para criar o instalador com os arquivos do Gtk3

https://live.gnome.org/PyGObject

Quem preferir pode usar o gtk2 é mais fácil, basta instalar o pygtk:

Page 15: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Gtk : Aplicação Gráfica

from gi.repository import Gtk

class FormOnOff(Gtk.Window):

 def __init__(self):   Gtk.Window.__init__(self, title="On/Off")   self.set_border_width(100)

janela = FormOnOff()janela.connect("delete­event", Gtk.main_quit)janela.show_all()Gtk.main()

 ↔

Page 16: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Gtk3 : Interface

import serialarduino = serial.Serial('/dev/ttyACM0',115200)

class FormOnOff(Gtk.Window):

   prateleira = Gtk.Table( 2, 2, True)   self.add(prateleira)

   botaoOn = Gtk.Button(label="Ligar")   botaoOn.connect("clicked", self.Ligar)   prateleira.attach( botaoOn, 0, 1, 0, 1)

   botaoOff = Gtk.Button(label="Desligar")   botaoOff.connect("clicked", self.Desligar)   prateleira.attach( botaoOff, 1, 2, 0, 1)

 def Ligar(self, button):  arduino.write('1')

 def Desligar(self, button):  arduino.write('2')

 ↔

Page 17: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Veja também::Gtk ­ http://linuxresort.blogspot.com.br/2012/08/pygtk­tutorial­parte­2.html

Gtk ­ http://linuxresort.blogspot.com.br/2012/07/pygtk­tutorial­parte­1.html

Gtk + postgres ­ http://linuxresort.blogspot.com.br/2012/10/python­gtk3­psycopg2.html

Gtk2 + Arduino ­ http://linuxresort.blogspot.com.br/2012/01/pygtk­e­arduino.html

Page 18: Multirão Python - introdução ao py serial com gtk3 e arduino

   

Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino

http://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes

Antonio Thomacelli GomesTwitter: @tonnytg / @linuxresortE­mail : [email protected]: http://www.linuxresort.blogspot.com

Contato: