62
UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE TECNOLOGIA DEPARTAMENTO DE ELETRICIDADE ANUNCIADOR POR VOZ DE BAIXO CUSTO PARA CABINA DE ELEVADORES Curitiba, Paraná Novembro de 2005

ANUNCIADOR POR VOZ DE BAIXO CUSTO PARA CABINA DE …cricte2004.eletrica.ufpr.br/ufpr2/tccs/46.pdf · conclusão do Curso de Graduação em ... 7.3 DETECÇÃO DA DIREÇÃO DE MOVIMENTO

Embed Size (px)

Citation preview

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE TECNOLOGIA DEPARTAMENTO DE ELETRICIDADE

ANUNCIADOR POR VOZ DE BAIXO CUSTO

PARA CABINA DE ELEVADORES

Curitiba, Paraná Novembro de 2005

OTÁVIO JOSÉ SILVEIRA

ANUNCIADOR POR VOZ DE BAIXO CUSTO

PARA CABINA DE ELEVADORES

Projeto Final apresentado como requisito para conclusão do Curso de Graduação em Engenharia Elétrica, do Setor de Tecnologia da Universidade Federal do Paraná. Orientador Professor Dr. Ewaldo Luiz de Mattos Mehl.

Curitiba/PR, Novembro de 2005

ii

Resumo

O estudo aqui apresentado tem por objetivo apresentar uma solução de baixo custo

para sistemas de anunciação por voz de paradas de elevadores, tentando abranger o maior

número possível de modelos e tecnologias. É conhecido que em nosso país muitas pessoas e

instituições são obrigadas a se privar de coisas relativamente simples por falta de poder

aquisitivo. Assim, foi pesquisado o que o mercado oferece de soluções, procurando usar como

referência produtos que pudessem representar tão bem quanto possível uma situação que

possa ser considerada típica, tanto do lado de tecnologia e forma de funcionamento, quanto de

custos de aquisição e instalação. A partir deste ponto, procurou-se minimizar a necessidade de

dispositivos extras que façam parte apenas do sistema de anunciação, tais como conjuntos de

sensores de posição, e que de alguma forma tenham funções similares com outras do próprio

quadro de comando, resultando em uma solução que demande pouco investimento e possa

explorar recursos já existentes e que muitas vezes já são considerados obsoletos e se tornam

lixo eletrônico.

Palavras-chave: Anunciador por voz, baixo custo, deficiente visual, acessibilidade.

iii

Sumário

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

2 UMA BREVE DESCRIÇÃO DO CIRCUITO DE CONTROLE DE UM ELEVADOR ................... 2

2.1 FECHAMENTO DA PORTA ......................................................................................... 2 2.2 PARTIDA .................................................................................................................. 3 2.3 PARADA ................................................................................................................... 4 2.4 ABERTURA DA PORTA .............................................................................................. 4

3 O ANUNCIADOR POR VOZ .............................................................................................. 6

4 O MERCADO ATUAL ....................................................................................................... 9

4.1 SITUAÇÃO EXISTENTE .............................................................................................. 9 4.2 SITUAÇÃO PROPOSTA ............................................................................................. 10

5 DESCRIÇÃO DO PROJETO ............................................................................................ 12

6 O SOFTWARE GERENCIADOR ...................................................................................... 14

6.1 ESCOLHENDO O AMBIENTE DE TRABALHO ............................................................. 14 6.2 A LINGUAGEM VISUAL BASIC ................................................................................ 15 6.3 CRIAÇÃO DO SOFTWARE ........................................................................................ 17

6.3.1 Botoeira virtual ............................................................................................ 18 6.3.2 Indo ao próximo andar ................................................................................. 19 6.3.3 Porta fechada, elevador descendo ............................................................... 20 6.3.4 Porta aberta, andar térreo ........................................................................... 20

6.4 OBTENDO OS DADOS NECESSÁRIOS DO ELEVADOR ................................................. 23

7 MÓDULO ELETRÔNICO ................................................................................................ 25

7.1 VALORES DE PICO E MÉDIO: TENSÃO ALTERNADA ................................................. 25 7.2 DETECÇÃO DE ABERTURA DE PORTA ...................................................................... 28

7.2.1 O redutor de tensão ...................................................................................... 28 7.2.2 Ponte de Diodos .......................................................................................... 29 7.2.3 Um circuito RC paralelo ............................................................................. 30 7.2.4 Um buffer final ............................................................................................ 33

7.3 DETECÇÃO DA DIREÇÃO DE MOVIMENTO ................................................................ 34 7.4 IDENTIFICAÇÃO DO ANDAR ATUAL ........................................................................ 34

7.4.1 Divisor de tensão ......................................................................................... 34 7.4.2 Detector de pulsos negativos ....................................................................... 35 7.4.3 Formando o pulso de acionamento do contador ........................................ 36 7.4.4 O contador e a conversão para serial ......................................................... 37

7.5 ENVIANDO DADOS PARA O COMPUTADOR .............................................................. 40 7.6 FONTE DE ALIMENTAÇÃO ...................................................................................... 41

8 CUSTOS DO ANUNCIADOR POR VOZ PROPOSTO ........................................................... 44

iv

CONCLUSÃO ........................................................................................................................ 45

REFERÊNCIAS ..................................................................................................................... 46

ANEXO A - CÓDIGO-FONTE DO SOFTWARE ....................................................................... 47

ANEXO B - TESTES PRÁTICOS E IDÉIAS DE MELHORIAS .................................................... 52

ANEXO C - DESENHO ESQUEMÁTICO DO MÓDULO ............................................................ 54

GLOSSÁRIO ......................................................................................................................... 55

v

Lista de Figuras

Figura 1 - Acionamento do anunciador no fechamento da porta .......................................... 7

Figura 2 - Acionamento do anunciador no fechamento da porta .......................................... 8

Figura 3 - Janela do Visual Basic ....................................................................................... 16

Figura 4 - Janela do programa ........................................................................................... 18

Figura 5 - Fluxograma com a lógica do software ............................................................... 22

Figura 6 - A forma de onda de uma tensão alternada ......................................................... 26

Figura 7 - Polarização direta e polarização reversa ............................................................ 29

Figura 8 - Ponte de diodos e sua atuação com tensões positivas e negativas ..................... 30

Figura 9 - Forma de onda obtida da ponte de diodos ......................................................... 30

Figura 10 - Forma do sinal após a inserção de um capacitor e um resistor na saída... ...... 32

Figura 11 - Circuito completo para detecção de abertura e fechamento de porta .............. 33

Figura 12 - Circuito final do módulo. ................................................................................. 41

Figura 13 - Circuito da fonte de alimentação ..................................................................... 43

vi

Lista de Tabelas

Tabela 1 - Duração dos arquivos WAV usados pelo software ........................................... 23

Tabela 2 - Situações possíveis para acionamento do contador ........................................... 36

1

1 Introdução

Hoje em dia é cada vez maior a preocupação da sociedade em permitir que pessoas

portadoras de deficiências de qualquer natureza tenham melhores oportunidades de levar uma

vida normal, sem que sua deficiência resulte necessariamente em alguma limitação. Rampas e

elevadores em lugares onde antes só haviam escadas, escrita braile e o recurso closed caption

presente em televisores mais modernos são alguns exemplos desta preocupação.

Mesmo assim, ainda há muita coisa que pode ser feita ou aperfeiçoada. Ainda é

pequeno o número de estabelecimentos comerciais ou residenciais de qualquer natureza que

permitem que deficientes visuais façam uso de elevadores sem a necessidade de um

ascensorista para lhes auxiliarem, garantindo de alguma forma que este chegue sem

dificuldade ao andar desejado.

É fato que existem dispositivos eletrônicos integrados ao circuito de comando e outros

facilmente instaláveis em vários modelos de elevadores, que sintetizam voz e são capazes de

anunciar o andar sempre que houver uma parada do elevador. Mesmo assim, em muitos

prédios antigos ainda é inviável financeiramente tal implantação, devido a limitações de oferta

de opções do próprio mercado que sejam compatíveis com orçamentos limitados.

Desta forma, é apresentado neste trabalho uma solução capaz de se adaptar a

elevadores de qualquer natureza, sejam eles com comando de tecnologia eletromecânica ou

digital e com baixo custo de aquisição e implementação.

2

2 Uma breve descrição do circuito de controle de um elevador

No dia 27 de outubro de 2005, foi feita uma visita ao local onde se situa as instalações

da empresa JOSS Elevadores. Nesta visita, conversou-se com técnicos com a finalidade de se

obter informações com o máximo de detalhes possível sobre como funcionam elevadores

eletromecânicos e digitais. Durante a permanência no local, foi fornecido o material citado na

referência [1] e com este, juntamente com conteúdo informado verbalmente, foi possível

conhecer de uma maneira geral como opera um elevador.

Um elevador consiste em um importante meio de transporte para pessoas e cargas em

nosso mundo, possibilitando um deslocamento vertical com mais rapidez e conforto, em

edificações de qualquer natureza. Por conseqüência, permite uma maior acessibilidade a

pessoas idosas e/ou deficientes, além de contribuir para a melhoria da qualidade de vida e das

condições de trabalho das pessoas, especialmente aquelas que trabalham com transporte de

objetos pesados.

Independente da tecnologia e do projeto de cada elevador, pode-se citar quatro funções

básicas que são executadas após cada registro de chamada: fechamento da porta, partida,

parada e abertura da porta.

2.1 Fechamento da porta

Uma vez realizada uma chamada, seja através da botoeira da cabina ou de qualquer um

dos pavimentos, um sinal elétrico é enviado ao quadro de comando, localizado na casa de

máquinas. No quadro de comando está o circuito responsável pela operação e gerenciamento

de todas as quatro funções citadas, e parte deste circuito tem uma função de eletricamente,

usando uma matriz de relês ou células de memórias em CI´s, reproduzir/emular a exata

situação da cabina a cada momento, assim como as chamadas ainda pendentes.

Sem esta matriz, o comando não é capaz de saber onde se encontra a cabina e em

muitos casos de falta de energia, principalmente em elevadores eletromecânicos, esta matriz é

3

“resetada” tornando-se necessário que o elevador vá até o extremo inferior do poço para haver

o ajuste correto de sua posição no circuito de comando.

Havendo a chamada, imediatamente o quadro de comando enviará um sinal para o

motor e operador da porta da cabina, que a fechará. Prevendo a segurança dos usuários, as

portas de pavimento possuem um trinco eletromecânico que garante que:

a) a porta da cabina não fechará, nem o elevador irá se movimentar com a porta do

pavimento aberta. Caso isso ocorra, o elevador pára automaticamente.

b) a porta do pavimento não abrirá caso a cabina não esteja devidamente nivelada no

respectivo andar.

2.2 Partida

A porta está fechada. O passo seguinte é colocar o elevador em movimento.

Similarmente à porta dos pavimentos, a porta da cabina também possui um dispositivo capaz

de informar ao quadro de comando que esta se encontra fechada.

Quando isto acontece, a parte do circuito localizado no quadro de comando que é

responsável pelo motor é acionada, fazendo com que a corrente possa alimentar o motor de

tração, ao mesmo tempo em que o freio mecânico que o mantém parado é liberado. Através

de um conjunto de polias e cabos de aço, a cabina e o contrapeso entram em movimento.

Durante a viagem, o quadro de comando precisa obter informações sobre a posição da

cabina no poço do elevador. Para isso, podem ser usados diversos meios, como sensores

colocados a cada andar no caso de elevadores mais modernos ou que sofreram modificações.

