SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Python + Arduino:
produtividade ao extremo


            +

    Álvaro Justen aka Turicas
   http://twitter.com/turicas
   http://github.com/turicas
http://CursoDeArduino.com.br/
Álvaro Justen aka Turicas,
           prazer!




    www.CursoDeArduino.com.br

          @turicas
alvaro@CursoDeArduino.com.br
http://www.PythOnRio.org/
http://ArduInRio.cc/
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/
Parte 1 – Resumão



http://tinyurl.com/palestra-online-python
História




Guido van Rossum
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”
●   ...
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
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! (?)
Onde é usada? Quem
●   YouTube
             usa?
●   Google/Google App Engine
●   NASA
●   Industrial Light & Magic
●   Globo.com
●   ...

●   GIMP
●   Blender
●   Ubuntu
●   ...
Onde roda?
●   GNU/Linux
●   Mac OS
●   *nix
●   Windows
●   Android
●   Nokia S60
●   Microcontroladores
●   ...
Como instalar?

GNU/Linux e Mac OS: já tem!

   Windows: www.python.org

        Android: SL4A
(Scripting Layer For Android)
iPython

●   Debian/Ubuntu/derivados:
      sudo aptitude install ipython

●   Dica: no Ubuntu:
      sudo apt-get install aptitude
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]}
Nada de parênteses,
                 nada de chaves!
if expressao1:
    comando1
    if expressao2:
        comando2
    elif expressao3:
        comando3
elif expressao4:
    comando4
else:
    comando5
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
    ....:
    ....:
1
3
4
LdG
Arduino
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
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()
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
   ...
Navegando com Python




import urllib
url = 'http://www.CursoDeArduino.com.br/'
pagina = urllib.urlopen(url)
print pagina.read()
Eventos
São Paulo
     29/setembro a 1º/outubro



http://www.pythonbrasil.org.br/
23 y 24 de Septiembre de 2011
     Junín, Buenos Aires
          Argentina


    http://ar.pycon.org/
http://www.HackNRio.org/
         Dezembro/2011
               na
    Cidade maravilhosa! o/
Onde aprender?
●   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/
Rio de Janeiro

●   Python básico: outubro/2011
●   Python para sysadmins: em breve

     Python@CursoDeArduino.com.br
Python com Arduino?



        +
Python no Arduino
       Dá?
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!
Python no PC + Arduino
●     Com fio
    ●  USB
    ●  Ethernet

●     Sem fio
    ●  Bluetooth
    ●  Wi-Fi
    ●  ZigBee
Com fio – USB
pySerial - Instalação

●   Debian/Ubuntu/derivados:
     sudo aptitude install python-serial


●   Dica – no Ubuntu:
        sudo apt-get install aptitude
Comandando o Arduino
             com Python



import serial
porta = '/dev/ttyUSB0'
baud_rate = 9600
arduino = serial.Serial(porta, baud_rate)
arduino.write('H')
print arduino.read()
arduino.close()
Com fio – Ethernet




urllib + Ethernet shield
Sem fio - Bluetooth




     py-bluez + shield Bluetooth

           No Debian/Ubuntu:
sudo aptitude install python-bluetooth

        Solução mais barata!
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
Sem fio - ZigBee




● Conversor serial/zigbee no PC (via USB)
● Arduino + XBee
Projetos! o/
Semáforo Coding
      DojoRio
http://justen.eng.br/semaforo/
Tomada Bluetooth
http://www.amarino-toolkit.net/
Guitarrino




Python + Arduino + Frets on
           Fire
Turiquinhas v2.0
http://justen.eng.br/Turiquinhas
tweetlamp
Controlando eletrodomésticos pelo
  Twitter com Python e Arduino!



        Twitter → [HTTP] → Python
         Python → [USB] → Arduino
   Arduino → [relé] → Eletrodoméstico



  http://github.com/turicas/tweetlamp
Ficou interessado?




●   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!

    http://CursoDeArduino.com.br/pesquisa
         Python@CursoDeArduino.com.br
import this




  http://twitter.com/turicas
   http://github.com/turicas
http://CursoDeArduino.com.br/
  http://blog.justen.eng.br/
 alvaro@CursoDeArduino.com.br

Mais conteúdo relacionado

Mais procurados

Introdução a Programação com Python
Introdução a Programação com PythonIntrodução a Programação com Python
Introdução a Programação com PythonÁlvaro Justen
 
