31
393 Anhanguera Educacional Ltda. Correspondência/Contato Alameda Maria Tereza, 4266 Valinhos, SP - CEP 13278-181 [email protected] Coordenação Instituto de Pesquisas Aplicadas e Desenvolvimento Educacional - IPADE Publicação: 1 de novembro de 2012 Trabalho realizado com o incentivo e fomento da Anhanguera Educacional Tyemy Kuga Andressa L. Almeida da Silva Ricardo Borges de Moura Prof. Patrícia Rocha de Toro Curso: Ciência da Computação FACULDADE ANHANGUERA DE INDAIATUBA Trabalho apresentado no 10º Congresso Nacional de Iniciação Científica – CONIC. RESUMO Criar uma ferramenta open source para auxiliar os desenvolvedores na geração de relatórios e gráficos na linguagem de programação C++. O objetivo do projeto é oferecer uma alternativa gratuita e integrada para evitar a pirataria de software, um problema comumente encontrado no processo de implementação de sistemas. O projeto visa ainda ajudar na manipulação e exibição de dados e no aumento da produtividade. Para o planejamento do projeto foi utilizada uma metodologia que suportará a adição de funcionalidades e melhorias pela comunidade de software livre. A documentação do projeto (os documentos referentes a planejamento, requisitos e testes do escopo apresentado neste trabalho) foi usada como guia para a construção do protótipo. Estes documentos estão disponíveis em um repositório hospedado pelo Google Code para consulta e atualização a cada nova codificação objetivando melhorias ou correções. O código fonte e outros artefatos do projeto serão controlados no repositório, permitindo o trabalho colaborativo e o seguimento da metodologia proposta. Palavras-Chave: gráfico, relatório, ferramenta open source, art report. ANUÁRIO DA PRODUÇÃO DE INICIAÇÃO CIENTÍFICA DISCENTE Vol. 13, N. 18, Ano 2010 ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O DESENVOLVIMENTO COMPUTACIONAL

ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

393

Anhanguera Educacional Ltda. Correspondência/Contato Alameda Maria Tereza, 4266 Valinhos, SP - CEP 13278-181 [email protected] Coordenação Instituto de Pesquisas Aplicadas e Desenvolvimento Educacional - IPADE Publicação: 1 de novembro de 2012

Trabalho realizado com o incentivo e fomento da Anhanguera Educacional

Tyemy Kuga Andressa L. Almeida da Silva Ricardo Borges de Moura Prof. Patrícia Rocha de Toro

Curso: Ciência da Computação

FACULDADE ANHANGUERA DE INDAIATUBA

Trabalho apresentado no 10º Congresso Nacional de Iniciação Científica – CONIC.

RESUMO

Criar uma ferramenta open source para auxiliar os desenvolvedores na geração de relatórios e gráficos na linguagem de programação C++. O objetivo do projeto é oferecer uma alternativa gratuita e integrada para evitar a pirataria de software, um problema comumente encontrado no processo de implementação de sistemas. O projeto visa ainda ajudar na manipulação e exibição de dados e no aumento da produtividade. Para o planejamento do projeto foi utilizada uma metodologia que suportará a adição de funcionalidades e melhorias pela comunidade de software livre. A documentação do projeto (os documentos referentes a planejamento, requisitos e testes do escopo apresentado neste trabalho) foi usada como guia para a construção do protótipo. Estes documentos estão disponíveis em um repositório hospedado pelo Google Code para consulta e atualização a cada nova codificação objetivando melhorias ou correções. O código fonte e outros artefatos do projeto serão controlados no repositório, permitindo o trabalho colaborativo e o seguimento da metodologia proposta.

Palavras-Chave: gráfico, relatório, ferramenta open source, art report.

ANUÁRIO DA PRODUÇÃO DE INICIAÇÃO CIENTÍFICA DISCENTE

Vol. 13, N. 18, Ano 2010

ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O DESENVOLVIMENTO COMPUTACIONAL

Page 2: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

1. INTRODUÇÃO

Realizamos diversas pesquisas em sites de busca, fóruns especializados, e entrevistas com

profissionais da área e foi evidenciada a grande necessidade de uma ferramenta gratuita

para a geração de relatórios e gráficos direcionada para a linguagem C++ que fosse de

fácil utilização, documentação simples e acessível e além de possuir as funcionalidades

indispensáveis.

Durante a pesquisa foi constatada a dificuldade de encontrar informações ou

interesse em realizar um projeto open source que satisfizesse esta carência.

As ferramentas existentes são pagas, e a alternativa encontrada normalmente é a

criação dos relatórios manualmente, o que despende muito tempo e implica em baixa

produtividade para o programador ou a cópia ilegal de programas.

No entanto falsificação e distribuição de software ilegítimo é crime, estando

sujeito às sanções previstas na Lei 10.695, de 01/07/2003. Além disso, usar uma cópia não

autorizada faz o utilizador perder direitos tais como: suporte, documentação, atualizações

e garantias.

Com os princípios expostos acima, além de gratuito, o projeto terá seu código

fonte disponibilizado na íntegra (código fonte aberto) a fim de possibilitar futuras

implementações de melhorias e adaptações para a ferramenta, possibilitando que o

projeto se mantenha atualizado e em constante evolução.

Como exemplos de ferramentas similares a que propomos desenvolver, podemos

citar:

Crystal Reports: Ferramenta paga para utilização juntamente com linguagens de programação ou diretamente em aplicações web. Permite inserir fórmulas em relatórios e pode receber seus dados de um programa, de um Recordset ou de um Banco de dados relacional. (SAP Brazil, 2010).

Microsoft SQL Server 2008 Reporting Services: Ferramenta paga. Ajuda na criação, implantação e gerenciamento de relatórios interativos, tabulares, gráficos ou de forma livre de fontes de dados relacionais, multidimensionais ou baseadas em XML (eXtensible Markup Language). Permite criar relatórios baseados em modelos predefinidos, além de exibir e exportar relatórios em diversos formatos. (MSDN. SQL Server, 2010).

OOFile C++ Report Writer: Ferramenta gratuita. É uma ferramenta multi-plataforma e open source para geração relatórios. Possui pré-visualização e impressão em diversos formatos como XML, RTF (Rich Text Format), HTML (HyperText Markup Language) e texto simples. (OO File, 2010).

Page 3: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Tyemy Kuga, Andressa Luana Almeida da Silva, Ricardo Borges de Moura, Patrícia Rocha de Toro 395

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

A internet como forma de divulgação foi escolhida, pois segundo Vasconcelos

(2003, p. 78), esta facilita a disseminação e troca de informações nas suas mais variadas

formas, seja pra estudo, uso pessoal ou uso ilegal.

