SlideShare uma empresa Scribd logo
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://www.linuxresort.blogspot.com
Antonio Thomacelli Gome
tonnytg@gmail.com
http://arduino.cc http://gtk.org
http://www.pycursos.com/
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes
Quem é o Arduino
O que é PySerial
Porque usar o Gtk3
●
●
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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.→
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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→
 
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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→
 
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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→
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes
Projetos que usam PySerial
BitPim ­ 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
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes
PySerial : Como instalar ?
Quem utiliza GNULinux, nos repositórios já existem a versão 2.6­3 para download.
Utilizando o PyPi com o comando: pip install pyserial
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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.
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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/
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes
Gtk : Instalando
Nos repositórios GNULinux 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:
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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()
 ↔
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes
Gtk3 : Interface
import serial
arduino = 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')
 ↔
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://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
   
Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduino
http://www.pycursos.com
http://www.linuxresort.blogspot.com Autor: Antonio Thomacelli Gomes
Antonio Thomacelli Gomes
Twitter: @tonnytg / @linuxresort
E­mail : tonnytg@gmail.com
Blog: http://www.linuxresort.blogspot.com
Contato:

Mais conteúdo relacionado

PDF
Arduino + Python: produtividade ao extremo
PDF
Introdução a linguagem Python: simples e produtiva
PDF
Arduino: Brincando de eletrônica com Python e Hardware Livre
PDF
Desenvolvimento de aplicações embarcadas utilizando Python
PDF
Canivete python
PDF
Apresentação Python Poli
PDF
Desvendando o python
PDF
Dados tabulares: A Maneira Pythônica
Arduino + Python: produtividade ao extremo
Introdução a linguagem Python: simples e produtiva
Arduino: Brincando de eletrônica com Python e Hardware Livre
Desenvolvimento de aplicações embarcadas utilizando Python
Canivete python
Apresentação Python Poli
Desvendando o python
Dados tabulares: A Maneira Pythônica

Mais procurados (20)

PDF
Python Poli 2010
PDF
Canivete suíço do Python
PDF
Apresentacao sfd-poa
PDF
Hello, Python!
PPTX
Import python
PDF
Como tornar-se um programador Python melhor
PDF
Python - o que, porque, como e quando
PDF
Facilitando a vida com Raspberry Pi e Arduino
PPT
Python para programadores Ruby
PDF
Conhencendo Python e por que ela importa?
PDF
Python b1tch
PDF
Comsolid2011 Introdução Python
PPT
Por Que Python - #PUGCE
ODP
Raspberry Pi: o hardware para Python
PDF
Computação Visual com Python
PDF
Minicurso: Python e suas baterias incluídas
ODP
Educação Tecnológica com Raspberry Pi
PDF
Python com baterias incluídas v2.0
PDF
Introdução a Programação com Python
PPTX
Apresentação 2
Python Poli 2010
Canivete suíço do Python
Apresentacao sfd-poa
Hello, Python!
Import python
Como tornar-se um programador Python melhor
Python - o que, porque, como e quando
Facilitando a vida com Raspberry Pi e Arduino
Python para programadores Ruby
Conhencendo Python e por que ela importa?
Python b1tch
Comsolid2011 Introdução Python
Por Que Python - #PUGCE
Raspberry Pi: o hardware para Python
Computação Visual com Python
Minicurso: Python e suas baterias incluídas
Educação Tecnológica com Raspberry Pi
Python com baterias incluídas v2.0
Introdução a Programação com Python
Apresentação 2
Anúncio

Semelhante a Multirão Python - introdução ao py serial com gtk3 e arduino (20)

