Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,559 views

Published on

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

por Antonio Thomacelli Gomes

Published in: Education
  • Be the first to comment

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

  1. 1.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.comAntonio Thomacelli Gometonnytg@gmail.comhttp://arduino.cc http://gtk.orghttp://www.pycursos.com/
  2. 2.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesQuem é o ArduinoO que é PySerialPorque usar o Gtk3●●
  3. 3.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesArduino : 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
  4. 4.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesArduino : ProgramandoRequisitos 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
  5. 5.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesArduino : ProgramandoDentro 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.→
  6. 6.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesArduino : ProgramandoLED = 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→ 
  7. 7.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesArduino : Comunicando via SerialLED = 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→ 
  8. 8.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesArduino : 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→
  9. 9.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesPySerial : 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
  10. 10.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesProjetos 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 telephonesjaraco.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
  11. 11.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesPySerial : 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
  12. 12.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesPySerial : Ferrametas para testesDepois que a biblioteca estiver instalada você terá adquirido o software “miniterm”. Ele estabelece a conexão em tempo real, tanto para escrita como leitura.
  13. 13.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesGtk : Porque usar GtkPrimeiro para quem não conhece Gtk é uma interface gráfica, semelhante ao QtPor opção pessoal preferi o Gtk pois sua documentação pareceu ser mais rica e fácil de entenderhttp://python­gtk­3­tutorial.readthedocs.org/
  14. 14.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesGtk : InstalandoNos repositórios GNULinux basta procurar pelo pacote : python­gobjectPara quem utiliza outras versões deverá utilizar o jhbuild para criar o instalador com os arquivos do Gtk3https://live.gnome.org/PyGObjectQuem preferir pode usar o gtk2 é mais fácil, basta instalar o pygtk:
  15. 15.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesGtk : Aplicação Gráficafrom gi.repository import Gtkclass 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() ↔
  16. 16.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesGtk3 : Interfaceimport 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) ↔
  17. 17.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesVeja também::Gtk ­ http://linuxresort.blogspot.com.br/2012/08/pygtk­tutorial­parte­2.htmlGtk ­ http://linuxresort.blogspot.com.br/2012/07/pygtk­tutorial­parte­1.htmlGtk + postgres ­ http://linuxresort.blogspot.com.br/2012/10/python­gtk3­psycopg2.htmlGtk2 + Arduino ­ http://linuxresort.blogspot.com.br/2012/01/pygtk­e­arduino.html
  18. 18.    Multirão Python ­ Introdução ao PySerial e Gtk3 com Arduinohttp://www.pycursos.comhttp://www.linuxresort.blogspot.com Autor: Antonio Thomacelli GomesAntonio Thomacelli GomesTwitter: @tonnytg / @linuxresortE­mail : tonnytg@gmail.comBlog: http://www.linuxresort.blogspot.comContato:

×