TCC - Valmir Ferreira Rocha - FINAL

101
UNIVERSIDADE DE UBERABA VALMIR FERREIRA ROCHA AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1 UBERLÂNDIA 2009

Transcript of TCC - Valmir Ferreira Rocha - FINAL

Page 1: TCC - Valmir Ferreira Rocha - FINAL

UNIVERSIDADE DE UBERABA

VALMIR FERREIRA ROCHA

AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1

UBERLÂNDIA 2009

Page 2: TCC - Valmir Ferreira Rocha - FINAL

1

VALMIR FERREIRA ROCHA

AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1

Trabalho apresentado à Universidade de Uberaba, como parte dos requisitos para conclusão de graduação em Sistemas de Informação da Universidade de Uberaba.

Orientador: Lilian R. Mendes Paiva. Ms

UBERLÂNDIA 2009

Page 3: TCC - Valmir Ferreira Rocha - FINAL

2

VALMIR FERREIRA ROCHA

AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1

Trabalho apresentado à Universidade de Uberaba, como parte dos requisitos para conclusão de graduação em Sistemas de Informação da Universidade de Uberaba.

Orientador(a): Lilian R. Mendes Paiva. Ms Área de concentração: Automação Residencial

Aprovada em: 05 de dezembro de 2009

Banca Examinadora:

Prof. Lilian R. Mendes Paiva. Ms – Orientadora Universidade de Uberaba

Maria Fernanda Soares de Almeida Universidade de Uberaba

Prof. Carlos Magno Medeiros Queiroz. Ms Universidade de Uberaba

Prof. Thiago Bruno Caparelli. Ms Universidade de Uberaba

Page 4: TCC - Valmir Ferreira Rocha - FINAL

3

A toda minha família. Aos meus pais.

À minha Esposa. A Deus, pela força de sempre.

Page 5: TCC - Valmir Ferreira Rocha - FINAL

4

AGRADECIMENTOS

Primeiramente agradeço à Deus por ter me dado força de vontade para nunca desistir apesar

das grandes dificuldades ocorridas.

É com muita satisfação que dedico este trabalho aos meus pais, meus irmãos e a minha esposa

Gercilene Cristina, que sempre apostaram em mim, me deram apoio, carinho e compreensão,

sendo neste longo período as pessoas com quem sempre pude contar.

Ao meu amigo Rhobison Alves, que sempre me ajudou em momentos decisivos ao longo do

curso.

A todos os professores que de alguma forma contribuíram para esta conquista.

Aos verdadeiros amigos, compadres e parceiros que ganhei no decorrer de todo o curso.

Page 6: TCC - Valmir Ferreira Rocha - FINAL

5

RESUMO

Atualmente, os sistemas automatizados são largamente utilizados devido à busca pela

qualidade de vida, segurança e controle de equipamentos. A automação surgiu para facilitar e

reduzir trabalhos, tanto empresarias e industriais como domésticos, proporcionando aos

usuários maior comodidade, conforto, praticidade, produtividade e redução de custos. Além

disso, a automatização de tarefas visa possibilitar a inclusão digital dos usuários de

necessidades especiais. Este trabalho apresenta o desenvolvimento de um sistema para

automatização de equipamentos residenciais através do reconhecimento de voz. O sistema

utiliza uma estrutura de hardware próprio responsável por realizar a conexão entre os

equipamentos. O protótipo desenvolvido permite que o monitoramento dos equipamentos seja

realizado em duas plataformas distintas sendo elas: Internet e aplicação desktop. O Microsoft

Speech Recognition (SDK), integrado ao protótipo para execução dos comandos por

reconhecimento de voz, fundamenta-se em agentes inteligentes, que é considerado como uma

entidade que executa um conjunto de operações que lhes foram incumbidas por um usuário ou

outro programa, com algum grau de independência ou autonomia e, executando estas

operações, emprega algum conhecimento dos objetivos ou desejos do usuário (IBM Research,

1998). A comunicação entre o computador pessoal (PC) e o hardware foi realizada através da

porta paralela. Sendo assim, o projeto utiliza tecnologias acessíveis, visando simplicidade e

baixo custo ao simular uma solução de pequeno porte. A criação da interface gráfica prioriza

um ambiente amigável e de simples utilização, já que seu objetivo é permitir que portadores

de necessidades especiais e pessoas sem grandes conhecimentos técnicos possam interagir

facilmente com o protótipo.

Palavras-chave: Agentes inteligentes, automação residencial, Microsoft Speech Recognition,

segurança, baixo custo, porta paralela.

Page 7: TCC - Valmir Ferreira Rocha - FINAL

6

ABSTRACT

Currently, the automatized systems are widely used due to the constant search for quality of

life, safety and equipment control. Automation emerged in order to facilitate and reduce work,

company and industry work as well as domestic, offering more comfort, facility and cost

reduction. In addition to this, the automatization of tasks aims at enabling digital inclusion of

disabled users. This work presents the development of a system for automatization of

residential equipment through speech recognition. The system makes use of its own hardware

structure, which is responsible for making the connection among the equipment. The

prototype developed enables that the monitoring of the equipment to be done in two

different platforms, which are: Internet and desktop application. Microsoft Speech

Recognition (SDK), integrated with the prototype for the speech recognition execution, is

fundamented by intelligent agents, which are systems that hold autonomy and fulfill tasks,

which are always attached to an automatic executed action or to a manual outside action to be

executed. The communication between the personal computer (PC) and the hardware was

made possible through the parallel port. This way, the project makes use of accessible

technology, aiming at simplicity and low cost to simulate a smaller dimension solution. The

graphic interface creation prioritizes a simple and user-friendly environment, once its

objective is to allow that disabled people as well as those without much technical knowledge

can interact easily with the prototype.

Key words: intelligent agents, residential automation, Microsoft Speech Recognition, safety,

low cost, parallel port.

Page 8: TCC - Valmir Ferreira Rocha - FINAL

7

LISTA DE FIGURAS

FIGURA 1.  ESQUEMA ELÉTRICO GERAL DO CIRCUITO.......................................... 30 

FIGURA 2.  PLACA DO LEDS ........................................................................................... 31 

FIGURA 3.  CIRCUITO DO DRIVER DE ACIONAMENTO ........................................... 32 

FIGURA 4.  CIRCUITO DO BUFFER PARA PROTEÇÃO DA PORTA PARALELA .... 34 

FIGURA 5.  CIRCUITO DA FONTE DE ALIMENTAÇÃO REGULADA (+5V) ............ 34 

FIGURA 6.  DIAGRAMA DAS FASES DO PROCESSO .................................................. 36 

FIGURA 7.  DB25 QUE FICA ATRÁS DO MICRO .......................................................... 39 

FIGURA 8.  CONECTOR MACHO DO CABO PARALELO. ........................................... 39 

FIGURA 9.  FOTO DO CONECTOR DB25 MACHO DO CABO PARALELO ............... 40 

FIGURA 10.  ESQUEMA DE FUNCIONAMENTO DO DB25 NO MODO SPP ............ 40 

FIGURA 11.  CONECTOR CENTRONICS 36 PINOS ..................................................... 41 

FIGURA 12.  ESBOÇO DA CONEXÃO DO CONECTOR DB25 ................................... 42 

FIGURA 13.  CASO DE USO PRINCIPAL DO SISTEMA .............................................. 46 

FIGURA 14.  DIAGRAMA DE CLASSE DO MODULO WEB ....................................... 47 

FIGURA 15.  DIAGRAMA DE CLASSE DO MODULO DESKTOP .............................. 48 

FIGURA 16.  DIAGRAMA DA ESTRUTURA DOS APARELHOS ............................... 49 

FIGURA 17.  DIAGRAMA DA ESTRUTURA DOS USUÁRIOS. .................................. 50 

FIGURA 18.  DIAGRAMA ENTIDADE RELACIONAMENTO DO BD ....................... 51 

FIGURA 19.  CÓDIGO FONTE DA HABILITAÇÃO DO COMPONENTE DE VOZ ... 54 

FIGURA 20.  CÓDIGO FONTE DA EXECUÇÃO DOS COMANDOS .......................... 55 

FIGURA 21.  APLICAÇÃO DESKTOP ............................................................................ 58 

FIGURA 22.  CADASTRO DE APARELHOS NA APLICAÇÃO DESKTOP ................ 58 

FIGURA 23.  CADASTRO DE USUÁRIOS UTILIZADOS PARA ACESSO WEB ....... 59 

FIGURA 24.  VISÃO GERAL DA ÁREA DE CADASTRAMENTOS. ........................... 59 

FIGURA 25.  APLICAÇÃO WEB (LOGIN) ..................................................................... 60 

FIGURA 26.  APLICAÇÃO WEB ..................................................................................... 60 

FIGURA 27.  TESTE EM PLACA DE PROTOBOARD ................................................... 67 

FIGURA 28.  PROJETO NO COMPUTADOR ................................................................. 68 

FIGURA 29.  ADESIVO PLOTADO SEM MASCARA ................................................... 68 

Page 9: TCC - Valmir Ferreira Rocha - FINAL

8

FIGURA 30.  RETIRANDO A MASCARA ...................................................................... 69 

FIGURA 31.  COLANDO A MASCARA NO ADESIVO ................................................. 69 

FIGURA 32.  FIXANDO BEM A MASCARA AO ADESIVO ........................................ 70 

FIGURA 33.  RETIRANDO A MASCARA ...................................................................... 70 

FIGURA 34.  COLANDO O ADESIVO NA PCB COM A MÁSCARA .......................... 71 

FIGURA 35.  RETIRANDO EXCESSO DE ADESIVOS ................................................. 71 

FIGURA 36.  VERIFICANDO PROJETO E PLACA ....................................................... 72 

FIGURA 37.  CORROENDO AS PLACAS COM PERCLORETO DE FERRO .............. 72 

FIGURA 38.  LAVANDO AS PLACAS APÓS CORROSÃO .......................................... 73 

FIGURA 39.  CORROSÃO FINALIZADA ....................................................................... 73 

FIGURA 40.  MONTAGEM DOS COMPONENTES ....................................................... 74 

FIGURA 41.  MONTANDO PROJETO ............................................................................. 74 

FIGURA 42.  PROJETO FINALIZADO ............................................................................ 75 

FIGURA 43.  TRANSISTOR BC337. ................................................................................ 75 

RETIRADO DE ROBOTERNETZ (ROBOTERNETZ, 2009). .............................................. 75 

FIGURA 44.  DIODO 1N4148 ........................................................................................... 76 

FIGURA 45.  RESISTOR (MILCOMP PRODUTOS ELETRÔNICOS LTDA., 2009). ... 77 

FIGURA 46.  RELÉ DE 5V ................................................................................................ 77 

FIGURA 47.  LED (DIODO SEMICONDUTOR) ............................................................. 78 

FIGURA 48.  CI 74LS541 .................................................................................................. 78 

Page 10: TCC - Valmir Ferreira Rocha - FINAL

9

LISTA DE QUADROS

QUADRO 1 – Endereços da porta paralela ..................................................................... 38

QUADRO 2 - Significado de cada pino do conector Centronics 36 pinos...................... 41

QUADRO 3 - Sequência de bytes gerados pela porta paralela .......................................

QUADRO 4 - Script para criação da base de dados........................................................

43

52

Page 11: TCC - Valmir Ferreira Rocha - FINAL

10

LISTA DE SIGLAS

API – Application Programming Interface

AR – Automação Residencial.

CI – Circuito Integrado

CPU – Central Processing Unit

DMA – Direct Memory Access

ECP – Enhaced Capabilities Port

EPP – Enhaced Parallel Port

FFT - Fast Fourier Transform

IIS – Internet Information Service

LED – Light-Emitting Diode

PCB - Placa de Circuito Impresso

PCM – Pulse Code Modulation

RF – Reconhecimento da fala

RUP – Rational Unified Process

RV – Reconhecimento de voz

SSP – Standard Parallel Port

TF – Texto para Fala

TTS – Text to Speech

UML – Unified Modeling Language

XML – Extensible Markup Language

DLL - Dynamic-link library

Page 12: TCC - Valmir Ferreira Rocha - FINAL

11

SUMÁRIO

1.  INTRODUÇÃO .................................................................................................. 14 

1.1.  Justificativa ........................................................................................................... 14 1.2.  Motivação ............................................................................................................. 14 1.3.  Objetivos ............................................................................................................... 15 1.3.1.  Objetivo geral ....................................................................................................... 15 1.3.2.  Objetivos específicos ............................................................................................ 15 1.4.  Estrutura do trabalho ............................................................................................ 16 

2.  FUNDAMENTAÇÃO TEÓRICA ..................................................................... 17 

2.1.  Agentes inteligentes .............................................................................................. 17 2.2.  Reconhecimento de voz ........................................................................................ 18 2.2.1.  O que é o reconhecimento de voz? ....................................................................... 18 2.2.2.  Como funciona? .................................................................................................... 19 2.2.2.1.  Transformação PCM ............................................................................................ 19 2.2.2.2.  Padrões acústicos .................................................................................................. 21 2.2.2.3.  Modelos linguísticos ............................................................................................. 22 2.3.  Microsoft speech recognition SDK ...................................................................... 23 2.3.1.  Introdução ............................................................................................................. 23 2.3.2.  SAPI ..................................................................................................................... 24 2.3.3.  Gramática ............................................................................................................. 25 2.3.4.  Regras ................................................................................................................... 26 2.3.5.  Contexto livre de gramática .................................................................................. 27 2.4.  Automação residencial (domótica) ....................................................................... 27 2.4.1.  Objetivos da automação residencial ..................................................................... 27 

3.  HARDWARE ...................................................................................................... 29 

3.1.  Eagle Layout Editor .............................................................................................. 29 3.2.  Estrutura do Hardware .......................................................................................... 35 3.3.  Porta paralela ........................................................................................................ 37 3.3.1.  Introdução ............................................................................................................. 37 3.3.2.  Modelos de porta paralela .................................................................................... 37 3.3.3.  Endereços da porta paralela .................................................................................. 38 3.3.4.  Conector DB25 ..................................................................................................... 38 3.3.5.  Conector macho Centronics 36 pinos ................................................................... 40 3.3.6.  Ligando e desligando aparelhos externos através da porta paralela ..................... 42 

4.  DESENVOLVIMENTO DO SOFTWARE ...................................................... 44 

4.1.  Documentação ...................................................................................................... 44 4.1.2.  UML ..................................................................................................................... 44 4.1.2.1.  Diagramas de casos de uso ................................................................................... 45 4.1.2.2.  Diagrama de classes.............................................................................................. 47 

Page 13: TCC - Valmir Ferreira Rocha - FINAL

12

4.2.  Metodologias ........................................................................................................ 51 4.3.  Processo de comunicação entre software e SDK 5.1............................................ 53 4.4.  Plano de testes ...................................................................................................... 55 4.5.  Apresentação do software ..................................................................................... 56 4.5.2.  Introdução ............................................................................................................. 56 4.5.3.  Requisitos funcionais ............................................................................................ 57 4.5.4.  Aplicação desktop ................................................................................................ 57 4.5.5.  Aplicação web ...................................................................................................... 60 

5.  CONCLUSÃO ..................................................................................................... 61 

5.1. Trabalhos futuros .............................................................................................................. 62 

REFERÊNCIAS ..................................................................................................................... 63 

ANEXOS ................................................................................................................................. 66 

APÊNDICE A - DESCREVENDO A CRIAÇÃO DA PLACA DE CIRCUITO IMPRESSO (PCB) .................................................................................................................. 67 

APÊNDICE B - COMPONENTES ELETRÔNICOS UTILIZADOS ............................. 75 

B.1 Transístor BC337 ............................................................................................................... 75 B.2 Diodo 1N4148 .................................................................................................................... 76 B.3 Resistor .............................................................................................................................. 76 B.4 Relé de 5V ......................................................................................................................... 77 B.5 Led Verde / Led Vermelho 3mm ....................................................................................... 77 B.6 Circuito Integrado 74LS541 .............................................................................................. 78 

APÊNDICE C – CENÁRIOS DOS CASOS DE USO ......................................................... 79 

C.1. UC1 - Cadastrar Aparelho ................................................................................................ 79 C.2. UC2 - Consultar Aparelho ................................................................................................ 79 C.3. UC3 - Alterar Aparelho .................................................................................................... 79 C.4. UC4 - Excluir Aparelho .................................................................................................... 80 C.5. UC5 - Cadastrar Usuário ................................................................................................... 80 C.6. UC6 - Consultar Usuário .................................................................................................. 81 C.7. UC7 - Alterar Usuário ....................................................................................................... 81 C.8. UC8 - Excluir Usuário ...................................................................................................... 81 C.9. UC9 - Validar Comando de Voz ....................................................................................... 82 C.10. UC10 - Ligar Aparelho ................................................................................................... 82 C.11. UC11 - Desligar Aparelho ............................................................................................. 82 C.12. UC12 - Aguardar Execução de Comando no Sistema .................................................... 83 C.13. UC13 - Capturar informações do sistema Local ............................................................. 83 C.14. UC14 - Validar Identificação .......................................................................................... 83 

