Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Flávio RibeiroFaculdade 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.comhttp://www.twitter.com/[email protected] @ freenode #python-br #elinux
Agenda
Conceitos da Computação Móvel e Embarcada
Microprocessadores ARM e o LinuxDemonstração
Arduinos e o Projeto MarmotaDemonstraçã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“ 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... “
da Wikipedia;
Alguns ConceitosO 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çõesBaixo consumo de energia
Ideal para sistemas embarcados robustos!
Embedded ARM e Linux
TS 7200200MHz ARM9 CPUPC/104 expansion bus32MB SDRAM1 10/100 Ethernet2 USB 2.0 (12 Mbit/s max)1 Compact Flash socket20 DIO lines
Embedded ARM e Linux
Embedded ARM e Linux
TS 7200Kernel Linux 2.4 ou 2.6TSLinuxDebian 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
Envio do binário da aplicação pro Target
Comunicação
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
Demo!
Embedded ARM e Linux
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: I l luminato
Arduino
• Múltiplas Derivações: Toscoduino
Arduino
• Ciclo de Desenvolvimento rápido
Arduino
• Estrutura Básica de uma Aplicação
marmota: o que é?
Open HardwareEsquemas, dicas, layout de placas
Open SoftwareTodo o código no nosso svn!
marmota: o que é?
comunidade?
marmota: o que já foi feito?
CarControl ledByPhone
marmota: o que já foi feito?
CarControl ledByPhone Carrinho com motores de 3v reduzidos→
marmota: o que já foi feito?
CarControl ledByPhone Carrinho com motores de 3v reduzidos→ → Arduino Duemilanove
marmota: o que já foi feito?
CarControl ledByPhone Carrinho com motores de 3v reduzidos→ → Arduino Duemilanove → Módulo BlueSMIRF (SparkFun)
marmota: o que já foi feito?
CarControl ledByPhone Carrinho com motores de 3v reduzidos→ → Arduino Duemilanove → Módulo BlueSMIRF (SparkFun) → Smartphone Symbian
marmota: o que já foi feito?
CarControl ledByPhone Carrinho com motores de 3v reduzidos→ → Arduino Duemilanove → Módulo BlueSMIRF (SparkFun) → Smartphone Symbian → Python pra s60
marmota: o que já foi feito?
CarControl ledByPhone
Demo!
marmota: o que vempor aí?
CarControlledByPhone na 1ª Competição de Carros Controlados do PET Engenharia Elétrica
@ IFPB
marmota: o que vempor aí?
CarControlledByPhone + TouchScreen + Live Streaming
(effort @ embedded.ufcg)
marmota
Projeto Inteiramente LivreVocê pode ajudar!
www.marmota.mobi
Dúvidas?!
Obrigado!