Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
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).
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.
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
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.
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.
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.
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
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.
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.
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.
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
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.
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.
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
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
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
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
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.
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.
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
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.
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.
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
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.
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.
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
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.
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.
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
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.