Assim como Mazières, (2009, p. 28) que em sua tese defende significações

políticas e culturais de um movimento de Software Livre e open source, mostra que os

softwares não se destacam apenas por serem gratuitos, mas sim pela qualidade,

vantagens e estabilidade dos mesmos e que essa categoria de produtos são aceitos até

mesmo por grandes corporações, citando como exemplo o sistema operacional Linux.

Este artigo está organizado em seções. Esta seção 1 apresenta uma introdução

sobre o trabalho apresentado. A seção 2 discorre sobre os objetivos a serem alcançados

com a conclusão do projeto. A metodologia adotada está explicitada na seção 3, e as

informações referentes ao desenvolvimento da pesquisa tais como o problema

identificado, a solução proposta e implementada são demonstrados na seção 4. Os

resultados obtidos durante o trabalho são discutidos na seção 5, e por fim a seção 6

apresenta as considerações finais sobre os resultados obtidos e o próprio processo de

desenvolvimento científico.

2. OBJETIVO

O objetivo deste projeto é oferecer uma alternativa para viabilizar a manipulação e

impressão de dados desenvolvendo uma ferramenta open source, amigável e intuitiva,

para que sua aceitação seja ampla.

O código deve seguir padrões de desenvolvimento que facilitem a manutenção e

melhoria futura.

Para atingir este propósito, o código deve ser comentado, com especial atenção

para as funções utilizadas. Parâmetros, matrizes, variáveis e quaisquer estruturas de

dados utilizadas deverão ser explicadas nos comentários.

A documentação acerca do projeto contendo a especificação dos artefatos que

devem ser gerados, assim como os Casos de Uso necessários ao desenvolvimento e a

especificação das interfaces do projeto estarão disponíveis para consulta no repositório

(local que possibilita o armazenamento e controle do conteúdo do projeto de forma

colaborativa).

O funcionamento correto do software deve ser validado através de testes, tais

como: funcionais, de interface e exploratórios, que devem ser realizados pelos

desenvolvedores antes de submeter o código.

Page 4: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

396 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

3. METODOLOGIA

Devido à complexidade do projeto a equipe optou por utilizar uma metodologia robusta,

que oferecesse um modelo de planejamento útil à gestão dos documentos necessários e

distribuição de recursos e tarefas.

O PMBOK (livro sobre as práticas de gerência de projeto recomendadas pelo PMI

- Project Management Institute) foi usado como diretriz para a adoção da gestão

escolhida.

A equipe utilizou ferramentas de gestão de riscos, para minimizar os impactos

provocados pela concretização de um risco previsto. Através da análise das características

do projeto (como a linguagem de programação escolhida), foi possível identificar os

principais riscos que poderiam ocorrer, criar um plano de contingência para minimizar

esse risco e acompanhar a evolução deste.

Um repositório online foi criado para controlar os artefatos gerados durante o

projeto e os que serão gerados ou modificados posteriormente. Este repositório está

hospedado no Google Code no endereço http://code.google.com/p/artreport/.

O ambiente do projeto, como detalhado no Plano de Configuração, permite a

submissão de defeitos encontrados por usuários ou desenvolvedores, e oferece um

ambiente para o trabalho colaborativo.

Mantendo o desenvolvimento dentro dos padrões descritos a manutenção,

atualização e adição de novas funcionalidades serão viáveis seja pela equipe de

desenvolvimento original ou por novas equipes de desenvolvimento.

Durante a etapa de pesquisa foram analisados:

Os requisitos que devem ser atendidos pelo software;

A utilização do software livre dentro do contexto acadêmico e social;

As ferramentas que poderiam auxiliar a implementação do projeto;

Ferramentas de geração de gráficos e relatórios existentes no mercado, e suas vantagens/desvantagens;

O detalhamento dos requisitos foi dividido em alguns modelos de documentos:

Documento visão: especifica o objetivo do sistema e suas funcionalidades. Também descreve o escopo do projeto, indicando o que fará parte ou não do software implementado;

Casos de Uso: descrevem as funcionalidades do sistema;

Especificação da interface: descreve o comportamento da interface do sistema e como todos os elementos desta interface devem se comportar.

Protótipo: uma versão inicial do sistema planejado que está disponível na

Page 5: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Tyemy Kuga, Andressa Luana Almeida da Silva, Ricardo Borges de Moura, Patrícia Rocha de Toro 397

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

fase inicial do processo de desenvolvimento.

A equipe realizou entrevistas com profissionais para entender as necessidades

que a ferramenta deveria suprir. Essas entrevistas não foram armazenadas no repositório

do projeto, pois foram realizadas informalmente e serviram apenas como um

apoio/curiosidade à elaboração dos documentos de requisitos.

Outros documentos de apoio foram criados para garantia da qualidade e da

integridade do projeto:

Plano de Configuração: especifica as regras que deverão ser seguidas para o versionamento dos documentos e do software, assim como políticas de segurança para acesso ao repositório do projeto.

Plano de Teste: descreve a estratégia adotada para garantir a qualidade do sistema através de testes funcionais e de interface. Neste documento estarão descritos os requisitos que serão testados.

O Plano de Teste será utilizado para orientar os testes da primeira versão do

produto e novas funcionalidades deverão ser testadas pelo próprio desenvolvedor, de

acordo com as premissas detalhadas no Plano de Teste para assegurar que a alteração não

introduza novos defeitos em funcionalidades já existentes.

O código fonte e a documentação necessária estão disponíveis à comunidade

acadêmica e aos desenvolvedores, através da internet no endereço

http://code.google.com/p/artreport/.

4. DESENVOLVIMENTO

4.1. Pesquisa

Buscamos informações que auxiliaram no desenvolvimento do escopo, metodologia e

implementação do projeto.

Devido ao fato de não encontrarmos programas com características similares à

nossa proposta, conversamos com profissionais de empresas privadas e comunidades da

área para entender as necessidades dos desenvolvedores e definir os recursos que o

sistema contemplaria.

Nas ferramentas avaliadas, foram identificadas características como a facilidade

na utilização e excelência na execução da tarefa proposta. No entanto, os produtos

proprietários necessitam da aquisição de licenças para utilização e os softwares gratuitos

muitas vezes não disponibilizam ambas as funcionalidades (geração de gráficos e

relatórios) em apenas uma ferramenta.

Page 6: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

398 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

A boa organização no desenvolvimento de um software deve seguir uma

metodologia de trabalho. É necessário que tenha como base conceitos que proponham a

elaboração de um produto eficaz, alem de ser imprescindível que esta seja solidificada e

de conhecimento de todos os envolvidos no processo. Para a definição da metodologia,

recorremos à bibliografia especializada e visitamos a UNICAMP (Universidade Estadual

de Campinas) a procura de trabalhos acadêmicos que nos auxiliassem nesta tarefa.

