Arduino e Python. Do It Yourself! Luís Bruno Jefferson Jarden Francisco Marcelino



Documentos relacionados
Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

CURSO DE PROGRAMAÇÃO EM JAVA

Introdução à Linguagem

Python. Introdução à Programação SI1 - BSI

Parallel to Serial Shifting IN

Medidor da temperatura local

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Fábio Rodrigues Jorge.

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani

Professor: Fernando Krein Pinheiro

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Disciplina: Laboratório de Fis26

Treinamento Python/Zope/Plone. terça-feira, 4 de agosto de 15

Minicurso de Arduino

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Robótica com Arduino

Microcontrolador Arduino: Aplicação em controle PI

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

Linguagens de programação

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Allisson Barros 12/ Daniel Luz 13/ Leandro Bergmann 14/ Luiz Fernando Vieira 13/ Uriel Silva 12/

Universidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação. Lucas Nunes Paim

Programação Básica em Arduino Aula 2

Fundamentos de Programação II. Introdução à linguagem de programação C++

// Arduino {? } Mais o que é?..

BEC- Bafômetro Embutido em Carros

Python Aplicado às Redes de Comunicação

Utilizem a classe Aula.java da aula passada:

Introdução ao Arduino

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

RESULTAR EM "CHOQUE ELÉTRICO", FOGO, ENTRE OUTROS.

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

Internet e Programação Web

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Arduino. Wanderson Souza Professor de Robótica

Java. Marcio de Carvalho Victorino

O Processo de Programação

Começando com Ruby on

PHP. Hypertext Pre-Processor

InteropMix Arduino e Internet das Coisas. Leandro Ramos Leonardo Toledo Robson Machado

Algoritmos em Javascript

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

2 echo "PHP e outros.";

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

CURSO BÁSICO DE PROGRAMAÇÃO AULA 8. Introdução ao Linux Introdução a linguagem C

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Oficina de Programação em Python direcionada para o desenvolvimento de jogos

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

Objetivos do mini curso. Conhecer a linguagem. Noção de programação utilizando Python. Aprender o báscio.

Curso introdutório de microcontroladores - Plataforma Arduino

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

Componentes da linguagem C++

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

e à Linguagem de Programação Python

Minicurso de Arduino

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Programação em Arduino

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Manual. Coletor. Temperatura. Umidade

Hewerson Antonio Perdomo Jacquet Luana Loubet Borges Ricardo Espindola de Aguiar Riccieli Kendy Zan Minakawa Prof. Ricardo Ribeiro dos Santos

Programação Web Prof. Wladimir

Sintaxe Básica de Java Parte 1

Introdução à Plataforma ARDUINO

Arquitetura do Microcontrolador Atmega 328

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

Arduino e Proteus (Tutorial)

PYTHON LISTAS. Introdução à Programação SI2

Lógica de Programação

O que é o JavaScript?

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Curso de Linguagem C

Robótica com Arduino Professor: Paulo Marcos Trentin

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

arduino = new roboticalivre(); Arduino Marcus Fazzi

Prá$cas Arduino. Manoel Neto

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

LINGUAGEM DE PROGRAMAÇÃO WEB

Viabilizado pela Organização do ERI MS; Apoiado pelo grupo ArduinoMS; Agradecimentos especiais ao do SENAC e UCDB.

JSP - ORIENTADO A OBJETOS

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Programação online em Java

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Hacking Class Controlando tomadas da sua casa via Internet

Transcrição:

Arduino e Python Do It Yourself! Luís Bruno Jefferson Jarden Francisco Marcelino

Arduino e Python Faça Você Mesmo!

Quem Somos Jefferson Jardem Luís Bruno jeffersonjardem@gmail.com luisbrunu@gmail.com Francisco Marcelino franciscomarcelinoalmeida@gmail.com

Software Livre As 4 liberdades básicas associadas ao software livre sã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ódigofonte é 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.

Software Livre

