SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
Desenvolvimento Mobile & Embedded
com Arduino, Python, ARM e Linux

Flávio Ribeiro
Faculdade iDEZ, Outubro de 2009
Quem sou?
Flávio Ribeiro
Graduando em Engenharia Elétrica (IFPB)
Engenheiro de Software (Avaty! Tecnologia)
Python, Sistemas Embarcados, Disp. Móveis, Robótica, Automação

http://www.flavioribeiro.com
http://www.twitter.com/flavioribeiro
email@flavioribeiro.com
flavioribeiro @ freenode #python-br #elinux
Agenda
Conceitos da Computação Móvel e Embarcada
Microprocessadores ARM e o Linux
Demonstração
Arduinos e o Projeto Marmota
Demonstração
Alguns Conceitos
O que Dispositivos Móveis e Sistemas Embarcados
têm em comum?
Alguns Conceitos
Dispositivos Móveis são Sistemas Embarcados!
Alguns Conceitos
E o que são Sistemas Embarcados?!
Alguns Conceitos
da Wikipedia;
“ Um sistema embarcado, ou sistema embutido, é um sistema microprocessado no qual o
computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. “

do Dept. de Informática da UFPE;
“ Um sistema é dito embarcado quando este é dedicado a uma única tarefa e interage continuamente
com o ambiente a sua volta por meio de sensores e atuadores. “

da MS Windows Embedded;
“... um Embedded System - sistema embarcado - é qualquer dispositivo microprocessado que
executa uma função dedicada... “
Alguns Conceitos
O Meu!

Sistemas Embarcados são sistemas eletrônicos
microprocessados (computadores) encapsulados e
dedicados ao dispositivo em que reside e são
desenvolvidos para exercer especialmente uma
atividade específica.
Alguns Conceitos
●

●

Escassez em recursos de Processamento, Armazenamento e Autonomia
Funcionalidade Única, executada repetidamente
● No caso dos smartphones “esperar por ligações, mensagens ou interações
de conectividade”

●

Forte Comunicação com o ambiente

●

Propósito de Existência concreto

●

Heterogêneos
Alguns Conceitos

●

Divertidos de Programar e Manipular!
Exemplos
Exemplos
Embedded ARM e Linux
O que é ARM?
Arquitetura de processadores RISC (Reduced Instruction Set Computer)
Robusto, suporta interrrupções
Baixo consumo de energia
Ideal para sistemas embarcados robustos!
Embedded ARM e Linux
TS 7200
200MHz ARM9 CPU
PC/104 expansion bus
32MB SDRAM
1 10/100 Ethernet
2 USB 2.0 (12 Mbit/s max)
1 Compact Flash socket
20 DIO lines
Embedded ARM e Linux
Embedded ARM e Linux
TS 7200
Kernel Linux 2.4 ou 2.6
TSLinux
Debian Linux
apt-get powered :)
Embedded ARM e Linux
Desenvolvimento de Aplicações
Embedded ARM e Linux
Desenvolvimento de Aplicações: Linguagens Compiladas
Embedded ARM e Linux
Desenvolvimento de Aplicações: Cross-Compile
Embedded ARM e Linux
Desenvolvimento de Aplicações: Cross-Compile

Desenvolvimento no Host PC
Embedded ARM e Linux
Desenvolvimento de Aplicações: Cross-Compile

Compilação Cruzada no Host PC pra Arquitetura do Target
Embedded ARM e Linux
Desenvolvimento de Aplicações: Cross-Compile

Comunicação

Envio do binário da aplicação pro Target
Embedded ARM e Linux
Desenvolvimento de Aplicações: Cross-Compile

Execução do binário no Target
Embedded ARM e Linux
Desenvolvimento de Aplicações: Linguagens Interpretadas
Embedded ARM e Linux

Demo!
Arduino
Projeto de Hardware e Software Livre voltado
para artistas, designers, hobbystas ou qualquer um
interessado em criar ou prototipar objetos e
ambientes interativos.
Arduino
•

Múltiplas Derivações: Duemilanove
Arduino
•

Múltiplas Derivações: Severino
Arduino
•

Múltiplas Derivações: Paperduino
Arduino
•

Múltiplas Derivações: Illuminato
Arduino
•

Múltiplas Derivações: Toscoduino
Arduino
•