APÊNDICE D – PLANO DE TESTES E RELATÓRIOS DE EXECUÇÃO ................... 83 

1.  INTRODUÇÃO .................................................................................................. 87 

1.1.  Finalidade ............................................................................................................. 87 

Page 14: TCC - Valmir Ferreira Rocha - FINAL

13

1.2.  Informações Detalhadas ....................................................................................... 87 1.3.  Escopo .................................................................................................................. 87 1.4.  Identificação do Projeto ........................................................................................ 87 

2.  REQUISITOS DE TESTE ................................................................................. 88 

2.1.  Teste Funcional .................................................................................................... 88 2.2.  Teste de Interface do Usuário ............................................................................... 88 2.3.  Teste de Configuração .......................................................................................... 88 2.4.  Teste de Instalação ............................................................................................... 89 

3.  ESTRATÉGIA DE TESTE ............................................................................... 89 

3.1.  Tipos de Teste ....................................................................................................... 89 3.1.1.  Teste Funcional .................................................................................................... 89 3.1.2.  Teste da Interface do Usuário ............................................................................... 90 3.1.3.  Teste de Configuração .......................................................................................... 90 3.1.4.  Teste de Instalação ............................................................................................... 91 3.1.5.  Ferramentas .......................................................................................................... 91 

4.  RECURSOS ........................................................................................................ 92 

4.1.  Papéis .................................................................................................................... 92 

Page 15: TCC - Valmir Ferreira Rocha - FINAL

14

1. INTRODUÇÃO

1.1. Justificativa

A automação está cada dia mais presente em nosso cotidiano, tanto nas residências

quanto nas indústrias e shoppings. Isso se deve à vários fatores, tais como redução do tempo

disponível das pessoas e a constante preocupação das mesmas com a segurança e economia

dos recursos disponíveis. A domótica (automação residencial) tem evoluído a cada dia.

Atualmente, na maioria dos softwares existentes de automação, os usuários possuem

pequenos confortos, como por exemplo, portões eletrônicos, alarmes, luzes com timer, entre

outros. O grande objetivo é a convergência de tecnologias fazendo com que estejam

conectadas entre si, e que os moradores de uma residência automatizada tenham o máximo de

conforto e segurança que a tecnologia possibilitar (AFONSO, 2006).

O campo de pesquisa relacionado ao reconhecimento de voz é muito grande,

envolvendo várias áreas, tais como jogos, editores de texto, extensão de habilidades para

deficientes físicos, atividades domésticas simples, tais como ligar e desligar aparelhos,

sistemas de reconhecimento de fala para possibilitar diálogos inteligentes com máquinas, uso

em pesquisas médicas sobre a voz e órgãos relacionados a sistemas de segurança.

1.2. Motivação

Após levantamento de informações sobre diversos produtos disponíveis no mercado

envolvendo reconhecimento de voz, tais como o Voice Pilot (MICROSOFT, 2003), da

Microsoft, e o ViaVoice (IBM, 2009) da IBM, pode-se concluir que ainda existe espaço e

necessidade de criação de novos produtos nesta área, pois os já existentes possuem alto custo,

exigem hardware e software compatíveis e fazem com que exista uma constante dependência

de fabricantes externos. O sistema de automação apresentado neste projeto é independente de

especificações de hardware, possibilitando que qualquer computador doméstico simples seja

capaz de executar perfeitamente todo o sistema.

Page 16: TCC - Valmir Ferreira Rocha - FINAL

15

Existe uma ausência de informações mais específicas em produtos para a área de

reconhecimento de voz, principalmente no Brasil, sendo que a maioria das referências

encontradas são provenientes de países da Europa e dos Estados Unidos. Diante destas

informações, este trabalho busca a utilização e integração com o componente Microsoft

Speech Recognition SDK (LONG, 2003), uma biblioteca de recursos disponibilizada

gratuitamente através do site da Microsoft (2009), que tem como objetivo auxiliar no

desenvolvimento de soluções com o reconhecimento de voz. Esta ferramenta foi integrada ao

software de Automação Residencial disponibilizando meios para controlar equipamentos

domésticos através do processamento computadorizado, com baixo custo e grande conforto.

Além disto, o trabalho tem como objetivo a contribuição para o processo de inclusão digital

dos portadores de necessidades especiais.

1.3. Objetivos

1.3.1. Objetivo geral

Desenvolver um sistema de automação residencial para reconhecimento de voz, com

“comandos únicos” que ativarão determinados pontos de energia conectados a aparelhos

eletroeletrônicos e domésticos, através da porta paralela do computador.

1.3.2. Objetivos específicos

Têm-se como objetivos específicos:

a) Classificar e reconhecer palavras através do componente Microsoft Speech

Recognition SDK 5.1;

b) Ligar/Desligar o aparelho doméstico através do reconhecimento de voz;

c) Possibilitar que os aparelhos da residência sejam controlados (Ligados ou

Desligados) pelas aplicações desktop ou web;

d) Permitir que o usuário monitore os estados de todos os aparelhos que estão ao

seu controle pelas aplicações desktop e web.

Page 17: TCC - Valmir Ferreira Rocha - FINAL

16

1.4. Estrutura do trabalho

O Capítulo 2 (dois) apresenta o estado da arte quanto ao funcionamento do

reconhecimento de voz, destacando a complexidade das técnicas e sua evolução. Conceitos

sobre Agentes Inteligentes diante do componente utilizado, reconhecimento da voz e seu

funcionamento. Descreve o Microsoft Speech Recognition, e uma breve descrição sobre

automação residencial e seus objetivos.

O Capítulo 3 (três) relata toda a modelagem do sistema de automação residencial por

comando de voz, passando pela estrutura do hardware, softwares utilizados na construção do

projeto, componentes eletrônicos utilizados, os casos de uso e os planos de teste.

O Capítulo 4 (quatro) apresenta o software que foi desenvolvido seguindo os

conhecimentos adquiridos através da pesquisa bibliográfica.

O Capítulo 5 (cinco) traz a conclusão do trabalho e as propostas futuras para

melhorias do sistema.

Page 18: TCC - Valmir Ferreira Rocha - FINAL

17

2. FUNDAMENTAÇÃO TEÓRICA

2.1. Agentes inteligentes

Basicamente um agente inteligente possui autonomia e executa tarefas, estando

sempre vinculado a uma ação disparada automaticamente ou a uma ação externa manual a ser

executada. A utilização de agentes inteligentes é cada vez mais difundida no meio

computacional, principalmente nas áreas de interfaces, gerenciamento de redes, recuperação

de informação, sistemas distribuídos e automação em geral (BARONE; YEPES, 2002).

O termo agente inteligente refere-se a todo ente que possui habilidade, capacidade e

permissão para atuar em nome de outro. Em termos usuais, agentes seriam pessoas com um

conhecimento ou recurso mais especializado em uma determinada área, mediante o qual

auxiliariam outros indivíduos em suas tarefas (BARONE; YEPES, 2002).

Como ainda não é possível ter um consenso exato da definição sobre o termo agente

inteligente, algumas definições mais relevantes são destacadas de acordo com alguns

estudiosos:

Segundo Wooldridge e Jennings (1994), são sistemas que apresentam um

comportamento que é determinado por um processo de raciocínio baseado na representação

de suas atitudes, tais como crenças, comprometimentos e desejos. Um sistema pode ser visto

como um agente se possuir as seguintes propriedades: autonomia, habilidade social,

reatividade, pró-atividade.

De acordo com Nwana (1996), agente é um componente de software ou hardware

capaz de atuar para poder executar uma tarefa em nome de um usuário.

Tem-se ainda a definição de Russel e Norvig (1995), segundo o qual a inteligência

está intrinsecamente relacionada com as ações racionais. Agir racionalmente significa agir de

forma a alcançar as metas definidas por alguém, dadas às crenças deste. Assim, definem de

forma genérica que um agente é algo que percebe seu ambiente por meio de sensores e atua

nesse ambiente por meio de atuadores.

Page 19: TCC - Valmir Ferreira Rocha - FINAL

18

2.2. Reconhecimento de voz

Há alguns anos atrás, o reconhecimento de voz era considerado por muitos como

sendo apenas obra de ficção científica. Contudo, desde o final da década de 50, instituições de

pesquisa já estudavam meios de fazer com que a voz fosse processada pelo computador. De

fato, muitas aplicações estão sendo desenvolvidas atualmente no mercado. Um dos exemplos

mais comuns, com os quais a maioria de nós certamente já tivemos contato, é a tecnologia de

chamada por voz, presente em alguns celulares, rádio comunicadores e outros, existentes no

mercado (RABINER; JUANG, 1993).

2.2.1. O que é o reconhecimento de voz?

Frequentemente, a expressão “reconhecimento de voz” é utilizada com vários sentidos,

que, na verdade, referem-se a tecnologias distintas. O processamento da voz pode ser aplicado

em quatro áreas principais: comandos por voz, fala natural, síntese de voz e autenticação de

voz. Cada uma destas é descrita a seguir:

a) O reconhecimento de palavras (utilizado nos comandos de voz) caracteriza-se por

processar apenas um pequeno trecho de fala, de modo a identificar que tipo de ação o

sistema deve tomar. Este processamento torna-se simplificado, uma vez que o sistema

já sabe de antemão quais os comandos disponíveis para o utilizador. Este é o caso de

centrais de atendimento telefônico, onde o utilizador pode usar a voz em vez de

pressionar botões (GUILHOTO, 2002).

b) O reconhecimento de fala natural (ou fala contínua) envolve uma ou mais frases,

isto é, várias palavras que tenham um sentido semântico. A fala reconhecida é então

convertida em texto. O tipo de aplicação mais comum para essa tecnologia é o ditado

de documentos, para uso em processadores de texto, escrita de e-mails, etc.

(GUILHOTO, 2002).

c) A síntese de voz é o processo contrário ao do reconhecimento da fala. O sintetizador

recebe um texto na forma digital e transforma-o em ondas sonoras, ou em outras

palavras, fazendo uma leitura em voz alta. Um programa de síntese de voz é útil nas

situações em que o utilizador não pode desviar a atenção para ler algo ou não tem

Page 20: TCC - Valmir Ferreira Rocha - FINAL

19

acesso ao texto escrito, seja porque a informação está distante ou porque o utilizador

tem alguma deficiência visual (GUILHOTO, 2002).

d) A autenticação de voz baseia-se, por sua vez, no fato de que a voz é única para cada

pessoa e pode ser utilizada para identificar alguém. Os sistemas de autenticação

podem ser aplicados para permitir o acesso de uma pessoa a uma determinada função.

Um telefone celular com esse recurso de voz, por exemplo, pode ser habilitado para

que somente seu dono tenha o direito de usá-lo (GUILHOTO, 2002).

2.2.2. Como funciona?

O reconhecimento de voz evoluiu bastante ao longo dos últimos anos. Antes, o

reconhecimento processava-se apenas em modo discreto, isto é, o utilizador tinha que fazer

uma pausa entre cada palavra ditada. Atualmente, o utilizador já tem a possibilidade de

efetuar ditados contínuos ao computador. Além disso, o reconhecimento também se tornou

mais inteligente, uma vez que possui um conjunto de regras gramaticais incorporadas

permitindo, assim, uma melhor percepção do que está sendo ditado.

Diferentes técnicas são utilizadas no processo do reconhecimento da voz humana, que

transforma os sinais de áudio digitais provenientes da placa de som em voz reconhecida. Estes

sinais passam por diversas etapas, ao longo das quais são aplicados métodos matemáticos e

estatísticos junto a sua gramática de forma a tentar compreender o que está a ser ditado

(WIKIPEDIA, 2009e).

2.2.2.1. Transformação PCM

Quando o utilizador fornece um comando de voz pelo microfone, este é transmitido

para a placa de som, sendo o sinal analógico, possivelmente amostrado 16.000 vezes por

segundo. Em seguida, este é digitalizado através de uma técnica chamada Pulse Code

Page 21: TCC - Valmir Ferreira Rocha - FINAL

20

Modulation1 (PCM) (WIKIPEDIA, 2009e). Esta forma digital do sinal nada mais é do que

uma stream2 (WIKIPEDIA, 2009e) de amplitudes que representa o sinal analógico. No

entanto, o software de reconhecimento de voz não pode trabalhar diretamente com base nesta

stream, dado que é muito complicado procurar padrões que possam ser relacionadas com a

voz ditada atualmente. É por este motivo que a voz é transformada num conjunto de bandas

de frequência discreta através de uma técnica chamada Fast Fourier Transform3 (FFT)

(WIKIPEDIA, 2009b). Esta consiste numa amostragem do sinal de áudio em cada centésimo

de segundo no domínio da frequência. Assim, a stream de entrada é agora representada por

um conjunto de bandas de frequência discretas, que podem ser facilmente identificadas pelos

componentes de frequência de um som. A partir destes componentes, é possível aproximar-

nos do que o ouvido humano consegue captar. O passo seguinte envolve o reconhecimento

destas bandas de frequência. Para isso, o software de reconhecimento de voz possui uma base

de dados de milhares de frequências ou “fonemas”. Um fonema é a menor unidade de fala de

um idioma ou dialeto.

As dicções dos fonemas são diferentes entre si, de tal forma que, ao substituir um

fonema numa palavra, esta passa a ter um significado completamente diferente. Por exemplo,

se substituir o fonema “b” na palavra “bato” pelo fonema “m”, o significado será alterado

para “mato”.

A base de dados de fonemas é usada para comparar e identificar as bandas de

frequência de áudio que foram amostradas. Se, por exemplo, a frequência de entrada tem um

som igual ao “t”, o software tentará compará-lo com o respectivo fonema na base de dados.

Ao encontrar o fonema correspondente, será atribuído ao sinal de entrada o número

identificador do fonema na base de dados, também chamado de ”feature number”4. Graças às

transformadas de Fourier e à base de dados de fonemas, tornou-se possível passar de um vetor

PCM com 16.000 entradas para um vetor com apenas 100 entradas (por segundo),

transformando o processo de reconhecimento em tempo real.

1 Representação digital de um sinal analógico, onde a magnitude do sinal é amostrado regularmente em intervalos uniformes, então quantizados para uma série de símbolos em um valor numérico (geralmente binário) do código (WIKIPEDIA, 2009e). 2 Pode ser definido como um fluxo de dados em um sistema computacional. Quando um arquivo é aberto para edição, todo ele ou parte dele fica na memória, permitindo assim alterações, por isto somente quando ele é fechado, tem-se a garantia de que nenhum dado se perderá ou será danificado (WIKIPEDIA, 2009f). 3 É um algoritmo eficiente para calcular a transformada de Fourier discreta e a sua inversa (WIKIPEDIA, 2009g). 4 Número identificador de cada fonema ditado, na base de dados do componente reconhecedor de voz.

Page 22: TCC - Valmir Ferreira Rocha - FINAL

21

2.2.2.2. Padrões acústicos

O comando de voz é composto por diversos padrões acústicos e é justamente com eles

que são formados todos os fonemas para o reconhecimento da voz. Em primeira instância o

processo parece ser simples, a cada banda de frequência seria associado o seu fonema

correspondente, o software, em seguida, juntaria os fonemas em palavras e o computador

passaria a compreender, aparentemente, a voz humana. No entanto, o processo apresenta

maiores complexidades quando visualizado de forma detalhada. Podem existir tantas

variações no som, causadas pelo modo como as palavras são pronunciadas, que é quase

impossível localizar a entrada na base de dados correspondente ao som. Se não bastasse,

pessoas pronunciam a mesma palavra de formas diferentes e, para complicar ainda mais, o

ambiente também adiciona componentes de ruído em situações nas quais o utilizador

encontra-se em ambientes ruidosos. Assim sendo, o reconhecedor de voz pode apresentar

resultados diferentes dependendo da localização do utilizador e da qualidade do microfone

utilizado.

Além disso, o próprio som de um fonema varia conforme os fonemas que o rodeiam e

o som produzido por um fonema altera-se desde o início da sua pronúncia até o seu fim.

Sendo assim, o software precisa usar técnicas complexas para aproximar o som de entrada e

descobrir quais os fonemas que estão envolvidos. O ruído de fundo e os problemas de

variação são solucionados com recurso de métodos estatísticos, ao permitirmos que um

feature number seja usado por mais do que um fonema.

Isto apenas é possível porque a duração de um fonema é longa se comparada com a

frequência de amostragem de um centésimo de segundo. Quer dizer que enquanto um fonema