Nos eletromecânicos, é mais comum o uso de escovas distribuídas ao longo do poço de modo

que estas são acionadas por um contato fixado na própria cabina, ou por uma fita que

acompanha o movimento dos cabos de aço e dotada de pequenos contatos metálicos, com a

forma de dentes, movendo pinças e gerando pulsos que são enviados ao quadro de comando.

Quando há o contato nas escovas de cada andar ou um contato passa pelas pinças, uma nova

célula ou relê na matriz de memória é ativado(a), atualizando a posição do elevador na matriz.

4

Tal alteração é refletida nos indicadores de posição localizados tanto na cabina quanto

nos pavimentos, que também receberão pulsos elétricos indicando cada mudança de andar

para cima ou para baixo.

2.3 Parada

Quando o elevador chegar ao andar de destino, ocorrerá a parada, cujas etapas

ocorrerão de forma inversa à da partida. Assim como acontece em cada mudança de um andar

para outro, sensores, escovas ou dentes na fita são usados para marcação da exata posição de

parada da cabina, havendo também marcos um pouco antes, tanto para cima quanto para

baixo, para se saber quando iniciar a frenagem (note que nenhum elevador pára bruscamente

em situações normais). Sensores que indicam mudança de pavimento se localizam em

posições intermediárias.

Ao se atingir o primeiro destes sensores, o de início de parada, o quadro de comando

começará a atuar sobre o motor. Elevadores eletromecânicos possuem uma lógica capaz de

operar o motor em duas velocidades. Na maior parte do tempo, ele opera em sua velocidade

mais alta e só fará uso da mais baixa quando passar no primeiro marco, que indica o momento

de início da parada. No caso de elevadores digitais, pode-se conseguir uma parada constante e

progressiva, ao contrário dos eletromecânicos, trazendo um conforto maior a seus usuários.

O segundo sensor é o responsável pela posição exata onde a cabina deve parar. O mau

posicionamento deste poderá fazer com que um degrau entre o piso da cabina e do pavimento

se forme, gerando risco de acidentes. A parada definitiva significa a cessão da corrente ao

motor de tração e o acionamento de seu freio.

2.4 Abertura da porta

Com a cabina parada na posição correta, resta apenas a última etapa para completar o

atendimento da chamada: abrir a porta. Já atingimos a condição essencial para isso, que é a

5

cabina parada. Assim, o quadro de comando envia um novo sinal ao motor e operador da

porta da cabina, permitindo ao usuário seu acesso ao pavimento desejado.

Deste momento em diante, novamente todo o circuito ficará em modo de espera até

que a próxima chamada seja efetuada e se reinicie o ciclo aqui descrito.

6

3 O anunciador por voz

Tendo uma noção de como um elevador funciona, torna-se mais fácil imaginar a

implantação do anunciador por voz desejado. Baseado em estudo de campo, consistindo na

visita a várias lojas e prédios da cidade, foram destacados alguns pontos em comum com

todos eles, servindo posteriormente para a elaboração da lógica do módulo eletrônico.

O correto funcionamento de um anunciador que informe as paradas e as partidas

depende de três variáveis, capturáveis no próprio quadro de comando ou através de conjunto

de sensores:

a) Abertura e fechamento de porta: é a principal variável. Ela irá fazer com que o software

do anunciador saiba quando agir, enviando os sons para o alto-falante localizado na

cabina assim que a porta abra ou feche.

b) Direção de deslocamento: alguns anunciadores também informam o fechamento da porta

e a direção de deslocamento, função esta que também está prevista para ser executada no

protótipo aqui apresentado.

c) Pavimento atual: número do pavimento de parada, a ser anunciado no momento da

abertura da porta da cabina.

Eis um exemplo prático do que acontece, imaginando que uma pessoa no térreo deseje

ir até o 4º andar. Supõe-se também que a cabina não está no térreo, sendo necessário chamar o

elevador.

Primeiramente, o painel de comando na casa de máquinas agirá deslocando a cabina

até o térreo atendendo à chamada. Ao chegar, a porta irá se abrir e o controle do anunciador

será capaz de detectar que a abertura ocorreu. Neste momento, um software fará a leitura tanto

deste sinal quanto do andar onde está ocorrendo a parada. Sabendo que a porta se abriu no

andar térreo, ele vai selecionar o(s) som(ns) correto(s) para ser dito “PORTA ABERTA.

ANDAR TÉRREO”, audível no alto-falante localizado no interior da cabina. Na figura 1 é

ilustrado o momento da abertura da porta, ativando o anunciador e havendo a veiculação da

mensagem.

7

Figura 1 - Acionamento do anunciador na abertura da porta

Sabendo que o elevador se encontra no térreo e com a porta aberta, o usuário entrará e

poderá apertar o botão relativo ao 4º andar (deve-se de alguma forma assegurar que

deficientes visuais possam localizar os botões corretos, dotando-os de números em código

braile, por exemplo). Novamente o quadro de comando será acionado, comandando o

fechamento da porta, que sendo detectado fará o software acionar a próxima seqüência de

sons. Primeiramente, será anunciado “PORTA FECHADA”.

Após este anúncio, será checada a direção de deslocamento da cabina (para cima ou

para baixo). Tomou-se esta decisão tendo em vista que os componentes eletromecânicos como

relês, chaves e mesmo motores de porta da cabina tenham um tempo de acionamento milhares

de vezes maior do que os componentes MOS usados no PC, ou mesmo no módulo detector de

sinais. Fazendo-se um “passo a passo” de sinais, dá-se um tempo maior no intuito de evitar

leituras errôneas. No caso específico deste exemplo, o anúncio poderá ser finalizado com a

mensagem “ELEVADOR SUBINDO”. Caso a indicação de subida ou descida seja a única ou

a primeira informação anunciada, pode-se programar o anunciador para aguardar alguns

poucos décimos de segundo antes de veicular a mensagem.

A figura 2 ilustra o acionamento do anunciador no momento em que a porta se fecha,

sendo informado o sentido no qual o elevador irá se deslocar.

Quarto andar

8

Figura 2 - Acionamento do anunciador no fechamento da porta

Agora o elevador está subindo até parar no 4º andar. Ao chegar, acontecerá o mesmo

procedimento descrito para quando o elevador parou no térreo, dessa vez anunciando

“PORTA ABERTA. QUARTO ANDAR”.

Pequenas variações deste exemplo são possíveis se considerarmos outros modelos.

Alguns elevadores apenas anunciam o andar durante a parada, enquanto outros possam

desempenhar as mesmas funções ou até mais do que o aqui exposto, permitindo que enquanto

ocioso, o sinal de uma rádio qualquer possa ser enviado à cabina. Pode-se em lojas grandes,

instaladas em vários pavimentos interligados por elevador, anunciar qual a seção instalada

naquele determinado pavimento.

Elevador Subindo

9

4 O mercado atual

4.1 Situação existente

Consideremos inicialmente um elevador eletromecânico com quadro de comando a

relê. Há já no mercado várias soluções disponíveis. Em algumas delas, é necessário conectar

ao painel de relês um módulo eletrônico capaz de, de alguma forma, identificar algum sinal

elétrico referente ao posicionamento da cabina. Outras propõem um sistema independente do

circuito de comando do elevador, sendo nesses casos obrigatório a instalação de um conjunto

de sensores ao longo de todo o poço.

Tal topologia implica em um custo adicional com um conjunto de sensores e fiação,

cuja quantidade aumenta proporcionalmente ao número de pavimentos. Além disto, esta

instalação requer mais mão de obra e constitui uma fonte extra de risco aos técnicos que farão

o serviço. Há, conseqüentemente, um aumento de custo que depende do número de andares da

edificação.

Na casa de máquinas torna-se necessário haver um espaço adicional para a alocação da

placa ou do controlador responsável pelo gerenciamento das mensagens na cabina.

Geralmente este espaço está localizado no próprio quadro de comando. Caso, por algum

motivo, este já não esteja disponível ou presente, será necessário que de alguma forma seja

criada um espaço físico para alocação do controlador, e que para a correta alocação do

equipamento, demanda custos extras ao cliente.

Se o elevador tiver controle digital, existem vários modelos de placas, algumas delas

já contendo o recurso de anunciação por voz no próprio quadro de comando, porém o

interesse neste ponto está focado naquelas que não o possuam.

Devido a essa enorme gama de casos (considerando também diferenças existentes

entre cada modelo já produzido pelas tantas fabricantes atuantes ou que já atuaram na área de

fabricação de elevadores), torna-se difícil fixar até mesmo uma faixa de custo total de

implementação.

10

Um exemplo de equipamento existente para elevadores eletromecânicos é o Cortex

Voice 40 RDEA da JBN Electronics. Este modelo é bastante completo e seu custo total já

instalado, ou de modelos similares, pode facilmente passar de R$ 2.000,00. Suas principais

características são, segundo referência [4]:

a) sensores de posição e transmissão de dados de posição da cabina ao controlador feitas

opticamente.

b) permite que um canal de rádio FM seja transmitido à cabina enquanto nenhuma

mensagem é veiculada.

c) saída própria para indicador de posição fornecido separadamente JBN Electronics.

4.2 Situação proposta

Embora para prédios aparentemente não represente um preço final tão elevado, os

custos estimados para um equipamento já existente no mercado, e onde possa haver um maior

número de pessoas para dividir a despesa. Prédios onde venham a se instalar empresas ou

associações de pessoas preocupadas em prestar auxílio às pessoas que mais necessitam é onde

mais se faz mais necessário qualquer tecnologia que aumente a acessibilidade de deficientes.

Em casos como este tal custo por si só se faz um fator que inviabiliza a implantação.

Não é raro vermos pessoas pedindo ajuda em campanhas de todas as formas, o que mostra que

recursos financeiros já são escassos até mesmo para o objetivo principal destas

empresas/pessoas.

No caso de edificações com vários elevadores, há a necessidade de se implantar um

dispositivo anunciador em cada um deles. Com isso o custo se torna cada vez mais alto a cada

nova cabina equipada.

11

Pensando justamente na redução de custos, tentou-se aproveitar ao máximo o que já

existe no próprio circuito do elevador, incluindo:

a) leitura do sinal enviado aos indicadores de posição, eliminando a necessidade de sensores

extras.

b) uso do sensor de porta aberta e de contatos e chaves para detecção de abertura de portas e

direção de deslocamento.

c) gerenciamento de mensagens através de um microcomputador de baixo custo. Pela

simplicidade do software, qualquer computador, por mais obsoleto que seja, tem

condições de executá-lo. Com isso eliminamos o componente de maior custo em um

anunciador convencional.

É conveniente lembrar que uma vez que se usa um computador comum, torna-se uma

alternativa o uso de algum que já esteja instalado no prédio, seja ele para uso relacionado com

serviços da própria administração ou não, para executar a funções do software, reduzindo

ainda mais qualquer custo de implantação.

12

5 Descrição do projeto

Visando apresentar uma solução mais barata para elevadores eletromecânicos, foi

desenvolvido um novo sistema operado via microcomputador, com a capacidade de se adaptar

a uma vasta gama de modelos de elevadores e com instalação relativamente simples.

Alguns estudos de viabilidade mostram num primeiro momento ser pouco viável

investir em um equipamento também capaz de desempenhar sua função em elevadores com

tecnologia digital.

Empresas de grande porte do ramo de projeto e construção destes não têm interesse em

divulgar detalhes construtivos e da arquitetura de seus projetos, o que dificulta o acesso a

estas informações, além do próprio circuito por si só, claramente de maior complexidade.