Ciclo de Desenvolvimento rápido
Arduino
•

Estrutura Básica de uma Aplicação
marmota: o que é?
Open Hardware
Esquemas, dicas, layout de placas
Open Software
Todo o código no nosso svn!
marmota: o que é?
comunidade?
marmota: o que já
foi feito?
CarControlledByPhone
marmota: o que já
foi feito?
CarControlledByPhone
→ Carrinho com motores de 3v reduzidos
marmota: o que já
foi feito?
CarControlledByPhone
→ Carrinho com motores de 3v reduzidos
→ Arduino Duemilanove
marmota: o que já
foi feito?
CarControlledByPhone
→ Carrinho com motores de 3v reduzidos
→ Arduino Duemilanove
→ Módulo BlueSMIRF (SparkFun)
marmota: o que já
foi feito?
CarControlledByPhone
→ Carrinho com motores de 3v reduzidos
→ Arduino Duemilanove
→ Módulo BlueSMIRF (SparkFun)
→ Smartphone Symbian
marmota: o que já
foi feito?
CarControlledByPhone
→ Carrinho com motores de 3v reduzidos
→ Arduino Duemilanove
→ Módulo BlueSMIRF (SparkFun)
→ Smartphone Symbian
→ Python pra s60
marmota: o que já
foi feito?
CarControlledByPhone

Demo!
marmota: o que vem
por aí?
CarControlledByPhone na 1ª Competição de
Carros Controlados do PET Engenharia Elétrica
@ IFPB
marmota: o que vem
por aí?
CarControlledByPhone +
TouchScreen + Live Streaming
(effort @ embedded.ufcg)
marmota
Projeto Inteiramente Livre
Você pode ajudar!

www.marmota.mobi
Dúvidas?!
Obrigado!

Más contenido relacionado

Similar a Desenvolvimento Mobile com Arduino, Python e Linux

Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosAndré Curvello
 
Programação concorrente
Programação concorrenteProgramação concorrente
Programação concorrenteFabio Duarte
 
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
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasAndré Curvello
 
Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazerHeider Lopes
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro FrameworkIgor Kondrasovas
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedFabio Souza
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaFelipe Silveira
 
1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux EmbarcadoDiego Sueiro
 
Programação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro FrameworkProgramação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro FrameworkIgor Kondrasovas
 
Arduino Yún - À nuvem e além
Arduino Yún - À nuvem e alémArduino Yún - À nuvem e além
Arduino Yún - À nuvem e alémAndré Curvello
 
Software Livre e Open Source
Software Livre e Open SourceSoftware Livre e Open Source
Software Livre e Open SourceMarcelo Lira
 
Sistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosSistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosGustavo Ferreira Palma
 

Similar a Desenvolvimento Mobile com Arduino, Python e Linux (20)

Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
 
Programação concorrente
Programação concorrenteProgramação concorrente
Programação concorrente
 
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
 
Remobile
RemobileRemobile
Remobile
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das Coisas
 
Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazer
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro Framework
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Python e suas aplicações
Python e suas aplicaçõesPython e suas aplicações
Python e suas aplicações
 
Linux Raspberry Pi
Linux Raspberry PiLinux Raspberry Pi
Linux Raspberry Pi
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbed
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
 
1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado
 
Programação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro FrameworkProgramação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro Framework
 
Arduino Yún - À nuvem e além
Arduino Yún - À nuvem e alémArduino Yún - À nuvem e além
Arduino Yún - À nuvem e além
 
Software Livre e Open Source
Software Livre e Open SourceSoftware Livre e Open Source
Software Livre e Open Source
 
Sistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosSistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursos
 
Python for Maemo
Python for MaemoPython for Maemo
Python for Maemo
 
F oc aula_02a
F oc aula_02aF oc aula_02a
F oc aula_02a
 

Más de Flávio Ribeiro

Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Flávio Ribeiro
 
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
 
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerBemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerFlávio Ribeiro
 
stewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasstewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasFlávio Ribeiro
 
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeTest Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeFlávio Ribeiro
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 

Más de Flávio Ribeiro (9)

Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
 
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
 
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerBemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
 
stewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasstewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomalias
 
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeTest Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 

Desenvolvimento Mobile com Arduino, Python e Linux