Estação de Controle Multimídia com Interface Web utilizando Sistema Operacional Linux Embarcado...

Preview:

Citation preview

Estação de Controle Multimídia com Interface Web utilizando sistema operacional Linux embarcado em plataforma ARM

ANDRÉ MÁRCIO DE LIMA CURVELLO ORIENTADOR : PROF. DR. EVANDRO LUÍS LINHARI RODRIGUES

UNIVERSIDADE DE SÃO PAULO Escola de Engenharia de São Carlos

Departamento de Engenharia Elétrica 20 de Novembro de 2012

AGENDA

1. Objetivos do Trabalho

2. História e Estado da Arte dos Sistemas Embarcados

3. Visão Geral de Linux Embarcado e Plataformas disponíveis

4. Conceitos, Materiais e Métodos

5. Desenvolvimento e Resultados Obtidos

6. Conclusões

7. Sugestões e futuro do projeto

1. Objetivos do Trabalho

• Sistema Embarcado que faça uso e controle de ferramentas e componentes multimídia através da web;

• Componentes de controle e interação multimídia;

• Plataforma de acesso web amigável;

• Interação intersistemas e interplataformas;

• Portabilidade;

• Desenvolver bases para futuros projetos de sistemas embarcados em Linux.

2. História e Estado da Arte dos Sistemas Embarcados

• ENIAC – 1946

• Transistor – 1947, Bell Laboratories

• Apollo Guidance Computer - 1966

• Intel 4004 – 1971

Origem: www.porticus.org

Origem: www.britannica.com

Origem: www.computerhistory.org

Origem: www.extremetech.com

2. História e Estado da Arte dos Sistemas Embarcados

• Minuteman Missile Autonetics D-17 Computer

• Aumento da produção reduziu custos e facilitou acesso;

• Microcontroladores 8 Bits, 16 Bits e 32 Bits • Componentes de CPU e memória e periféricos integrados;

• ARM e SoCs ARM

• Arquitetura RISC, barramento 32 Bits;

• Integração de periféricos mais complexos no chip;

• Baixo consumo.

Origem: www.siloworld.net

Origem: www.lions-wing.net

Origem: www.pcper.com

3. Visão Geral de Linux Embarcado e Plataformas disponíveis

• Linux e Linux Embarcado

• Sistema Open Source, com suporte à rede e muitos usuários ,

fóruns e material disponível;

• Primeira versão surgiu em 1994 como um port do Linux para o computador Acorn A5000;

• Uso crescente no mercado, em dispositivos e produtos;

• Aumento do número de usuários;

• Amadurecimento das ferramentas de desenvolvimento;

• 4 Referências na Edição 95 da Linux Magazine de Outubro de 2012.

Origem: www.old-computers.com

Origem: www.developer.android.com

3. Visão Geral de Linux Embarcado e Plataformas disponíveis

• Plataformas

• Raspberry Pi

• BeagleBoard xM

• PandaBoard ES

• Tiny6410

Plataforma escolhida: Tiny6410

Origem: www.raspberypi.org Origem: www.beagleboard.org

Origem: www.friendlyarm.net Origem: www.pandaboard.org

4. Conceitos, Materiais e Métodos

• Toolchains

• Bootloader

• Kernel

• Sistema de Arquivos

• Buildroot

• Conceitos de Aplicação e Programação Web

• Multimídia

• Stream de Vídeo

• GPS

• Sensor de Temperatura Digital

• OpenCV

• Python

4. Conceitos, Materiais e Métodos

• Toolchains

• Conjunto de ferramentas para desenvolvimento, tais como compilador, bibliotecas, cabeçalhos de Kernel, debuggers, etc;

• Permitem realizar compilação cruzada;

• Toolchain FriendlyARM e Buildroot.

Origem: www.free-electrons.com

4. Conceitos, Materiais e Métodos

• Bootloader

• Componente responsável por inicializar o hardware para a entrada e ação do Kernel;

• U-Boot configurado para Tiny6410.

• Kernel

• Núcleo do sistema operacional, gerencia acesso à memória, disco, dispositivos do sistema, recursos de rede, etc;

• Kernel Linux 2.6.38 com configurações para Tiny6410.

4. Conceitos, Materiais e Métodos

• Sistema de Arquivos

• Leitura e escrita dos dados, persistência de dados, bibliotecas, aplicações e arquivos de configurações;

• Rootfs Qtopia fornecido pela FriendlyARM.

• Buildroot

• Buildsystem e Toolchain.

• Conceitos de Aplicação e Programação Web

• Componentes de exibição (HTML), estilos (CSS) e controle (JavaScript);

• Servidor Web – Lighttpd;

• Processador de Conteúdo – PHP.

4. Conceitos, Materiais e Métodos