está a ser pronunciado, lhe são atribuídos vários feature numbers. Admitindo que o software

já foi treinado, ou seja, já foram estabelecidas as probabilidades de ocorrência de um

determinado feature number num fonema, resta-nos calcular a probabilidade do conjunto de

feature numbers registrados ser realmente o fonema (GUILHOTO; ROSA, 2001).

Page 23: TCC - Valmir Ferreira Rocha - FINAL

22

2.2.2.3. Modelos linguísticos

Consiste em reconhecer palavras, comparando as combinações de fonemas com as

palavras contidas no dicionário utilizado pelo programa. Contudo, isto não é assim tão

simples: o utilizador pode se atrapalhar ao pronunciar uma palavra que não faz parte do

dicionário; o software de reconhecimento de voz pode enganar-se ao reconhecer uma palavra;

ainda não se sabe onde começa uma palavra e acaba a outra; o processamento de voz continua

incomportável no nível de exigências de CPU e de memória. É por isto tudo que se torna

necessário para o reconhecedor de voz restringir as possibilidades do que está a ser ditado,

através do recurso de modelos linguísticos e gramáticas adequadas. Se o sistema for

programado para fazer o reconhecimento de comandos, o modelo linguístico é mais simples

do que se fosse para reconhecimento da linguagem natural. Nesse caso, o dicionário contém

todas as formas possíveis de pronunciar cada comando registrado no sistema. Para a fala

contínua, é preciso que o sistema utilize um dicionário com todas as palavras da língua ou

pelo menos com todas as palavras usadas com maior frequência.

As condicionantes não ficam por aqui. O dicionário deve também registrar as classes

gramaticais de cada vocábulo. Além disso, é preciso construir um modelo gramatical com as

construções possíveis e a probabilidade de ocorrência de cada tipo de construção. Com a

ajuda destas informações, o software de reconhecimento de voz tem condições para concluir

que as frases “foi à três anos” e “foi a três anos” não estão corretas, mas sim “foi há três

anos”. Mais uma vez, para o caso do ditado discreto (reconhecimento de comandos), as

gramáticas são muito mais simples, uma vez que o sistema sabe com antecedência quais as

palavras que estão à espera. Antes disto, o software deve processar os fonemas para

identificar corretamente o agrupamento de palavras. Os fonemas contidos em “foi há três

anos” sugerem termos como “foia” e “trêzanos”, que não estão no dicionário de vocábulos

conhecidos e, assim, devem ser descartados. Por outro lado, ao ouvir a palavra

“comunicação”, o reconhecedor de voz terá que decidir se ouviu “comunica ação” ou um

único termo. O modelo gramatical vai indicar qual é a construção mais plausível. Os

programas mais recentemente implementados fazem a análise de toda a frase para ampliar a

precisão do reconhecimento tomando, assim, vantagem do fato da linguagem apresentar uma

estrutura. Por exemplo, supondo que o reconhecedor de voz tem dúvidas entre a escolha das

palavras “hora” e “ora”, mas sabe que a palavra anterior é “uma”, então está na possibilidade

de efetuar a escolha certa porque sabe que a sequência “uma hora” faz mais sentido do que a

Page 24: TCC - Valmir Ferreira Rocha - FINAL

23

sequência “uma ora”. A técnica que está por detrás disto usa “trigramas”, baseados em

modelos estatísticos, que calculam a probabilidade de uma determinada sequência de palavras

ocorrer. A maioria dos pacotes de reconhecimento da fala vem com dicionários que contêm

cerca de 150 mil palavras do português. Os sistemas na língua inglesa também trabalham com

aproximadamente a mesma quantidade de termos no dicionário (GUILHOTO; ROSA, 2001).

.

2.3. Microsoft speech recognition SDK

2.3.1. Introdução

A Microsoft está há mais de uma década realizando pesquisas sobre sistemas de

reconhecimento de voz, inspirado a ficção cientifica, e sendo atribuídos a filmes, jogos,

sistemas de automação e vários outros (RABINER; JUANG, 1993).

O Microsoft Speech SDK (SDK) é um kit de desenvolvimento de software para

construção de agentes de fala e aplicações para o Microsoft Windows. A interface de

programação de aplicações de fala (SAPI (Speech Application Programming Interface))

(MEGATTS, 2009) reduz de forma substancial o código requerido para que se possa utilizar

em um projeto o reconhecimento de voz (para mais informações sobre SAPI, ver seção

dedicada no item 2.3.2). Desta forma tenta-se fazer com que a tecnologia de fala torne-se mais

accessível e robusta para as novas aplicações que irão surgir (MICROSOFT, 2002).

Este kit de desenvolvimento suporta OLE Automation5 (WIKIPÉDIA, 2009e) o que

permite a portabilidade do kit para as linguagens ou ambientes de programação que possuem

suporte a estas características, como Microsoft Visual Studio, Borland Delphi, C, C++.

Existem dois tipos básicos de máquinas SAPI que são o sistema de Texto para Fala (TF) e o

Reconhecimento de Voz (RV). O sistema de TF sintetiza o texto e arquivos para serem 5 É um mecanismo para a comunicação entre processos baseado em Component Object Model (COM) (MICROSOFT, 2002), introduzido pela Microsoft. Ele fornece uma infraestrutura na qual aplicações (chamadas de controladores de automação) podem acessar e manipular dados compartilhados (chamados objetos de automação) que são exportados por outras aplicações. Ela é uma evolução à Dynamic Data Exchange (DDE) (é uma tecnologia para a comunicação entre múltiplas aplicações executadas em Microsoft Windows e OS/2 introduzida pela Microsoft em 1987.), é um mecanismo mais antigo para que aplicações controlem umas as outras. Assim como em DDE, em OLE Automation o controlador de automação é o cliente, e a aplicação exportando os objetos de automação, é o servidor.

Page 25: TCC - Valmir Ferreira Rocha - FINAL

24

ouvidos usando vozes sintéticas. O reconhecedor de fala converte a voz humana falada no

áudio para texto e arquivos.

SAPI controla um grande número de aspectos de um sistema de fala, tais como:

a) Controle de entrada de áudio

b) Carrega arquivos de gramática (se foi criado dinamicamente ou criado a partir de

dados que já existiam na memória);

c) Compila padrões SAPI XML em formato de gramática, conversão de formatos

gramaticais;

d) Compartilhamento de reconhecimento através de múltiplas aplicações utilizando

agentes compartilhados;

e) Armazena dados e encaminha os resultados para análises posteriores.

O reconhecedor de voz realiza as seguintes tarefas:

a) Utiliza a interface de gramática do SAPI e carrega os comandos ditados;

b) Realiza o reconhecimento;

c) Retorna a partir do SAPI informações sobre a gramática e o estado das

alterações;

d) Gera reconhecimento e outros eventos para retornar informações a aplicação.

2.3.2. SAPI

A interface da programação das aplicações de voz (Speech Application Programming

Interface – SAPI) é uma API (Application Programming Interface) desenvolvida pela

Microsoft que permite a utilização do reconhecimento de voz (Speech Recognition) e síntese

de voz (TTS – Text To Speech) nas aplicações do Windows. Em geral, todas as versões desta

API foram projetadas para que os programas consigam comunicar de uma maneira fácil,

acessível e através de diversas linguagens de programação com o software que reconhece a

voz ou que converte o texto para voz. Nas versões, de 1 a 4 as aplicações comunicam

diretamente com os sistemas de voz. Estas API’s incluíam definições de interface abstratas

com os diversos programas e não necessitavam de mais recursos. Entretanto, na família SAPI

5 as aplicações e os sistemas não comunicam diretamente, associando a fala que está em

execução (sapi.dll) ao respectivo componente. Existe uma API que executa um destes

Page 26: TCC - Valmir Ferreira Rocha - FINAL

25

componentes para as aplicações e outro para o conjunto das relações entre os motores de voz.

Normalmente em SAPI 5, os programas dão a ordem para:

a) Chamar através da API uma gramática para o reconhecimento da voz;

b) Iniciar o reconhecimento de voz;

c) Fornecer o texto ao sintetizador para ser convertido em voz.

O componente sapi.dll em execução interpreta estes comandos e processa-os,

momento no qual torna-se necessário chamar o motor de voz que fará a interface. Um

exemplo é o carregamento do arquivo de gramática que é feito em tempo real e,

posteriormente, os seus dados são passados para o reconhecedor de voz, no qual são

atualizados para serem utilizados. Os motores do reconhecimento e síntese de voz também

geram eventos quando estão sendo processados (por exemplo, uma expressão vocal quando

reconhecida ou o final de uma palavra sintetizada).

2.3.3. Gramática

Para a Microsoft (2002), a gramática define as palavras que uma aplicação pode

reconhecer. O reconhecimento da fala (RF) é baseado na gramática. Uma aplicação pode

realizar o RF usando três diferentes tipos de gramática. Cada gramática utiliza-se de uma

estratégia diferente para reduzir a possibilidade de sentença a ser reconhecida aumentando,

assim, as chances de assertividade durante o processo de RF.

a) Gramática em formato arquivo texto - Este tipo de gramática, que é definido em

arquivo texto, tem o seu formato similar a arquivos “.ini”. Este arquivo consiste de um

número de seções. Cada seção é identificada por uma nova linha com o nome da seção

entre colchetes “[]”. As seções têm um número de valores, identificadas pelo nome do

valor, seguido do sinal de igual “=” e finalmente pelo valor. Comentários podem ser

acrescentados no arquivo. Para isto basta acrescentar ponto e virgula “;” ou duas

barras “//”no início da linha. A vantagem do uso de listas consiste no fato das

aplicações poderem setar facilmente novos parâmetros para a sua lista em tempo de

execução sem ter que recompilar a gramática. O Anexo 1 possui um exemplo de uma

gramática.

b) Gramática livre - Aqui são utilizadas regras de uso, que predizem as próximas

palavras, ou seja, reduz o número de candidatos para avaliar e para reconhecer a

Page 27: TCC - Valmir Ferreira Rocha - FINAL

26

próxima palavra. Para iniciar o uso deste tipo de gramática no RF, a aplicação,

primeiro deve ativar uma regra específica dentro da gramática. Isto coloca a regra

dentro do nó inicial do reconhecimento. Em outras palavras, para a regra ser utilizada,

deve ser colocado no “Start” de regra. Este tipo de padrão requer uma lista de todas as

regras que podem ser ativadas. Contudo, estas listas devem optar por ter sempre um

número mínimo de regras, pois, desta forma, a eficiência da gramática será aumentada

crescendo, assim, a precisão do reconhecimento. Esta ferramenta é muito poderosa

devido à habilidade de recursão, mas também pode se tornar muito complexa.

Gramática de ditado - Uma gramática de ditado define um contexto para falar, que identifica

o assunto do ditado, o tipo de estilo de idioma que é esperado, e que ditado foi acabado no

passado. Uma gramática de ditado não contém informação sobre o modelo de idioma (a

máquina tem aquela informação) nem especifica tudo das palavras que podem ser faladas.

Especifica somente palavras incomuns ou grupos esperados de palavras. Existem algumas

características que podem influenciar a gramática durante o seu processamento. O peso da

gramática é um destes fatores, utilizado a cada transação para alterar a semelhança dos

mesmos já iniciados. Este peso é uma probabilidade e a faixa de valores permitida está entre 0

e 1. Os com valores 0, sempre serão interpretados como transições impossíveis de passarem a

ser reconhecidos. Por definição, as gramáticas não possuem pesos definidos, para cada

transição o peso será 1 dividido pelo número de transições fora do estado de precedência

(O&A PRODUCTIONS, 2009).

2.3.4. Regras

Cada gramática pode conter uma ou mais regras. Podem ser de alto nível, indicando

que podem ser ativados para o reconhecimento. Cada uma tem um estado inicial, os quais são

conectados por vários tipos de transição:

a) Uma palavra de transição indica uma palavra para ser reconhecida;

b) Uma regra de transição indica uma referência para uma sub-regra;

c) Transições especiais que caracterizam ditados especiais dentro de um contexto

Page 28: TCC - Valmir Ferreira Rocha - FINAL

27

2.3.5. Contexto livre de gramática

As referências para sub-regras podem ser recursivas, podem referenciar a elas

próprias, um ao outro de forma direta ou indiretamente.

Notificações de regras chamam o agente para informar quando regras são adicionadas,

alteradas ou removidas. Existem cinco ações que são tomadas na realização das regras:

a) Novas regras podem ser adicionadas;

b) Regras podem ser removidas;

c) Regras podem ser ativadas;

d) Regras podem ser desativadas para o reconhecimento;

e) Regras podem ser invalidadas, o qual é uma maneira utilizada para editar através de

uma aplicação e deste modo o agente precisa fazer uma leitura nova do conteúdo da

regra.

2.4. Automação residencial (domótica)

A domótica, como é chamada a automação residencial, tem como principal objetivo a

integração de todos os equipamentos residenciais, vinculando-os em uma só tecnologia.

Independentemente dos problemas, a domótica visa atender às necessidades de usuários

domésticos em termos de conforto e segurança, e também apresenta algumas soluções em

termos de comunicação de dados.

2.4.1. Objetivos da automação residencial

A domótica visa solucionar uma série de problemas usando eletrônica e conceitos

muitas vezes vindos diretamente da ficção científica.

O objetivo da automação residencial é integrar iluminação, entretenimento, segurança, telecomunicações, aquecimento, ar condicionado e muito mais

Page 29: TCC - Valmir Ferreira Rocha - FINAL

28

através de um sistema inteligente programável e centralizado. Como consequência fornece praticidade, segurança, conforto e economia para o dia a dia dos usuários (ABREU, 2003).

De acordo com Abreu (2003), a automação residencial se divide em três tipos:

a) Sistemas autômatos (stand alone): são divididos módulos entre os cômodos,

onde cada um pode ser transmissor ou receptor e os módulos (que podem

controlar luzes) podem ser controlados através de uma central na cabeceira da

cama. O sistema pode ser montado aos poucos;

b) Sistemas integrados com controle centralizado: a central é inteligente, as

configurações podem ser simples ou complexas, inclui ações ativadas por

eventos, equipamento controlado via infravermelho podem ser programados pela

central;

c) Sistemas de automação complexos: integração total dos sistemas domésticos, a

residência precisa ser projetada para essa automação com cabeamento

estruturado. Segundo Abreu (2003), os equipamentos, acessórios e técnicas

comumente utilizadas na automação residencial são:

Telefonia e transmissão de dados,

Aquecimento e ar condicionado,

Iluminação,

Home theater e som ambiente,

Vigilância, alarme, iluminação de segurança, e circuito interno de TV,

Aparelhos eletrodomésticos,

Cortinas e portas automáticas,

Home offices.

Page 30: TCC - Valmir Ferreira Rocha - FINAL

29

3. HARDWARE

3.1. Eagle Layout Editor

O Eagle Layout Editor (CADSOFT ONLINE, 2009) é uma ferramenta de fácil uso e

poderosa para projeto de placas de circuito impresso (PCB). Desenvolvida pela empresa

CadSoft Online (2009), o EAGLE veio para facilitar a vida de estudantes e profissionais que

trabalham com desenvolvimento de placas de circuito impresso.

Para os estudantes, ou aqueles que necessitam de um pequeno projeto, a CadSoft

disponibiliza uma versão freeware do EAGLE. Contudo, algumas funcionalidades mais

profissionais encontram-se desativadas.

O EAGLE permite o desenho de circuitos elétricos, possibilitando colocar os símbolos

representativos dos componentes, o que facilita a visualização do projeto em si.

A Figura 1 mostra uma visão geral do circuito, desenvolvido no EAGLE, com todas as

conexões entre os componentes. Foi definido a seguinte estrutura de conexões:

SV9 – Conexão com a porta paralela do computador

CON_PM e CON_PF – Conexões para interligar o Buffer de proteção da porta

paralela com a placa dos LEDs

SV1 a SV8 – Conexão da placa dos LEDs com o driver de acionamento

SV10 – Conexão do driver de acionamento com a placa dos LEDs

TRAFO – Ligação do transformador a fonte

Page 31: TCC - Valmir Ferreira Rocha - FINAL

30

Figura 1. Esquema elétrico geral do circuito

Na Figura 2 mostra a placa dos LEDs. Esta placa é interligada com a placa de driver

de acionamento (Figura 3) que está junto ao equipamento. Cada conexão é identificada por

um LED verde que, quando aceso, indica que o equipamento está ligado. Esta placa de LEDs,

como pode ser observado, foi desenvolvida para acoplar até 8 drivers de acionamento, ou seja,

até 8 equipamentos. Esta placa é composta apenas por resistores e diodos emissores de luz,

sendo que finalidade dos resistores é limitar a corrente que deve circular em cada led. Um led

