Upload
andre-curvello
View
476
Download
6
Embed Size (px)
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 [email protected];
• 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