Arduino + Python: produtividade ao extremo
-
Upload
alvaro-justen -
Category
Technology
-
view
22.446 -
download
2
description
Transcript of Arduino + Python: produtividade ao extremo
![Page 1: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/1.jpg)
Python + Arduino:produtividade ao extremo
Álvaro Justen aka Turicashttp://twitter.com/turicashttp://github.com/turicas
http://CursoDeArduino.com.br/
+
![Page 2: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/2.jpg)
Álvaro Justen aka Turicas, prazer!
www.CursoDeArduino.com.br
![Page 5: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/5.jpg)
![Page 6: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/6.jpg)
![Page 7: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/7.jpg)
Roteiro
● Python, a linguagem – revisão● Python com Arduino:
● Python no Arduino● Por que não?
● Python no PC + Arduino● Com fio● Sem fio
● Projetos! \o/
![Page 8: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/8.jpg)
Parte 1 – Resumão
http://tinyurl.com/palestra-online-python
![Page 9: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/9.jpg)
História
Guido van Rossum
![Page 10: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/10.jpg)
![Page 11: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/11.jpg)
Aplicações● Shell scripts● Administração de sistemas/redes● Aplicações científicas● Computação gráfica● Jogos● Interfaces com o usuário/GUI● Aplicações Web● Robótica● “glue-language”● ...
![Page 12: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/12.jpg)
Principais características
● Uso geral● Interpretada, VHLL● Criada por Guido van Rossum em 1989● Multiplataforma● OO, Procedural e funcional● Software livre● Baterias incluídas!● Sintaxe elegante, simples e clara● Tipagem dinâmica e forte
![Page 13: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/13.jpg)
Por que Python?
● Fácil de aprender● Poderosa● Alta produtividade● Estruturas de dados de alto nível● Blocos de código são delimitados por indentação! (?)
![Page 14: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/14.jpg)
Onde é usada? Quem usa?
● YouTube● Google/Google App Engine● NASA● Industrial Light & Magic● Globo.com● ...
● GIMP● Blender● Ubuntu● ...
![Page 15: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/15.jpg)
Onde roda?
● GNU/Linux● Mac OS● *nix● Windows● Android● Nokia S60● Microcontroladores● ...
![Page 16: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/16.jpg)
Como instalar?
GNU/Linux e Mac OS: já tem!
Windows: www.python.org
Android: SL4A(Scripting Layer For Android)
![Page 17: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/17.jpg)
![Page 18: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/18.jpg)
![Page 19: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/19.jpg)
iPython
● Debian/Ubuntu/derivados:
sudo aptitude install ipython
● Dica: no Ubuntu:
sudo apt-get install aptitude
![Page 20: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/20.jpg)
Tipos básicos● Inteiro: 42● Ponto flutuante: 3.14● Complexo (!): 1.5 + 5.3j● String: “””minha string”””● Tuplas: (1, “aaa”)● Listas:
[1, 2.3, “abc”, [1, “b”]]● Dicionários:
{'a': 1, 2: 'b', [1, 2]: [3, 4]}
![Page 21: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/21.jpg)
Nada de parênteses,nada de chaves!
if expressao1:
comando1
if expressao2:
comando2
elif expressao3:
comando3
elif expressao4:
comando4
else:
comando5
![Page 22: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/22.jpg)
Listas, strings e slices
In [1]: l = [1, 3, 4, 'LdG', 'Arduino']
In [2]: print l[1]3
In [3]: print l[1:4][3, 4, 'LdG']
In [4]: for elemento in l: ....: print elemento ....: ....:134LdGArduino
![Page 23: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/23.jpg)
Listas, strings e slices (2)
In [5]: virus = 'nome-do-virus.exe' In [6]: print virus[-3:]exe In [7]: print virus[5:]do-virus.exe In [8]: print virus.split('.')['nome-do-virus', 'exe'] In [9]: novo_virus = 'nome.do.virus.exe' In [10]: print novo_virus.split('.')['nome', 'do', 'virus', 'exe'] In [11]: print novo_virus.split('.')[-1]exe In [12]: print 'nome.do.virus.pl'.split('.')[-1]pl
![Page 24: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/24.jpg)
Trabalhando com arquivos
arquivo = open('nome.txt')for linha in arquivo: print linha
arquivo_2 = open('nome-2.txt', 'w')arquivo_2.write('Python rules!')arquivo_2.close()
![Page 25: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/25.jpg)
Baterias incluídas! sys, os, re, string, zlib
socket, urrlib, httplib, imaplib
time, datetime, math, random
doctest, unittest, xml, xmlrpclib
struct, pickle, cPickle, threading
logging, decimal
...
![Page 26: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/26.jpg)
Navegando com Python
import urlliburl = 'http://www.CursoDeArduino.com.br/'pagina = urllib.urlopen(url)print pagina.read()
![Page 27: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/27.jpg)
Eventos
![Page 29: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/29.jpg)
23 y 24 de Septiembre de 2011Junín, Buenos Aires
Argentina
http://ar.pycon.org/
![Page 31: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/31.jpg)
Onde aprender?
![Page 32: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/32.jpg)
● Tutoriais:http://www.python.org.br/
http://docs.python.org/tutorial“Google Python Class”
● Lista Python-Brasil e locais
● #python-br @ irc.freenode.net
● Eventos:http://www.PythOnCampus.org/
http://www.PythonBrasil.org.br/
● Cursos:http://www.WelcomeToTheDjango.com.br/
http://www.CursoDePython.com.br/
![Page 33: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/33.jpg)
Rio de Janeiro
● Python básico: outubro/2011● Python para sysadmins: em breve
![Page 34: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/34.jpg)
Python com Arduino?
+
![Page 35: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/35.jpg)
Python no ArduinoDá?
![Page 36: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/36.jpg)
Python no microcontrolador
● PyMite:● http://wiki.python.org/moin/PyMite● http://code.google.com/p/python-on-a-chip/
● Por que não?● Só roda no Mega● Só tem a sintaxe: nada de baterias!
![Page 37: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/37.jpg)
Python no PC + Arduino
● Com fio● USB● Ethernet
● Sem fio● Bluetooth● Wi-Fi● ZigBee
![Page 38: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/38.jpg)
Com fio – USB
![Page 39: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/39.jpg)
pySerial - Instalação
● Debian/Ubuntu/derivados:
sudo aptitude install python-serial
● Dica – no Ubuntu:
sudo apt-get install aptitude
![Page 40: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/40.jpg)
Comandando o Arduinocom Python
import serialporta = '/dev/ttyUSB0'baud_rate = 9600arduino = serial.Serial(porta, baud_rate)arduino.write('H')print arduino.read()arduino.close()
![Page 41: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/41.jpg)
Com fio – Ethernet
urllib + Ethernet shield
![Page 42: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/42.jpg)
Sem fio - Bluetooth
py-bluez + shield Bluetooth
No Debian/Ubuntu:sudo aptitude install python-bluetooth
Solução mais barata!
![Page 43: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/43.jpg)
Sem fio – Wi-Fi
● Opções:● Shield Wi-Fi + roteador Wi-Fi● Shield Ethernet + roteador Wi-Fi
● Clientes:● Smartphones● Notebooks● Outros Arduinos!
● Roteador Wi-Fi:● Internet + Dynamic DNS + port foward
#FTW
![Page 44: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/44.jpg)
Sem fio - ZigBee
● Conversor serial/zigbee no PC (via USB)● Arduino + XBee
![Page 45: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/45.jpg)
Projetos! \o/
![Page 47: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/47.jpg)
Tomada Bluetoothhttp://www.amarino-toolkit.net/
![Page 48: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/48.jpg)
Guitarrino
Python + Arduino + Frets on Fire
![Page 49: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/49.jpg)
![Page 50: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/50.jpg)
![Page 52: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/52.jpg)
![Page 53: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/53.jpg)
tweetlampControlando eletrodomésticos pelo Twitter com Python e Arduino!
Twitter → [HTTP] → PythonPython → [USB] → Arduino
Arduino → [relé] → Eletrodoméstico
http://github.com/turicas/tweetlamp
![Page 54: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/54.jpg)
Ficou interessado?
http://CursoDeArduino.com.br/[email protected]
● Ourinhos/SP – outubro/2011● Belo Horizonte/MG – novembro/2011● João Monlevade/MG – novembro/2011● São Paulo/SP – dezembro/2011● Rio de Janeiro/RJ – dezembro/2011● Online – em breve!
![Page 55: Arduino + Python: produtividade ao extremo](https://reader034.fdocumento.com/reader034/viewer/2022042602/558a2994d8b42a38028b460a/html5/thumbnails/55.jpg)
http://twitter.com/turicashttp://github.com/turicas
http://CursoDeArduino.com.br/http://blog.justen.eng.br/[email protected]
import this