Provavelmente haja uma diversidade de circuitos de quadros de comando bastante

grande dentro da tecnologia digital. Se assim for, torna-se inviável para qualquer pessoa

interessada em desenvolver novas funções para comandos digitais, caso ela não faça parte do

quadro de funcionários de alguma empresa responsável por fabricar ou construir elevadores.

É muito arbitrária qualquer tentativa de desenvolvimento de anunciadores para

operação subordinada a circuitos digitais nestas condições. Caso haja condições favoráveis ao

projeto no futuro, o módulo poderá ter sua versão para comando digital desenvolvida.

Mesmo assim, os conceitos básicos não mudam, com a vantagem de que já

trabalharíamos com pulsos, e é de se esperar que em alguns casos seja possível usá-los

diretamente para acionar os contadores responsáveis por indicar o andar atual.

Dessa forma, serão considerados no projeto apenas elevadores eletromecânicos.

13

Basicamente ele será dividido em duas partes:

a) Um microcomputador para leitura de sinais do módulo eletrônico e decodificação,

identificando quais sons deverão ser reproduzidos. Para isto, um software simples deverá

ser instalado, já acompanhado de todos os arquivos em formato WAV necessários.

b) Um módulo eletrônico para leitura de sinais. Este será anexado a locais específicos do

circuito de comando do elevador de modo a estar recebendo os sinais com as informações

necessárias.

14

6 O software gerenciador

6.1 Escolhendo o ambiente de trabalho

O ambiente Linux, segundo análise feita em fase de planejamento, apresenta diversas

vantagens práticas que justificam o desenvolvimento neste ambiente. Primeiramente, o Linux

apresenta-se como um sistema de considerável estabilidade, proporcionando a qualquer

software uma vulnerabilidade nula a falhas do próprio sistema operacional, tanto de falhas do

próprio processamento quanto de vírus, que pouca ou nenhuma ação consegue ter neste

ambiente.

Ele também exige bem menos recursos de processamento de informações que seu

concorrente, o Windows. Isso fica ainda mais evidente quando nossa intenção é ter um

programa que não tenha necessidade de uma interface gráfica com o usuário, a qual não é

fundamental para o funcionamento do Linux com todas as suas vantagens aqui descritas,

tornando-o ainda mais acessível a qualquer computador.

Há a opção de se poder executar um programa qualquer automaticamente assim que o

Linux for iniciado, assim como é possível se fazer em outros sistemas operacionais

conhecidos, como o próprio Windows. Isso garante que mesmo pessoas que não tenham

conhecimento algum do sistema operacional sejam capazes de ativá-lo. Como um último

ponto positivo, dá-se assim uma contribuição para o combate à pirataria, já que o Linux é de

distribuição livre e pode ser adquirido legalmente até mesmo pela Internet sem custos ao

usuário.

Entretanto, a pouca familiaridade do autor com o sistema operacional, assim como a

pouca bibliografia sobre desenvolvimento de software em linguagem C em ambiente Linux,

em particular informações sobre os recursos do SDL (Simple DirectMedia Layer) necessários

para se reproduzir sons em C e o tempo limitado para desenvolvimento, forçaram mudanças

nos planos, fazendo com que o software fosse desenvolvido em Visual Basic, em ambiente

Windows.

15

6.2 A linguagem Visual Basic

O Visual Basic é uma linguagem bastante poderosa e dinâmica desenvolvida pela

Microsoft. Sua origem está no antigo Basic, porém muita coisa mudou: a antiga linguagem

não visual e baseada em programas formados por seqüências de linhas de comandos, escritas

em modo texto, deu lugar ao dinamismo e à praticidade.

A linguagem é baseada na programação orientada a objetos e eventos, ou seja, o

programador pode trabalhar diretamente numa interface gráfica e de forma não linear. Os

objetos são todos os elementos visuais, como botões de comando e barras de rolagem, e não

visuais, como temporizadores, que possuem uma função bem definida para a aplicação

desenvolvida. Eventos são uma espécie de comando capaz de acionar blocos de código,

disparados a partir de qualquer interação usuário/programa ou de situações específicas

relacionadas com falhas, temporizadores e portas de comunicação.

Cada objeto criado possui uma série de eventos pré-definidos. Se estes eventos

possuírem algum código associado a eles, através de uma Event Procedure, cada vez que

estes ocorrerem, o código será executado. As Event Procedures são funções criadas com

nomes especiais, na forma “NomeDoObjeto_NomeDoEvento”, e devido ao seu nome, o

Visual Basic é capaz de estabelecer a relação entre os objetos e eventos, segundo descreve a

referência [9].

Em uma linguagem de programação orientada a objetos e eventos, não há uma ordem

pré-estabelecida para que as linhas de código sejam executadas. De fato, as instruções são

executadas apenas quando é necessário. Por exemplo: quando se usa um programa para enviar

e-mails, este fica ocioso na memória enquanto o usuário redige a mensagem. Apenas quando

se deseja enviar a mensagem o programa irá voltar a ficar ativo, executando todas os passos

necessários para se realizar o envio da mensagem, voltando a ficar sem ação em seguida.

A janela do Visual Basic se divide em quatro partes principais:

a) As barras de ferramentas e menus, localizadas na parte superior da tela, possibilitam o

acesso aos principais recursos oferecidos, permitindo que rapidamente se adicionem

16

novos formulários, conhecidos popularmente como as janelas do programa, faça testes na

aplicação em desenvolvimento ou até mesmo faça uso de assistentes que criam algumas

aplicações quase instantaneamente.

b) A barra de componentes, localizada à esquerda da tela, que permite que objetos sejam

incluídos a um formulário em um clique. Além dos componentes padrão, outros podem

ser adicionados facilmente, de forma que o programador possa ser capaz de criar uma

variedade ainda maior de aplicações, ou apenas dar a seu programa um visual diferente.

c) Barra de projeto, localizada na parte superior direita, permite a navegação entre os

diversos formulários, módulos (onde se pode desenvolver funções e declarar variáveis que

podem ser chamadas de qualquer parte do programa) e rotinas que compõem a aplicação.

d) Barra de propriedades, localizada na parte inferior direita, mostra várias características do

objeto atualmente selecionado, permitindo que sua aparência, posição, tamanho e outras

características específicas para cada tipo de objeto sejam alteradas.

e) Área de trabalho, ocupando a maior parte da tela, onde são exibidos formulários e rotinas

criadas, e também permitindo que elas sejam editadas.

A figura 3 mostra a janela do Visual Basic 5.0 em espanhol, versão usada para o

desenvolvimento do software aqui descrito.

Figura 3 - Janela do Visual Basic

17

6.3 Criação do software

A lógica básica desenvolvida foi a de ler os dados vindos da porta serial e agir sempre

que um novo valor lido seja diferente do anterior. A forma como o programa deverá agir

nesses casos é discutida mais à frente.

O software é sensível a qualquer mudança nos dados presentes na porta serial, usando

esta para leitura de dados, a qual também permite ser programada mais facilmente. Há um

evento específico, chamado OnComm, do objeto MSComm que é gerado sempre que uma

quantidade de bytes definíveis através da propriedade InputLen é transmitida. Ocorrendo o

evento, é acionada a rotina responsável pela decisão do que deve ser feito em função da

natureza da mudança do valor.

Assim que o programa é carregado, ele vai procurar estabelecer uma conexão com

uma porta serial. Neste momento ela será aberta para o recebimento de dados. Deve-se ter

cuidado com que porta escolher. Portas seriais na informática são as chamadas portas COM,

havendo por padrão sempre duas portas habilitadas, porém é importante atentar que a primeira

delas, COM1, por padrão é usada para receber comandos do mouse e dessa forma pode-se

impor limitações indesejadas ao usuário do sistema.

A outra porta disponível é COM3. Geralmente esta porta é usada para ativar modem´s

usados para acesso à Internet via conexão discada. No entanto, este não é considerado um

fator relevante neste momento, uma vez que se supõe ser muito improvável que um mesmo

computador seja usado para acesso discado à Internet e anunciadores de voz. Não havendo

outras aplicações “populares” que façam uso de COM3, a escolha é o uso desta para o

recebimento das informações.

Uma vez iniciada a transferência de dados, o princípio básico de funcionamento do

software é o uso de um temporizador para controlar os tempos de espera entre a reprodução

de cada arquivo usado a se fechar ou abrir a porta da cabina. Assim que detectada a mudança

na condição da porta, o primeiro som é executado e o respectivo temporizador entra em ação.

18

Todo a lógica do código-fonte do programa é descrito nas próximas seções, sendo

usada a referência [3] para se obter conhecimento dos principais comandos e suas respectivas

sintaxes e a referência [2] para um entendimento satisfatório de como manipular dados através

da porta serial. Por fim, o desenvolvimento do programa gerou o código reproduzido no

Anexo A e a janela de programa mostrada na figura 4.

Figura 4 - Janela do programa.

Como forma de se conseguir a melhor lógica de manipular os arquivos WAV, foi

usado um pacote de funções já desenvolvidas pela Microsoft para possibilitar que estes

fossem facilmente carregados, sem uma aparente necessidade inicial de se usar um objeto

tocador de som para cada um dos arquivos usados para anunciação. Graças a estas foi possível

usar o código empregado. Sua versão original encontra-se disponível na referência [6].

6.3.1 Botoeira virtual

Para efeitos de testes e demonstração rápida de como o anunciador funciona, criou-se

também uma botoeira virtual abaixo do display do andar, capaz de reproduzir o virtualmente

um quadro de comando, a menos de funções de gerenciamento de paradas. Esta botoeira é

19

capaz de fazer o software funcionar gerando os valores corretos a serem lidos pelo programa e

em seguida chamando a função que decide qual ação deve ser tomada.

A botoeira é formada por uma matriz de objetos “botão de comando”, funcionando

similarmente às matrizes de variáveis, bastante conhecidas de qualquer linguagem de

programação existente. Com isso, atribui-se índices a cada um dos botões. Assim que um

deles é clicado, seu índice na matriz representa o andar para onde ele deve ir.

Primeiramente ele simula o fechamento da porta, já ativando um temporizador

auxiliar, colocado para simular o deslocamento da cabina ao longo dos andares, evitando que

esta chegue ao andar de destino quase que imediatamente. Este temporizador possui uma

rotina bastante simples, fazendo uso também de uma variável auxiliar. Essa variável tem a

mesma função indicar a direção de movimento do elevador, recebendo o mesmo valor do bit

de direção de deslocamento da cabina, fazendo com que uma vez ativado o timer (similar ao

acionamento do motor de tração na casa de máquinas) a cada evento OnTimer gerado haja

uma mudança de andar.

Chegando ao andar de destino, simula-se a abertura da porta e este temporizador é

desativado até a próxima chamada.

6.3.2 Indo ao próximo andar

A leitura do andar onde o elevador está passando ocorre junto com seu movimento.

Como descrito mais à frente, o módulo eletrônico atualiza seus dados assim que identifica o

pulso enviado ao indicador de posição e já disponibiliza seu valor à porta serial.

Neste momento, o software já identifica que um novo valor está disponível. Como só

houve uma mudança de andar, somente estes bit´s serão lidos e o valor é dividido em duas

variáveis, sendo D recebendo a dezena do andar e U a unidade. Estas duas variáveis serão

utilizadas assim que o elevador realizar a parada e abrir a porta.

20

6.3.3 Porta fechada, elevador descendo

O fechamento de porta é o mais simples de todos: quando a porta se fecha, é

instantaneamente acionado o som PFE.WAV que contém a mensagem “Porta Fechada”. No