[FISL17] Liberando dados com um comando, por Álvaro Justen
[FISL17] Liberando dados com um comando, por Álvaro Justen[FISL17] Liberando dados com um comando, por Álvaro Justen
[FISL17] Liberando dados com um comando, por Álvaro JustenÁlvaro Justen
 
Software Livre versus Open Source
Software Livre versus Open SourceSoftware Livre versus Open Source
Software Livre versus Open SourceÁlvaro Justen
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Marcel Caraciolo
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução PythonGleison Rodrigues
 
import brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma Fácilimport brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma FácilÁlvaro Justen
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Arduino (para fazedores)
Arduino (para fazedores)Arduino (para fazedores)
Arduino (para fazedores)Álvaro Justen
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Marco Antonio Maciel
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 

Mais procurados (20)

Introdução a Programação com Python
Introdução a Programação com PythonIntrodução a Programação com Python
Introdução a Programação com Python
 
Apresentacao sfd-poa
Apresentacao sfd-poaApresentacao sfd-poa
Apresentacao sfd-poa
 
[FISL17] Liberando dados com um comando, por Álvaro Justen
[FISL17] Liberando dados com um comando, por Álvaro Justen[FISL17] Liberando dados com um comando, por Álvaro Justen
[FISL17] Liberando dados com um comando, por Álvaro Justen
 
Software Livre versus Open Source
Software Livre versus Open SourceSoftware Livre versus Open Source
Software Livre versus Open Source
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Python Poli 2010
Python Poli 2010Python Poli 2010
Python Poli 2010
 
Como tornar-se um programador Python melhor
Como tornar-se um programador Python melhorComo tornar-se um programador Python melhor
Como tornar-se um programador Python melhor
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
 
import brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma Fácilimport brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma Fácil
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Import python
Import pythonImport python
Import python
 
Arduino (para fazedores)
Arduino (para fazedores)Arduino (para fazedores)
Arduino (para fazedores)
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011
 
Apresentação 2
Apresentação 2Apresentação 2
Apresentação 2
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Py S60
Py S60Py S60
Py S60
 

Destaque

Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonÁlvaro Justen
 
Programando o ESP8266 com Python
Programando o ESP8266 com PythonProgramando o ESP8266 com Python
Programando o ESP8266 com PythonRelsi Maron
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministicowab030
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Arduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresArduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresÁlvaro Justen
 
Python no Celular
Python no CelularPython no Celular
Python no Celulariuridiniz
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
PHPUG CGN: Controlling Arduino With PHP
PHPUG CGN: Controlling Arduino With PHPPHPUG CGN: Controlling Arduino With PHP
PHPUG CGN: Controlling Arduino With PHPThomas Weinert
 
Controlling Arduino With PHP
Controlling Arduino With PHPControlling Arduino With PHP
Controlling Arduino With PHPThomas Weinert
 
Guia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.ioGuia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.iomarcochella
 
Pycon2013 : Application of Python in Robotics
Pycon2013  : Application of Python in RoboticsPycon2013  : Application of Python in Robotics
Pycon2013 : Application of Python in RoboticsLentin Joseph
 

Destaque (19)

Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI Python
 
Programando o ESP8266 com Python
Programando o ESP8266 com PythonProgramando o ESP8266 com Python
Programando o ESP8266 com Python
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministico
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Arduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresArduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware Livres
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
PHPUG CGN: Controlling Arduino With PHP
PHPUG CGN: Controlling Arduino With PHPPHPUG CGN: Controlling Arduino With PHP
PHPUG CGN: Controlling Arduino With PHP
 
Controlling Arduino With PHP
Controlling Arduino With PHPControlling Arduino With PHP
Controlling Arduino With PHP
 
Guia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.ioGuia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.io
 
Pycon2013 : Application of Python in Robotics
Pycon2013  : Application of Python in RoboticsPycon2013  : Application of Python in Robotics
Pycon2013 : Application of Python in Robotics
 

Semelhante a Arduino + Python: produtividade ao extremo

Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceRicardo Rufino
 
Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Álvaro Justen
 
Workshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todosWorkshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todosEronides Da Silva Neto
 
[DevInRio] Construindo robôs com software e hardware livres
[DevInRio] Construindo robôs com software e hardware livres[DevInRio] Construindo robôs com software e hardware livres
[DevInRio] Construindo robôs com software e hardware livresÁlvaro Justen
 