Page 32: TCC - Valmir Ferreira Rocha - FINAL

31

padrão, para que acenda com intensidade razoável, deve ser percorrido por uma corrente de

+/- 10mA. Um led oferece uma queda de tensão de +/- 1.8V quando percorrido com sua

corrente nominal. Portanto, para calcular o valor dos resistores usamos a lei de ohm:

V=R*I

Onde:

V = tensão (que no caso é 5V - 1.8V de queda no led)

R = resistência que queremos encontrar

I = corrente que deve circular pelo led, que no nosso caso é 10mA = 0.01A

Então temos:

5V-1.8V = R*0.01A

R = 3.2V/0.01A

R = 320ohms

Portanto, o valor comercial mais próximo para os resistores de 320ohms é 330ohms.

Figura 2. Placa do Leds

O conjunto dos hardwares também é composto pelo driver de acionamento, que é

basicamente um transistor operando como chave para ligar ou desligar o relé, representado

como (K2 351). Este circuito é acoplado junto a cada equipamento, realizando o trabalho de

Page 33: TCC - Valmir Ferreira Rocha - FINAL

32

fechar ou abrir o circuito para passagem da corrente elétrica. No conector SV10 temos 3

sinais que são identificados da seguinte forma. 1=5V, 2=GND(terra), 3=Sinal para

ligar/desligar o transístor e, por consequência, o relé. Explicando mais a fundo, o driver de

acionamento recebe a alimentação (5V e GND) e o sinal para ligar/desligar o equipamento.

Antes de chegar ao transístor, o sinal deve passar por um resistor para limitar a corrente que

circula pela base do mesmo. Quando o sinal está presente, uma corrente circula pela base

fazendo com que este conduza, e uma corrente circule pelo relé e este tenha seus contatos

fechados, ligando o equipamento. O diodo em antiparalelo com o relé tem a função de prover

um caminho para a corrente quando o relé é desligado, protegendo o transístor contra uma alta

tensão que é gerada pela bobina do relé. É geralmente chamado de "diodo de roda livre". A

alta tensão acontece pelo fato da bobina do relé ser um indutor, que tem a característica de

manter a corrente que circula por ele constante, quando esta corrente é interrompida

bruscamente e, na tentativa de mantê-la constante, uma alta tensão aparece nos terminais do

indutor. Esta alta tensão, por sua vez, pode ser suficiente para danificar o transístor caso não

haja outro caminho para a corrente no indutor. Sobre o relé utilizado no projeto, este é

composto internamente por duas chaves, denominado (relé com contatos duplos).

As chaves são nomeadas K1 e K2. Cada chave tem os terminais S, P e O (S1, P1, O1 e

S2, P2, O2). Como no projeto é necessária apenas uma chave, as duas foram ligadas em

paralelo formando, assim, uma única chave com maior capacidade de corrente. A Figura 3

destaca o driver de acionamento e seus contatos dos terminas que são ligados no paralelo.

Figura 3. Circuito do driver de acionamento

Page 34: TCC - Valmir Ferreira Rocha - FINAL

33

“P” é o terminal comum de cada chave.

“S” é o terminal "Normalmente Aberto" de cada chave, ou seja, quando o relé está

desenergizado, esta chave (formada por P e S) está aberta.

“O” é o terminal "Normalmente Fechado" de cada chave, ou seja, quando o relé está

desenergizado, esta chave (formada por P e O) está fechada.

Os equipamentos são conectados aos terminais P e S ou seja, TP1 e TP2 de forma que,

quando o relé for energizado, esta chave é fechada e o equipamento é ligado. O terminal TP3

fica livre, servindo apenas caso seja necessário mudar o sentido do bit. Ao interligar TP1 e

TP2 e o driver receber 0 (zero), o mesmo será desligado e quando receber 1(um) será ligado.

Como o equipamento foi interligado entre os terminais TP1 e TP3, quando o driver de

acionamento receber o bit 1(um) o equipamento será desligado.

O circuito do buffer para proteção da porta paralela é mostrado na Figura 4. Este

circuito possui a função de proteger a porta paralela e, ao mesmo tempo, fornecer os níveis de

corrente elétrica suficientes para ativar os Circuitos Integrados. Estes buffers de proteção

estão acoplados junto ao circuito integrado (CI) com referência (74LS244N). Dentro do CI

existem 8 buffers, que têm, neste protótipo, a funcionalidade de proteger a porta paralela

fornecendo mais corrente do que a mesma pode fornecer. Assim, os circuitos que estão

ligados podem exigir maior corrente, sendo que o CI é capaz de fornecê-la sem requerer da

porta paralela protegendo-a contra sobrecarga de corrente.

O buffer de proteção é composto por um circuito integrado (CI) e um jumper. O

mesmo é dividido em dois grupos de 4 buffers. Cada grupo pode ser habilitado/desabilitado

separadamente através do pino representado pela letra G na Figura 4. No desenho, apenas

para fins de representação, parece ter 2 CI's, o que se deve ao fato da existência dos dois

grupos de buffers citados acima

O jumper é representado pela sigla JEN. Como dito acima, os buffers podem ser

habilitados/desabilitados através do pino de enable 'G'. Quando o jumper está na posição 1-2,

os buffers ficam sempre habilitados, quando o jumper está na posição 2-3, os buffers podem

ser habilitados através do pino 1 da porta paralela, ou seja, podem ser habilitados via

software, colocando o pino 1 em nível baixo (0 volts).

Habilitar o buffer significa que o sinal que estiver presente na entrada do

buffer, tem sua corrente amplificada e aparece na saída do buffer.

Desabilitar o buffer significa que suas saídas ficarão em alta impedância

independente do sinal que estiver na entrada (o buffer não deixa o sinal passar).

Page 35: TCC - Valmir Ferreira Rocha - FINAL

34

Figura 4. Circuito do buffer para proteção da porta paralela

Para finalizar a composição de todo o projeto de hardware a Figura 5 mostra o circuito

da fonte de alimentação regulada, onde o nome já atribui à funcionalidade, que é alimentar

todo o circuito com uma tensão de 5 volts regulada.

Figura 5. Circuito da fonte de alimentação regulada (+5V)

Todos estes circuitos demonstrados acima foram desenvolvidos no programa EAGLE

e, posteriormente, convertidos para outro formato para a criação dos adesivos realização da

plotagem em gráfica. A descrição da criação da Placa de Circuito Impresso (PCI) será

apresentada no Apêndice A.

Page 36: TCC - Valmir Ferreira Rocha - FINAL

35

3.2. Estrutura do Hardware

A estrutura do hardware é fundamental para entendimento do projeto, através desta

estrutura é possível compreender detalhes técnicos e funcionais do hardware.

Primeiramente é necessário enfatizar que todo o circuito trabalha com baixa tensão de

5 Volts, sendo responsável apenas por acionar o relé fechando o circuito da corrente elétrica

do aparelho. O funcionamento de todo o projeto pode ser compreendido da seguinte forma,

somente a porta paralela envia dados para o circuito. O circuito não envia nada de volta para a

porta paralela, portanto não é necessário usar os sinais de entrada da porta paralela. O circuito

recebe 8 sinais de controle (nível 0 ou 1) para ativar ou desativar os equipamentos, estes sinais

seguem o seguinte caminho: Paralela->Buffer Octal->Drivers dos relés->Relés.

Para que o sinal elétrico proveniente da porta paralela do computador seja capaz de

acionar o relé e, por consequência, ligar o equipamento conectado ao mesmo, ele deve passar

por alguns estágios de condicionamento.

O primeiro estágio é um buffer octal, ou seja, possui internamente oito buffers

individuais, cuja principal finalidade é proteger a porta paralela impedindo que

os circuitos seguintes drenem uma corrente maior do que ela é capaz de

fornecer. Caso esta sobrecarga aconteça, a corrente será drenada do buffer

octal ao invés de ser drenada da porta paralela. O buffer funciona como um

mini amplificador de corrente.

O segundo estágio também é um amplificador de corrente, mas, desta vez, com

uma capacidade bem maior se comparado com o buffer octal. É composto

principalmente por um transístor operando como uma chave digital. Este

transístor, quando acionado, fornece toda a corrente necessária para ligar o relé

(esta corrente é cerca de 10 vezes maior do que a porta paralela é capaz de

fornecer!) e, consequentemente, ligar o equipamento conectado ao circuito do

relé.

Nesta estrutura foram utilizados diversos componentes eletrônicos todos eles estão

descritos no Apêndice B

Page 37: TCC - Valmir Ferreira Rocha - FINAL

36

A Figura 6 possibilita melhor entendimento de todo o processo e funcionamento

quando implementado. O funcionamento é simples, o computador recebe um comando de voz

através do microfone normal padrão, este comando de voz é processado no software de

automação e os sinais são transmitidos via porta paralela para a placa mãe. A mesma é ligada

em uma fonte de energia. Cada equipamento é interligado junto ao driver de acionamento

através do cabo de energia. O driver de acionamento é ligado a uma fonte de energia e

interligado à saída da placa mãe, identificada pela porta e pelos LEDs, na parte superior. Com

isso, quando o comando de voz for totalmente reconhecido, o sinal, após chegar à placa mãe,

já é capaz de identificar qual equipamento está relacionado ao comando de voz que está

cadastrado junto ao banco de dados do software de automação. Com isto, a placa mãe envia o

sinal ao driver de acionamento onde é feita a abertura ou fechamento do relé, permitindo

passagem da corrente elétrica até o equipamento.

Figura 6. Diagrama das fases do processo

Page 38: TCC - Valmir Ferreira Rocha - FINAL

37

3.3. Porta paralela

A utilização da porta paralela neste projeto foi atribuída pelo fato de ser uma

tecnologia que, apesar de não ser mais comercializada, permite acessibilidade e facilidade nos

estudos e pesquisas acadêmicas.

3.3.1. Introdução

A porta paralela é uma interface de comunicação entre o computador e um periférico.

Quando a IBM criou seu primeiro computador pessoal, nos meados de 1960, a ideia era

conectar a essa porta uma impressora, no entanto, são vários os periféricos que ainda

utilizam-se desta porta para enviar e receber dados para o computador (exemplos: Scanners,

Impressoras e outros) (ROGER.COM, 2009).

3.3.2. Modelos de porta paralela

Existem três tipos de modelos de porta paralela, a transmissão unidirecional,

transmissão bidirecional, e a porta avançada chamada de ECP.

a) Transmissão unidirecional - A porta paralela SPP (Standard Parallel Port) pode

chegar a uma taxa de transmissão de dados a 150KB/s. Comunica-se com a CPU

utilizando um barramento de dados de 8 bits. Para a transmissão de dados entre

periféricos são usado 4 bits por vez.

b) Transmissão bidirecional - A porta avançada EPP (Enhanced Parallel Port) chega a

atingir uma taxa de transferência de 2 MB/s. Para atingir essa velocidade, será

necessário um cabo especial. Comunica-se com a CPU utilizando um barramento de

dados de 32 bits. Para a transmissão de dados entre periféricos são usado 8 bits por

vez.

Page 39: TCC - Valmir Ferreira Rocha - FINAL

38

c) A porta avançada ECP (Enhanced Capabilities Port) - Tem as mesmas

características que a EPP, porém, utiliza DMA (acesso direto à memória), sem a

necessidade do uso do processador, para a transferência de dados. Utiliza também um

buffer FIFO de 16 bytes (ROGER.COM., 2009). O buffer FIFO armazena dados

temporários até que sejam transferidos pra outro lugar.

3.3.3. Endereços da porta paralela

O sistema operacional, Windows ou até mesmo o antigo DOS, nomeia as Portas

Paralelas chamando-as de LPT1, LPT2, LPT3, etc. Contudo, a porta física padrão do

computador geralmente é a LPT1 e os endereços de cada porta dependem da configuração de

seus registradores, ou seja, cada porta paralela é formada por 3 registradores. O registrador de

dados, o registrador de status e o registrador de controle. Cada um desses registradores possui

um endereço diferente. Por exemplo, o endereço 0x378 (também chamado de endereço base

da LPT1) é o endereço do registrador de dados da porta paralela LPT1. O endereço 0x379

(0x378 + 1) é o endereço do registrador de status da LPT1 e o endereço 0x37A (0x378+2) é o

endereço do registrador de controle da LPT1. Portanto, cada LPT tem o seu endereço base,

LPT1 = 0x378 e LPT2 = 0x278 e assim por diante.

O quadro abaixo mostra os endereços hexadecimais e decimais de cada porta.

Nome da Porta Endereço de memória

Endereço da Porta Descrição

LPT1 0000:0408 378

hexadecimal 888 decimal Endereço base

LPT2 0000:040A

278 hexadecimal

632 decimal Endereço base

QUADRO 1 – Endereços da porta paralela Fonte: RogerCom (2009).

3.3.4. Conector DB25

O DB25 é um conector no qual o cabo paralelo se conecta ao computador para o envio

e recebimento de dados. No DB25, um pino está em nível lógico 0 quando a tensão elétrica no

Page 40: TCC - Valmir Ferreira Rocha - FINAL

39

mesmo está entre 0 a 0,4v. Um pino se encontra em nível lógico 1 quando a tensão elétrica no

mesmo está acima de 3.1 e até 5v. A Figura 7 mostra o conector padrão DB25, com 25 pinos,

no qual cada pino tem um nome que o identifica:

Figura 7. DB25 que fica atrás do micro Fonte: RogerCom (2009).

A Figura 8 mostra o conector macho do cabo paralelo e suas referências para

interligação entre o DB25 fêmea. As conexões D0 até D7 são as conexões de saída,

justamente as usadas no sistema de automação, apresentadas na Figura 10.

Figura 8. Conector macho do cabo paralelo Fonte: RogerCom (2009).

Page 41: TCC - Valmir Ferreira Rocha - FINAL

40

Figura 9. Foto do conector DB25 macho do cabo paralelo Fonte: RogerCom (2009).

Todo este esquema é necessário para saber como enviar dados ou receber dados

através da porta paralela, portanto a Figura 10 mostra claramente os pinos referentes às

entradas e as saídas.

Figura 10. Esquema de funcionamento do DB25 no modo SPP Fonte: RogerCom (2009).

3.3.5. Conector macho Centronics 36 pinos

O conector macho Centronics 36 pinos faz parte do cabo da impressora e é através

deste que a impressora é conectada ao computador. Ao desenvolver um projeto que utilize

uma interface para conectar ao computador, pode-se utilizar um conector centronics 36 pinos

Page 42: TCC - Valmir Ferreira Rocha - FINAL

41

fêmea, isso faz com que a interface aproveite o cabo da impressora, encontrado facilmente em

lojas de informática. A Figura 11 abaixo mostra o conector Centronics 36 pinos e sua

descrição:

Figura 11. Conector centronics 36 pinos Fonte: RogerCom (2009).

O quadro abaixo mostra as descrições dos pinos do conector centronics, é a partir

desta tabela que é possível fazer as conexões necessárias para o projeto de automação.

Número do Pino Descrição

1 Strob

2 ao 9 Dados (D0...D7)

10 Ack

11 Busy

12 Paper End

13 Select Out

14 Auto Feed

15 ao 18 Não conectado

19 ao 30 GROUND

31 Init

32 Error

33 GROUND

34 a 35 Não conectado

36 Select In

QUADRO 2 - Significado de cada pino do conector Centronics Fonte: RogerCom (2009).

Page 43: TCC - Valmir Ferreira Rocha - FINAL

42

3.3.6. Ligando e desligando aparelhos externos através da porta paralela

Como já comentado, a porta paralela não é usada somente com uma impressora, é

possível desenvolver um circuito eletrônico e acoplá-lo a essa porta e, através de um

programa específico, enviar sinais digitais para controlá-lo. Estes foram os passos utilizados a

princípio para montar tanto o hardware quanto o software de automação.

Conforme o projeto de automação, é possível controlar até 8 equipamentos

simultâneos. Diante disto, a Figura 12 esboça um protótipo de hardware utilizando LEDs. O

mesmo será utilizado para entendimento dos pinos de saída do conector DB25.

Na Figura 12, observe que o terminal do catodo (K) dos LEDs está ligado aos

terminais dos resistores, que estão ligados através do cabo aos pinos do DB25. Se invertidos,

o circuito não funcionará. Observe a enumeração dos pinos do conector DB25.

Os pinos D0 a D7 são os pinos de saída, estes pinos são os responsáveis pelo envio de

dados ao equipamento. Sinais são enviados individualmente por cada pino, possibilitando o

total controle do hardware por meio do software (ROGER.COM., 2009).

Figura 12. Esboço da conexão do conector DB25 Fonte: RogerCom (2009).

O sistema de automação envia à Porta Paralela oito bits, um a cada vez que o usuário

pressionar o botão, ou através do comando de voz. No entanto a lógica do software atribui um