mesmo momento, o temporizador “tm_fporta” é ativado, gerando um evento chamado

OnTimer assim que a primeira mensagem acabar de ser transmitida.

Este evento é gerado pelo temporizador periodicamente, sendo que o tempo entre cada

evento é definida pela sua propriedade Interval. Seu valor indica o intervalo em

milissegundos. Este valor foi configurado para 1600, baseado no tempo de gravação de

PFE.WAV, de 1,5 segundos, mais um pequeno tempo extra que se tornou necessário na

prática para que o programa estivesse pronto para prosseguir com a mensagem. O motivo de

se tornar necessário mais 0,1s não se sabe exatamente, sendo atribuído a outras aplicações ou

rotinas que o Windows estivesse executando no momento ou até mesmo tempo de acesso ao

disco rígido. De qualquer forma, o desempenho geral do software continuou satisfatório.

Uma vez que o temporizador gere o evento OnTimer, é verificado o bit recebido que

contém a informação relativa ao deslocamento da cabina, havendo nessa hora a seleção entre

UP.WAV e DOWN.WAV, contendo respectivamente as mensagens “Elevador Subindo” e

“Elevador Descendo”. Após este momento, não é mais necessário que outros arquivos sejam

reproduzidos, e assim o temporizador “tm_fporta” é novamente desabilitado para evitar que a

direção do elevador seja anunciada repetidamente.

6.3.4 Porta aberta, andar térreo

A abertura da porta exige uma rotina ligeiramente mais complexa, visto que temos

diversos sons a serem executados em seqüência, precisando para isso criar uma lista de

reprodução. Quando a porta se abre, três ou quatro arquivos devem ser reproduzidos: o

primeiro é o PAB.WAV contendo a mensagem “Porta aberta”, seguido da dezena e da

unidade do andar, cujos arquivos que serão reproduzidos são dependentes do número do andar

e terminando é reproduzido ANDAR.WAV, com a palavra “andar”. Quando o elevador pára

no térreo, a ordem se inverte um pouco, sendo que neste caso torna-se necessário um

21

tratamento diferenciado: o arquivo ANDAR.WAV deve executado antes de TERREO.WAV,

portador da palavra “térreo”.

Acionado da mesma forma que no caso anterior, a primeira atitude do programa é

reproduzir PAB.WAV, enquanto aciona o outro temporizador, chamado de “tm_aporta”.

Nesse ponto, ele já está preparado para esperar até que PAB.WAV seja finalizado, sendo

atribuído à propriedade Interval um valor adequado. O funcionamento daí em diante estará

subordinado a uma variável de controle que indicará qual arquivo, entre a dezena, unidade e a

própria palavra “andar” é o próximo da lista. Essa variável, arbitrariamente chamada de OP

começa em 0. Este valor indica que o segundo arquivo da seqüência deve ser executado, o

primeiro já foi a anunciação da abertura da porta.

Com OP igual a zero, há duas opções: se for o térreo, ANDAR.WAV será

reproduzido, se for um andar do primeiro ao nono, nada irá acontecer, e se for do décimo para

cima, Dx.WAV, onde x representa a dezena do andar atual, contendo mensagens como

“Décimo” e “Vigésimo”. Em qualquer um destes casos, novamente a propriedade Interval do

temporizador receberá um novo valor compatível com a duração do arquivo tocado no

momento. Caso seja um andar entre o primeiro e nono, um valor bem baixo é atribuído a

Interval para que logo se reproduza o próximo arquivo. A partir de agora, OP é 1.

OP sendo 1 indica que o terceiro arquivo será tocado, novamente de acordo com a

necessidade. Estando no térreo, o próximo arquivo é TERREO.WAV, e para os outros casos,

Uy.WAV, sendo y a unidade do andar atual, com exceção dos casos onde o elevador esteja

em algum pavimento cujo número seja múltiplo de 10, como o 10º ou 20º. Novamente o

temporizador é reconfigurado para o próximo caso da mesma forma citada no parágrafo

anterior. O próximo passo é atualizar OP, mas agora haverá uma diferenciação: sendo térreo,

OP vai direto para 3, enquanto que nos outros casos se torna 2.

A seleção dos casos nos quais deve ser feito algo quando OP é 2 já foi feita ainda no

passo anterior. Em todos eles, ANDAR.WAV será tocado. Sendo este o último arquivo

necessário, não há necessidade de se preocupar com um novo ajuste do temporizador, e

apenas OP é atualizado para 3.

22

Esta última situação só existe devido ao fato de haver um número variável de arquivos

de som tocados, e está presente como uma forma de finalizar a mensagem e desativar player

até que este novamente tenha que entrar em ação. OP igual a 3 apenas torna novamente o

temporizador “tm_aporta” inativo.

Para facilitar o entendimento da lógica do software, a figura 5 traz um fluxograma que

a representa. Como já descrito, há um ciclo que se inicia cada vez que um byte chega pela

porta serial. Enquanto um byte não é recebido, o software estará em estado de espera. Assim,

este ficará a maior parte do tempo na ação “Aguarda Recebimento de novo byte”, sendo este

também o ponto de início da lógica.

Figura 5 - Fluxograma com a lógica do software

23

Para os arquivos citados, segue-se a tabela 1, que apresenta uma relação da duração de

cada um deles:

Tabela 1 - Duração dos arquivos WAV usados pelo software

Nome do arquivo Duração [s] Valor de Interval conteúdo u1.wav 1,10s 1220 “primeiro” u2.wav 1,25s 1370 “segundo” u3.wav 1,19s 1310 “terceiro” u4.wav 1,00s 1120 “quarto” u5.wav 0,91s 1030 “quinto” u6.wav 1,15s 1270 “sexto” u7.wav 1,37s 1490 “sétimo” u8.wav 1,27s 1390 “oitavo” u9.wav 1,09s 1210 “nono” d1.wav 1,10s 1220 “décimo” d2.wav 1,47s 1590 “vigésimo” d3.wav 1,46s 1580 “trigésimo” d4.wav 1,67s 1790 “quadragésimo” d5.wav 1,69s 1810 “qüinquagésimo” d6.wav 1,87s 1990 “sexagésimo” d7.wav 1,81s 1930 “setuagésimo” d8.wav 1,80s 1920 “octogésimo” d9.wav 1,73s 1850 “nonagésimo” up.wav 1,89s 2010 “Elevador subindo”

down.wav 1,98s 2100 “Elevador descendo” pab.wav 1,48s 1600 “Porta aberta” pfe.wav 1,61s 1730 “Porta fechada”

terreo.wav 2,02s 2140 “Andar Térreo” andar.wav 0,97s 1090 “andar”

6.4 Obtendo os dados necessários do elevador

Na comunicação entre o software e o circuito do elevador, feita através da porta serial,

observa-se diferenças bastante grandes nos níveis de tensão e formato de sinais, tornando

necessária que tal recepção de informações seja feita com o intermédio de um circuito

eletrônico, que converterá sinais em corrente alternada com valores de tensão elevados para

sinais digitais inteligíveis ao computador.

24

Sua ligação com o módulo eletrônico usando a porta serial é feita através de uma

palavra de oito bits, assim constituídas:

P D A5 A4 A3 A2 A1 A0

- P constitui o bit mais significativo e indica a situação da porta. 0 significa porta aberta e 1

porta fechada.

- D informa a direção de deslocamento da cabina do elevador. 1 se estiver subindo, 0 se

estiver descendo. Caso esteja parado (porta aberta) o valor deste bit é ignorado.

- A5 a A0: 6 bits que indicam efetivamente o andar onde a cabina do elevador está,

independente de estar em movimento ou não. No caso do protótipo desenvolvido, é

conveniente alertar que não foi considerado um prédio contendo pavimentos exclusivos para

garagem, salão de festas, sub-solo, etc., os quais poderão ser posteriormente incluídos

conforme seja necessário. É conveniente salientar que no momento o limite é de 64

pavimentos, sendo este um valor compatível com qualquer prédio hoje existente até mesmo

nas grandes metrópoles brasileiras.

A leitura e atualização das informações acontece sempre que o valor presente na porta

serial é alterado. Sempre que há uma leitura, as informações são processadas, havendo três

possibilidades de ação:

a) A porta estava aberta e se fechou: o elevador está começando a se deslocar. Deverão ser

anunciados o fechamento da porta e a direção de deslocamento.

b) A porta estava fechada e continua fechada: mudou-se os dados, havendo apenas um

deslocamento para outro andar. Apenas o valor exibido na janela do programa é

atualizado.

c) A porta estava fechada e se abriu: houve uma parada e deverá ser anunciados a abertura

da porta e o andar.

O programa não é ainda capaz de detectar situações que não sejam estas. Qualquer

outro evento como, por exemplo, uma mudança de andar com a porta aberta é ignorado. A

razão para isso é que todo gerenciamento eletrônico envolvido no correto funcionamento de

todos os componentes do elevador é função do próprio quadro de comando.

25

7 Módulo eletrônico

Cabe ao módulo eletrônico a leitura de todos os três sinais necessários:

a) Porta Aberta/fechada. Detecção da condição do contato da porta da cabina. Como

pesquisado, com o contato aberto, pode-se medir uma tensão alternada de 60Hz com

amplitude aproximada de 55Vrms entre seus terminais. (informação verbal)

b) Subida ou descida da cabina. Há um relê no quadro de comando que pode fornecer esta

informação. Sua localização exata pode variar de um modelo para outro, assim como a

direção representada em cada um de seus estados. Estando aberto, também é mensurável

uma tensão alternada de 55Vrms entre seus terminais.

c) Andar/posição. Este sinal é o mesmo enviado ao indicador de posição. Sua lógica consiste

em um pulso de tensão positiva para deslocar o indicador um andar acima e um de tensão

negativa para um andar abaixo, ambos da ordem de 55V também.

A função deste módulo é fazer a adequação do sinal para viabilizar sua leitura com

segurança ao computador. Os constantes picos de aproximadamente 78V fatalmente

queimariam um computador em poucos segundos. Em prol de uma segurança ainda maior, o

circuito foi projetado para a queima de componentes do próprio módulo antes que qualquer

pico possa de alguma forma atingir o computador usado. Esses componentes funcionam como

buffers e consistem em portas lógicas com tecnologia CMOS e serão detalhadas

posteriormente.

7.1 Valores de pico e médio: tensão alternada

Essas diferenças entre os valores nominais e seus valores de pico se justificam porque

tensões alternadas possuem amplitudes variáveis ao longo do tempo, tendo um

comportamento que segue o da variação da função seno, originado pelo movimento giratório

dos ímãs ou enrolamentos de um gerador. Por este comportamento no tempo, a forma de onda

é chamada senóide.

26

Um ciclo completo de uma senóide se inicia no momento em que a tensão é nula e

crescente e dura até que novamente a tensão seja nula e crescente, conforme demonstrado na

figura 5, onde se dá um exemplo de uma senóide de 60Hz e 78V de tensão de pico. Semiciclo

é o nome usado comumente para se falar do período enquanto a tensão for sempre negativa ou

sempre positiva.

Figura 6 - A forma de onda de uma tensão alternada.

No caso em questão, 55V é usado como valor nominal por representar um valor médio

de todos os que a tensão assuma ao longo de um ciclo. Para efeito de podermos comparar

grandezas elétricas variáveis no tempo, incluindo as tensões alternadas de interesse ao projeto,

usa-se um valor médio quadrático.

A média quadrática que empregamos para achar este valor garante que tanto os

semiciclos positivos quanto os negativos irão ser considerados da mesma forma, sem que haja