Arduino - Dicas & Truques
Arduino - Dicas & TruquesArduino - Dicas & Truques
Arduino - Dicas & TruquesÁlvaro Justen
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Eronides Da Silva Neto
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It YourselfBruno Nascimento
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
[FISL11] Arduino: Construindo robôs com hardware e software livres!
[FISL11] Arduino: Construindo robôs com hardware e software livres![FISL11] Arduino: Construindo robôs com hardware e software livres!
[FISL11] Arduino: Construindo robôs com hardware e software livres!Álvaro Justen
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Apostila dicas e truques arduino
Apostila   dicas e truques arduinoApostila   dicas e truques arduino
Apostila dicas e truques arduinoJardel Sousa
 
Arduino: Construindo robôs com software e hardware livres
Arduino: Construindo robôs com software e hardware livresArduino: Construindo robôs com software e hardware livres
Arduino: Construindo robôs com software e hardware livresÁlvaro Justen
 

Semelhante a Arduino + Python: produtividade ao extremo (20)

Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011
 
Workshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todosWorkshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todos
 
[DevInRio] Construindo robôs com software e hardware livres
[DevInRio] Construindo robôs com software e hardware livres[DevInRio] Construindo robôs com software e hardware livres
[DevInRio] Construindo robôs com software e hardware livres
 
Arduino - Dicas & Truques
Arduino - Dicas & TruquesArduino - Dicas & Truques
Arduino - Dicas & Truques
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It Yourself
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
[FISL11] Arduino: Construindo robôs com hardware e software livres!
[FISL11] Arduino: Construindo robôs com hardware e software livres![FISL11] Arduino: Construindo robôs com hardware e software livres!
[FISL11] Arduino: Construindo robôs com hardware e software livres!
 
nodeLHC #secomp2016
nodeLHC #secomp2016nodeLHC #secomp2016
nodeLHC #secomp2016
 
Raspberry Pi + Python
Raspberry Pi + PythonRaspberry Pi + Python
Raspberry Pi + Python
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDevice
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Arduino
ArduinoArduino
Arduino
 
Aula 9 - Introdução ao Python
Aula 9 - Introdução ao PythonAula 9 - Introdução ao Python
Aula 9 - Introdução ao Python
 
Apostila dicas e truques arduino
Apostila   dicas e truques arduinoApostila   dicas e truques arduino
Apostila dicas e truques arduino
 
Arduino: Construindo robôs com software e hardware livres
Arduino: Construindo robôs com software e hardware livresArduino: Construindo robôs com software e hardware livres
Arduino: Construindo robôs com software e hardware livres
 

Mais de Álvaro Justen

Sobre os ombos de gigantes
Sobre os ombos de gigantesSobre os ombos de gigantes
Sobre os ombos de gigantesÁlvaro Justen
 
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisProjeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisÁlvaro Justen
 
Dados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaDados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaÁlvaro Justen
 
A era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasA era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasÁlvaro Justen
 
Realmente precisamos de big data?
Realmente precisamos de big data?Realmente precisamos de big data?
Realmente precisamos de big data?Álvaro Justen
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoÁlvaro Justen
 
Brasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonBrasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonÁlvaro Justen
 
#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência BrasileiraÁlvaro Justen
 
Brasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaBrasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaÁlvaro Justen
 
Dados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaDados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaÁlvaro Justen
 
Jornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilJornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilÁlvaro Justen
 
Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Álvaro Justen
 
Datos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera PythónicaDatos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera PythónicaÁlvaro Justen
 