4.2. Documentação e Planejamento

Com base nos dados coletados elaboramos o Documento Visão que considera a finalidade

do projeto.

As necessidades identificadas e as interfaces foram detalhadas em documentos

de Casos de Uso e Especificação de Interface. O Plano de Teste abrange os pontos de

função que devem ser validados de acordo com os documentos de requisitos.

Não é possível garantir que o código de um software esteja isento de erros, já que

estes possuem uma grande quantidade de expressões e algoritmos complexos, embora

exista um momento que de acordo com os autores Bastos, Rios, Cristalli e Moreira a

ocorrência de defeitos não compensa mais a manutenção dos testes .

As regras para o controle de versionamento do software e da documentação

foram definidas no Plano de Configuração, assim como políticas de acesso ao repositório,

bibliotecas e ferramentas utilizadas no processo de desenvolvimento.

4.3. Implementação

A codificação está sendo realizada com base nos requisitos definidos na etapa de

documentação e planejamento, usando como referência o livro C ++ Como Programar do

autor Deitel.

Optamos por desenvolver uma interface simples, para que o usuário familiarize-

se facilmente com os recursos oferecidos e consiga aprender a manuseá-la rapidamente,

pois de acordo com Rocha e Baranauskas (2003, p. 7 e 8), a disposição adequada ao acesso

às funcionalidades existentes é fundamental para a facilidade de uso da ferramenta. Em

geral, um conjunto muito grande de recursos faz com que o usuário fique confuso quando

necessita realizar uma simples tarefa.

As interfaces e funcionalidades desenvolvidas até o momento podem ser vistas

nas figuras a seguir.

Page 7: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Tyemy Kuga, Andressa Luana Almeida da Silva, Ricardo Borges de Moura, Patrícia Rocha de Toro 399

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

Figura 1 – Interface Principal

A Interface Principal (Figura 1) contém os botões de acesso às funcionalidades do

sistema, através dela o desenvolvedor escolherá o recurso a ser utilizado.

O botão Gerar Modelo de Relatório apresenta a interface de criação de modelos

onde são exibidas às opções de cabeçalho, rodapé, campos e formatação desejadas.

O botão Gerar Modelo de Gráfico invoca a tela de criação de modelos podendo

assim selecionar as opções desejadas de formatação, legenda, quantidade de categorias,

título e o tipo de gráfico a ser utilizado.

O link Sobre exibe informações pertinentes ao projeto.

Page 8: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

400 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

De acordo com a Figura 2, o sistema conta com uma interface gráfica para a

criação de modelos que serão utilizados na geração do relatório.

Na criação do modelo, o usuário poderá escolher os campos desejados e a

posição de cada um deles no relatório, a formatação do texto, como tamanho, fonte, cor e

estilo como no exemplo acima, em que foram adicionados os campos “Código do

Funcionário, Nome do Funcionário, Telefone Residencial, Telefone Celular”.

Outras definições que poderão opcionalmente ser adicionadas ao modelo são

opções de cabeçalho e rodapé, numeração de página e data.

A geração do modelo originará uma classe com o código pronto a partir das

definições escolhidas e que poderá ser modificado caso seja necessário adicionar campos

ou até mesmo alterar o layout.

Alterações do modelo poderão ser feitas abrindo o arquivo existente na interface

Gerar do Modelo de Relatório ou editando o código fonte já gerado.

Os dados a serem exibidos no relatório serão passados manualmente para a

classe gerada e serão de inteira responsabilidade do desenvolvedor.

Os formatos de exportação são pré-definidos e o desenvolvedor indicará através

de um parâmetro a ser passado na chamada do método que invocará a criação do

Figura 2 – Interface Geração do Modelo de Relatório

Page 9: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Tyemy Kuga, Andressa Luana Almeida da Silva, Ricardo Borges de Moura, Patrícia Rocha de Toro 401

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

relatório. Se o desenvolvedor optar por não selecionar nenhum, o sistema exportará o

relatório com um formato padrão.

Figura 3 – Interface Geração do Modelo de Gráfico

A Figura 3 apresenta a interface gráfica para a criação de modelos que serão

utilizados na geração do gráfico.

Na criação do modelo, o usuário poderá escolher as categorias desejadas no

gráfico, a posição da legenda e do título, assim como opções de formatações.

O sistema tem dois tipos de gráficos nativos que o desenvolvedor selecionará

durante a criação do modelo, o de “pizza” e o de “colunas”.

O modelo irá originar uma classe com o código gerado a partir das definições

escolhidas que poderá ser modificado caso seja necessário adicionar campos ou até

mesmo alterar o layout, assim como na geração do relatório.

A alteração poderá ser feita através da interface de Geração do Modelo de

Gráfico, ou através do código fonte gerado pelo modelo.

Ao optar pela geração do gráfico o desenvolvedor importará para seu projeto o

modelo criado.

Os dados a serem exibidos no gráfico serão passados manualmente para a classe

gerada e serão de inteira responsabilidade do desenvolvedor.

Page 10: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

402 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

Para gerar gráficos é necessário criar uma classe para detectar os drivers gráficos

existentes no computador como na Figura 4:

Figura 4 – Exemplo de detecção do modo gráfico.

As interfaces estão detalhadas no Protótipo do projeto, que exibe inclusive a

navegabilidade entre os componentes da interface.

5. RESULTADOS

As interfaces do sistema e as funcionalidades atreladas a elas estão documentadas, assim

como as matrizes de relacionamento entre as funções e as respectivas interfaces.

Os resultados alcançados até o momento são animadores, pois apesar do projeto

ser desafiador conseguimos concluir a documentação relativa ao ART Report e

implementamos um ambiente para a posterior manutenção do projeto.

Nossas pesquisas revelaram que o C++ segue com uma das cinco linguagens de

programação mais utilizadas no mundo, tanto pelo mercado de trabalho quanto pelas

instituições acadêmicas. Uma tendência observada é que outras linguagens derivadas de

C têm tido destaque entre as mais utilizadas.

Page 11: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Tyemy Kuga, Andressa Luana Almeida da Silva, Ricardo Borges de Moura, Patrícia Rocha de Toro 403

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 393-403

6. CONSIDERAÇÕES FINAIS

O projeto desenvolvido foi importante para agregar mais conhecimentos e consolidar os

conceitos aprendidos na graduação, como engenharia de software e aprofundamento na

própria linguagem C++.

Os resultados obtidos foram os previstos pela equipe, pois os problemas

encontrados durante o projeto já haviam sido identificados em uma planilha de riscos. O

plano de contingência gerado atende as expectativas acerca da finalização do projeto em

data posterior.