uma anulação entre os dois, o que ocorreria caso usássemos uma média aritmética, resultando

em um valor nulo.

Outra razão para se usar um valor médio quadrático é que desta forma obtém-se uma

espécie de potência média. Isso significa que médias iguais significam potências médias

fornecidas iguais. Assim, um equipamento qualquer alimentado por uma tensão contínua,

imutável no tempo, de 127V, receberá a mesma potência/energia que receberia se conectado a

uma tomada comum.

27

É desnecessário, no contexto e ênfase deste estudo, apresentar uma justificativa

matemática para a equação (1), a qual relaciona valores médios e máximos. Valores médios

são conhecidos e os máximos serão necessários para dimensionamento do circuito

posteriormente:

rmsp AA .2= (1)

Onde: Ap é a amplitude máxima Arms é a amplitude média (do inglês, root mean square)

2 = 1,414

E o que fazer com essa tensão alternada?

Essas magnitudes encontradas no quadro de comando devem ser convertidas

primeiramente a sinais digitais de 0V ou 5V para seu processamento lógico. Mesmo antes de

seu processamento é razoável que haja uma redução destes níveis, uma vez que vários

componentes semicondutores precisam ter contato direto com a forma de onda vinda do

quadro de comando e muitos deles não suportam mais do que 30V, e mesmo usar desde esse

ponto do circuito níveis compatíveis com a entrada da porta serial, onde a diferença entre eles

é de 24V, pode causar queimas constantes de circuitos MOS. Por isso, será necessário usar

divisores de tensão desde a captura que abaixem a tensão a níveis mais baixos do que isso.

Dessa forma, no final ainda será necessário fazer mais uma adaptação nos níveis de

sinais, visto que será necessário enviar à porta serial bits 0 representados por +12V e bits 1

por -12V, conforme referência [8].

Convencionou-se ser mais oportuno usar diretamente as condições de chave dos relês

para se obter diretamente um sinal já com uma natureza digital, de amplitudes 0V e 55V.

Pode parecer um pouco estranho aos mais leigos, porém mesmo manipulando uma tensão

alternada, esta só assume dois valores médios, condição suficiente para ser tratado como um

sinal digital.

Através de uma lógica para decodificar os pulsos, será armazenado num contador

digital, implantado através de um microcontrolador 8051, o andar onde se encontra a cabina.

28

O circuito para processamento dos outros dois sinais (porta e direção) é bastante simples,

consistindo ambos em uma operação de retificação e eventual inversão do bit gerado.

7.2 Detecção de abertura de porta

Esta parte do circuito pode ser dividida em quatro partes menores: um redutor de

tensão, uma ponte de diodos, um circuito RC e um buffer. A leitura será feita em cima dos

dois contatos que formam o sensor, sendo que com a porta fechada não haverá diferença de

potencial (tensão) entre os contatos, fornecendo ao módulo um bit 0 (zero).

Antes de qualquer processamento de sinais, é importante saber que todo o circuito de

quadro de comando do elevador funciona com fase flutuante, ou seja, não há um neutro para

ser usado como referência de tensão. Nessa condição, é bom fazer a ligação entre o módulo e

qualquer relê usando capacitores de acoplamento. No caso de haver qualquer diferença de

tensão entre o neutro da rede de energia que alimenta o elevador e o ground fornecido pelo

microcomputador, esta diferença ficará retida nos capacitores de acoplamento sem oferecer

riscos ao circuito do computador principalmente.

7.2.1 O redutor de tensão

O redutor é formado por dois resistores ligados em série entre si, ou seja, são

percorridos pela mesma corrente, fazendo com que a queda de tensão em cada um deles seja

proporcional a seus valores. Por haver esta distribuição entre os resistores, essa associação

também pode ser chamado de divisor de tensão.

Como será justificado um pouco mais à frente, é preciso usar valores de pico em todos

os cálculos realizados. Aplicando (1) aos 55Vrms presentes nos relês dos quadros de controle,

tem-se na Eq. 2:

VVV rmsp 8,7755.2.2 === (2)

29

Disto, será usado apenas 5,7V, sendo 5V do próprio sinal digital e mais 0,7V devido

aos diodos do retificador. Assim, precisaremos de um resistor R1 com uma queda de tensão

de 5,7V e um outro R2 com os demais 72,1V. Como já dito anteriormente, as quedas de

tensão são proporcionais às resistências.

Assim, temos na Eq. 3:

165,12265,1221

1,722

7,51 RRRRRR

==>==>= (3)

7.2.2 Ponte de Diodos

A parte seguinte do circuito é uma ponte de diodos, formada por quatro diodos,

dispostos de forma a poderem “inverter” a polaridade dos semiciclos negativos, tornando-os

também positivos. Diodos funcionam como chaves unidirecionais, ou seja, permitem que a

corrente circule por eles em apenas uma direção.

É conhecido que diodos geram uma queda de tensão de aproximadamente 0,7V

entre seus terminais quando diretamente polarizado para haver a condução. Devido a esta

característica, esta pequena tensão adicional foi adicionada aos 5V necessários para

alimentação da parte digital do módulo, resultando nos 5,7V usados no dimensionamento dos

resistores do redutor de tensão e na dedução da equação (3). A Figura 4 ilustra as tensões

entre os terminais do diodo nos casos de polarização direta e reversa, na qual o corte do diodo

faz com que ele concentre em seus terminais toda a tensão vinda da fonte ou o estágio anterior

do circuito.

Figura 7 - Polarização (A) direta e (B) polarização reversa.

30

Com essa lógica, é possível obter a inversão do semiciclo negativo. Na figura 7 é

mostrado um circuito com os quatro diodos da ponte e o trajeto da corrente durante os

semiciclos positivos e negativos. Note como na saída obtém-se sempre tensão positiva, uma

vez que a corrente na carga circula em apenas um sentido.

Figura 8 - Ponte de diodos e sua atuação com tensões (A) positivas e (B) negativas.

Devido a esse comportamento da ponte, pode-se já conseguir a forma de onda

mostrada na figura 8, considerando a saída em aberto (sem carga e alta impedância de saída):

Figura 9 - Forma de onda obtida da ponte de diodos

7.2.3 Um circuito RC paralelo

Embora já retificado, ainda temos apenas um sinal que pode ser considerado pulsante,

que se enviado através de uma porta serial ou aplicado diretamente a qualquer outro

31

dispositivo digital, certamente gerará uma leitura errônea pelo software, que o identificará

como um trem de pulsos. Desta forma, um pequeno circuito RC paralelo é inserido na saída

da ponte.

Este circuito RC paralelo consiste em um capacitor e um resistor ligados em paralelo,

ou seja, submetidos à mesma tensão. A função principal é do capacitor que deverá ser capaz

de alimentar o buffer enquanto a tensão na saída da ponte estiver em seus valores mais baixos,

ou seja, próximos de 0V (zero volt).

Para isso, a corrente fornecida pela ponte em tensões próximas das de pico (que neste

caso já é aproximadamente 5V) deverá ser suficiente para carregar o capacitor de uma

maneira que ele possa manter o nível de tensão próximo do pico o tempo todo. É como se

fosse uma bateria: quando há fornecimento de energia (próximo do pico) ela pode ser

carregada para quando for necessário.

O resistor tem apenas a função de permitir que o capacitor se descarregue quando não

houver mais tensão nos terminais de entrada do circuito. Pode-se notar que não havendo mais

sinal na entrada do circuito, como no caso do fechamento do relê correspondente no quadro

de comando, o capacitor estará carregado e não poderá se descarregar por diodos

reversamente polarizados.

Por isso, o resistor é a única forma do capacitor se descarregar. Essa descarga precisa

ser rápida o suficiente para uma rápida atualização do sinal digital, porém essa não pode ser

excessivamente rápida também, o que comprometeria a qualidade do sinal digital que

desejamos uma vez que o capacitor pode passar a atuar de maneira insuficiente e ainda manter

o sinal retificado bastante pulsante.

Uma forma de se avaliar o bom desempenho do circuito RC é achar uma relação entre

os dois componentes através da chamada freqüência de corte. Seu efeito é mais visível em

filtros, porém poderá ser aplicada ao menos para uma primeira aproximação para um valor de

resistência e capacitância. Após esta primeira aproximação, os valores de R e C foram

otimizados por meio de simulação. A relação a ser usada é mostrada na equação (4).

32

fRC

π21= (4)

Onde: R o valor do resistor em Ω (ohm) C o valor do capacitor em F (Farad) f a freqüência estudada em Hz (Hertz) π = 3,1416

Apesar do sinal que vem da ponte de diodos ser de 120 Hz, o cálculo pode considerar

a freqüência inicial, de 60 Hz, resultando após efetuar os cálculos a relação indicada na

equação (5):

3771

=RC (5)

Mesmo não atingindo nessa primeira aproximação valores satisfatórios, já é visível o

quanto a característica pulsante reduziu. Apesar de ser notável uma tensão de ripple, ou seja,

oscilações ainda presentes mesmo com a tensão retificada, não haverá prejuízos de qualidade

do sinal, uma vez que dispositivos digitais são pouco sensíveis a pequenas variações de

tensão. Na figura 9, é feito um comparativo entre valores estimados e obtidos por simulação.

Figura 10 - Forma do sinal com o capacitor e o resistor na saída da ponte de diodos. Acima:

onda obtida com (5). Abaixo: sinal melhorado via simulação.

33

7.2.4 Um buffer final

Completando o circuito, há um buffer, cuja função principal é bastante simples:

corrigir bit´s gerados que não estejam de acordo com a lógica computacional usada. No caso

da porta, o contato estará fechado no momento em que a porta também esteja, fazendo com

que a ligação deste sinal com o módulo curto-circuite a entrada. Desta forma, teríamos um

uma tensão nula na saída, o que representa um bit 0. No entanto, como já descrito

anteriormente, convencionou-se que a porta fechada é representada pelo bit 1.

É necessário, então, que este bit seja invertido através de uma porta NOT, também

conhecida como inversor. Inversores permitem entradas e saídas nos 0V ou 5V que são

usados no circuito em questão, sendo que sua saída é sempre a tensão que não está na entrada,

motivo pelo qual é conhecido por este nome. Por exemplo, se a entrada é 0V, a saída é 5V.

Por ser um componente digital, este também será capaz de corrigir pequenas falhas de

nivelamento de sinal que possam ainda estar presentes, sejam elas de imprecisões de

componentes utilizados, da própria rede de distribuição de energia ou até mesmo variações do

valor exato de tensões encontradas no quadro de comando. Ao passar por este dispositivo

digital, certamente será obtido na saída um valor fixo e constante, sem ripple e transitórios se

tornam quase instantâneos, colaborando para que o circuito adquira uma imunidade ainda

maior a oscilações de tensões advindas da rede de distribuição de energia, que poderiam se

refletir de alguma forma tanto no módulo quanto quadro de comando do elevador. A figura 10

mostra o circuito detector do status da porta, sendo a fonte V1 a entrada do sinal vindo da

porta da cabina, e o bit gerado disponível na saída do inversor.

Figura 11 - Circuito completo para detecção de abertura e fechamento de porta.

34

7.3 Detecção da direção de movimento

Consistindo um sinal elétrico da mesma forma do sensor da porta da cabina, é um

circuito que possui as mesmas características do anterior, possuindo apenas a diferença de que

o buffer é composto por duas portas NOT, sendo que a primeira estará sempre ativa,

exercendo a mesma função do outro buffer. A segunda é habilitada se for necessário, por meio

de um jumper. Não é possível generalizar um padrão de relê aberto ou fechado para se saber