PDF
Introdução à Linguagem de Programação Python.pdf
PPT
O que Python pode fazer e você não sabe
PDF
PDF
Workshop: Python e Pygame para iniciantes - IFSUL Jaguarão 2022
PDF
Casa Inteligente com Python e Arduino
PDF
Flisol 2014 - Python, por onde começar?
PDF
Palestra: A Melhor Maneira de Aprender, É Fazendo!
PPTX
Plataformas atuais de sistemas embarcados para IoT
PDF
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019
PDF
python-agil-IVEnGitec
PDF
Trilha python
PDF
Criando aplicações com PHP-GTK
PPTX
My first app django
PDF
Revista Programar 42
PDF
Apresentação QtConBr
PPTX
Plataformas open-source para Internet das Coisas (IoT)
PDF
CPBR7 - Existe vida depois do Arduino?
PDF
V Pylestra - introdução ao python
PPT
Primeiros passos em Python - Tchelinux Uruguaiana 2011
Introdução à Linguagem de Programação Python.pdf
O que Python pode fazer e você não sabe
Workshop: Python e Pygame para iniciantes - IFSUL Jaguarão 2022
Casa Inteligente com Python e Arduino
Flisol 2014 - Python, por onde começar?
Palestra: A Melhor Maneira de Aprender, É Fazendo!
Plataformas atuais de sistemas embarcados para IoT
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019
python-agil-IVEnGitec
Trilha python
Criando aplicações com PHP-GTK
My first app django
Revista Programar 42
Apresentação QtConBr
Plataformas open-source para Internet das Coisas (IoT)
CPBR7 - Existe vida depois do Arduino?
V Pylestra - introdução ao python
Primeiros passos em Python - Tchelinux Uruguaiana 2011
Anúncio

Último (20)

PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PDF
Aula 3 - Mata Atlântica: Parte 2 - SEDUC/SP 2025
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PDF
Leitura obrigatória: Guia Liderança responsável.pdf
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PPTX
EnMed_Geografia_1ªsérie_slides_aula44.pptx
PPTX
PREPARAÇAO PARA AVALIAÇ~ES EXTERNASDOC-20241109-WA0241..pptx
PPTX
Introdução a farmacologia, desenvolvimento
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PDF
Estudo da Dor in neurofisiologia dor.pdf
PPTX
Slides 1 - Intertextualidade_ paródia, citação e paráfrase (1).pptx
PDF
embriologia_animal_aula_share_2026_semestre
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
DOCX
Mapa da América Central Colonial - Metrópoles e Colônias.docx
PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
PPTX
Slides Lição 6, Betel, O Grande “Eu Sou” – Declarações Poderosas de Jesus, 3T...
PPTX
SLIDE PARAMÊTROS DE SINAIS VITA..IS.pptx
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PPTX
Grandes problemas da humanidade: pobreza, desemprego e desigualdade e sua rel...
PPTX
Noções de Saúde e Segurança do Trabalho.pptx
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
Aula 3 - Mata Atlântica: Parte 2 - SEDUC/SP 2025
Filosofia Ocidental Antiga 2025 - versão atualizada
Leitura obrigatória: Guia Liderança responsável.pdf
saeb_documentos_de_referencia_versao_1.0.pdf
EnMed_Geografia_1ªsérie_slides_aula44.pptx
PREPARAÇAO PARA AVALIAÇ~ES EXTERNASDOC-20241109-WA0241..pptx
Introdução a farmacologia, desenvolvimento
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
Estudo da Dor in neurofisiologia dor.pdf
Slides 1 - Intertextualidade_ paródia, citação e paráfrase (1).pptx
embriologia_animal_aula_share_2026_semestre
INDÚSTRIA_ Histórico da industrialização.pptx
Mapa da América Central Colonial - Metrópoles e Colônias.docx
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
Slides Lição 6, Betel, O Grande “Eu Sou” – Declarações Poderosas de Jesus, 3T...
SLIDE PARAMÊTROS DE SINAIS VITA..IS.pptx
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
Grandes problemas da humanidade: pobreza, desemprego e desigualdade e sua rel...
Noções de Saúde e Segurança do Trabalho.pptx

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