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

48
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux Flávio Ribeiro Faculdade iDEZ, Outubro de 2009

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

Page 1: 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

Page 2: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

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

Page 3: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Agenda

Conceitos da Computação Móvel e Embarcada

Microprocessadores ARM e o LinuxDemonstração

Arduinos e o Projeto MarmotaDemonstração

Page 4: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Alguns Conceitos

O que Dispositivos Móveis e Sistemas Embarcados têm em comum?

Page 5: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Alguns Conceitos

Dispositivos Móveis são Sistemas Embarcados!

Page 6: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Alguns Conceitos

E o que são Sistemas Embarcados?!

Page 7: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

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;

Page 8: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

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.

Page 9: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

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

Page 10: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Alguns Conceitos

● Divertidos de Programar e Manipular!

Page 11: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Exemplos

Page 12: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Exemplos

Page 13: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

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!

Page 14: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

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

Page 15: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Page 16: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

TS 7200Kernel Linux 2.4 ou 2.6TSLinuxDebian Linux

apt-get powered :)

Page 17: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações

Page 18: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações: Linguagens Compiladas

Page 19: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações: Cross-Compile

Page 20: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações: Cross-Compile

Desenvolvimento no Host PC

Page 21: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações: Cross-Compile

Compilação Cruzada no Host PC pra Arquitetura do Target

Page 22: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações: Cross-Compile

Envio do binário da aplicação pro Target

Comunicação

Page 23: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações: Cross-Compile

Execução do binário no Target

Page 24: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Embedded ARM e Linux

Desenvolvimento de Aplicações: Linguagens Interpretadas

Page 25: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Demo!

Embedded ARM e Linux

Page 26: Desenvolvimento Mobile & Embedded com Arduino, Python, 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.

Page 27: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduino

• Múltiplas Derivações: Duemilanove

Page 28: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduino

• Múltiplas Derivações: Severino

Page 29: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduino

• Múltiplas Derivações: Paperduino

Page 30: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduino

• Múltiplas Derivações: I l luminato

Page 31: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduino

• Múltiplas Derivações: Toscoduino

Page 32: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduino

• Ciclo de Desenvolvimento rápido

Page 33: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Page 34: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Arduino

• Estrutura Básica de uma Aplicação

Page 35: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que é?

Open HardwareEsquemas, dicas, layout de placas

Open SoftwareTodo o código no nosso svn!

Page 36: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que é?

comunidade?

Page 37: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que já foi feito?

CarControl ledByPhone

Page 38: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que já foi feito?

CarControl ledByPhone Carrinho com motores de 3v reduzidos→

Page 39: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que já foi feito?

CarControl ledByPhone Carrinho com motores de 3v reduzidos→ → Arduino Duemilanove

Page 40: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que já foi feito?

CarControl ledByPhone Carrinho com motores de 3v reduzidos→ → Arduino Duemilanove → Módulo BlueSMIRF (SparkFun)

Page 41: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que já foi feito?

CarControl ledByPhone Carrinho com motores de 3v reduzidos→ → Arduino Duemilanove → Módulo BlueSMIRF (SparkFun) → Smartphone Symbian

Page 42: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

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

Page 43: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que já foi feito?

CarControl ledByPhone

Demo!

Page 44: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que vempor aí?

CarControlledByPhone na 1ª Competição de Carros Controlados do PET Engenharia Elétrica

@ IFPB

Page 45: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota: o que vempor aí?

CarControlledByPhone + TouchScreen + Live Streaming

(effort @ embedded.ufcg)

Page 46: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

marmota

Projeto Inteiramente LivreVocê pode ajudar!

www.marmota.mobi

Page 47: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Dúvidas?!

Page 48: Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux

Obrigado!