se o elevador vá subir, sendo possível encontrar os dois casos. Prevendo estas duas

possibilidades, são usadas duas portas NOT, sendo possível a adaptação a qualquer um dos

casos.

7.4 Identificação do andar atual

Não mais complexo que os anteriores, a última seção do circuito faz apenas uma

função de identificador de pulsos. Como nos dois itens anteriores, é identificável um divisor

de tensão, um inversor de pulsos negativos, uma junção dos dois sinais e o contador.

7.4.1 Divisor de tensão

O divisor de tensão aqui usado é similar com os anteriores, porém aqui se deve tomar

um cuidado extra com outras resistências ligadas diretamente no nó de onde se coleta o pulso

já atenuado pelo divisor. Estas interferem diretamente no valor da tensão, uma vez que irão se

comportar como resistências em paralelo com o R1 do divisor. Com o intuito de minimizar

este efeito durante o projeto, o divisor é feito com valores de resistores bem abaixo dos

demais, sendo arbitrados inicialmente valores de 10 a 15 vezes mais baixos do que os usados

no restante do circuito.

Desta forma, considera-se ainda válida a equação (3) para este caso, uma vez que os

níveis de tensão dos pulsos lidos são similares aos lidos nos relês relacionados à porta e à

direção de deslocamento.

35

7.4.2 Detector de pulsos negativos

A inversão de pulsos negativos é realizada por um amplificador operacional, também

conhecido como AMPOP, em sua configuração inversora. Nesta configuração, o amplificador

recebe uma malha de realimentação, ou seja, parte de um circuito, que liga a saída novamente

à entrada e outra malha na entrada, conectando a entrada inversora do amplificador com o

sinal recebido. Ambas as malhas são bastante simples, constituídas por um resistor cada uma.

Sabe-se que toda a corrente que vem da fonte de sinal passa pela malha de

realimentação. Além disso, os dois terminais de entrada formam um curto-circuito virtual, ou

seja, as duas entradas sempre terão um mesmo valor de tensão. Mesmo assim, a corrente não é

capaz de entrar no amplificador, e por isso circula em sua integridade pela malha de

realimentação. Pode-se chegar a uma relação que nos fornece o ganho, ou seja, o quanto o

sinal fica maior em amplitude na saída se comparado com a entrada. O sinal negativo na

relação indica a inversão do sinal, o que significa que quando o sinal de entrada tem um

aumento de tensão, é refletido com uma redução na saída. Essa relação é dada pela equação

(6):

34

RRA −= (6)

Sendo: A o ganho do amplificador R4 o resistor da realimentação R3 o resistor conectado à entrada do amplificador.

O objetivo neste momento é inverter pulsos negativos e manter o mesmo nível do sinal

da entrada. O ganho, então, precisa ser unitário, indicando a manutenção do nível de entrada e

negativo. Assim, o A na equação (7) deve ser -1.

43341 RR

RR

==>−=− (7)

É sempre bom lembrar que no caso de pulsos positivos, eles não serão invertidos, e

sim ignorados. Isso ocorre pelo fato do amplificador ter seu terminal destinado à inserção da

36

alimentação negativa ligado ao terra. Ligado ao terra, não há como obter na saída um valor

abaixo deste, evitando que os pulsos positivos sofram alguma alteração.

7.4.3 Formando o pulso de acionamento do contador

A esta altura, as duas situações possíveis para os pulsos são detectadas em pontos

distintos do circuito, um apenas na entrada (positivo), e o outro apenas na saída do

amplificador (negativo). É necessário agora juntar os dois em um único sinal reconhecível

pelo contador, visto que a necessidade é se saber apenas se há pulso, não mais como ele é.

Como já descrito no item anterior, os dois pontos citados fornecem pulsos positivos de

5V de amplitude. A presença de qualquer um deles terá que acionar um contador e atualizar a

informação do andar onde a cabina se localiza, segundo a lógica abaixo, onde 1 significa a

presença do pulso, e 0 sua ausência. A tabela 2 resume as situações possíveis.

Tabela 2 - Situações possíveis para acionamento do contador

Pulso positivo Pulso negativo Aciona contador? 0 0 não (0) 0 1 sim (1) 1 0 sim (1) 1 1 indiferente (x)

No último caso, torna-se indiferente por ser impossível que tal situação aconteça, uma

vez que não há como se enviar ao mesmo tempo os dois tipos de pulso, o que resultaria em

duas tensões diferentes em um mesmo ponto do circuito e ao mesmo tempo.

Com uma análise das três primeiras situações, conclui-se que a combinação presente

está de acordo com uma função OR (onde pelo menos um dos pulsos esteja presente para

haver o acionamento) ou uma função XOR (pela qual só haveria o acionamento caso um dos

pulsos estivesse presente).

Foi escolhido o uso de uma porta XOR. O desempenho de qualquer porta feita com

transistores MOS será suficiente para esta aplicação. A vantagem desta escolha em relação a

uma porta OR é que no caso de haver alguma falha do circuito que resulte numa situação onde

37

este se comporte como recebendo os dois tipos de pulsos ao mesmo tempo, não haverá

qualquer atualização de andar na saída do contador. Em qualquer uma das alternativas, no

entanto, um pulso de 5V será gerado na saída da porta lógica escolhida e enviado ao contador.

E como evitar que o pulso negativo chegue até a porta lógica? Para isso, próximo à

entrada destinada a receber os pulsos positivos, foi adicionado um diodo de forma a conectar

esta entrada da porta com 0V. No caso de ser enviado um pulso positivo, o diodo estará com

polarização reversa e não fará qualquer efeito no circuito.

No entanto, há um último problema a se levar em consideração: com o diodo

conduzindo, surgirá a pequena queda de tensão da ordem de 0,7V. O ponto negativo dessa

situação é que desta forma a entrada do pulso negativo vai estar diretamente conectada ao

terra através do diodo, anulando o pulso de nosso interesse, tornando-o indetectável. Para isso,

colocou-se mais um resistor entre a entrada do sinal e o diodo.

A melhor alternativa é usar um valor alto de resistor para minimizar seus efeitos no

resto do circuito no sentido de reduzir mais do que o esperado o nível de tensão do pulso lido.

Para a porta lógica, não haverá problemas. Suas entradas possuem uma altíssima resistência

na entrada, similarmente ao AMPOP. Isso significa que estas são alimentadas com correntes

milhares, ou até milhões de vezes mais baixas do que as presentes em qualquer outro ponto do

circuito deste módulo detector de sinais, insuficientes para impedir uma correta passagem dos

pulsos positivos.

7.4.4 O contador e a conversão para serial

O contador forma a parte final do circuito. Ele sozinho tem a função de gerar os bits

contendo a informação de onde o elevador se encontra, a ser enviada ao PC via porta serial.

Como já citado antes, ele deve atualizar seu valor (o conjunto de bits que informam o andar

atual) cada vez que recebe um pulso vindo da porta XOR descrita no item anterior.

É necessário também ao contador poder ler o bit de direção de deslocamento do

elevador, fundamental para se saber se o elevador está se deslocando um andar para cima ou

38

para baixo. Aproveitando as informações já existentes, esta é obtida do próprio bit que

informará o computador a direção de deslocamento.

A implementação de apenas um contador usado um microcontrolador não se

justificaria, uma vez que existem circuitos integrados capazes de facilmente executar esta

função de forma eficiente. No entanto, contadores convencionais não conseguem gerar

informações em modo serial, como é necessário neste caso, e mesmo realizando pesquisas

pela internet não se encontrou informações sobre algum circuito capaz de realizar

satisfatoriamente conversões paralelo-serial. A única opção disponível é saída paralela, onde

os bits são disponibilizados um a cada pino, podendo ser lidos todos simultaneamente, a qual

não é compatível para as necessidades de projeto, uma vez que pela porta serial só trafegam

dados de forma que os bits são transmitidos individualmente e em seqüência.

Escolheu-se o microcontrolador 8051 para se desenvolver este pequeno software do

contador. Sua escolha se apóia na facilidade que este apresenta para se manipular

transferência de dados através de porta serial. Além disso, o 8051 possui um conjunto de

instruções que torna a programação em linguagem Assembler mais simples, em comparação a

outros microcontroladores, como os da família do PIC, e por isso será utilizado para se gerar o

código do contador de andares. (referência [9] é fonte de toda informação e estudo sobre o

8051)

Uma última razão para este ser usado é a grande variedade de interrupções

programáveis, sendo que das cinco disponíveis, serão usadas três, que serão detalhadas mais a

frente, sendo uma externa para acionar a contagem dos andares, uma de temporizador e outra

relacionada com a própria porta serial.

O 8051 também possui quatro portas paralelas, das quais serão usadas duas delas para

recebimento e envio de dados. As portas 0 e 2 não possuem uma função associada a elas nesta

aplicação, mesmo assim, terão seus pinos disponíveis para acesso e conexão de outros

dispositivos, já se prevendo que recursos adicionais podem ser adicionados ao módulo

posteriormente.

39

A porta 1 será usada para recepção dos dados vindos de porta e direção, usando por

uma questão de facilidade os pinos 6 e 7. O uso destes dois pinos permite que o valor lido

possa ser usado diretamente na formação do byte a ser enviado ao computador, que sendo

recebidos já como os mais significativos, não precisarão ser deslocados posteriormente para

sua posição correta. Os demais pinos são ligados ao terra, forçando uma cadeia de seis bits 0.

Dessa forma, o número do andar poderá ser apenas somado ao número contido nesse byte

recebido.

A segunda porta importante é a Porta 3, na qual só estarão ativos efetivamente os três

primeiros pinos: o primeiro deles, recebe dados vindos de uma porta serial. O segundo deles é

responsável pela transmissão: estes dois pinos juntos formam a porta serial do 8051,

permitindo que haja transmissão e recebimento de dados ao mesmo tempo, e que será usada

para a comunicação com o computador. O terceiro pino importante recebe o sinal que ativará

uma interrupção externa. Esta interrupção acontece sempre na borda positiva (quando se

muda de um bit 0 para um bit 1) do bit enviado a esse pino, fazendo com que o

microcontrolador seja ativado, executando uma rotina específica, assim que a borda é

detectada. A ativação dessa interrupção será feita pelo pulso enviado ao indicador de posição.

Quando isso acontecer, os dados disponíveis na Porta 1 serão lidos. A partir deste

ponto, dois endereços da memória são importantes: o primeiro deles armazena o número do

andar atual. Ocorrendo a leitura, verifica-se o bit 6. Este bit informa a direção do

deslocamento da cabina, e de acordo com seu valor, o andar será incrementado ou

decrementado.

Além desta interrupção, é ainda necessário que seja habilitado um dos temporizadores

do 8051. A interrupção externa apenas é responsável por atualizar a posição da cabina, no

entanto, pode haver variações no status da porta ou o elevador entrar em movimento para

qualquer uma das direções, o que não pode ser detectado apenas quando ocorre uma mudança

de um andar para outro. Para garantir que estas informações sejam atualizadas e enviadas ao

computador assim que se alterem, é preciso que uma verificação periódica seja efetuada na

porta 1. A cada verificação, o byte a ser transmitido é atualizado.

40

O outro endereço importante é, na verdade um buffer, responsável pela saída de dados

pela porta serial. Cada vez que houver uma atualização do byte, seja pelo temporizador ou

pela interrupção externa, este será novamente enviado ao buffer.

Pela própria arquitetura do 8051, é necessário usar seu segundo temporizador, assim

como configurá-lo de maneira compatível com a velocidade de transferência desejada, para