[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônica[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônicaÁlvaro Justen
 
Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015Álvaro Justen
 
Dados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteDados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteÁlvaro Justen
 
Android e Arduino para automação residencial
Android e Arduino para automação residencialAndroid e Arduino para automação residencial
Android e Arduino para automação residencialÁlvaro Justen
 

Mais de Álvaro Justen (18)

Sobre os ombos de gigantes
Sobre os ombos de gigantesSobre os ombos de gigantes
Sobre os ombos de gigantes
 
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisProjeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
 
Dados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaDados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeita
 
A era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasA era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crenças
 
Realmente precisamos de big data?
Realmente precisamos de big data?Realmente precisamos de big data?
Realmente precisamos de big data?
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de Comando
 
Brasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonBrasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com Python
 
#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira
 
Brasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaBrasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais Democracia
 
Dados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaDados abertos, direito autoral e democracia
Dados abertos, direito autoral e democracia
 
Jornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilJornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no Brasil
 
Python no Jornalismo
Python no JornalismoPython no Jornalismo
Python no Jornalismo
 
Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)
 
Datos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera PythónicaDatos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera Pythónica
 
[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônica[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônica
 
Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015
 
Dados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteDados Abertos e Meio Ambiente
Dados Abertos e Meio Ambiente
 
Android e Arduino para automação residencial
Android e Arduino para automação residencialAndroid e Arduino para automação residencial
Android e Arduino para automação residencial
 

Arduino + Python: produtividade ao extremo

  • 1. Python + Arduino: produtividade ao extremo + Álvaro Justen aka Turicas http://twitter.com/turicas http://github.com/turicas http://CursoDeArduino.com.br/
  • 2. Álvaro Justen aka Turicas, prazer! www.CursoDeArduino.com.br @turicas alvaro@CursoDeArduino.com.br
  • 5.
  • 6.
  • 7. 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/
  • 8. Parte 1 – Resumão http://tinyurl.com/palestra-online-python
  • 10.
  • 11. 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” ● ...
  • 12. 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
  • 13. 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! (?)
  • 14. Onde é usada? Quem ● YouTube usa? ● Google/Google App Engine ● NASA ● Industrial Light & Magic ● Globo.com ● ... ● GIMP ● Blender ● Ubuntu ● ...
  • 15. Onde roda? ● GNU/Linux ● Mac OS ● *nix ● Windows ● Android ● Nokia S60 ● Microcontroladores ● ...
  • 16. Como instalar? GNU/Linux e Mac OS: já tem! Windows: www.python.org Android: SL4A (Scripting Layer For Android)
  • 17.
  • 18.
  • 19. iPython ● Debian/Ubuntu/derivados: sudo aptitude install ipython ● Dica: no Ubuntu: sudo apt-get install aptitude
  • 20. 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]}
  • 21. Nada de parênteses, nada de chaves! if expressao1: comando1 if expressao2: comando2 elif expressao3: comando3 elif expressao4: comando4 else: comando5
  • 22. 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 ....: ....: 1 3 4 LdG Arduino
  • 23. 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
  • 24. 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()
  • 25. 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  ...
  • 26. Navegando com Python import urllib url = 'http://www.CursoDeArduino.com.br/' pagina = urllib.urlopen(url) print pagina.read()
  • 28. São Paulo 29/setembro a 1º/outubro http://www.pythonbrasil.org.br/
  • 29. 23 y 24 de Septiembre de 2011 Junín, Buenos Aires Argentina http://ar.pycon.org/
  • 30. http://www.HackNRio.org/ Dezembro/2011 na Cidade maravilhosa! o/
  • 32. 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/
  • 33. Rio de Janeiro ● Python básico: outubro/2011 ● Python para sysadmins: em breve Python@CursoDeArduino.com.br
  • 36. 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!
  • 37. Python no PC + Arduino ● Com fio ● USB ● Ethernet ● Sem fio ● Bluetooth ● Wi-Fi ● ZigBee
  • 38. Com fio – USB
  • 39. pySerial - Instalação ● Debian/Ubuntu/derivados: sudo aptitude install python-serial ● Dica – no Ubuntu: sudo apt-get install aptitude
  • 40. Comandando o Arduino com Python import serial porta = '/dev/ttyUSB0' baud_rate = 9600 arduino = serial.Serial(porta, baud_rate) arduino.write('H') print arduino.read() arduino.close()
  • 41. Com fio – Ethernet urllib + Ethernet shield
  • 42. Sem fio - Bluetooth py-bluez + shield Bluetooth No Debian/Ubuntu: sudo aptitude install python-bluetooth Solução mais barata!
  • 43. 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
  • 44. Sem fio - ZigBee ● Conversor serial/zigbee no PC (via USB) ● Arduino + XBee
  • 46. Semáforo Coding DojoRio http://justen.eng.br/semaforo/
  • 48. Guitarrino Python + Arduino + Frets on Fire
  • 49.
  • 50.
  • 52.
  • 53. tweetlamp Controlando eletrodomésticos pelo Twitter com Python e Arduino! Twitter → [HTTP] → Python Python → [USB] → Arduino Arduino → [relé] → Eletrodoméstico http://github.com/turicas/tweetlamp
  • 54. Ficou interessado? ● 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! http://CursoDeArduino.com.br/pesquisa Python@CursoDeArduino.com.br
  • 55. import this http://twitter.com/turicas http://github.com/turicas http://CursoDeArduino.com.br/ http://blog.justen.eng.br/ alvaro@CursoDeArduino.com.br