• Multimídia • Exibição de conteúdo na forma de áudio, vídeo e imagens; • Periféricos da Tiny6410; • MPlayer

• Stream de Vídeo • Fluxo contínuo de imagens; • Captura de vídeo pela câmera USB; • MJPG Streamer;

• GPS • Sistema de localização global; • Receptor GPS SiRF StarIII; • Protocolo NMEA 0183.

4. Conceitos, Materiais e Métodos

• Sensor de Temperatura Digital

• DS18B20;

• Barramento Maxim 1-Wire;

• OpenCV

• Conjunto de bibliotecas para visão computacional;

• Permite capturar imagens, aplicar filtros e realizar operações matemáticas em cima de imagens capturadas ou utilizadas como parâmetros de entrada;

• Python • Linguagem interpretada e orientada a objetos;

• Fácil de usar e de manter;

• Ampla gama de bibliotecas, tais como comunicação serial, email, etc.

Origem: www.minidevs.com

5. Desenvolvimento e Resultados Obtidos

INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS • Arquitetura da Interface de Acesso Web

• Interface amigável e de fácil uso;

• Menu, exibição de conteúdo e painel de controle;

• Uso de tags HTML, estilos CSS e funções JavaScript;

• Diretórios utilizados:

• “pages” – Arquivos das páginas a serem exibidas;

• “php” - Arquivos PHP que recebem e tratam requisições;

• “css” - Arquivos de estilo CSS;

• “js” – JavaScripts;

• “images” – Imagens utilizadas na página da Interface;

• “pictures” – Link simbólico para o diretório de imagens capturadas pela câmera USB;

• “files” – Demais arquivos e scripts escritos em outras linguagens.

5. Desenvolvimento e Resultados Obtidos

INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS • Uso de No-IP para facilitar o acesso.

• Endereço http://armweb.no-ip.org

• Principal arquivo: www/index.php;

• Recebe requisições para mudança de página através do parâmetro p e exibe a página na coluna central;

• Exemplo:

http://armweb.no-ip.org/?p=home Ou

http://armweb.no-ip.org/index.php?p=home

5. Desenvolvimento e Resultados Obtidos

INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS • Arquitetura da Interface de Acesso Web

• Layout:

5. Desenvolvimento e Resultados Obtidos

INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS • Arquitetura da Interface de Acesso Web

• Final:

5. Desenvolvimento e Resultados Obtidos

• Servidor Web Lighttpd e Processador de Conteúdo PHP

• Receber, encaminhar e responder requisições;

• Retorna e sintetiza conteúdo HTML ao cliente web;

• Executa aplicações;

INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

Origem: www.sixrevisions.com

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Autenticação

• Mecanismo de Sessão do PHP;

• Controle de exibição de conteúdo para usuários não autenticados e autenticados

• Streams de vídeo, mensagens e administração.

• Mecanismo de persistência de dados com SQLite3.

• Tabela de usuários cadastrados e suas informações de login.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Autenticação

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Músicas

• php/folvernav.php

• Mapeamento e geração de conteúdo HTML de diretórios de músicas;

• Arquivos como Links com funções JavaScript para disparo de requisições.

• js/mediaControl.js implementa as funções de disparo.

• php/mplayer.php

• Recebe requisições e executa MPlayer;

• php/musicas.php

• Estrutura da página Músicas.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Músicas

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Vídeos

• php/folvernav.php

• Mapeamento e geração de conteúdo HTML de diretórios de vídeos;

• Arquivos como Links com funções JavaScript para disparo de requisições.

• js/mediaControl.js implementa as funções de disparo.

• php/mplayer.php

• Recebe requisições e executa MPlayer;

• php/videos.php

• Página Vídeos;

• Elemento de seleção da saída de vídeo.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Vídeos

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Vídeos

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Câmera

• MJPG Streamer

• Shell Script define parâmetros de controle para a execução do streamer;

• Baixo uso de banda de rede. Cerca de 5 a 10 kB/s;

• Basta uma câmera USB compatível com UVC;

• php/status.php

• Iniciar ou encerrar o stream de vídeo da câmera.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Câmera

• usbCapArgs.c

• OpenCV para captura de imagens pela câmera USB;

• Shell Scripts para controle de captura de fotos com a aplicação. Capturam e movem as fotos para diretório de imagens no cartão de memória.

• files/timeCapture.sh

• files/cameraCapture.sh

• php/camCapture.php

• Requisições para controle de obtenção de fotos. Interage com files/cameraCapture.sh.

• pages/camera.php

• Página Câmera, exibe os streams de vídeo e componentes de controle para obtenção de fotos.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Câmera

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Imagens

• Mapeamento do diretório de imagens

• php/foldernav.php

• Conteúdo HTML tabelado com as imagens contidas no diretório;

• pages/images.php

• Página Imagens;

