python e arduino
DESCRIPTION
TRANSCRIPT
Sobre o que vamos falar ?
Sobre o que vamos falar ?
Arduino
Uma plataforma de prototipagem eletrônica
Sobre o que vamos falar ?
Arduino
Uma plataforma de prototipagem eletrônica
Uma poderosa linguagem de programação multiparadigma
Python
• Uma placa de prototipagem
• Um ambiente de desenvolvimento
• Uma comunidade de usuários
Arduino
• Disponibiliza um conjunto de portas digitais e analógicas por onde podemos interagir com o ambiente
Sensores
Atuadores
Sensores
Atuadores
DistânciaLuminosidade
Pressão Radiação
RadiofrequênciaGases Tóxicos
MotoresLuzes, LEDs
DisplaysSolenoides
Relê
Alguns!
Exemplo
s
Portas digitaisPortas analógicas
Microc
ontro
lador
USB
Alimentação
Arduino UNO
Portas digitais
Portas analógicas
Microcontrolador
USB
Alimentação
Portas digitais
Arduino MEGA
http://blog.codebender.cc/2014/02/28/introduction/
http://blog.codebender.cc/2014/02/28/introduction/
ATMega
Programando o Arduinoint led = 13; !!void setup() { pinMode(led, OUTPUT); } !!void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
Programando o Arduinoint led = 13; !!void setup() { pinMode(led, OUTPUT); } !!void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
Programando o Arduinoint led = 13; !!void setup() { pinMode(led, OUTPUT); } !!void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
Programando o Arduinoint led = 13; !!void setup() { pinMode(led, OUTPUT); } !!void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
inicializações
Programando o Arduinoint led = 13; !!void setup() { pinMode(led, OUTPUT); } !!void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
inicializações
Leitura de dados
Programando o Arduinoint led = 13; !!void setup() { pinMode(led, OUTPUT); } !!void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
inicializações
Leitura de dados
Interações com o ambiente
Expandindo o poder do Arduino
Existem dezenas de opções de placas que adicionam recursos avançados ao Arduino!
• GPS, Bluetooth, GPRS, Wifi, Ethernet, Câmera, Controle de Motores, FM, etc…
Sensores!
• Distância, pressão, movimento, temperatura, inclinação, radiação, luminosidade, etc…
Expandindo o poder do Arduino
GPS
GSM
Ethernet
• Linguagem de programação baseada em scripts
• Portável
• Multiparadigma
Python
Python + Arduino ???
Sim!, Python + Arduino !!!
Python + Arduino
• Python pode ser usado para
• Ler/Armazenar/Disponibilizar dados enviados pelo Arduino
• Enviar sinais de controle para a placa
• Expandir o potencial da placa, processando dados de outras fontes
Demonstração #1Leitura de dados da placa
Leitura de dados
• O Arduino pode funcionar ligado ao PC por uma porta USB (é uma porta serial)
• Podemos usar essa conexão para receber os dados através do cabo em um script Python
Leitura de dados
• O Arduino pode funcionar ligado ao PC por uma porta USB (é uma porta serial)
• Podemos usar essa conexão para receber os dados através do cabo em um script Python
oi
Sensor de distância
Sensor de distância
Trigger
Sensor de distância
Trigger
Sensor de distância
Trigger Echo
Demonstração #2Envio de dados simples para a
placa
Envio de dados
• Envio pelo mesmo cabo podemos fazer o envio de informações do script Python para a placa
• O programa que é executado no Arduino deve tratar os dados para que as ações aconteçam
Envio de dados
• Envio pelo mesmo cabo podemos fazer o envio de informações do script Python para a placa
• O programa que é executado no Arduino deve tratar os dados para que as ações aconteçam
oi
Demonstração #3Processando dados de outras fontes
Dados de outras fontes
• O script Python pode utilizar centenas de APIs disponíveis e apresentar alguma ação através do Arduino
Algumas ideias para ir além…
• Você pode usar Bluetooth, FM, Ethernet, WiFi para se comunicar com seus scripts Python!
• É possível comunicar o Arduino diretamente com seu smartphone :-)!
• Que tal publicar os dados coletados pelo seu Arduino diretamente em uma página web ?!
• Participe de eventos da comunidade Python…
PySM
2014.pysm.org03/05
Santa Maria/RS
PyPOA
pypoa.org
07 de junhoFTEC
Valeu!Leandro Nunes | @nunesleandro | codefi.sh
Valeu!Leandro Nunes | @nunesleandro | codefi.sh
Slides e resumo da palestra com os links para os frameworks usados vão estar no
blog