O propósito do projeto é que o software gerado seja de grande auxílio à

comunidade de desenvolvedores, sendo uma ferramenta utilizada em projetos que

necessitem disponibilizar os dados gerados na aplicação de forma gráfica.

Com este sistema e disponibilizando o código fonte, desejamos contribuir para a

divulgação do software livre como forma de dinamizar e distribuir o conhecimento.

Nosso objetivo é dar continuidade à ideia, provavelmente como tema do

Trabalho de Conclusão de Curso (TCC) ou pesquisa paralela.

REFERÊNCIAS

BASTOS, A. RIOS, E. CRISTALLI, R. MOREIRA, T. Base de Conhecimento em Teste de Software. São Paulo, Martins, 2007.

DEITEL, H.m. C ++ Como Programar. 5ª Edição. Prentice Hall (Pearson), 2006.

MAZIÈRES, A. B. M. Uma análise sociopolítica do movimento do software livre e do código aberto. Campinas, 2009. p. 90. Dissertação de mestrado – Instituto de Filosofia e Ciências Humanas - Universidade Estadual de Campinas.

MSDN. SQL Server 2008. Manuais Online do SQL Server. SQL Server Reporting Services. Disponível em: <http://msdn.microsoft.com/pt-br/library/ms159106.aspx> Acesso em: 18 de abril de 2010.

OO File. Report Writer. Disponível em: <http://www.oofile.com.au/reportwriter.html> Acesso em: 18 de abril de 2010.

PLANALTO. Casa Civil. Disponível em: <http://www.planalto.gov.br/ccivil/LEIS/2003/L10.695.htm>. Acesso em: 09 de julho de 2010

PMI (PROJECT MANAGEMENT INSTITUTE). Guia de Conhecimentos em Gerenciamento de Projetos PMBOK. 3º Edição, 2005.

SAP Brazil. Soluções. Crystal Reports. Disponível em: <http://www.sap.com/brazil/solutions/sapbusinessobjects/sme/reporting/crystalreports/index.epx> Acesso em: 18 de abril de 2010.

VASCONCELOS, F. A. de. Internet Responsabilidade do Provedor Pelos Danos Praticados. Curitiba, Juruá, 2003.

ROCHA, H. V. & BARANAUSKAS, M. C. C. Design e Avaliação de Interfaces Humano – Computador. Campinas, SP:NIED/UNICAMP, 2003.

Page 12: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

405

Anhanguera Educacional Ltda. Correspondência/Contato Alameda Maria Tereza, 4266 Valinhos, SP - CEP 13278-181 [email protected] Coordenação Instituto de Pesquisas Aplicadas e Desenvolvimento Educacional - IPADE Publicação: 1 de novembro de 2012

Trabalho realizado com o incentivo e fomento da Anhanguera Educacional

Priscila Shizue Suenaga Fernanda Silva Santos Onofre Aparecido Cândido Prof. Leticia T. Cottini Soares

Curso: Ciência da Computação

FACULDADE ANHANGUERA DE TAUBATÉ - UNIDADE I

RESUMO

A multimídia tem sido atualmente utilizada de diversas maneiras no desenvolvimento de software, sempre com o intuito de promover ao usuário do sistema uma gama grandiosa de recursos de interação com os computadores. Diante disto, construir sistemas com base na utilização de recursos multimídias pode proporcionar ao usuário um grau de experiência elevado em sua utilização cotidiana de softwares para as mais diversificadas tarefas. Para potencializar a utilização dos recursos multimídias existentes, pode-se fazer uso de uma infinidade de recursos, como: recursos das linguagens de programação, sistemas microprogramados, sistemas eletrônicos e outros recursos computacionais, sempre com o objetivo de aumentar a interatividade do sistema com o usuário. Este trabalho objetiva de modo geral apresentar a crescente capacidade de permitir aumentar e potencializar a integração do usuário a sistemas computacionais modernos, para permitir maior interatividade, de maneira que este processo é realizado através da inserção de uma interface de comunicação criada a partir da utilização de sistemas eletrônicos aliados a sistemas microprogramados.

Palavras-Chave: Computação, eletrônica, microcontroladores, software e multimídia.

ANUÁRIO DA PRODUÇÃO DE INICIAÇÃO CIENTÍFICA DISCENTE

Vol. 13, N. 18, Ano 2010

UMA PROPOSTA DE DESENVOLVIMENTO DE SOFTWARE PARA INTEGRAÇÃO DE RECURSOS MULTIMÍDIA A DISPOSITIVOS ELETRÔNICOS E MICROPROGRAMADOS

Page 13: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

406 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

1. INTRODUÇÃO

O desenvolvimento de software inclui diversos processos, a etapa inicial para o

desenvolvimento de qualquer software é a utilização de técnicas de Engenharia de

Software, que objetivam gerar um produto final com baixo custo, desempenho adequado

e qualidade (PAULA FILHO, 2009). Com base no conceito apresentado por Paula Filho

(2009) no seu livro sobre Engenharia de Software, produzir um software exige uma

análise criteriosa dos requisitos, para prover um sistema que permita ao usuário uma

experiência agradável na sua utilização.

Ao utilizarmos recursos multimídias com o objetivo de representação de

informação tais como: vídeo, áudio, imagens e animações (PAULA FILHO, 2009); pode-se

proporcionar ao usuário interagir com o sistema de forma mais natural e intuitiva. Esse

conceito de interação com o usuário pode ser ampliado significativamente com a inserção

de recursos multimídias baseados ou gerados através dos conceitos de Computação

Gráfica que permitem produzir ao usuário diferentes sensações visuais (CONCI;

AZEVEDO; LETA, 2008), por intermédio de variadas formas de processamento de

imagens e analise de suas características.

Para criar uma comunicação padronizada de um sistema de software que

englobe recursos multimídias e de Computação Gráfica a componentes ou dispositivos

eletrônicos, torna-se necessário a utilização de uma interface microprogramada que sirva

de “ponte” para essa comunicação. Para prover tal interface microprogramada, foi

utilizado o microcontrolador PIC da Microchip, programado em Linguagem Assembly

(SOUZA, 2008), que possui a funcionalidade de ser integrado a computadores para envio

e recebimento de informações através da porta serial (ZANCO, 2008).

Este artigo visa de modo geral apresentar a interação de um sistema multimídia a

dispositivos eletrônicos externos ao sistema computacional, bem como o processo

necessário para a sua implementação e os recursos relacionados.

Este artigo esta organizado em seções. A primeira seção é essa introdução, a

seção 2 apresenta os objetivos da pesquisa. A metodologia utilizada na pesquisa é

apresentada na seção 3. As informações relacionadas ao desenvolvimento da pesquisa

como a revisão da literatura, o problema abordado, a solução proposta e implementada