• Ao serem clicadas, as imagens são exibidas em tamanho original.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Imagens

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• GPS

• files/gps.py

• Comunicação serial com o receptor GPS;

• Obtém as sentenças GPS desejadas;

• php/gps.php

• Requisições de dados GPS;

• Interage com files/gps.py

• pages/gps.php

• Página GPS.

• Script Python: gps.py

• Receptor GPS • Protocolo NMEA

• Modelo SiRF StarIII

• Transmissão Serial RS232 a 9600 bps

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Temperatura

• Driver para o sensor de temperatura ds18b20.ko.

• Aplicação ds18b20.c

• Leitura de dados do driver.

• pages/temp.php

• Página Temperatura;

• php/temp.php

• Interage com a aplicação de leitura do driver ;

• Retorna a temperatura conforme parâmetros passados;

• Pode gerar arquivo texto com dados de temperatura em um intervalo em segundos.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Temperatura

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Temperatura

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• RF

• Interação com o projeto Ferramentas para Gerenciamento de Conteúdo para Telemetria via Web com Linux Embarcado em Microcontroladores ARM;

• php/rf.php

• Envio e recebimento de dados por meio de requisições parametrizadas.

• pages/rf.php

• Página RF.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• RF

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• RF

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Administração

• Exibição de relatórios e mecanismos de controle da estação;

• Informações gerais sobre o sistema;

• Controles

• Iniciar ou pausar o stream de vídeo;

• Ligar ou desligar o display LCD e seu backlight, dentre outros.

• php/status.php

• Controle de periféricos e exibição de status.

• pages/admin.php

• Relatório do sistema e componentes de controle;

• Controles mostrados somente para usuários autenticados.

• Administração

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Painel de Status e de Controle

• Exibição direta de dados:

• Temperatura ambiente;

• Uso de CPU;

• Status do Stream de Vídeo e do MPlayer.

• Controle de execução multimídia:

• Avançar/recuar música;

• Pausar ou cancelar a execução;

• Controle de volume.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Painel de Status e de Controle

• A exibição de dados da estação ocorre pela interação entre funções no script js/ajax.js e de requisições do script php/status.php.

• Já o controle de execução multimídia ocorre pela interação entre funções no script js/mediaControl.js e o script php/mplayer.php.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Painel de Status e de Controle

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Contato

• files/mail.py

• Envia e-mails através da conta tiny6410@gmail.com;

• php/mail.php

• Parâmetros de contato;

• Envio de e-mail com files/mail.py com parâmetros trabalhados.

• pages/contact.php

• Página Contato.

• Script Python: mail.py

• Script PHP: php/mail.php

• Script PHP: pages/contact.php

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Contato

• Script Python: mail.py

• Script PHP: php/mail.php

• Script PHP: pages/contact.php

6. Conclusões

• Uso de diversas ferramentas de desenvolvimento;

• Uso de conceitos de sistemas embarcados, redes de computadores e interação cliente-servidor para web;

• Interação entre componentes, elementos e programas em linguagens diferentes compondo um sistema final;

• Agregação de informação com uso de toolchains e buildsystems, e pelo desenvolvimento de sistemas e de interface web;

• Ativo para aprendizado de ferramentas e de desenvolvimento de soluções Linux embarcadas.

7. Sugestões e futuro do projeto

• Página para acesso móvel;

• Google API – Inserção de dados em planilhas na nuvem, criação automática de álbuns com as fotos tiradas pela câmera, etc;

• DropBox API – Inserção de dados em um disco virtual na nuvem;

• Interação com redes sociais – Twitter;

• XMPPPY – Comunicação e interação via chat;

• Uso de OpenCV para criar mecanismos de reconhecimento facial, detecção de padrões, etc.

7. Sugestões e futuro do projeto

• O projeto pode se tornar um produto para entretenimento;

• É possível criar um equipamento para monitoramento visual e sensoriamento remoto, com uso de componentes de baixo custo;

• Será continuado como projeto, e está disponível no Git Hub:

https://github.com/andrecurvello/armwebstation

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Mensagem

• Ainda em fase de protótipo;

• Uso de Qt4 para exibição de mensagem no display LCD da Tiny6410;

• Uso de scripts PHP para exibição da página e controle de requisições;

• Previsto para futuras versões do projeto.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Documentos

• Página com links, documentos e referências bibliográficas para suporte ao desenvolvimento de Linux embarcado;

• Script PHP responsável por sintetizar a página.

• Documentos

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Sobre

• Tela com maiores detalhes sobre cada uma das opções do Menu e do sistema implementado;

• Script PHP pages/about.php é responsável por definir a estrutura HTML e o conteúdo da página.

5. Desenvolvimento e Resultados Obtidos INTERFACE DE ACESSO WEB E COMPONENTES RELACIONADOS

• Sobre