operador lógico “OU”, sendo possível também ligar e desligar vários equipamentos ao mesmo

tempo. A sequência de bits gerada é vista no quadro abaixo.

Page 44: TCC - Valmir Ferreira Rocha - FINAL

43

Decimal Hexadecimal Binário Pino/Fio ativo (5V) Comentário

128 80 10000000 9 - D7 Cada bit do byte enviado à Porta Paralela está

relacionado com um pino do DB5, e um fio

do cabo paralelo, fisicamente. Ao enviar um

byte, que o(s) bit(s) esteja(m) ligado(s) ou

desligado(s), os LEDs acende(rão) ou

apaga(rão) conforme os estados dos bits.

64 40 01000000 8 - D6

32 20 00100000 7 - D5

16 10 00010000 6 - D4

8 8 00001000 5 - D3

4 4 00000100 4 - D2

2 2 00000010 3 - D1

1 1 00000001 2 - D0

QUADRO 3 - Sequência de bits gerados pela porta paralela Fonte: RogerCom (2009).

Page 45: TCC - Valmir Ferreira Rocha - FINAL

44

4. DESENVOLVIMENTO DO SOFTWARE

4.1. Documentação

A documentação de software é extremamente necessária e auxilia na redução de horas

preciosas na correção de problemas. Para muitos desenvolvedores, a criação de documentação

técnica é a parte mais “aterrorizante” para se enfrentar em todo o processo de criação de um

software, seja pela necessidade de escrever várias e várias páginas de texto, gráficos e

desenhos ou ainda pela necessidade de largar aquilo que se aprendeu (programar) para fazer

aquilo que não sabe bem (redigir). Entretanto, a documentação é parte integrante de qualquer

sistema ou programa criado. Pode-se dizer que a documentação é tão importante quanto as

questões de segurança, pois sem a devida documentação, bug's e pontos vulneráveis no

sistema demoram a ser encontrados e corrigidos permitindo, assim, que os ataques continuem

levando a resultados indesejáveis do sistema e, consequentemente, insatisfação de seu

usuário.

O projeto aqui proposto utilizou algumas técnicas de documentação, como

documentação UML gerando os diagramas de caso de uso e classes.

4.1.2. UML

A Linguagem de Modelagem Unificada (UML) é uma linguagem visual para

especificar, construir e documentar os artefatos dos sistemas (LARMAN, 2007).

A palavra visual na definição é um ponto chave – a UML é a notação diagramática

padrão, de fato, para desenhar ou apresentar figuras (com algum texto) relacionadas a

software (CADSOFT ONLINE, 2009).

Page 46: TCC - Valmir Ferreira Rocha - FINAL

45

4.1.2.1. Diagramas de Casos de Uso

A UML fornece a notação de diagramas de casos de uso para ilustrar os nomes dos

casos de uso e dos atores, bem como os relacionamentos entre eles (LARMAN, 2007). Os

mesmos sugerem como os atores interagem com o sistema. A Figura 13 mostra o caso de uso

principal, em que o usuário pode cadastrar os aparelhos existentes na residência, e os usuários

que poderão acessar o sistema web. A descrição dos cenários existentes para cada caso de uso

encontra-se no Apêndice C.

Conforme diagrama representado pela Figura 13, todas as opções de cadastramento,

consultas e exclusões estão relacionadas ao usuário local. Existe uma dependência no

relacionamento entre as funcionalidades de cada caso de uso. Estas relações são utilizadas

para demonstrar cada processo do sistema. Cada caso de uso possui ações classificadas pelos

“includes” ou “extends” referindo-se aos atributos e dependências destinadas a cada caso de

uso. Através deste diagrama é possível entender praticamente todos os processos que poderão

ser incorporados durante o desenvolvimento.

Page 47: TCC - Valmir Ferreira Rocha - FINAL

46

Figura 13. Caso de uso principal do sistema

Page 48: TCC - Valmir Ferreira Rocha - FINAL

47

4.1.2.2. Diagrama de classes

É uma representação da estrutura e relações das classes que servem de modelo para os

objetos utilizados no desenvolvimento. Modelagem muito útil, define todas as classes que o

sistema necessita possuir e é a base para a construção de diversos outros diagramas.

Para a construção deste projeto foram utilizadas diversas classes, pois o intuito era

estabelecer uma estrutura relacionada ao desenvolvimento orientado a objetos, com isto

requer um melhor planejamento e boa estruturação dos diagramas. A Figura 14 ilustra os

diagramas referentes às classes principais que compõem o projeto web. Dentro de cada

diagrama é possível identificar quais atributos, métodos e classes serão compostos em todo

desenvolvimento. O diagrama de classe pode ser gerado através de uma tecnologia chamada

de engenharia reversa, que possibilita após o sistema pronto, gerar todo os diagramas para fins

de documentação.

Figura 14. Diagrama de classe do modulo Web

A Figura 15 ilustra cada classe utilizada no desenvolvimento do modulo desktop. Este,

no entanto, possui uma maior complexidade, pois realiza a integração com o componente

SDK para o reconhecimento da voz.

Page 49: TCC - Valmir Ferreira Rocha - FINAL

48

Figura 15. Diagrama de classe do modulo Desktop

Page 50: TCC - Valmir Ferreira Rocha - FINAL

49

O projeto é composto por uma DLL (Dynamic-link library), termo técnico utilizado as

bibliotecas de ligação dinâmicas, o mesmo pode ser desenvolvido separadamente da estrutura

geral de todo o código fonte, sendo possível atribuí-la a qualquer outro projeto

independentemente. Este é mais um dos diversos recursos sobre programação orientada a

objetos.

Esta DLL, chamada de IOAutomação, compõe toda a estrutura de dados que o sistema

necessita tais como: inclusão, exclusão, pesquisas e outros. A organização de toda a estrutura

foi planejada para futuras manutenções. Assim, os processos foram subdivididos conforme

demanda do projeto. A Figura 16 ilustra todas as classes, métodos e atributos que compõem a

estrutura relacionada aos aparelhos.

Figura 16. Diagrama da estrutura dos aparelhos

Page 51: TCC - Valmir Ferreira Rocha - FINAL

50

A Figura 17 ilustra também todas as classes, métodos e atributos utilizados na

estrutura de desenvolvimento referente aos usuários.

Figura 17. Diagrama da estrutura dos usuários.

Page 52: TCC - Valmir Ferreira Rocha - FINAL

51

4.2. Metodologias

Na parte de documentações a ferramenta utilizada foi o Enterprise Arquitect (E.A), o

mesmo é considerado um software ícone no desenvolvimento das documentações. Utilizado

por grandes empresas, o E.A possibilita uma utilização por 30 dias. No entanto, este tempo foi

o suficiente para criar toda a estrutura de documentação do projeto de automação.

A ferramenta utilizada na codificação de todo o código fonte, foi através da IDE de

desenvolvimento Microsoft Visual Studio 2008, com interpretação da linguagem C#.

A estrutura de dados foi atribuída ao MySql, que de fato se tornou pioneira tanto na

área acadêmica quanto profissional, pelo fato de ser uma ferramenta totalmente gratuita,

interativa e de fácil utilização. A Figura 18 ilustra o diagrama de entidade relacionamento de

toda a estrutura composta no banco de dados.

Figura 18. Diagrama entidade relacionamento do banco de dados

Page 53: TCC - Valmir Ferreira Rocha - FINAL

52

No Quadro 4, são ilustrados todos os scripts de criação da base de dados do sistema.

Todos estes scripts podem ser executados separadamente ou todos juntos.

CREATE DATABASE IF NOT EXISTS automacao; USE automacao;

Script de criação do banco de dados

DROP TABLE IF EXISTS `aparelho`; CREATE TABLE `aparelho` ( `Codigo` int(10) unsigned NOT NULL AUTO_INCREMENT, `NomeAparelho` varchar(45) NOT NULL, `Descricao` varchar(45) NOT NULL, `ComandoVoz` varchar(45) NOT NULL, `Flag` int(10) unsigned NOT NULL, `Porta` varchar(2) NOT NULL, `ComandoVozSaida` varchar(45) NOT NULL, PRIMARY KEY (`Codigo`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;

Script de criação da tabela APARELHOS, e todos os seus atributos.

DROP TABLE IF EXISTS `porta`; CREATE TABLE `porta` ( `NomePorta` varchar(2) NOT NULL, `Bits` varchar(8) NOT NULL, PRIMARY KEY (`NomePorta`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Script de criação da tabela PORTA, e todos seus atributos

DROP TABLE IF EXISTS `usuario`; CREATE TABLE `usuario` ( `Codigo` int(10) unsigned NOT NULL AUTO_INCREMENT, `Nome` varchar(45) NOT NULL, `Usuario` varchar(45) NOT NULL, `Senha` varchar(45) NOT NULL, PRIMARY KEY (`Codigo`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

Script de criação da tabela USUARIO, e todos os seus atributos.

QUADRO 4 – Script para criação da base de dados

Page 54: TCC - Valmir Ferreira Rocha - FINAL

53

4.3. Processo de comunicação entre software e SDK 5.1

A comunicação acontece da forma descrita a seguir. Quando instalado o Microsoft

Speech Recognition SDK 5.1 ao Windows, ele cria diversos arquivos na pasta de sistemas.

No entanto, ao inicializar o processo de desenvolvimento na IDE Microsoft Visual Studio

2008, inicialmente é necessário adicionar a referência do componente MICROSOFT SPEECH

OBJECT LIBRARY 5.0, que pode ser encontrado seguindo os passos. Clique no menu

PROJECT->ADD REFERENCE, na janela que irá abrir, siga para a aba COM, e procure pela

referência citada, clique em OK e pronto. Feito isso já se consegue manipular e integrar o

componente junto ao projeto, mas para isto é necessário ter conhecimento de lógica de

programação, pois o componente é independente e, de certa forma, não consegue trabalhar

sozinho, ou seja, é necessário o manuseio do mesmo via código.

Quando se realiza uma referência de algum componente ou controle no projeto geral,

significa que é possível obter uma comunicação mais diretamente. Para isto, as técnicas de

programação orientada a objeto (POO), são extremamente viáveis e necessárias. Até o

momento, o software não realizou nenhuma comunicação com o componente. Para isso, é

necessário começar o processo de codificação no código fonte realizando a integração dos

mesmos.

Inicialmente, para realizar uma primeira comunicação, precisa-se inicializar o

componente de voz, o que é feito adicionando o controle SpeechListBox que é criado junto ao

toolbox da IDE. Posteriormente, através da propriedade “SpeechEnabled”, é possível habilitá-

lo. Contudo, agora se realiza a codificação do código para habilitar totalmente o componente,

deixando livre para o manuseio em todo o sistema. A Figura 19 ilustra o código utilizado no

projeto.

Page 55: TCC - Valmir Ferreira Rocha - FINAL

54

//Inicializa o componente de reconhecimento de voz private void InitializeSpeech() { Debug.WriteLine("Inicializando Reconhecimento de Voz.."); m_editMensagens.AppendText("Inicializando Reconhecimento de Voz.. (Aguardando comando inicial!!)"); try { objRecoContext = new SpeechLib.SpSharedRecoContext(); objRecoContext.Hypothesis += new _ISpeechRecoContextEvents_HypothesisEventHandler(RecoContext_Hypothesis); objRecoContext.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(RecoContext_Recognition); grammar = objRecoContext.CreateGrammar(grammarId); ruleTopLevel = grammar.Rules.Add("TopLevelRule", SpeechRuleAttributes.SRATopLevel | SpeechRuleAttributes.SRADynamic, 1); ruleListItems = grammar.Rules.Add("ListItemsRule", SpeechRuleAttributes.SRADynamic, 2); SpeechLib.ISpeechGrammarRuleState stateAfterSelect; stateAfterSelect = ruleTopLevel.AddState(); object PropValue = ""; ruleTopLevel.InitialState.AddWordTransition(stateAfterSelect, PreCommandString, " ", SpeechGrammarWordType.SGLexical, "", 0, ref PropValue, 1.0F); PropValue = ""; stateAfterSelect.AddRuleTransition(null, ruleListItems, "", 1, ref PropValue, 0F); RebuildGrammar(); grammar.CmdSetRuleState("TopLevelRule", SpeechRuleState.SGDSActive); speechInitialized = true; } catch (Exception e) { System.Windows.Forms.MessageBox.Show("Este aplicativo não pode executar corretamente. Exceção na inicialização do componente de voz.\r\n\r\n" + e.ToString(), "Error"); } }

Figura 19. Código fonte da habilitação do componente de voz

A execução dos comandos é feita pela classe que geralmente é chamada de Rebuild

Grammar, ou seja, execução das gramáticas. Este nome pode ser modificado de acordo com o

padrão de cada profissional. Nota-se também que nesta classe já é necessária a integração com

o banco de dados para realizar a conferência entre comando reconhecido e base de dados.

A Figura 20 ilustra os códigos que foram utilizados para executar os comandos

reconhecidos pelo sistema.

Este trabalho visa demonstrar o estudo e pesquisas tanto do reconhecimento de voz

quanto da automação residencial, não é, no entanto o foco relacionar todos os passos de

desenvolvimento. As ilustrações foram necessárias para que o leitor consiga entender o

paradigma do projeto, e através de estudos próprios relacionados a estes, consigam

estabelecer outros meios de desenvolvimento.

Page 56: TCC - Valmir Ferreira Rocha - FINAL

55

//Executa os comandos adicionados public bool RebuildGrammar() { if (!speechEnabled || this.DesignMode) { return false; } object propValue = ""; try { IOAutomacao.AparelhoBLL bll = new IOAutomacao.AparelhoBLL(); dstAparelho = bll.ObterAparelhoPesquisa(); ruleListItems.Clear(); int count = 0; if (dstAparelho.AparelhoPesquisa.Count > 0) { foreach (DataSetAparelho.AparelhoPesquisaRow linha in dstAparelho.AparelhoPesquisa) { ruleListItems.InitialState.AddWordTransition(null, linha.ComandoVoz, " ", SpeechGrammarWordType.SGLexical, linha.ComandoVoz, count, ref propValue, 1F); ruleListItems.InitialState.AddWordTransition(null, linha.ComandoVozSaida, " ", SpeechGrammarWordType.SGLexical, linha.ComandoVozSaida, count, ref propValue, 2F); count = +1; } grammar.Rules.Commit(); } } catch (Exception e) { System.Windows.Forms.MessageBox.Show("Exceção capturada quando reconstrução dinâmica na regra do listbox.\r\n\r\n" + e.ToString(), "Error"); } return true; }

Figura 20. Código fonte da execução dos comandos reconhecidos

4.4. Plano de testes

O RUP (Rational Unified Process) é uma metodologia para desenvolvimento de software

criada pela Rational Software, IBM, SofTeam, Unisys, Nihon Unisys, Alcatel e Q-Labs. O mesmo

se tornou mais do que um software para auxiliar no desenvolvimento é uma metodologia de

desenvolvimento, com uma estrutura formal e bem definida. Portanto, utilizando-o como base,

um Plano de testes foi desenvolvido a fim de garantir que os casos de uso e as funcionalidades

indicadas fossem implementados corretamente. Com sua execução foi gerado um relatório de

execução dos testes.

De acordo com os testes realizados, o funcionamento do software foi bem sucedido,

teve algumas falhas ou cancelamentos de alguns processos durante os testes, mas nada que

prejudicasse o funcionamento em geral. Falhas essas que são previstas durante o próprio

desenvolvimento. Com base no relatório verifica-se que o resultado foi satisfatório, mostrando

que o software está apto ao funcionamento.

O Plano de teste e o relatório de execução dos testes são encontrados no Apêndice D.

Page 57: TCC - Valmir Ferreira Rocha - FINAL

56

4.5. Apresentação do software

4.5.2. Introdução

O sistema Automação Residencial por comando de voz aqui proposto é destinado ao

controle de equipamentos domésticos de forma automática em uma residência. É possível

utilizá-lo pelas aplicações desktop ou web, e pode ser considerado um sistema em tempo real.

Sistemas de tempo real são sistemas de computação que monitoram, respondem ou

controlam um ambiente externo. Esse ambiente está conectado ao sistema de computação

através de sensores (microfone), atuadores e outras interfaces de entrada e saída. Podem

constituir-se de objetos físicos ou biológicos de qualquer forma e estrutura (SHAW, 2003). O

tempo de resposta aos estímulos externos geralmente está dentro dos limites estabelecidos

para seu funcionamento aceitável. Não importa o tamanho do intervalo de tempo, se é em

nanossegundos ou em minutos. Se o sistema tem um tempo limite para responder, então é um

sistema em tempo real.

Tais aplicações vêm, aparecendo como parte de nossas infraestruturas comerciais,

governamentais, militares, educacionais e culturais. Nesses, estão incluídos (SHAW, 2003):

a) Sistemas de controle de veículos para automóveis, metrôs, aeronaves, ferrovias

e navios;

b) Controle de tráfego para auto-estradas, espaço aéreo, trilhos de ferrovias e

corredores de navegação marítima;

c) Controle de processo para usinas de energia, indústrias químicas e para

produtos de consumo, como refrigerantes e cerveja;

d) Sistemas médicos para radioterapia, monitoramento de pacientes e

desfibrilamento;

e) Usos militares como controle de tiro, rastreamento e sistemas de comando e de

controle;

f) Sistemas de manufatura com robôs;