são mostradas na seção 4. A forma de abordar os experimentos, os resultados e as

discussões são descritos na seção 5. Por fim as considerações finais são apresentadas na

seção 6.

Page 14: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 407

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

2. OBJETIVO

O objetivo principal deste trabalho é demostrar como foi desenvolvido um protótipo de

um sistema de software para comunicação com circuitos e dispositivos eletrônicos através

da utilização de sistemas microprogramados.

O objetivo do desenvolvimento desse protótipo é permitir estudar e exemplificar

a conexão de um software a um sistema de hardware criado a partir da utilização de

componentes eletrônicos e microprogramados. O sistema de software foi implementado

na Linguagem de Programação Java, que dispõe de métodos e classes que possibilitam a

criação de uma interface de comunicação por intermédio das portas serial e paralela do

computador. Dessa forma, torna-se possível estudar diversos algoritmos e equações para

manipulação de áudio, vídeo e imagens digitais.

O microcontrolador serviu como um tratador das informações enviadas pelo

microcomputador, e objetivou a comunicação padronizada do software ao hardware.

3. METODOLOGIA

Um foco central que foi abordado na construção do protótipo foi o preço relativo às

ferramentas utilizadas no seu desenvolvimento. O desenvolvimento do software foi

realizado completamente com base nos recursos disponíveis dentro da Linguagem de

Programação Java, que se caracteriza por ser Open-Source (Código Aberto). O sistema

microprogramado foi desenvolvido com base no uso da Linguagem de Programação

Assembly para Microcontrolador PIC 16F628A (MICROCHIP, 2010), que possui um preço

altamente acessível e um conjunto de recursos que se adéquam a utilização do sistema.

O primeiro passo para o desenvolvimento do software foi a revisão bibliográfica

dos assuntos relacionados ao trabalho. A partir dessa revisão foi possível delimitar os

recursos e funcionalidades referentes ao protótipo, bem como a elaboração dos requisitos

funcionais e não funcionais referentes ao software desenvolvido. Como pode ser

observado a seguir na Figura 1 um dos diagramas de caso de uso.

Page 15: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

408 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 1 – Diagrama de Caso de Uso (Ator=Sistema)

A seguir, foi realizada a construção através da validação dos requisitos do

software, os diagramas de caso de uso. Para realização destes diagramas foi utilizado a

Linguagem de Modelagem UML (Unified Modeling Language) através da utilização da

ferramenta de criação de diagramas Astah Community (Disponível em:

<http://astah.change-vision.com/en/product/astah-community.html>. Acesso em

novembro de 2010).

Foi realizado posteriormente o desenvolvimento do software de maneira

modulada, ou seja, cada módulo do sistema implementa uma funcionalidade ou um

conjunto específico de funcionalidades, de forma que torna-se possível um alto nível de

reaproveitamento de código escrito. Cada módulo foi desenvolvido de forma a

implementar um recurso dentro do sistema, estes módulos implementam funcionalidades

como: captura de imagens, processamento de imagens, comunicação serial, captura de

vídeo e áudio. Todos esses módulos foram desenvolvidos utilizando as API (Application

Programming Interface) da Linguagem de Programação Java, em alguns módulos foram

usados recursos que não estão disponíveis na instalação padrão da JDK (Java

Development kit) e que podem ser adquiridos no site da ORACLE SUN

(<http://www.oracle.com/br/technologies/java/index.html>. Acesso em novembro de

2010). Para estabelecer a comunicação serial foi utilizada a API Java Communications, que

disponibiliza as funções necessárias para comunicação usando a porta serial e paralela.

Essa API esconde a complexidade da utilização desses recursos de hardware. Com o

objetivo de prover os recursos de processamento de imagens foi adotado os algoritmos de

detecção de bordas, binarização, adição e subtração de imagens; que permitem aplicar os

conceitos existentes na Computação Gráfica (CONCI; AZEVEDO; LETA, 2008). Pode-se

observar na equação (1), a fórmula matemática que demonstra necessária a binarização de

Page 16: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 409

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

uma dada imagem em escala de cinza com 256 tonalidades diferentes. Outra equação (2)

que pode ser observada a seguir é a fórmula matemática para detecção de bordas

(MIRANDA, 2006).

(1)

(2)

O software para o microcontrolador foi feito em Linguagem Assembly e tem por

objetivo controlar a recepção e envio de informação através da porta serial RS-232. Esse

software faz a recepção das informações enviadas pelo computador, interpreta-as

recebidas e defini o tempo que será necessário abrir a saída de energia para movimentar

os servos conectados. Posteriormente o software entra num ciclo que testa o tempo

determinado para saída de energia e aguarda o tempo finalizar para voltar a esperar a

recepção de dados. Este ciclo de processamento é feito até que o circuito seja desligado.

Esse ciclo de processamento do microcontrolador pode ser observado no fluxograma a

seguir mostrado na Figura 2, que permite exemplificar o ciclo do software.

O circuito foi desenvolvido para permitir a comunicação do computador com o

microcontrolador através da porta serial e para suprir as “necessidades energéticas” da

placa. O circuito eletrônico consiste nos componentes para comunicação serial, sistema

microprogramado, controle de energia no circuito e saída para os servos motores.

⎩⎨⎧

TyxfseTyxfse