que este possa ter um controle sobre a taxa de transmissão e saber o exato momento de enviar

um novo bit.

7.5 Enviando os dados ao computador

Neste ponto, a transmissão já se iniciou, uma vez que a porta serial no 8051 está

pronta e já enviando dados. A última fase é adequar novamente os níveis de tensão, para que

estes possam ser recebidos. Embora a transmissão e recepção já se efetuem em modos

compatíveis, o computador só consegue “entender” tensões um pouco mais elevadas em

relação àquelas usadas na parte digital do circuito do módulo. Segundo a referência [8], a

porta serial é capaz de identificar bits 1 pela tensão de -12V e bits 0 por +12V.

De acordo com o texto da referência [5], a solução mais simples para este caso é usar

um conversor MAX232 (ou qualquer outro cujo nome termine em 232), já projetado para

realizar esta função de converter os bits na forma de 0V e 5V para os compatíveis com a porta

receptora, bastando apenas que este receba a seqüência de bits gerados. Uma grande vantagem

deste circuito integrado é não ser preciso usar uma fonte extra de alimentação apenas para

fornecer as tensões de saída. Pela própria lógica interna dele, pouco conhecida em detalhes,

torna-se suficiente apenas a alimentação já disponível de 5V.

Usou-se um canal de recepção e um de transmissão do MAX232, de forma a permitir

uma comunicação de duplo sentido, reservando o sentido computador-módulo (chamado aqui

de canal de recepção) para funções futuras. Estes canais definem em qual sentido de fluxo de

bits o circuito irá atuar. Canais de recepção permitem que a conversão seja feita com o fluxo

ocorrendo do lado de +/-12V para 0-5V, ocorrendo o processo inverso nos canais de

transmissão.

41

Selecionado um canal de transmissão qualquer, basta que os terminais de um cabo

serial sejam conectados às suas saídas do lado +/-12V, sendo os dois mais importantes a

conexão com os pinos 2, por onde irão chegar os bits até o computador, e o pino 3, pelo qual o

computador será capaz de os enviar.

Um esquemático completo do circuito aqui descrito é mostrado na figura 11. Por

simplicidade, o microcontrolador 8051 e o conversor MAX232 são exibidos como blocos.

Figura 12 - Circuito final do módulo. Na parte superior o leitor de andares. Abaixo, à

esquerda o leitor da direção de deslocamento e à direita o leitor da condição da porta da cabina.

7.6 Fonte de alimentação

Nenhum circuito é capaz de operar sem energia, portanto é necessário que haja uma

fonte de alimentação. O objetivo é transformar os 127V alternados da tomada em 5V

contínuos.

42

Primeiramente, será usado um transformador abaixador de tensão 127V-12V com tap

central. Este tap é um pequeno fio, formando um terceiro terminal de saída, internamente

conectado na parte central do enrolamento do transformador, ou seja, é como se agora

houvesse dois “meio-enrolamentos” com um número igual de espiras. Se este tap for usado

como terminal de terra, os dois meio-enrolamentos agem como se houvessem duas fontes

distintas, fornecendo os mesmos 12V em corrente alternada, porém com polaridades opostas

entre si. Na prática, sempre haverá um semiciclo positivo e um negativo disponíveis. Desta

forma, o retificador pode ser feito com apenas dois diodos e aproveitando apenas os

semiciclos positivos. Os negativos podem ser descartados.

Ao contrário dos retificadores já usados para detecção de estados de relês, aqui o

ripple deve ser minimizado, e para isso, uma alta capacitância deve ser colocada logo na saída

dos diodos, de forma a já receber o sinal retificado ainda pulsante, com a mesma forma

apresentada na Figura 6, diferindo apenas em amplitude. Esta capacitância deve ser tão alta

quanto possível para se atingir o resultado mais próximo possível do ideal.

Em paralelo ao capacitor, é conveniente se colocar um LED para indicação de que o

circuito está ligado. LED´s são diodos que emitem luz, e devem estar diretamente polarizados

para acenderem. Suas tensões de polarização são mais altas do que de diodos convencionais,

atingindo valores próximos de 1,5V e, sendo mais sensíveis, têm sua vida útil bastante

reduzida se percorridos por correntes superiores a 20mA, sendo que em série com ele é

necessário colocar um resistor para limitar sua corrente a este valor.

Por (1), tem-se que a tensão de pico dos 12Vrms é 17V. Destes, 1,5V estarão nos

terminais do LED, enquanto que nos terminais do resistor ficam os outros 15,5V. Segundo a

lei de Ohm, a queda de tensão em um resistor é igual a sua resistência em ohms multiplicada

pela corrente em amperes que circula por ele. Sendo que a corrente deve ser de 20mA, deve-

se usar um resistor de 775 Ω. Devido ao limitado número de valores de resistência

encontrados no mercado, pode-se usar aquele que mais se aproxima, ou seja, 820 Ω.

Finalmente, 17V devem ser baixados a 5V, porém sem o uso de divisores de tensão. A

demanda de potência do circuito é variável, fazendo com que o uso de um divisor não forneça

um valor fixo, podendo ocorrer variações em alta freqüência capazes de causar interferências

e prejudicar bastante a qualidade da alimentação. A melhor alternativa é usar o circuito

43

integrado 7805, que age como um limitador, garantindo uma tensão máxima de 5V em sua

saída, garantindo que este será constante, independente de quantos Volts sejam aplicados na

entrada, desde que sejam mais de 5V. Na sua entrada, é conectada a saída do retificador,

havendo também um pino de terra usado para referência.

Segundo recomendação do próprio fabricante do 7805, entre a entrada e o terra, pode-

se conectar um capacitor de 100 μF o mais próximo possível da saída para supressão de

ruídos de alta freqüência. Devido à sua construção, pode haver o risco de queima do circuito

se, por algum motivo qualquer, a tensão na saída for superior à de entrada. Se isso ocorrer,

pode haver a queima deste, e por segurança, é adicionado mais um diodo conectando a saída à

entrada. No caso disso acontecer, o diodo servirá como uma fonte de fuga da corrente,

evitando que ela circule pelo interior do CI.

Por ser um dispositivo de potência com componentes internos de dimensões reduzidas,

a dissipação de calor faz com que ele se aqueça bastante, sendo também necessário que seja

usado um dissipador de calor para evitar superaquecimento, capaz de danificar o componente.

Tomando todos estes cuidados, tem-se no final do circuito mostrado abaixo a saída em 5V

responsável pela alimentação do módulo. O circuito final da fonte é mostrado na figura 12.

Figura 13 - Circuito da fonte de alimentação

44

8 Custos do anunciador por voz proposto

No formato aqui proposto, o custo de aquisição do equipamento não chega a 10% do

custo total do modelo apresentado acima. Para ele, os seguintes custos são estimados:

a) Computador: modelos antigos que suportam o software podem ser encontrados por

valores a partir de R$ 300,00.

b) Módulo eletrônico: placa de fácil fabricação e já dotado de capa plástica protetora e fonte

de alimentação de +12V e -12V. Seu custo total de produção é de R$ 45,00 já incluído

fonte de alimentação e cabo para conexão com o computador via porta serial.

c) Os cabos necessários para ligações quadro de comando/módulo variam de acordo com

cada caso, dependendo da distância entre a casa de máquinas e o computador e da altura

do poço. Um prédio com 10 andares e com o computador localizado a 20 metros do

quadro de comando terá aproximadamente 35 metros de cabo paralelo específico para

áudio ao longo do poço, mais os 20 metros entre o extremo superior do poço até o

computador, totalizando 55 metros de cabo ligando a saída de som no PC até o alto-

falante instalado na cabina. Entre o quadro de comando e o módulo, que se supõe estar

próximo ao PC, são necessários mais 20 metros de cabo para cada um dos três sinais a

serem lidos, totalizando 60 metros, sendo também aplicável o uso de cabo paralelo

específico para aplicações envolvendo tensões na faixa dos 127V. Pode-se considerar que

estes dois tipos de cabo tenham preços por metro próximos de R$ 1,00. Para os 115

metros previstos do total de cabeamento, tem-se um custo de R$ 115,00.

d) Mão de obra: um técnico pode realizar o serviço de instalação em uma hora ou menos,

cabendo à empresa responsável pela instalação definir quanto irá cobrar do cliente.

Com base nestes valores, estima-se um custo total para se ter o anunciador instalado

de R$ 500,00 a R$ 700,00, e conforme já descrito, tais valores podem cair significativamente

caso já haja um computador disponível para executar o software.

45

Conclusão

Ao contrário do previsto inicialmente, não foi possível abranger todas as tecnologias

de elevadores existentes, limitando-se apenas à tecnologia de quadros de comando

eletromecânicos baseados em relês, uma vez que elevadores digitais podem apresentar muitas

diferenças em relação à codificação dos pulsos que circulam por seus quadros de comando.

Apenas com um pequeno módulo eletrônico desenvolvido para tradução de sinais e

um software executado até em computadores de baixo custo, criou-se um anunciador de fácil

produção e instalação, capaz de usar recursos e fontes de dados já existentes ou de fácil

aquisição, como o próprio quadro de comando e um computador, dispensando a necessidade

de qualquer sensor adicional.

O mais importante é que não foi necessário que um projeto muito complexo fosse

elaborado para que os resultados esperados aparecessem. A redução na quantidade de

equipamentos necessários fez com que o custo máximo de aquisição e instalação de um

anunciador de voz para cabinas de elevador seja comparável àqueles dos modelos mais

simples e baratos existentes hoje no mercado ou até menor.

Para o futuro, é viável que o protótipo sofra mais melhorias em sua arquitetura,

possibilitando que seu preço final caia ainda mais, e dessa forma fazendo com que mais e

mais pessoas possam ter acesso a coisas simples, mas que possam contribuir para a melhoria

de suas vidas.

46

Referências [1] Apostila de orientação Geral - Elevadores - 1ª etapa. JOSS Elevadores. 4 pg. Curitiba, PR.

29/08/2005. [2] CROWLEY, James. COM Ports and the MSComm control - Receiving Data. [Portas

COM e o controle MSComm - Recebendo Dados] [on line]. Disponível na Internet: http://www.developerfusion.co.uk/show/21/6/. Visitado em 14/10/2005.

[3] GUREWICH, Ori e Natan. Como Criar Aplicações de Mundo-Real com Visual Basic 3

For Windows. Sams Publishing, 1994. Traduzido por RIBAS, Rodolfo, Axcel Books do Brasil. 722 pg.

[4] JBN Electronics. Manual de Instalação e Operação - Cortex Voice 40 RDEA. [on line].

Pág. 2. Disponível na Internet: http://www.jbn.com.br/manual40rdea.pdf. Visitado em 12/11/2005.

[5] MESSIAS, Antônio Rogério. Comunicação com a porta serial. [on line]. Rogercom,

2004. Disponível na Internet: http://www.rogercom.com/PortaSerial/PortaSerial.htm. Visitado em 07/11/2005.

[6] MICROSOFT, Sample: playwave.exe Demonstrates How To Play a Sound File, Help and

Support [on line]. Disponível na Internet: http://support.microsoft.com/default.aspx? scid=kb;EN-US;q182983&GSSNB=1. Visitado em 17/10/2005

[7] PASTRO, Ademar Luiz. Microcontroladores - Microcontrolador 8051. 45 pg. [Curitiba],

2004. [8] Serial Port. [on line]. Disponível na Internet: http://www.ctv.es/pckits/tpserie.html.

