SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
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!

Mais conteúdo relacionado

Semelhante a Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazer
Heider Lopes
 
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
Jonh Edson
 

Semelhante a Desenvolvimento Mobile & Embedded com Arduino, Python, ARM 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
 

Mais de Flá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-Peer
Flá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 produtividade
Flávio Ribeiro
 

Mais 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
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux