Your SlideShare is downloading. ×
Arduino e Python: Do It Yourself
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Arduino e Python: Do It Yourself

1,775
views

Published on

Minicurso ministrado no ENUCOMP 2011 em Parnaíba-PI

Minicurso ministrado no ENUCOMP 2011 em Parnaíba-PI

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,775
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
98
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Arduino e PythonDo It Yourself!Luís Bruno – Jefferson Jarden – Francisco Marcelino
  • 2. Arduino e PythonFaça Você Mesmo!
  • 3. Quem Somos● Jefferson Jardem● Luis Bruno● Francisco Marcelino
  • 4. Software LivreAs 4 liberdades básicas associadas ao software livresão: – A liberdade de executar o programa, para qualquer propósito (liberdade nº 0) – A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades (liberdade nº 1). Acesso ao código- fonte é um pré-requisito para esta liberdade. – A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade nº 2). – A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade nº 3). Acesso ao código-fonte é um pré-requisito para esta liberdade.
  • 5. Software Livre
  • 6. Hardware Livre● O hardware é de Graça? – Não! ● Direcionado a Liberdade de Conhecimento – Diagramas – Esquemas – Documentos – Core/Firmware – Software/API
  • 7. Hardware Livre
  • 8. Hardware Livre● Algumas Empresas – Sparkfun – Seeeduino Studio – Adafruit – Makerbot ● Brasil – Multilogica – LabdeGaragem – Agamenon
  • 9. Arduino
  • 10. Arduino● O que é? – Plataforma de Hardware Livre● Características – Arduino UNO – Microcontroller ATmega328 – Operating Voltage 5V – Input Voltage (recommended) 7-12V – Input Voltage (limits) 6-20V – Digital I/O Pins 14 (of which 6 provide PWM output) – Analog Input Pins 6 – DC Current per I/O Pin 40 mA – DC Current for 3.3V Pin 50 mA – Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader – SRAM2 KB (ATmega328) – EEPROM1 KB (ATmega328) – Clock Speed 16 MHz
  • 11. Arduino– schematics (Layout Drawings)– prototipagem rápida– projetos de computação física– computação pervasiva– computação ubiqua– ambientes inteligentes– instalações interativas
  • 12. Arduino● Onde usar Arduino? ● Automação de ambiente: – Desligamento do Luzes de um ambiente – Ligação do irrigador de um jardim – Climatização de um ambiente
  • 13. Arduino● A Imaginação é o Limite
  • 14. Arduino● Diferentes Hardware
  • 15. Arduino
  • 16. Shields
  • 17. Sensores
  • 18. Atuadores
  • 19. O Software Arduino● Escrito em Java; ● Multiplataforma!● Baseado no Processing e C;● Distribuição livre; ● Windows, Linux e Mac: – http://www.arduino.cc/en/Main/Software
  • 20. Programando... 1° Compilar 2° AtualizarSketch
  • 21. Estrutura do Código● Função setup void setup (){ Instruções... }● Função loop void loop (){ Instruções... }
  • 22. Exemplo de Código
  • 23. Estruturas de Controle● If … else● for● switch● while● do while● go to
  • 24. Principais funções● pinMode() ● Entrada/saída● digitalWrite/ analogWrite()● digitalRead/ analogRead()● delay() ● milissegundos
  • 25. Python
  • 26. Introdução à Linguagem Python● História● Criada por Guido van Rossum em 1989; ● Uma linguagem simples, criada inicialmente para ensinar programação;
  • 27. Quem Usa Python?● 7° Linguagem mais usada (TIOBE Agosto);
  • 28. Google 1997
  • 29. Introdução à Linguagem Python● Linguagem de Altíssimo Nível (VHLL);● Tipagem Dinâmica e Forte;● Case Sensitive;● Interpretada/Compilada;● OO, Procedural e Funcional;● Linguagem de Scripts;● Open-Source;● Bliblioteca padrão gigante!
  • 30. Introdução à Linguagem Python● Completamente Orientada a Objetos; ● Toda variável em Python é objeto!● Orientação a Objetos? ● Objeto – Entidade do mundo real que tem uma identidade; – Atributos (Características); – Métodos (Comportamento); ● Classe – Abstração que descreve propriedades importantes para uma aplicação.
  • 31. Instalação ● No Windows ● Download do Windows installer no site: ● http://www.python.org/download/● No Linux e Mac: ● Maioria das distros, Python é nativo!!!
  • 32. Executando o Python● Não necessita de IDEs;● Iniciando o interpretador Python: ● ~$ python● Executar scripts em arquivos: ● ~$ python file.py
  • 33. Interpretador Interativo
  • 34. Usando o Interpretador interativo● Determinar o tipo de um objeto ● type(obj)● Ver docs de uma classe ou comando ● help(obj)● Obter uma lista de quase todos os atributos de um objeto ● dir(obj)
  • 35. Obtendo valores● input() x = input(Informe um valor: ) print x # imprime o valor de x● raw_input() x = raw_input(Informe seu nome) print x #imprime o valor da string x
  • 36. Características do Python● Blocos por indentação! print “O valor de a é “ if a == 0: print “zero” a = “zero” else: print a # fim do script● No more chaves! {}● No more ponto e vírgula! (;)● Comentários com #
  • 37. Normalmente... Em Pythonprint (“O valor de a é “); print “O valor de a é “if (a == 0) if a == 0:{ print “zero” print (“zero”); a = “zero” a = “zero”; else:} print a # fim do scriptelse{ print (a);} // fim do script
  • 38. Operadores● Aritméticos: + , -, *, /, // , %, **● Condicionais: >, <, >=, ==, != , in, is● Atribuição: =, +=, +=, /= , *=● Lógicos: & | ^ ~ (and, or, xor, not)
  • 39. Strings● String – Um conjunto de caracteres; String de aspas simples "Olá, sou uma String!" X=2 1 + 1 = , x● Podem ocupar uma ou várias linhas: String com multiplas linhas
  • 40. Strings● String como Arrays s = Bem vindos ao Enucomp s.__getitem__(1) # e s[1] # e s[4:9] # vindos s + 2011 # … Enucomp 2011
  • 41. Strings● Brincando com os operadores s = Arduino s + + python #Arduino + Python s = a s > b #False Maior > Menor #False s = k s * 3 # kkk● Obs.: Os operadores são métodos não-destrutivos.
  • 42. Alguns métodos de Strings• __len__(): Retorna o tamanho da string; ● __getslice__(x, y): Retorna uma substring de x até y.● capitalize(): Retorna a mesma string com a primeira letra em maiúsculo.● upper(): Retorna a mesma string com todas as letras em maiúsculo.● lower(): Retorna a mesma string com todas as letras em minúsculo.
  • 43. List● Coleção de objetos numeros = [1, 2, 3.5] string = ["1", 2, "3"] tudo = [10, "50", """Hello"""] lista = [numeros, string, tudo]
  • 44. Alguns métodos de List● append(obj) ● Insere no fim da lista● insert(pos, obj) ● Insere na posição especificada● remove(obj) ● Remove o objeto da lista● pop(posicao) ● Remove e retorna o objeto da posição especificada. ● O pop() sem parâmetros retira o último elemento
  • 45. Alguns métodos de Listcount( obj ) ● Retorna a quantidade de elementos “obj” da lista● index( obj ) ● Retorna a posição do “obj” na lista● reverse() ● Inverte a lista colocando os elementos ao contrário● sort() ● Ordena a lista
  • 46. Tuplas● Estrutura como as listas, mas não aceitam que seus valores sejam alterados depois da criação. tupla = (1, 2, 3, 4) ou tupla = 1, 2, 3, 4
  • 47. Ranges● Função que gera uma lista range(7) # [ 0, 1, 2, 3, 4, 5, 6 ] range(1,7) # [ 1, 2, 3, 4, 5, 6 ] range(1, 9, 3) # [ 1, 4, 8]
  • 48. Dicionários● Map● O mesmo que array associativo, map ou hashes;● Cada entrada é composta por uma chave e um valor;frameworks = {python: "Django", ruby: "Rails"}dic = {1 : UM, DOIS: 2}print frameworks[python] # ===> Djangoprint dic[1] # ===> UM
  • 49. Estruturas de Condição● If/ elif/ else if condicao: comandos elif condicao: comandos else: comandos
  • 50. Loops● While/ else while condição: comandos else: comandos
  • 51. Loops● For/ else for variavel in sequencia: comandos else: comandos
  • 52. Funções● Para criar uma função: ● def nome_da_funcao( parametros ): def soma(a,b = 2): print a + b, soma(2) #4 soma(2,3) #5
  • 53. Python com Arduino
  • 54. PySerial - Instalação● Windows ● http://pypi.python.org/pypi/pyserial● Debian/ Ubuntu/ derivados: sudo aptitude install python-serial
  • 55. Enviando dados para a serialimport serialporta = /dev/ttyUSB0baud_rate = 9600arduino = serial.Serial(porta, baud_rate)arduino.write(H)print arduino.read()arduino.close()
  • 56. Recebendo através do Arduinoint ledPin = 13;int incomingByte = 0;void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600);}void loop() { if (Serial.available() > 0) { incomingByte = Serial.read(); if (incomingByte == 72){ digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }}

×