g) Telefone, rádio e comunicações por satélite;

h) Jogos por computador;

i) Sistemas de multimídia que provêm interfaces textuais, gráficas, de áudio e de

vídeo;

Page 58: TCC - Valmir Ferreira Rocha - FINAL

57

j) Sistemas domésticos para monitoramento e controle de eletrodomésticos;

k) Sistemas de automação predial que controlam temperatura ambiental,

iluminação portas e elevadores;

l) Sistemas de automação residencial que controlam equipamentos domésticos.

O sistema de automação residencial por comando de voz possibilita ligar e desligar

qualquer equipamento residencial, possibilitando o monitoramento de todo o status dos

equipamentos, informando a localidade do equipamento, e seu status (desligado ou ligado).

4.5.3. Requisitos funcionais

a) O usuário poderá ligar e desligar os equipamentos da residência pela aplicação

desktop através do comando de voz ou pela internet;

b) O usuário poderá visualizar todos os aparelhos que estão sendo controlados, tanto pela

aplicação desktop quanto pela internet.

4.5.4. Aplicação desktop

Na aplicação desktop os equipamentos são demonstrados na aba principal em

destaque, através de uma tabela com diversas informações, como:

1) ID (Número de identificação)

2) Nome do Aparelho

3) Descrição do Aparelho

4) Comando de Voz (Comando para ligar o equipamento)

5) Porta

6) Status (é alterada de acordo com o estado do dispositivo)

7) Comando Voz de Saída (Comando para desligar o equipamento)

A Figura 21 ilustra a aplicação desktop com alguns dispositivos ligados e outros

desligados.

Page 59: TCC - Valmir Ferreira Rocha - FINAL

58

Figura 21. Aplicação desktop

O sistema também possui um ambiente de cadastros, onde é através deste que o

usuário deverá cadastrar quais usuários poderão ter acesso via web, e quais os aparelhos

interligados ao sistema. A Figura 22 ilustra a área de cadastro de aparelhos.

Neste cadastro é necessário inserir todas as informações exigidas para que o sistema

tenha um funcionamento perfeito.

Figura 22. Cadastro de aparelhos na aplicação desktop

Page 60: TCC - Valmir Ferreira Rocha - FINAL

59

A Figura 23 ilustra a área do cadastramento dos usuários, que são utilizados no

momento do acesso ao sistema web, concretizando os passos mínimos de segurança que se

exige ao disponibilizar um sistema web.

Figura 23. Cadastro de usuários utilizados para acesso web

A Figura 24 ilustra uma visão geral da área representada com os cadastros de aparelhos e usuários.

Figura 24. Visão geral da área de cadastramentos.

Page 61: TCC - Valmir Ferreira Rocha - FINAL

60

4.5.5. Aplicação web

A aplicação web foi desenvolvida com o intuito de simplicidade, facilidade,

funcionalidade e praticidade, principalmente para que pessoas com necessidades especiais

possam operar o sistema. No entanto, nada de grandes interfaces, o foco realmente é a

funcionalidade.

Logo ao inicializar a aplicação, uma identificação de login é aberta, isso favorece o

mínimo de segurança ao sistema, uma vez que o mesmo é aberto à rede mundial de

computadores. Após a identificação, todos os equipamentos são listados juntamente com o

status de cada equipamento, com informações do status de ligado ou desligado possibilitando

assim, ligar ou desligá-lo manualmente.

Figura 25. Aplicação Web (login)

Todos os equipamentos são listados, conforme Figura 26. Os botões a esquerda são

utilizados para realizar as ações conforme explicação da legenda.

Figura 26. Aplicação Web

Page 62: TCC - Valmir Ferreira Rocha - FINAL

61

5. CONCLUSÃO

Pode-se verificar que o reconhecimento de voz é uma área que está cada vez mais em

expansão, com o intuito de melhorar e facilitar tarefas cotidianas. É certo que ainda está numa

fase de evolução, mas mesmo assim já consegue, e com algum grau de certeza, obter

resultados bastante promissores.

Este trabalho atingiu as metas propostas de desenvolvimento de um sistema que

engloba automação residencial por comando de voz. Foi possível, no entanto, verificar

algumas das características que tornou o SDK uma das novas alternativas para a utilização do

reconhecimento de voz em sistemas de automação. A família Microsoft realmente fez um

bom trabalho na criação e melhoramento do componente SDK, a mais de uma década eles

vêm aprimorando o componente para que sua integração a outros sistemas se torne cada vez

útil. O mesmo foi utilizado no projeto aqui proposto, se comportando perfeitamente e

alcançando o resultado esperado. Contudo, sempre há alguns escorregões, pois como sempre

falamos nada é perfeito, e tudo se ajusta e melhora conforme pesquisas e feedbacks realizados

por profissionais e alunos durante a utilização do componente. Por ser o SDK uma ferramenta

gratuita, a Microsoft conta com a participação de todos os que utilizam da mesma para expor

seus defeitos, para que possam corigi-los em novas versões.

Para a realização deste trabalho foram feitos estudos referentes a sinais enviados e

recebidos pela porta paralela LPT1, reconhecimento de voz utilizando componente Microsoft

Speech Recognition (SDK 5.1), sem os quais não seria possível desenvolver esse trabalho;

conceitos sobre as tecnologias existentes para automação residencial e sobre eletrônica.

O projeto demonstra uma viabilidade econômica satisfatória deste nível de

automação residencial com um custo bem acessível a todas as classes.

O projeto proposto mostra-se extremamente viável, pois atualmente é notável que uma

maior atenção deveria ser dispensada para o público portador de necessidades especiais.

Um projeto adaptado a uma residência real deverá trazer consigo elementos capazes

de controlar níveis superiores de reconhecimento de voz, através de microfones superiores aos

usados no protótipo do projeto. Ainda assim, a viabilidade econômica do projeto é justificada

frente aos valores exagerados cobrados por empresas que atuam nesse nicho de mercado.

Após a conclusão dos estudos e do desenvolvimento deste projeto, observou-se que o

mesmo é um sistema consideravelmente simples de ser implementado, possibilitando a

expansão da automação residencial por comando de voz de baixo custo, que ainda está em

Page 63: TCC - Valmir Ferreira Rocha - FINAL

62

grande crescimento e amadurecimento, apresentando ainda poucos produtos acessíveis no

mercado.

5.1. Trabalhos futuros

Como trabalhos futuros, deseja-se, diante das funcionalidades desempenhadas pelo

sistema, implementar os itens de:

Modificar o sistema de comunicação, passando a trabalhar com porta USB, ou

diretamente via Bluetooth ou Wifi.

Não limitar quantidades de aparelhos a serem controlados.

Page 64: TCC - Valmir Ferreira Rocha - FINAL

63

REFERÊNCIAS

ABREU, R. S. Automação residencial: um pouco de história. Ribeirão Preto, 2003. 46 eslaides, color. PowerPoint for Windows 10.26. Arquivo ppt baixado da Internet. Disponível em: <http://www.aureside.org.br/publicacoes/download/automacao_residencial.zip>. Acesso em: 28 set. 2009. AFONSO, R. Sistema de automação residencial com central de controle microcontrolada e independente de pc. 2006. 91 f. Monografia (Trabalho de Conclusão de Curso II do curso de Ciências da Computação) – Universidade Regional de Blumenau, Blumenau, 2006. BARONE, D. A. C.; YEPES, I. Inteligência artificial distribuída: uma abordagem ao comportamento social inteligente. Sociedades Artificiais. Porto Alegre: Bookman, 2002. BEIZER, B. Software Testing Techniques. New York:: Van Nostrand Reinhold Company, 1990. CADSOFT ONLINE. Eagle: version 5.6. Disponível em <http://www.cadsoftusa.com>. Acesso em: 07 out. 2009.

CATHEY, J. J. Dispositivos e circuitos eletrônicos. 2. ed. Porto Alegre: Bookman, 2003. ENDERLEIN, R. Microeletrônica: uma introdução ao universo dos microchips, seu funcionamento, fabricação e aplicações. São Paulo: EdUSP, 1994. GUILHOTO, P. Reconhecimento de voz. Portugal: Sistema Multimídia, 2002. p. 5.

GUILHOTO, P. J. S.; ROSA, S. P. C. S. Reconhecimento de voz: sistemas multimédia: 2001/2002. Coimbra: Universidade de Coimbra, Faculdade de Ciências e Tecnologias, Departamento de Engenharia Informática, 2001. IBM. Embedded ViaVoice. Disponível em: <http://www-01.ibm.com/software/pervasive/embedded_viavoice/>. Acesso em: 10 maio 2009.

IBM RESEARCH. Intelligent Agents Project at IBM T. J. Watson Research. Disponível: site IBM Corporation (1998). URL: http://www.research.ibm.com/iagents/. Consultado em 13 dez. 2009.

Page 65: TCC - Valmir Ferreira Rocha - FINAL

64

LARMAN, G. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Porto Alegre: Bookman, 2007. LONG, B. Speech Synthesis & Speech Recognition Using SAPI 4 High Level Interfaces. Embarcadero Technologies. 2003. Disponível em: <http://edn.embarcadero.com/print/29581>. Acesso em: 05 maio 2009 MEGATTS. SAPI. Disponível em: <http://www.megatts.com/2007/07/10/sapi-o-que-e/>. Acesso em: 2 out. 2009. MICROSOFT. Help Microsoft Speech SDK version 5.1. Microsoft Corporation, 2002. MICROSOFT. Speech SDK 5.1. Download. Disponível em: <http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&DisplayLang=en>. Acesso em: 02 jan 2009. MICROSOFT. Suporte. Voice pilot. Dicas sobre treinamento de voz piloto. 2003. Disponível em: <http://support.microsoft.com/kb/95089>. Acesso em: 10 maio 2009. MILCOMP PRODUTOS ELETRÔNICOS LTDA. Resistor. Disponível em: <http://www.milcomp.com.br/>. Acesso em: 20 jun.2009. NWANA, H. S. Software agents: an overview. Knowledge Engineering Review, Cambridge, v. 11, n. 3, p. 205-244, 1996. O & A PRODUCTIONS. Why Should I Use Speech in My Application. Disponível em: <http://www.o2a.com/framesPrimer.htm>. Acesso em: 4 out. 2009.

RABINER, L. R.; JUANG, B. H. Fundamentals of speech recognition. New York: Prentice Hall,1993. RAMOS, C. M. et al. Física fundamental: vol. único: 2º grau. São Paulo: FTD, 1993. RATIONAL UNIFIED PROCESS®. Rational Unified Process: visão geral. 2001. Disponível em: <http://www.wthreex.com/rup/portugues/index.htm>. Acesso em: abr. 2009.

Page 66: TCC - Valmir Ferreira Rocha - FINAL

65

ROBOTERNETZ. Hauptseite. [Transistor]. Disponível em: <http://www.rn-wissen.de/index.php/Hauptseite>. Acesso em: 20 jun. 2009. ROGER.COM. 2009. Disponível em:<http://www.roger.com>. Acesso em: 20 jun. 2009. RUSSEL, S.; NORVIG, P. Artificial Intelligence: A modern Approach. New York: Prentice Hall, 1995. SHAW, A. C. Sistemas e software de tempo real. Porto Alegre: Bookman, 2003.

WIKIPÉDIA. Component Object Model. 2009a. Disponível em: <http://pt.wikipedia.org/wiki/Component_Object_Model>. Acesso em: 3 out. 2009.

WIKIPÉDIA. Fast Fourier Transform. 2009b. Disponível em: <http://en.wikipedia.org/wiki/Fast_Fourier_transform>. Acesso em: 15 set. 2009. WIKIPÉDIA. LED. 2009c. Disponível em: <http://pt.wikipedia.org/wiki/LED>. Acesso em: 12 out. 2009. WIKIPÉDIA. OLE Automation. 2009d. Disponível em: <http://pt.wikipedia.org/wiki/OLE_Automation>. Acesso em: 3 out. 2009. WIKIPÉDIA. Pipeline. 2009e. Disponível em: <http://pt.wikipedia.org/wiki/Pipeline>. Acesso em: 7 set. 2009. WIKIPÉDIA. Pulse-code modulation. 2009f. Disponível em: <http://en.wikipedia.org/wiki/Pulse-code_modulation>. Acesso em: 7 set. 2009. WIKIPÉDIA. Stream. 2009g. Disponível em: <http://pt.wikipedia.org/wiki/Stream>. Acesso em: 10 set. 2009.

WOOLDRIDGE, M.; JENNINGS, N. R. Intelligent Agents: Theory and Practice. Knowledge Engineering Review, Cambridge, v. 100, n. 2, p. 115-152, 1994.

Page 67: TCC - Valmir Ferreira Rocha - FINAL

66

ANEXOS

Anexo 1 - Exemplo de Gramáticas

A descrição deste anexo serve como exemplo de uma gramática que é interpretada

internamente pelo SDK. (RABINER; JUANG, 1993)

[Grammar] langid=1033 type=cfg [Lists] =Ligar =Desligar =Abrir =Fechar [<Start>] <Start>= [opt] <Ligar> [opt] <Desligar> [opt] <Abrir>[opt]<Fechar> [Ligar] =TV =Ar =Ventilador =Computador [Desligar] =TV =Ar =Ventilador =Computador [Abrir] =Portão =Veneziana =Porta [Fechar] =Portão =Veneziana =Porta

Page 68: TCC - Valmir Ferreira Rocha - FINAL

67

APÊNDICE A - DESCREVENDO A CRIAÇÃO DA PLACA DE CIRCUITO

IMPRESSO (PCB)

Os passos para a criação de uma PCB é simples, mas requer bastante atenção em todos

os detalhes, pois qualquer erro de projeto o circuito pode não funcionar, ou até mesmo

danificar outros componentes junto à placa. É necessário bastante atenção nos produtos

utilizados, alguns deles são corrosivos e prejudiciais à saúde, caso venha ter algum contato

interno.

Antes de realizar a criação da PCB, é necessário realizar alguns testes dos

componentes eletrônicos, se possível junto a um protoboard, evitando constrangimentos e

desperdício de material.

Protoboard em inglês, ou melhor, matriz de contato é uma placa com milhares de

furos e conexões condutoras para montagem de circuitos elétricos experimentais. A grande

vantagem do protoboard na montagem de circuitos eletrônicos é a facilidade de inserção de

componentes, uma vez que não necessita soldagem. As placas variam de 800 furos até 6000

furos, tendo conexões verticais e horizontais. Na superfície de uma matriz de contato há uma

base de plástico na qual existem centenas de orifícios onde são encaixados os componentes.

Em sua parte inferior são instalados contatos metálicos que interliga eletricamente os

componentes inseridos na placa. Geralmente suportam correntes entre 1A e 3A. A Figura 27

mostra o teste realizado com o auxilio de um protoboard.

Figura 27. Teste em placa de Protoboard

Page 69: TCC - Valmir Ferreira Rocha - FINAL

68

Após os testes, é hora de verificar o projeto no computador, levá-lo até uma gráfica e

realizar o corte do adesivo. Qualquer operador de plotter entende como realizar este tipo de

serviço de recorte para adesivos com mascaras. Este processo seria uma simples impressão

em um papel A4, mas devido à corrosão necessária para criar as trilhas eletrônicas das placas,

o adesivo é indispensável e o método mais simples e acadêmico realmente torna-se este. Os

passos seguintes serão demonstrados conforme figuras abaixo.

A Figura 28 mostra o projeto no computador. Este será levado até uma gráfica para

fazer os recortes.

Figura 28. Projeto no computador

Na Figura 29 é demonstrado o adesivo plotado, ou seja, já no recorte, conforme

projeto.

Figura 29. Adesivo plotado sem mascara

Page 70: TCC - Valmir Ferreira Rocha - FINAL

69

Figura 30 mostra como é feita a retirada da máscara, para que seja introduzida no

adesivo. Esta mascara ajuda na retirada do adesivo, uma vez que não é possível fazer a

retirada manualmente devido às diversas trilhas eletrônicas criadas no projeto.

Figura 30. Retirando a mascara

A Figura 31 demonstra o adesivo já com mascara colada.

Figura 31. Colando a mascara no adesivo

Realiza-se uma fricção ao adesivo, até que a mascara esteja realmente fixada ao