Visitado em 14/10/2005. [9] Visual Basic, Toda a Potencialidade do Windows em programação. Colégio Spei. Ed.

Única. P. 3, 25-28, 43-44, 47-48. Curitiba, 1997.

47

Anexo A - Código-fonte do software

As seis funções aqui listadas juntas são responsáveis por todo o funcionamento do

anunciador, ao que se refere a reprodução dos sons, e são exibidas uma a uma, para melhor

visualização individual.

Interrompe: função de teste do tipo de mudança no valor da porta serial aconteceu,

sendo eles abertura ou fechamento de portas e mudança de um andar para outro. As primeiras

linhas indicam variáveis usadas em várias funções do software.

Dim u, d 'posição da cabine (andar) Dim op 'controle de arquivo a ser tocado Dim porta '1 para porta da cabine aberta e 0 para porta fechada Dim direcao '1 para elevador subindo e 0 para descendo ou parado Dim pser, pser_old 'valores lidos da porta serial, último valor e o anterior Dim tamanho(1, 9) 'matriz com as durações de cada WAV de nº de andar Dim andar 'andar de parada (reservado para emulação de comandos) Private Sub Interrompe() If pser < 128 Then 'a porta está fechada Porta_status.Caption = "PORTA FECHADA" Porta_status.ForeColor = RGB(255, 0, 0) If pser_old > 127 Then 'verifica se estava aberta antes tm_fporta.Enabled = True LoadFile "C:\ProjetoFinal\pfe.wav" Module1.drawFrom = 0 Module1.drawTo = Module1.numSamples If (Module1.fPlaying = False) Then Play -1 End If Else 'ja estava fechada, provavelmente mudou de andar d = pser Mod 64 n_andar.Caption = Right(Str(d), Len(Str(d) - 1)) If d < 10 Then n_andar.Caption = "0" + n_andar.Caption If d = 0 Then n_andar = "00" u = d Mod 10 d = d \ 10 End If ElseIf pser_old < 127 Then 'a porta abriu agora op = 0 tm_aporta.Interval = 1600 tm_aporta.Enabled = True LoadFile "C:\ProjetoFinal\pab.wav" Module1.drawFrom = 0 Module1.drawTo = Module1.numSamples If (Module1.fPlaying = False) Then Play -1 End If Porta_status.Caption = "PORTA ABERTA" Porta_status.ForeColor = RGB(0, 255, 0) End If pser_old = pser End Sub

48

tm_aporta_Timer e tm_fporta_Timer: relacionam os temporizadores associados às

funções respectivamente de abertura e fechamento de porta de cabina, tocando os arquivos

durante a anunciação.

Private Sub tm_aporta_Timer() If op = 0 Then If u = 0 And d = 0 Then LoadFile "C:\ProjetoFinal\terreo.wav" Module1.drawFrom = 0 Module1.drawTo = Module1.numSamples If (Module1.fPlaying = False) Then Play -1 End If op = 3 Else tm_aporta.Interval = tamanho(0, d) If d > 0 Then LoadFile "C:\ProjetoFinal\d" + Right(Str(d), 1) + ".wav" Module1.drawFrom = 0 Module1.drawTo = Module1.numSamples If (Module1.fPlaying = False) Then Play -1 End If End If op = 1 End If ElseIf op = 1 Then tm_aporta.Interval = tamanho(1, u) If u > 0 Then LoadFile "C:\ProjetoFinal\u" + Right(Str(u), 1) + ".wav" Module1.drawFrom = 0 Module1.drawTo = Module1.numSamples If (Module1.fPlaying = False) Then Play -1 End If End If op = 2 ElseIf op = 2 Then LoadFile "C:\ProjetoFinal\andar.wav" Module1.drawFrom = 0 Module1.drawTo = Module1.numSamples If (Module1.fPlaying = False) Then Play -1 End If op = 3 ElseIf op = 3 Then tm_aporta.Enabled = False End If End Sub Private Sub tm_fporta_Timer() If pser Mod 128 < 64 Then LoadFile "C:\ProjetoFinal\down.wav" Else LoadFile "C:\ProjetoFinal\up.wav" End If Module1.drawFrom = 0 Module1.drawTo = Module1.numSamples If (Module1.fPlaying = False) Then Play -1 End If tm_fporta.Enabled = False End Sub

49

SetaTempos: define os valores que os temporizadores devem esperar até que cada

arquivo de numeração de andar seja tocado integralmente. Os tempos de arquivos que

indicam abertura ou fechamento de portas, “térreo” e “andar” são definidas na hora em que

são tocados. A principal função de se definir apenas os arquivos de andares é permitir que se

tenha uma rápida referência a eles, uma vez que apenas no caso de numeração de andar é de

fato necessário uma escolha de arquivos que inevitavelmente possuem durações diferentes.

Private Sub SetaTempos() tamanho(0, 0) = 100 tamanho(0, 1) = 1220 tamanho(0, 2) = 1590 tamanho(0, 3) = 1580 tamanho(0, 4) = 1790 tamanho(0, 5) = 1810 tamanho(0, 6) = 1990 tamanho(0, 7) = 1930 tamanho(0, 8) = 1920 tamanho(0, 9) = 1850 tamanho(1, 0) = 100 tamanho(1, 1) = 1220 tamanho(1, 2) = 1370 tamanho(1, 3) = 1310 tamanho(1, 4) = 1120 tamanho(1, 5) = 1030 tamanho(1, 6) = 1270 tamanho(1, 7) = 1490 tamanho(1, 8) = 1390 tamanho(1, 9) = 1210 End Sub

Form_Load: definição de alguns valores iniciais quando o programa é carregado. Private Sub Form_Load() u = 0 d = 0 op = 3 porta = 1 direcao = 1 pser_old = 0 SetaTempos ' Configuração da porta COM3 e abertura para recebimento de dados MSComm1.RThreshold = 1 MSComm1.InputLen = 1 MSComm1.Settings = "2400,N,8,1" MSComm1.DTREnable = False MSComm1.CommPort = 3 MSComm1.PortOpen = True andar = 0 pser = 0 End Sub

50

MSComm_OnComm: evento gerado cada vez que um byte é transferido pela porta

serial. Sendo este um byte recebido, este vai ser lido e processado pela função “Interrompe”. Private Sub MSComm1_OnComm() If MSComm1.CommEvent = comEvReceive Then pser = MSComm1.Input Interrompe End If End Sub

Além destas, mais duas funções extras foram colocadas fazendo a lógica empregada

na botoeira virtual:

tm_aux_Timer: temporizador auxiliar e principal responsável pela seqüência de

valores gerados via emulação.

Private Sub tm_aux_Timer() Dim aux aux = 2 * ((pser Mod 128) \ 64) - 1 u = u + aux pser = pser + aux If u = -1 Then u = 9 d = d - 1 ElseIf u = 10 Then u = 0 d = d + 1 End If Interrompe If andar = (10 * d + u) Then pser = pser + 128 tm_aux.Enabled = False Interrompe End If End Sub

51

Command1_Click: identificação do número do andar chamado através do índice do

botão na matriz e ignorando chamados para o mesmo andar. Private Sub Command1_Click(Index As Integer) ' simulação do circuito de comando If (Index = 10 * d + u) Then Exit Sub andar = Index If Index > 10 * d + u Then pser = 64 + 10 * d + u Else pser = 10 * d + u End If Interrompe tm_aux.Enabled = True End Sub

52

ANEXO B - Testes práticos e idéias de melhorias

Devido a alguns fatores como falta de local apropriado ou elevadores em miniatura, a

solução aqui apresentada não pôde ser testada em condições reais de uso até a data de

conclusão deste trabalho, limitando estes a simples testes de aplicação da lógica do circuito.

Havendo tais condições, o anunciador poderá ser testado em uma situação prática para se

certificar de que funciona conforme o esperado.

Algumas alternativas poderão ser estudadas para uma ainda maior redução de custos

e/ou praticidade e atingir uma boa aceitação no mercado em um momento futuro. Algumas

idéias são:

Produção do módulo eletrônico na forma de uma placa para PC:

Desta forma, tem-se um equipamento mais compacto e de mais fácil instalação,

estando este situado dentro do próprio computador. Conseqüentemente, ganha-se também na

não necessidade do uso da porta serial, liberando-a para outras aplicações que o usuário

deseje. Para isto, um ponto negativo importante a ser considerado é o risco de se gerar uma

excessiva poluição eletromagnética devido às altas tensões vindas do quadro de comando

possam causar em placas próximas, comprometendo o correto funcionamento do computador.

Suporte multicabinas:

O protótipo inicial apresentado suporta apenas um elevador, ainda gerando um custo

que cresce proporcionalmente com o número de cabinas a serem atendidas por anunciadores.

Concentrando todo o gerenciamento dos sinais recebidos de vários quadros de controle em um

único módulo, é possível atingir um valor total pouco dependente da quantidade de cabinas.

Correção de falhas na indicação do posicionamento:

Não se pode ter certeza se um sistema é confiável sem testá-lo em todas as condições

reais. Faltas de energia, principalmente quando um elevador está situado em um pavimento

que não seja o térreo, podem causar falhas na indicação do andar correto que forcem o

responsável pela instalação (síndico ou zelador, por exemplo) a ir até o módulo e efetuar

alguma correção, como resetar seu valor com o elevador no térreo. Havendo uma forma do

53

próprio software executar a correção no contador que registra o andar atual, tão logo o

elevador volte à atividade todas as indicações estariam automaticamente corrigidas.

Inclusão de um sintetizador de voz no próprio módulo:

Esta é até o momento uma das principais desvantagens deste anunciador: é necessário

que uma placa de som esteja instalada no computador para enviar o som ao alto-falante na

cabina. Além de tudo, longos cabos são conectados à saída de som da placa, não garantindo

que o som seja reproduzido com qualidade suficiente para manter uma boa inteligibilidade. Se

o computador for usado para outras funções que de alguma forma exijam som, não poderá ter

o software instalado. Como uma conseqüência indireta, deixa de existir a possibilidade de

implantar um suporte para várias cabinas no mesmo módulo, por não haver mais que uma

saída de áudio.

54

Anexo C - Desenho esquemático do módulo

55

Glossário Botoeiras: conjunto de botões localizados tanto nos pavimentos quando na cabina que permite ao usuário efetuar chamadas. Cabina: compartimento onde são transportadas pessoas e carga. Casa de máquinas: espaço físico localizado na parte superior do prédio onde é instalado o sistema de comando e tração do elevador. Circuito aberto: condição elétrica na qual a corrente não tem caminho para passar, ficando impedida de circular. Forma de onda: maneira como se comporta a variação de uma grandeza elétrica, geralmente tensão ou corrente, ao longo do tempo. Indicador de posição: dispositivo de informação visual que informa a localização (andar) da cabina naquele momento. Os indicadores digitais também informam a direção de deslocamento. Máquina de tração: conjunto formado pelas polias e motor de tração. Motor de tração: é o motor do elevador propriamente dito, responsável pela movimentação da cabina. Poço: espaço físico por onde se desloca a cabina, apoiada em guias. Porta da cabina: sistema de portas de acionamento automático ou mecânico localizada na cabina, permitindo uma maior segurança na entrada e saída da cabina. Porta do pavimento: porta localizada no pavimento que provê segurança ao usuário, não permitindo que a porta se abra caso o elevador não esteja nivelado no andar. Quadro de comando: parte do circuito responsável pelo funcionamento em si do elevador. Contém a parte lógica e gerencia todas as funções necessárias, como acionamento do motor de tração, gerenciamento do atendimento de chamadas e abertura da porta da cabina na hora certa.