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

Post on 25-May-2015

551 views 3 download

description

Um apanhado de conceitos que envolvem sistemas embarcados e computação móvel para a aula inaugural da Pós-Graduação em Mobilidade e Sistemas Embarcados da Estácio iDez.

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

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/flavioribeiroemail@flavioribeiro.comflavioribeiro @ 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!