adesivo.

Page 71: TCC - Valmir Ferreira Rocha - FINAL

70

Figura 32. Fixando bem a mascara ao adesivo

A Figura 33 mostra o momento da retirada do adesivo através da máscara, observe que

todo o adesivo sai junto a mascara, isso facilitará na colagem a placa metálica.

Figura 33. Retirando a mascara

O momento agora é de atenção, realizar a colagem do adesivo junto à placa metálica,

tendo o cuidado de não deixar bolhas, isso pode prejudicar no momento da corrosão da placa.

Page 72: TCC - Valmir Ferreira Rocha - FINAL

71

Figura 34. Colando o adesivo na PCB com a máscara

Agora é necessário retirar o excesso de adesivo, verifique que conforme a retirada vai

se formando as trilhas eletrônicas.

Figura 35. Retirando excesso de adesivos

A Figura 36 mostra uma comparação entre o projeto no computador e o projeto na

placa após a colagem dos adesivos, este momento é bom se atentar a todos os detalhes do

projeto, para possíveis correções antes de torná-lo físico.

Page 73: TCC - Valmir Ferreira Rocha - FINAL

72

Figura 36. Verificando projeto e placa

A Figura 37 mostra o momento da corrosão, necessária para retirar a parte metálica

que não contem os adesivos. A corrosão é feita com percloreto de ferro, produto químico e

necessita de cuidados como luvas e espátulas.

Figura 37. Corroendo as placas com percloreto de ferro

Após a corrosão é necessário realizar uma limpeza a placa, isso é feito com água

corrente.

Page 74: TCC - Valmir Ferreira Rocha - FINAL

73

Figura 38. Lavando as placas após corrosão

A Figura 39 mostra a placa após a lavagem, veja os detalhes das trilhas eletrônicas.

Figura 39. Corrosão finalizada

Todos os componentes são soldados, criando um conjunto de hardware, conforme

Figura 40.

Page 75: TCC - Valmir Ferreira Rocha - FINAL

74

Figura 40. Montagem dos componentes

Os hardwares são montados, formando todo o conjunto do projeto, conforme mostra a

Figura 41.

Figura 41. Montando projeto

Projeto de hardware pronto. A Figura 42 mostra o projeto já montado e finalizado,

pronto para interagir junto ao software de automação.

Page 76: TCC - Valmir Ferreira Rocha - FINAL

75

Figura 42. Projeto finalizado

APÊNDICE B - COMPONENTES ELETRÔNICOS UTILIZADOS

B.1 Transístor BC337

O transistor tem por princípio o poder de controle da corrente. Ele pode funcionar, no

circuito, com uma chave (liga/desliga) ou como um amplificador. A Figura 43 mostra o

transistor BC337 que é de uso geral e foi utilizado no projeto.

Figura 43. Transistor BC337.

Retirado de Roboternetz (ROBOTERNETZ, 2009).

Page 77: TCC - Valmir Ferreira Rocha - FINAL

76

O transistor permite tanto a amplificação de potência elétrica quando seu

chaveamento. Na microeletrônica o transistor desempenha primordialmente a função de uma

chave eletrônica por impulsos elétricos; para uma tensão alta na base, uma grande corrente

percorre o circuito Emissor-Coletor (chave ligada), enquanto, se a tensão da base for baixa, a

corrente será pequena (chave desligada) (ENDERLEIN, 1994).

A corrente de emissor é calculada com a taxa do fluxo de cargas positivas que entram

na região do emissor (CATHEY, 2003).

B.2 Diodo 1N4148

Um diodo é o tipo mais simples de semicondutor. De modo geral, um semicondutor é

um material com capacidade variável de conduzir corrente elétrica. Um diodo é um

dispositivo de estado sólido que permite o fluxo de corrente em apenas um sentido, um

processo conhecido como retificação. Díodos são um componente fundamental dos circuitos

elétricos. Eles também são usados para formar outros componentes, tais como o transistor

bipolar, que utiliza dois diodos em série.

Figura 44. Diodo 1N4148

B.3 Resistor

Resistores são componentes eletrônicos, caracterizados por uma grandeza física que

mede a oposição à passagem de corrente (RAMOS, 1993).

São utilizados para limitar a corrente elétrica em um circuito ou para criarem uma

queda de tensão em algum ponto do circuito. A Figura 44 mostra a imagem de um resistor.

Page 78: TCC - Valmir Ferreira Rocha - FINAL

77

Figura 45. Resistor (MILCOMP PRODUTOS ELETRÔNICOS LTDA., 2009).

De acordo com as cores apresentadas externamente, na cápsula que envolve o material

resistivo, pode-se determinar o valor de um resistor, ou utilizando um equipamento de

medição.

B.4 Relé de 5V

Os relés são dispositivos comutadores eletromecânicos. São utilizados basicamente

para ligar ou desligar dispositivos. É normal o relé estar ligado a dois circuitos. Existem

diversos tipos de relés, mas todos eles trabalham com a mesma finalidade.

No sistema de automação o relé é utilizado para abrir e fechar o circuito que envia

sinal elétrico aos aparelhos.

Figura 46. Relé de 5v

B.5 Led Verde / Led Vermelho 3mm

O LED é um diodo semicondutor que quando energizado emite luz visível, por isso

LED (Diodo Emissor de Luz). A luz não é monocromática (como em um laser), mas consiste

de uma banda espectral relativamente estreita e é produzida pelas interações energéticas do

elétron (WIKIPÉDIA, 2009c). 0

Page 79: TCC - Valmir Ferreira Rocha - FINAL

78

Figura 47. LED (Diodo semicondutor)

B.6 Circuito Integrado 74LS541

Circuito integrado, também conhecido por chip, é um dispositivo microeletrônico

que consiste de muitos transistores e outros componentes interligados capazes de

desempenhar muitas funções. Suas dimensões são extremamente reduzidas, os componentes

são formados em pastilhas de material semicondutor.

CI 74LS541 Circuito integrado Buffer, normalmente utilizado para proteger a porta

paralela do computador, quando se liga a porta paralela do computador a um circuito

eletrônico.

Figura 48. CI 74LS541

Page 80: TCC - Valmir Ferreira Rocha - FINAL

79

APÊNDICE C – CENÁRIOS DOS CASOS DE USO

C.1. UC1 - Cadastrar Aparelho

Este caso de uso realiza o cadastramento de novos equipamentos no sistema.

Cenário(s) Principal(is)

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".

2 - O usuário clica no botão Cadastrar Aparelho.

3 - O usuário insere o nome, descrição, comando de voz de entrada, comando de voz

de saída e a porta.

4 - O usuário clica no botão salvar

Cenário(s) Alternativo(s)

1 - O sistema verifica que o aparelho já é cadastrado.

2 - O sistema emite a mensagem "Equipamento já é cadastrado".

3 - O sistema verifica que a porta já está em uso.

4 - O sistema emite a mensagem "Porta já encontra em uso"

C.2. UC2 - Consultar Aparelho

Este caso de uso permite a consulta de equipamentos já cadastrados no sistema.

Cenário(s) Principal(is)

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".

2 - O usuário clica na lupa de pesquisa do setor de aparelhos.

3 - O usuário visualiza uma lista de todos os aparelhos cadastrados.

4 - O usuário seleciona o item desejado.

Cenário(s) Alternativo(s)

1 - Caso não tenha nenhum aparelho cadastrado, e emitido a seguinte mensagem "Não

existe aparelhos cadastrados”.

C.3. UC3 - Alterar Aparelho

Este caso de uso permite a alteração de um equipamento existente no sistema

Cenário(s) Principal(is)

Page 81: TCC - Valmir Ferreira Rocha - FINAL

80

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários"

2 - O usuário clica na lupa de pesquisa do setor de aparelhos

3 - O usuário visualiza uma listagem de todos os aparelhos cadastrados

4 - O usuário escolhe o aparelho desejado

5 - O usuário clica no botão Editar

6 - O usuário faz as alterações necessárias

7 - O usuário clica no botão Gravar

C.4. UC4 - Excluir Aparelho

Este caso de uso permite a exclusão de um equipamento no sistema

Cenário(s) Principal(is)

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários

2 - O usuário clica na lupa de pesquisa no setor de aparelhos

3 - O usuário visualiza uma lista de todos os aparelhos cadastrados

4 - O usuário escolhe o aparelho desejado

5 - O usuário clica no botão Deletar

6 - O usuário confirma a mensagem de exclusão

Cenário(s) Alternativo(s)

1 - O usuário cancela a exclusão

C.5. UC5 - Cadastrar Usuário

Caso de uso refere-se ao cadastramento de usuários que terão acesso ao sistema web

Cenário(s) Principal(is)

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários"

2 - O usuário clica no botão Cadastrar Usuário

3 - O usuário insere o nome, login, senha e confirmar senha.

4 - O usuário clica no botão salvar

Cenário(s) Alternativo(s)

1 - O sistema verifica que o login já existe

1.1 - O sistema emite a mensagem "Este nome de usuário já está em uso".

2 - O sistema verifica se a senha é idêntica ao campo Confirmar senha

Page 82: TCC - Valmir Ferreira Rocha - FINAL

81

2.1 - O sistema emite a mensagem "Os valores do campo senha e confirmar

senha tem que ser iguais"

C.6. UC6 - Consultar Usuário

Caso de uso permite a consulta de usuários já cadastrados no sistema.

Cenário(s) Principal(is)

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".

2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários

3 - O usuário visualiza uma lista de todos os usuários cadastrados

4 - O usuário seleciona o item desejado

Cenário(s) Alternativo(s)

1 - Caso não tenha nenhum aparelho usuário cadastrado, e emitido a seguinte

mensagem "Não existe usuários cadastrados”.

C.7. UC7 - Alterar Usuário

Caso de uso permite a alteração de um usuário existente no sistema

Cenário(s) Principal(is)

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".

2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários

3 - O usuário visualiza uma listagem de todos os usuários cadastrados

4 - O usuário escolhe o item desejado

5 - O usuário clica no botão Editar

6 - O usuário faz as alterações necessárias

7 - O usuário clica no botão Gravar

C.8. UC8 - Excluir Usuário

Caso de uso permite a exclusão de um usuário no sistema

Cenário(s) Principal(is)

1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários

2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários

3 - O usuário visualiza uma lista de todos os aparelhos cadastrados

4 - O usuário escolhe o aparelho desejado

5 - O usuário clica no botão Deletar

6 - O usuário confirma a mensagem de exclusão

Page 83: TCC - Valmir Ferreira Rocha - FINAL

82

Cenário(s) Alternativo(s)

1 - O usuário cancela a exclusão

C.9. UC9 - Validar Comando de Voz

Este caso de uso faz a validação do comando de voz, junto à biblioteca SDK 5.1 da

Microsoft.

Cenário(s) Principal(is)

1 - O comando de voz é processado

2 - O sistema faz a verificação do comando voz, validando ou não através do banco de

dados que possui todas as informações necessárias.

3 - A verificação do sistema é feito através do componente Microsoft Speech SDK 5.1

de reconhecimento de voz.

4 - Se o comando de voz de entrada for valido, então o aparelho é ligado.

5 - Se o comando de voz de saída for valido, então o aparelho é desligado.

C.10. UC10 - Ligar Aparelho

Este caso de uso faz com que apos o reconhecimento de voz for aceito, o equipamento

ligue.

Cenário(s) Principal(is)

1 - Após conhecimento de voz for aceito pela validação o equipamento é ligado.

Cenário(s) Alternativo(s)

1 - Caso o comando executado pelo usuário for para Ligar o aparelho, isso será feito

através do WebService.

C.11. UC11 - Desligar Aparelho

Este caso de uso permanece com os equipamentos desligados caso o comando de voz

não for aceito.

Cenário(s) Principal(is)

1 - Se o reconhecimento de voz for aceito, o equipamento o sinal de desligamento do

aparelho é acionado.

2 - Caso o reconhecimento de voz não for validado e aceito, o equipamento permanece

como esta.

Page 84: TCC - Valmir Ferreira Rocha - FINAL

83

Cenário(s) Alternativo(s)

1 - Caso o comando executado pelo usuário for para desligar o aparelho, isso será feito

através do WebService.

C.12. UC12 - Aguardar Execução de Comando no Sistema

Caso de Uso permite aguardar a execução de algum comando do usuário Web.

Cenário(s) Principal(is)

1 - O sistema fica em “Stand By” aguardando algum comando ser executado

2 - O usuário executa algum comando através do sistema Web, para ligar ou desligar o

aparelho.

3 - O sistema processa o comando.

4 - O sistema liga ou desliga o aparelho de acordo com o comando recebido via Web

C.13. UC13 - Capturar informações do sistema Local

Caso de uso permite fazer a busca de dados do sistema local

Cenário(s) Principal(is)

1 - Caso o WebService estiver normalizado, quando o sistema atingir este ponto,

automaticamente ele busca todos os dados do sistema local, carregando no sistema

web.

C.14. UC14 - Validar Identificação

Caso de uso permite fazer a validação das credenciais do usuário Web.

Cenário(s) Principal(is)

1 - Sistema verifica se as credenciais "usuário" e "senha" são validos.

2 - Caso verdadeiro o sistema continua o processo.

3 - Caso contrario, volta para a tela de identificação, impedindo qualquer avanço do

usuário.

APÊNDICE D – PLANO DE TESTES E RELATÓRIOS DE EXECUÇÃO

Page 85: TCC - Valmir Ferreira Rocha - FINAL

84

Sistema de Automação Residencial por Comando de Voz

Plano de Testes

Versão 1.0

Page 86: TCC - Valmir Ferreira Rocha - FINAL

85

Histórico de Revisão

Data Versão Descrição Autor

23/07/2009 1.0 Criação do Plano de Testes Valmir Ferreira Rocha

Page 87: TCC - Valmir Ferreira Rocha - FINAL

86

Índice

1. INTRODUÇÃO .............................................................................................................. 87

1.1. Finalidade ................................................................................................................. 87

1.2. Informações Detalhadas ........................................................................................... 87

1.3. Escopo ...................................................................................................................... 87

1.4. Identificação do Projeto ............................................................................................ 87

2. REQUISITOS DE TESTE ............................................................................................. 88

2.1. Teste Funcional ........................................................................................................ 88

2.2. Teste de Interface do Usuário ................................................................................... 88

2.3. Teste de Configuração .............................................................................................. 88

2.4. Teste de Instalação ................................................................................................... 89

3. ESTRATÉGIA DE TESTE ........................................................................................... 89

3.1. Tipos de Teste ........................................................................................................... 89

4. RECURSOS .................................................................................................................... 92

4.1. Papéis ........................................................................................................................ 92

Page 88: TCC - Valmir Ferreira Rocha - FINAL

87

Plano de Testes

1. INTRODUÇÃO

1.1. Finalidade

Há um mito segundo o qual, se fôssemos realmente bons para programar, não haveria

'bugs' a ser procurados. Se pudéssemos realmente nos concentrar, se todos usassem

programação estruturada, projeto 'top-down’, tabelas de decisão, se tivéssemos as balas de

prata certas, então não haveria 'bugs (LARMAN, 2007)0.

Por melhores que sejam as técnicas e processos sempre estarão presentes os erros

humanos. Não se pode garantir que os programas funcionem corretamente, sem a presença de

erros, portanto, para ter um sistema mais confiável, com o mínimo de erros, são executados os

testes.

A principal finalidade do Teste é localizar e expor os pontos fracos do software

(SHAW, 2003)0.

1.2. Informações Detalhadas

O sistema de automação residencial por comando de voz permite ligar e desligar

aparelhos domésticos pela aplicação Web ou desktop.

1.3. Escopo

Foram feitos testes de funcionalidades do sistema para verificar se a operabilidade do

sistema atende aos requisitos solicitados, testes de interface do usuário, de configuração e de

instalação, gerando um sistema mais estável e seguro para utilização.

1.4. Identificação do Projeto

A tabela abaixo identifica a documentação e disponibilidade; ela é utilizada para

desenvolver o plano de teste:

Page 89: TCC - Valmir Ferreira Rocha - FINAL

88

Documento

(e versão / data)

Criado ou

Disponível

Recebido ou

Revisado

Autor ou

Recurso

Observações

Especificação de Requisitos Sim Não Sim Não

Relatórios de Caso de Uso Sim Não Sim Não

Plano de Projeto Sim Não Sim Não

Manual do Usuário Sim Não Sim Não

Manual de Instalação Sim Não Sim Não

2. REQUISITOS DE TESTE

A listagem a seguir identifica os itens (casos de uso, requisitos funcionais, requisitos

não funcionais) que foram identificados como objetivos de teste. A lista representa o que foi

testado.

2.1. Teste Funcional

Verificar se o usuário consegue ligar e desligar qualquer aparelho pela