Hardware Livre O hardware é de Graça? Não! Direcionado a Liberdade de Conhecimento Diagramas Esquemas Documentos Core/Firmware Software/API

Hardware Livre

Hardware Livre Algumas Empresas Sparkfun Seeeduino Studio Adafruit Makerbot Brasil Multilogica LabdeGaragem Agamenon

Arduino

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

Arduino schematics (Layout Drawings) prototipagem rápida projetos de computação física computação pervasiva computação ubiqua ambientes inteligentes instalações interativas

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

Arduino A Imaginação é o Limite

Arduino Diferentes Hardware

Arduino

Shields

Sensores

Atuadores

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

Programando... 1 Compilar Sketch 2 Atualizar

Estrutura do Código Função setup void setup (){ Instruções... } Função loop void loop (){ Instruções... }

Exemplo de Código

Estruturas de Controle If else for switch while do while go to

Principais funções pinmode() Entrada/saída digitalwrite/ analogwrite() digitalread/ analogread() delay() milissegundos

Python

Introdução à Linguagem Python História Criada por Guido van Rossum em 1989; Uma linguagem simples, criada inicialmente para ensinar programação;

Quem Usa Python? 7 Linguagem mais usada (TIOBE Agosto);

Google 1997

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!

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.

Instalação No Windows Download do Windows installer no site: http://www.python.org/download/ No Linux e Mac: Maioria das distros, Python é nativo!!!

Executando o Python Não necessita de IDEs; Iniciando o interpretador Python: ~$ python Executar scripts em arquivos: ~$ python file.py

Interpretador Interativo

Usando o Interpretador interativo Determinar o tipo de um objeto Ver docs de uma classe ou comando type(obj) help(obj) Obter uma lista de quase todos os atributos de um objeto dir(obj)

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

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 #

Normalmente... print ( O valor de a é ); if (a == 0) { print ( zero ); a = zero ; } else { print (a); } // fim do script Em Python print O valor de a é if a == 0: print zero a = zero else: print a # fim do script

Operadores Aritméticos: +, -, *, /, //, %, ** Condicionais: >, <, >=, ==,!=, in, is Atribuição: =, +=, +=, /=, *= Lógicos: & ^ ~ (and, or, xor, not)

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'''

Strings String como Arrays s = 'Bem vindos ao Enucomp' s. getitem (1) s[1] s[4:9] s +' 2011' # # e # e # vindos Enucomp 2011

Strings Brincando com os operadores s = 'Arduino' s + ' + python' s = 'a' s > 'b' #False 'Maior' > 'Menor' s = 'k' s * 3 #Arduino + Python #False # kkk Obs.: Os operadores são métodos não-destrutivos.

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.

List Coleção de objetos numeros = [1, 2, 3.5] string = ["1", '2', "3"] tudo = [10, "50", """Hello"""] lista = [numeros, string, tudo]

Alguns métodos de List append(obj) insert(pos, obj) Insere na posição especificada remove(obj) Insere no fim da lista 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

Alguns métodos de List count( obj ) index( obj ) Retorna a posição do obj na lista reverse() Retorna a quantidade de elementos obj da lista Inverte a lista colocando os elementos ao contrário sort() Ordena a lista

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

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]

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'] # ===> Django print dic[1] # ===> UM

Estruturas de Condição If/ elif/ else if condicao: comandos elif condicao: comandos else: comandos

Loops While/ else while condição: comandos else: comandos

Loops For/ else for variavel in sequencia: comandos else: comandos

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

Python com Arduino

PySerial - Instalação Windows http://pypi.python.org/pypi/pyserial Debian/ Ubuntu/ derivados: sudo aptitude install python-serial

Enviando dados para a serial import serial porta = '/dev/ttyusb0' baud_rate = 9600 arduino = serial.serial(porta, baud_rate) arduino.write('h') print arduino.read() arduino.close()

Recebendo através do Arduino int 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); } } }