yxg),(0

),(255),(

|)1,(),(||),1(),((|)],([ yxfyxfyxfyxfyxfG

Page 17: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

410 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 2 – Fluxograma do ciclo do software.

4. DESENVOLVIMENTO

O desenvolvimento do protótipo, concentrou-se inicialmente no desenvolvimento dos

módulos do software que implementam funcionalidades específicas dentro do sistema,

esses módulos objetivam permitir com que boa parte do código escrito em um

determinado momento pudesse ser reaproveitado quase sem nenhuma alteração. Outra

etapa do desenvolvimento do protótipo concentrou-se no desenvolvimento do software

microprogramado que disponibiliza funções para recepção dos dados enviados pelo

computador através da porta serial, interpretação e tratamento dessas informações. E a

etapa final concentrou-se na confecção do circuito eletrônico.

O protótipo consiste em uma sistema implementado usando a Linguagem Java

na IDE (Integrated Development Environment) NetBeans 6.9.1 (disponível em:

http://netbeans.org/. Acesso em: novembro 2010). Por ser uma linguagem interpretada,

ou seja, precisa de um software que reconheça seu código, ela faz uso da Java Virtual

Machine que permite que diversos sistemas operacionais executem seu código sem

nenhuma ou pouca alteração. Dessa forma a Linguagem Java permite criar sistemas

robustos e que permitem sua execução independente de sistema (DEITEL; DEITEL, 2005).

Neste protótipo o software comunica-se com o sistema microprogramado e o circuito

através da porta serial, que o possibilita o envio de uma sequência de 8 bits que podem

representar um caractere em código ASCII. O sistema microprogramado por sua vez cria

Page 18: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 411

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

a padronização da comunicação do software com o hardware. Este esquema pode ser

observado na Figura 3 a seguir

Figura 3 – Comunicação software – circuito

No processo de desenvolvimento do protótipo pode se dividir o

desenvolvimento do software, da solução microprogramada e do circuito em algumas

subseções, que podem ser observadas a seguir.

4.1. Desenvolvimento do módulo de captura de vídeo e imagens

A Linguagem de Programação Java possui uma API específica para a captura,

manipulação e gravação de áudio e vídeo, essa API é chamada de Java Media Framework

(disponível para download em:

<http://www.oracle.com/technetwork/java/javase/download-142937.html>. Acesso em

novembro de 2010). Dessa forma, é possível manipular áudio e vídeo através da

Linguagem Java em qualquer sistema operacional (desde que exista uma Java Virtual

Machine para este Sistema Operacional). Essa API permite a Linguagem Java esconder

uma série de dificuldades que poderiam ser ocasionados caso o desenvolvedor tivesse que

manipular diretamente os recursos de hardware para obter áudio e vídeo. Diante disto, o

desenvolvedor tem uma gama enorme de formatos de codificação e decodificação de

áudio e vídeo que podem ser utilizados para as mais diversas finalidades.

Na instalação padrão desta API são disponibilizado para o desenvolvedor três

utilitários: o JMF Studio, JMF Registry Editor e JMF Customizer; que servem para testes

com mídias e registros de funções da API. O JMF Registry Editor desempenha a função de

permitir localizar o endereço dos recursos de captura de áudio e vídeo na API Java Media

Framework, o que possibilita ao desenvolvedor localizar o endereço que deve ser usado

Page 19: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

412 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

em seu código fonte para utilizar determinado recurso. Pode se observar a seguir na

Figura 4 uma captura da tela do utilitário com o endereço e configuração de um

determinado recurso de hardware usado pela API (no caso um webcam foi detectada).

Figura 4 – Captura da tela do JMF Registry Editor

O processo de captura de vídeo utilizado neste módulo do protótipo consiste em

criar um player de vídeo que recebe continuamente um fluxo de imagens capturadas pela

webcam. Essas imagens são capturadas num fluxo de aproximadamente 15 fps (frames

por segundo ou imagens por segundo), e permitem que seja gerada a sensação de imagem

em movimento para os olhos do usuário. Essa sequência de imagens provê um recurso

contínuo de captura de vídeo. A Figura 5 contém o trecho de código usado para inicializar

um player em Java usando a API Java Media Framework. Deve se levar em consideração

a necessidade de se inserir este código dentro de uma classe, bem como a importação de

suas bibliotecas para execução.

Page 20: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 413

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 5 – Código do player de video

Inicialmente para criar este player de vídeo com sucesso é necessário usar o JMF

Registry Editor, para se descobrir qual endereço se encontra o dispositivo de captura (este

endereço varia de um sistema operacional para outro). Após a criação do player, as

imagens capturadas são armazenadas em um buffer, que tem o objetivo de sincronizar a

captura com a exibição, ou seja, o buffer atual desepenha a função de intermediário que

recebe as imagens capturadas para depois serem exibidas. Dessa forma, é possível evitar

com que o software demore a exibir a imagem capturada ou gere erros de exibição.

4.2. Desenvolvimento do módulo de Processamento de imagens

A Linguagem de Programação Java disponibiliza a API AWT (Abstract Window Toolkit)

e a API JAI (Java Advanced Imaging) para processamento de imagens. A API AWT é

disponibilizada como uma parte da distribuição padrão da JDK, no entanto a API JAI é

disponibilizada a parte (download disponível em: <http://java.sun.com/products/java-

media/jai/downloads/ download-1_1_2.html>. Acesso em novembro de 2010). Estas API

implementam um conjunto de métodos que permitem a manipulação de diversas

características das imagens, esses métodos permitem acessar diretamente os pixels das

imagens, para aplicação de diversos tipos de filtros.

Para desenvolver do módulo de processamento de imagens foi utilizado, os

filtros de binarização, detecção de bordas e subtração de imagens; que permitam fazer o

processamento da imagens digitais e reconhecimento de padrões.

Page 21: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

414 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Uma das formas de se analisar uma imagem é através da criação de histogramas

de cores, no caso dos níveis de cinza de uma imagem de forma que seja possível

identificar a frequência em que aparece cada um dos 256 níveis diferentes de cinza. O

histograma pode ser usado em diversos filtros de processamento de imagens. Segundo

Miranda (2006), “o histograma de uma imagem registra a distribuição de frequência, ou a

distribuição estatística, dos níveis de cinza de um a imagem”. O histograma pode definir

um gráfico que permite visualizar com qual frequência aparece determinado nível de

cinza. Observe a seguir na Figura 6 o histograma gerado de uma imagem.

Figura 6 – Histograma

A binarização consiste em converter os valores dos pixels de uma imagem em

nível de cinza para uma imagem com apenas dois valores: valor 0 para preto e valor 255

para branco. Dessa forma, a imagem passa a possuir apenas dois valores que são

representados pelas cores pretas e brancas, ou seja, a imagem passa a ter uma escala

binária (apena dois valores de cor). Um grande problema que pode ocorrer ao utilizar a

binarização é devido, que no processo de conversão de uma imagem em nível de cinza

para uma imagem binarizada, pode ocorrer perda de informação da imagem em questão,

pelo fato da binarização considerar um valor médio da imagem como limiar de

comparação. O limiar é usado para definir o valor base para comparação de todos os

pixels da imagem, com base em seu valor é possível definir o valor máximo da tonalidade

dos pixels que será branco e os valores da tonalidade dos pixels que serão pretos.

A binarização permite mesmo com certa perda de informação localizar em

imagens, objetos ou pessoas. Este exemplo de localização de objetos ou pessoas foi usado

como parte da classe que determina a posição da pessoa dentro de uma imagem

capturada pela webcam, isto pode ser visualizado na Figura 7 que demonstra a

comparação de uma imagem capturada e sua respectiva imagem binarizada, o limiar

Page 22: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 415

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

usado foi de 60. Note que a binarização sofre grande interferência da luz que incide sobre

a imagem.

Figura 7 – Imagem original e binarizada

Outro algoritmo de processamento usado neste protótipo foi o algoritmo de

detecção de bordas, que permite identificar as bordas de um determinado objeto ou

pessoa inserido numa imagem. Segundo Miranda (2006), “bordas podem ser definidas

como locais na imagem onde existe uma variação repentina nos níveis de cinza ou cores

de pixels”. As bordas podem ser interpretadas como os contornos dos objetos dentro da

captura de uma imagem, esses objetos podem ser sólidos, sombras e outros contornos.

As bordas podem ser evidenciadas pela alteração na intensidade dos pixels de

uma imagem. Dessa forma pode considerar-se um dado objeto em um fundo liso, como

uma parede ou um quadro, como possível extrair o objeto do seu fundo original para

outro, ou seja, é possível usar a detecção de bordas para gerar uma nova imagem que seja

resultante da inserção de um objeto em outra imagem.

A detecção de bordas pode ser implementada com diversos algoritmos, como:

algoritmo de gradiente, Sobel, Roberts, Prewitt, Frei e Chen e Laplaciano (MIRANDA,

2006). Cada um destes algoritmos de detecção de bordas implementa soluções com

particularidades diferentes. Neste protótipo foi usado para detectar bordas o algoritmo de

gradiente, que permite identificar as bordas de um objeto em uma dada imagem em nível

de cinza. O resultado da detecção de bordas por gradiente pode ser observado a seguir na

Figura 8.

Page 23: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

416 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 8 – Imagem Original e detecção de bordas por gradiente

No protótipo a detecção de bordas desempenha as funções de permitir a

alteração do background das imagens capturadas. Em combinação com a binarização

torna-se possível utilizar para determinar a posição nos eixos X, Y, Z do objeto ou pessoa.

A detecção do objeto no eixo X ocorre através do rastreamento da imagem na

horizontal, a partir da implementação de um laço que simultaneamente rastreia a imagem

da esquerda para direita e da direita para esquerda, esses laços param sua execução no

momento em que localizarem a borda da imagem. Dessa forma são armazenados dois

valores que representam o tamanho do objeto.

Da forma semelhante ocorre no eixo X, foram implementados dois laços que

percorrem a imagem no sentido vertical, esses laços percorrem a imagem de baixo para

cima e de cima para baixo. Esses laços param ao encontrar as bordas do objeto e

armazenam esses valores.

Com os valores dos eixos X e Y armazenados é possível definir o eixo Z que é o

zoom aplicado a imagem capturada.

Através da união desses recursos tornou-se possível a criação de um um código

que assemelha-se a um sistema de zoom em imagens digitais.

Observe na Figura 9 a seguir um exemplo de como é feito o rastreamento das

bordas para determinar a posição de uma pessoa.

Page 24: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 417

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 9 – Posição do objeto

No protótipo é usado ainda o algoritmo de subtração de imagens que pode ser

definido como uma operação que compara o valor de cada pixel da imagem. Essa

operação matemática de subtração permite identificar se um pixel é diferente do outro, ou

seja, se o pixel da imagem 1 é igual ao da imagem 2, caso os dois os dois pixels sejam

iguais o resultado da subtração será 0, senão o resultado da subtração será um valor

diferente de zero (os pixels são diferentes).

Pode se usar a subtração de imagens para se criar uma nova imagem que

contenha todos os pixels que são iguais ou todos que são diferentes. Um exemplo de como

é feito a subtração pode ser observado na Figura 10, note que existe entre as imagens um

símbolo “op”, que representa a operação utilizada na imagem.

Figura 10 – Operações com imagens

Page 25: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

418 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

4.3. Desenvolvimento do módulo de Processamento de imagens

A Linguagem de Programação Java fornece uma API que permite a transferência e

recepção de informações usando a porta serial, a Java Communications 3.0 (disponível

em: http://www.oracle.com/technetwork/java/index-jsp-141752.html. Acesso em:

novembro de 2010). Essa API facilita ao desenvolvedor a manipulação dos recursos de

comunicação através da porta serial e paralela, implementando métodos de leitura e

escrita da porta serial, bem como a configuração de baud rate, configuração dos bits de

paridade e controle. Essa API embora esteja descontinuada para o sistema operacional da

Microsoft, o Windows, ela apresenta versões para sistemas operacionais como Linux e

Solaris.

A comunicação serial através dessa API é implementada, inicialmente solicitando

através do código a listagem de todas as portas seriais livres existentes. A partir do

retorno das portas livres para comunicação é necessário configurar a velocidade de

transmissão, o tamanho da informação a ser transmitida e bloquear a leitura da porta pelo

programa. As tarefas para recepção seguem o mesmo esquema das rotinas de

transmissão, excetua-se apenas que para leitura deve criar uma classe que aguarde os

eventos de escrita na porta serial.

A transmissão de informações para o microcontrolador ocorre de forma que

existe um vetor de caracteres pré-definido, cada caractere representa um valor em tempo

para o sistema microcontrolado. Dessa forma, o programa envia o caractere em formato

binário para o microcontrolador, esse caractere é enviado no formato ASCII com

exatamente 8 bits de informação. Este ciclo de envio ocorre continuamente enquanto

houver um objeto a ser capturado pela webcam, ou seja, a qualquer movimento do objeto

é feito o envio de caracteres pela porta serial. A seguir pode ser observado na Figura 11

um trecho do código que configura a transmissão serial e envia um caractere.

Page 26: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 419

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 11 – Código de comunicação serial

4.4. Desenvolvimento do sistema microprogramado

O microcontrolador utilizado no protótipo foi o Microcontrolador PIC 16F628A da

Microchip, programado em Linguagem Assembly. Esse modelo de microcontrolador foi

escolhido devido a seu baixo custo e capacidade de ser regravável. Dessa maneira este

microcontrolador atende as exigências do projeto.

O sistema microprogramado consiste em um software que através de

interrupções geradas pela recepção de informação em seu buffer, abre a porta de I/O

(Input and Output) RB4 e RB5 do microcontrolador e coloca o programa num ciclo

sucessivo de desvios incondicionais. Este ciclo de desvios ocorre até o momento em que o

tempo termina. Esse tempo controla a posição dos servos motores.

A seguir na Figura 12 podem ser observados, os esquemas de portas ou pinos do

microcontrolador.

Page 27: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

420 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 12 – Microcontrolador PIC 16F628A

4.5. Desenvolvimento do sistema microprogramado

Pode se observar na Tabela 1, extraída do livro Microcontroladores PIC: Técnica de

software e hardware para projetos de circuitos eletrônicos com base no PIC 16F877A

(ZANCO, 2008), página 263, pode-se observar a funcionalidade da pinagem da porta

serial DB9 – protocolo RS-232.

Tabela 1 - Porta Serial: pinagem e funcionalidades.

Nº do Pino Direção Nome do Sinal Descrição do Sinal

1 Entrada DCD Data Carrier Detect

2 Entrada RD Receiver Data

3 Saída TD Transmiter Data

4 Saída DTR Data Terminal Ready

5 - Gnd Common

6 Entrada DSR Data Set Ready

7 Saída RTS Request To Send

8 Entrada CTS Clear To Send

9 Entrada RI Ring Indicator

A pinagem é dividida em dois grupos: pinagem dos dados e pinagem de

controle, onde os pinos de dados são TD (transmissão de dados) e RD (recepção dos

dados).

O pino de número 3 da porta serial transmite uma sequência de 8 bits, para a

porta de recepção do CI (Circuito Integrado) MAX232 que converte os sinais RS-232 para

sinais TTL que serão recepcionados de maneira adequada pelo microcontrolador. A

recepção de dados na porta serial é o caminho inverso: o microcontrolador envia os sinais

Page 28: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 421

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

para CI (Circuito Integrado) MAX232 que os converte para sinais RS-232, e

posteriormente são recebidos pelo pino de número 2 da porta serial. Na Figura 13 extraída

do site http://www.rogercom.com (ROGERCOM, 2010) pode ser observado o circuito de

comunicação dos pinos do microcontrolador PIC com o porta serial do microcomputador.

Figura 13 – Circuito de comunicação

Esta seção se destina a apresentar, a discutir e a comentar os resultados obtidos

na pesquisa. Podem existir conjecturas e interpretações acerca dos estudos anteriores,

assim como, uma nova concepção do problema recorrente da pesquisa realizada.

Uma visão geral do protótipo pode ser observada na Figura 14.

Figura 14 – Visão Geral do protótipo

O protótipo desenvolvido consiste em um software que implementa a função de

capturar imagens pela webcam, fazer o rastreamento das imagens e enviar através da

porta serial instruções para o microcontrolador relativo ao conteúdo das imagens

capturadas. O microcontrolador desempenha a função de interpretar essas instruções e

enviar sinais elétricos para dois servos motores que se posicionam de modo a centralizar

um objeto ou usuário na imagem capturada. O servo-motor 1 apresentado na figura,

desempenha o posicionamento em relação ao eixo X da captura da imagem e o servo-

motor 2 desempenha o posicionamento relativo ao eixo Y. Em relação ao eixo Z, o

posicionamento de modo a centralizar o objeto ou usuário na imagem capturada é

realizado pelo software, através do redimensionamento da imagem. Na Figura 15 pode

ser observado o modelo do tratamento dos eixos utilizados.

Page 29: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

422 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

eixo X

eixo Y

eixo Z

Figura 15 - Eixos

5. RESULTADOS

Este trabalho resultou no desenvolvimento de um protótipo de software que pode

exemplificar a aplicação de diversos algoritmos usados na computação gráfica para

recuperação de padrões em imagens digitais. Esses algoritmos permitem o estudo de

imagens para as mais diversificadas áreas, como: sensoriamento remoto, reconhecimento

de imagens para medicina, entre outras aplicações. Uma dessas aplicações é mencionado

por Miranda (2006), no uso de processamento de imagens usado pelo EMBRAPA para

sensoriamento remoto.

Um fato importante que pode ser observado, é que essa modalidade de software

exige uma grande quantidade de processamento e que demanda sistemas com

processadores modernos. Na Figura 16 pode ser observada a utilização de recursos, tanto

de processamento como de memória para utilização desse sistema de processamento de

imagens. Considere que foi usado o sistema operacional Microsoft Windows 7, em um

hardware com processador Intel Pentium Dual Core de 2,13 GHz e 4 GB de memória

RAM.

Figura 16 – Captura do Gerenciador de Tarefas do Windows.

Na imagem a seguir, pode ser observado a captura da tela do JConsole, um

aplicativo disponibilizado com a JDK e que permite gerenciar os recursos usados

unicamente pelas classes do programa em Linguagem Java.

Page 30: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

Priscila Shizue Suenaga, Fernanda Silva Santos, Onofre Aparecido Cândido, Leticia Teixeira Cottini Soares 423

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

Figura 17 – Imagem do JConsole.

6. CONSIDERAÇÕES FINAIS

Este trabalho teve por objetivo demonstrar a capacidade de criação de sistemas de

hardware aliado a sistemas microprogramados. Dessa forma durante o percurso desta

pesquisa foi possível desenvolver diversas habilidades como a implmentação de diversos

algoritmos para processamento de imagens, construção de um software em Assembly e a

manipulação de componentes eletrônicos.

Nosso objetivo concentrou em desenvolver um protótipo que fosse capaz de

angariar recursos de diversas áreas de conhecimento, reunindo diversas disciplinas do

curso de computação.

Esta tendência de usar imagens e vídeo juntamente com eletrônica tem sido

atualmente o interesse de diversas empresas de videogames e consoles de jogos, por isso

torna-se necessário o incentivo a pesquisa de soluções que sejam capazes de fornecer ao

usuário um grande número de recursos.

REFERÊNCIAS

CONCI, Aura; AZEVEDO, Eduardo; LETA, Fabiana R.. Computação Gráfica: volume 2: Teoria e Prática, 2008

Page 31: ART REPORT: FERRAMENTA GRATUITA PARA AUXILIAR O ... 15.pdf394 Art Report: ferramenta gratuita para auxiliar o desenvolvimento computacional Anuário da Produção de Iniciação Científica

424 Uma proposta de desenvolvimento de software para integração de recursos multimídia a dispositivos eletrônicos e microprogramados

Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 18, Ano 2010 p. 405-424

DEITEL, H. M; DEITEL, P. J. Java: Como Programar. 6ª Ed. São Paulo: Prentice Hall, 2005.

MICROCHIP. Microchip: Technology. Disponível em: < http://www.microchip.com/>. Acesso em: novembro 2010.

MIRANDA, josé Iguelmar. Processamento de Imagens Digitais: Prática usando Java. 1ª Ed. Campinas: Embrapa Informática Agropecuária, 2006

PAULA FILHO, Wilson de Pádua. Engenharia de Software: Fundamentos, Métodos e Padrões. 3. ed. Rio de Janeiro: LTC, 2009.

PAULA FILHO, Wilson de Pádua. Multimídia: Conceitos e Aplicações. 3. ed. Rio de Janeiro: LTC, 2009.

ROGERCOM. Rogercom: o maior conteúdo brasileiro sobre porta paralela. Disponível em: <http://www.rogercom.com/>. Acesso em: junho 2010.

SOUZA, David José de. Desbravando o PIC; Ampliado e atualizado para PIC16F628A. 12. ed. São Paulo: Érica, 2008.

ZANCO, Wagner da Silva. Microcontroladores PIC: técnicas de software e hardware para projetos de circuitos eletrônicos com base no PIC16F877A. 2. ed. São Paulo: Érica, 2008.