aplicação Web

Verificar se o usuário consegue ligar e desligar qualquer aparelho pela

aplicação Desktop

Verificar se o usuário consegue ligar e desligar qualquer aparelho pela

aplicação Desktop e depois visualizar status pela aplicação Web

Verificar se todos os casos de uso estão implementados corretamente

2.2. Teste de Interface do Usuário

Verificar se todas as funcionalidades estão disponíveis

Verificar se todas as telas nas Aplicações Web e Desktop atendem os requisitos

de interface amigável

Verificar se o padrão visual é consistente em todas as telas

2.3. Teste de Configuração

Page 90: TCC - Valmir Ferreira Rocha - FINAL

89

Verificar se a aplicação Web funciona em diferentes browsers

2.4. Teste de Instalação

Verificar se um usuário seguindo apenas os passos descritos no manual de

instalação é capaz de instalar o sistema Automação Residencial.

3. ESTRATÉGIA DE TESTE

3.1. Tipos de Teste

3.1.1. Teste Funcional

Objetivo do Teste: Garantir a funcionalidade adequada de objetivo do teste, incluindo

navegação e processamento.

Técnica: Executar cada caso de uso, fluxo de caso de uso ou função a fim

de verificar o seguinte:

Os resultados esperados ocorrerão quando forem usados estados

válidos.

Cada regra de negócio será adequadamente aplicada.

Critérios de

Conclusão:

Todos os testes planejados foram executados.

Todos os defeitos identificados foram abordados.

Considerações

Especiais:

Nenhuma.

Page 91: TCC - Valmir Ferreira Rocha - FINAL

90

3.1.2. Teste da Interface do Usuário

Objetivo do Teste: Verificar se:

A navegação pelo sistema reflete adequadamente as funções e

os requisitos de negócio, incluindo os métodos de janela-a-janela,

de campo-a-campo e de uso de acesso (como, movimentos do

mouse).

Os objetos e as características da Web, como menus, tamanho,

posição, estado e enfoque, estão de acordo com os padrões.

Técnica: Criar/modificar testes de cada página para verificar a navegação.

Critérios de

Conclusão:

Cada janela foi completamente verificada para que permaneça

consistente com a versão de avaliação de desempenho ou esteja de

acordo com o padrão aceitável.

Considerações

Especiais:

Nenhuma.

3.1.3. Teste de Configuração

Objetivo do Teste: Verificar se o sistema funciona adequadamente nas

configurações de hardware/software necessárias.

Técnica: Abrir/fechar vários softwares não relacionados a objetivos

do teste, como os aplicativos da Microsoft, Excel e Word,

como parte do teste, ou antes, do início do teste.

Testar o sistema utilizando diversos computadores clientes

diferentes.

Critérios de Conclusão: O sistema funciona de forma satisfatória nas configurações

testadas.

Considerações

Especiais:

Nenhuma.

Page 92: TCC - Valmir Ferreira Rocha - FINAL

91

3.1.4. Teste de Instalação

Objetivo do Teste: Verificar se as instruções incluídas no manual de

instalação são suficientes para a correta instalação do

software:

Testar o sistema utilizando uma nova máquina.

Instalar uma mesma versão já instalada do Sistema

Automação residencial por comando de voz.

Técnica: Testar a instalação do Sistema Automoção Residencial

em cada cenário: em uma nova máquina e atualização de

uma máquina que já contenha a mesma versão instalada

Critérios de Conclusão: O Sistema Automação Residencial executa suas transações corretamente.

Considerações Especiais: Nenhuma.

3.1.5. Ferramentas

As seguintes ferramentas serão empregadas nesse projeto:

Ferramenta Fornecedor/Desenvolvimento Próprio Versão

Internet Explorer Navegador Web Microsoft 7.0.5750.13

Internet Explorer Navegador Web Microsoft 8.1.2.34

Internet Explorer Navegador Web Microsoft 7.0.5730.13

Firefox Navegador Web Mozilla 3.0.8

Chrome Navegador Web Google 2.0.172.30

Page 93: TCC - Valmir Ferreira Rocha - FINAL

92

4. RECURSOS

4.1. Papéis

O papel Testador é responsável pelas atividades centrais do esforço de teste, que

envolve conduzir os testes necessários e registrar os resultados desses testes (SHAW, 2003)0.

Isso inclui:

Configurar e executar os testes

Registrar os resultados e verificar a execução dos testes

Analisar erros de execução e recuperar-se deles

Documentar solicitações de alteração

Page 94: TCC - Valmir Ferreira Rocha - FINAL

93

Ordem Categoria Nome Caso de Uso Nome da Simulação Simulação Resultado Esperado Resultado dos testes

1 Testes Funcionais

UC1 - Cadastrar Aparelho Cadastrar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica no botão Cadastrar Aparelho 3 - O usuário insere o nome, descrição, comando de voz de entrada, comando de voz de saída e a porta 4 - O usuário clica no botão salvar 5 - O sistema emite mensagem de Aparelho Cadastrado com Sucesso.

Cadastramento efetuado na base de dados

O cadastro do aparelho foi realizado com sucesso

2 Testes Funcionais

UC1 - Cadastrar Aparelho Aparelho já cadastrado

1 - O sistema verifica se o aparelho já está cadastrado. 2 - O sistema emite a mensagem "Equipamento já é cadastrado".

Cadastramento não efetuado na base de dados

Verificação de cadastros já realizados foi efetuada com sucesso, impedindo o cadastramento de informações duplicadas.

3 Testes Funcionais

UC1 - Cadastrar Aparelho Porta já cadastrada 1 - O sistema verifica que a porta já está em uso 2 - O sistema emite a mensagem "Porta já encontra em uso"

Cadastramento não efetuado na base de dados

Verificação de cadastros já realizados foi efetuada com sucesso, impedindo o cadastramento de informações duplicadas.

Roteiro de Simulações de Testes Automação Residencial por Comando de Voz

Descrição do Ambiente Os testes foram realizados com o Internet Explorer 7 e 8, Firefox 3, utilizando-se do Microsoft Framework 3.5 com o banco de dados MySql Server, SO Window XP

Configuração da Máquina Configuração da Máquina: Windows XP com Service Pack 3, 2GB de RAM e 120 GB de Hard Disk

Ciclo de Testes: 1 a 19 Período de Execução: 23/06/2009 a 26/06/2009 Categoria Caso de Uso

Page 95: TCC - Valmir Ferreira Rocha - FINAL

94

4 Testes Funcionais

UC2 - Consultar Aparelho Consultar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de aparelhos 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário seleciona o item desejado

Consulta de Aparelhos Realização da consulta de aparelhos foi realizada com sucesso.

5 Testes Funcionais

UC2 - Consultar Aparelho Consultar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de aparelhos 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário não seleciona nenhum item 5 - O usuário clica no "X" para fechar a janela de pesquisa

Fechar a tela de pesquisa, e retornar a tela principal do sistema.

Teste ocasionou falha, pois ao fechar a tela de pesquisa através do botão X, o sistema fechou-se por completo. Não se comportando com o devido. Correções foram feitas e corrigidas.

6 Testes Funcionais

UC3 - Atualizar Aparelho Alterar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de aparelhos 3 - O usuário visualiza uma listagem de todos os aparelhos cadastrados 4 - O usuário escolhe o aparelho desejado 5 - O usuário clica no botão Editar 6 - O usuário faz as alterações necessárias 7 - O usuário clica no botão Gravar

Alterar cadastro já efetuado na base de dados

Processo de edição de aparelhos já cadastrados foi realizado com sucesso

7 Testes Funcionais

UC4 - Excluir Aparelho Excluir Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários 2 - O usuário clica na lupa de pesquisa no setor de aparelhos 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário escolhe o aparelho desejado 5 - O usuário clica no botão Deletar 6 - O usuário confirma a mensagem de exclusão

Excluir Aparelho na base de dados

A exclusão do aparelho foi realizado com sucesso.

8 Testes Funcionais

UC4 - Excluir Aparelho Excluir Aparelho 1 - O usuário cancela a exclusão Excluir Aparelho na base de dados

A operação foi realizada com sucesso, no entanto a exclusão não foi realizada pois o usuário cancelou a operação.

Page 96: TCC - Valmir Ferreira Rocha - FINAL

95

9 Testes Funcionais

UC5 - Cadastrar Usuário Cadastrar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica no botão Cadastrar Usuário 3 - O usuário insere o nome, login, senha e confirmar senha 4 - O usuário clica no botão salvar 5 - Sistema emite mensagem de cadastro de usuário realizada com sucesso.

Cadastrar usuário na base de dados

O cadastro do usuário foi realizado com sucesso

10 Testes Funcionais

UC5 - Cadastrar Usuário Cadastrar Usuário 1 - O sistema verifica se o login já existe 1.1 - O sistema emite a mensagem "Este nome de usuário já está em uso". 2 - O sistema verifica se a senha é idêntica ao campo Confirmar senha 2.1 - O sistema emite a mensagem "Os valores do campo senha e confirmar senha tem que ser iguais”.

Campos obrigatórios Sistema validou corretamente os dados já existentes, não deixando realizar duplicidade dos dados

11 Testes Funcionais

UC6 - Consultar Usuário Consultar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários 3 - O usuário visualiza uma lista de todos os usuários cadastrados 4 - O usuário seleciona o item desejado

Consultar Usuários cadastrados na base de dados

A consulta retornou dados corretamente

12 Testes Funcionais

UC6 - Consultar Usuário Consultar Usuário 1 - Caso não tenha nenhum usuário cadastrado, e emitido a seguinte mensagem "Não existe usuários cadastrados”.

Consultar Usuários cadastrados na base de dados

Sistema se comportou perfeitamente, no entanto a consulta não foi realizada por não possui base de dados.

13 Testes Funcionais

UC6 - Consultar Usuário Consultar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de Usuários 3 - O usuário visualiza uma lista de todos os usuários cadastrados 4 - O usuário não seleciona nenhum item 5 - O usuário clica no "X" para fechar a janela de pesquisa

Fechar a tela de pesquisa, e retornar a tela principal do sistema.

Teste ocasionou falha, pois ao fechar a tela de pesquisa através do botão X, o sistema fechou-se por completo. Não se comportando com o devido. Correções foram feitas e corrigidas.

Page 97: TCC - Valmir Ferreira Rocha - FINAL

96

14 Testes Funcionais

UC7 - Atualizar Usuário Alterar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários 3 - O usuário visualiza uma listagem de todos os usuários cadastrados 4 - O usuário escolhe o item desejado 5 - O usuário clica no botão Editar 6 - O usuário faz as alterações necessárias 7 - O usuário clica no botão Gravar

Alterar cadastro já efetuado na base de dados

Sistema efetuou a alteração realizada pelo usuário corretamente.

15 Testes Funcionais

UC8 - Excluir Usuário Excluir Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários 2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário escolhe o aparelho desejado 5 - O usuário clica no botão Deletar 6 - O usuário confirma a mensagem de exclusão

Cadastramento efetuado na base de dados

Sistema excluiu corretamente o registro solicitado pelo usuário.

16 Testes Funcionais

UC8 - Excluir Usuário Excluir Usuário 1 - O usuário cancela a exclusão Excluir Usuário na base de dados

A operação foi realizada com sucesso, no entanto a exclusão não foi realizada pois o usuário cancelou a operação.

17 Testes Funcionais

UC9 - Validar Comando de Voz Validar Comando de Voz

1 - O comando de voz é processado 2 - O sistema faz a verificação do comando voz, validando ou não através do banco de dados que possui todas as informações necessárias. 3 - A verificação do sistema é feito através do componente Microsoft Speech SDK 5.1 de reconhecimento de voz. 4 - Se o comando de voz de entrada for valido, então o aparelho é ligado. 5 - Se o comando de voz de saída for valido, então o aparelho é desligado.

Validação do comando de voz

O sistema realizou a validação do comando junto ao banco de dados perfeitamente.

Page 98: TCC - Valmir Ferreira Rocha - FINAL

97

18 Testes Funcionais

UC10 - Ligar Aparelho Ligar Aparelho 1 - Após o conhecimento de voz for aceito pela validação o equipamento é ligado.

Ligar Aparelho Sistema ligou o aparelho como previsto.

19 Testes Funcionais

UC11 - Desligar Aparelho Desligar Aparelho 1 - Após o conhecimento de voz for aceito pela validação o equipamento é desligado.

Desligar Aparelho Sistema desligou o aparelho perfeitamente como previsto.

20 Testes Funcionais

UC12 - Desligar Aparelho Desligar Aparelho 1 - Caso o reconhecimento de voz não for validado e nem aceito, o equipamento permanece como esta.

Desligar Aparelho Comportamento perfeito, pois caso o comando de voz não seja aceito, o sistema não executa nenhuma ação, apenas relata que o comando ainda não foi reconhecido.

21 Testes Funcionais

UC12 - Aguardar execução de comando do sistema Web

Aguardando execução

1 - O sistema fica em Stand By aguardando algum comando ser executado 2 - O usuário executa algum comando através do sistema Web, para ligar ou desligar o aparelho 3 - O sistema processa o comando 4 - O sistema liga ou desliga o aparelho de acordo com o comando recebido via Web.

Executar comandos via sistema web

Sistema web funcionou corretamente

22 Testes Funcionais

UC13 - Capturar sistema local Capturar informações do sistema local

1 - Caso o WebService estiver normalizado, quando o sistema atingir este ponto, automaticamente ele conecta com a base de dados local, carregando no sistema web.

Sincronizando informações locais e Web

A sincronização de dados entre web e desktop funcionou perfeitamente.

Page 99: TCC - Valmir Ferreira Rocha - FINAL

98

23 Testes Funcionais

UC14 - Validar Identificação Validar Identificação 1 - Sistema verifica se as credenciais "usuário" e "senha" são validos 2 - Caso verdadeiro o sistema continua o processo 3 - Caso contrario volta para a tela de identificação, impedindo qualquer avanço do usuário.

Validando Identificação do Usuário no acesso ao sistema Web

Validação de usuário no sistema web funcionou perfeitamente.

Page 100: TCC - Valmir Ferreira Rocha - FINAL

99

Ordem Categoria Nome do Teste Nome da Simulação Simulação Resultado Esperado Situação

1 Interface Mensagem Mensagem de Erro Após a inclusão de qualquer cadastro retornar mensagem amigável de erro para o usuário

Mensagem amigável Sistema emitiu corretamente as mensagens de erro ocorrido.

2 Interface Ícones Ícones nas telas Ao entrar na Aba "Cadastro de Aparelhos e Usuários" colocar ícones nos botões de consulta

Ícones visíveis Os ícones dos botões de consulta foram colocados corretamente.

3 Interface Botões Botões de ações Colocar hints nos botões de ações como "Cadastrar Aparelho”, "Cancelar", "Editar”, "excluir" etc...

Mensagem amigável nos botões As informações de hints foram adicionadas perfeitamente.

4 Interface Tabulação Simular Tabulação nas telas Passar por todas as telas e ir teclando no TAB para ver se passa de campo

Deverá passar por todos os campos e botões

O processo de tabulação funcionou corretamente.

5 Interface Fluxo das Abas Simular fluxo nas abas Clicar em todas as abas para verificar a exibição dos dados a serem mostrados ou ocultados

Deverá passar por todas as abas Em cada aba, as informações foram mostradas perfeitamente.

6 Execução Iniciar aplicação Desktop Iniciar aplicação Desktop O usuário clica para abrir a aplicação desktop, em seguida deverá habilitar o comando de voz.

Aplicação iniciada Inicialização desktop, e habilitação do comando de voz, funcionou corretamente.

Roteiro de Simulações de Testes Automação Residencial por Comando de Voz

Descrição do Ambiente Os testes foram realizados com o Internet Explorer 7 e 8, Firefox 3, utilizando-se do Microsoft Framework 3.5 com o banco de dados MySql Server, SO Windows XP

Configuração da Máquina Configuração da Máquina: Windows XP com Service Pack 3, 2GB de RAM e 120 GB de Hard Disk

Ciclo de Testes: 1 a 19 Período de Execução: 21-10-2009 a 30-10-2009 Categoria Interface

Page 101: TCC - Valmir Ferreira Rocha - FINAL

100

7 Execução Iniciar aplicação Web Iniciar aplicação Web Após a inicialização do aplicativo Desktop, já é possível inicializar a qualquer momento o aplicativo Web.

Aplicação iniciada Aplicativo web inicializado com sucesso.

8 Execução Iniciar Aplicação Web em diferentes Browsers

Iniciar aplicação Web Testar se a aplicação web funciona em diferentes browsers. Browsers testados: Internet Explorer, Firefox, Chrome.

Aplicação iniciada Sistema funcionou corretamente em todas as aplicações descritas.