Upload
antonio-thomacelli
View
1.552
Download
1
Embed Size (px)
DESCRIPTION
Multirão Python - Introdução ao PySerial e Gtk3 com Arduino por Antonio Thomacelli Gomes
Citation preview
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/
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●
●
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 microcontrolador, 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.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
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.→
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→
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→
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→
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
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 epassport skimming proof of concept code released (RFIDIOt)" and "Code highlights epassport 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 lowlevel 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 streamoriented 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.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.63 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.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.
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://pythongtk3tutorial.readthedocs.org/
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 : pythongobject
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.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("deleteevent", Gtk.main_quit)janela.show_all()Gtk.main()
↔
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')
↔
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/pygtktutorialparte2.html
Gtk http://linuxresort.blogspot.com.br/2012/07/pygtktutorialparte1.html
Gtk + postgres http://linuxresort.blogspot.com.br/2012/10/pythongtk3psycopg2.html
Gtk2 + Arduino http://linuxresort.blogspot.com.br/2012/01/pygtkearduino.html
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 / @linuxresortEmail : [email protected]: http://www.linuxresort.blogspot.com
Contato: