Você está na página 1de 66

UNIVERSIDADE DO ESTADO DE MINAS GERAIS - UEMG

FUNDAO EDUCACIONAL DE ITUIUTABA - FEIT


INSTITUTO SUPERIOR DE ENSINO E PESQUISA DE ITUIUTABA - ISEPI

ALINE MENEZES DA COSTA


CAIO CSAR CAMPOS DE OLIVEIRA
FLAVIO ANTONIO RODRIGUES JUNIOR
GUSTAVO PEREIRA DE CASTRO NETO
HUGO AUGUSTO FREITAS DO CARMO
JOAO HENRIQUE DE FARIA
JOAO LUDOVICO MAXIMIANO BARBOSA
LUZIDALVA PAULI NA DE OLIVEIRA
THIAGO DOMINGUES DE OLIVEIRA
THIAGO PIZARRO CARVALHO GOUVEIA
RAFAEL CAETANO DA SILVA
RAFAELLA FERREIRA DE OLIVEIRA
RODRIGO FERREIRA MALTA
RODRIGO MEDEIRO DE AGUIAR
ROMES ANTONIO FRANCO DE OLIVEIRA JNIOR

PORTO ELETRNICO COM ACIONAMENTO POR CHAVE DE


FIM DE CURSO

ITUIUTABA MG
2010

ALINE MENEZES DA COSTA


CAIO CSAR CAMPOS DE OLIVEIRA
FLAVIO ANTONIO RODRIGUES JUNIOR
GUSTAVO PEREIRA DE CASTRO NETO
HUGO AUGUSTO FREITAS DO CARMO
JOAO HENRIQUE DE FARIA
JOAO LUDOVICO MAXIMIANO BARBOSA
LUZIDALVA PAULI NA DE OLIVEIRA
THIAGO DOMINGUES DE OLIVEIRA
THIAGO PIZARRO CARVALHO GOUVEIA
RAFAEL CAETANO DA SILVA
RAFAELLA FERREIRA DE OLIVEIRA
RODRIGO FERREIRA MALTA
RODRIGO MEDEIRO DE AGUIAR
ROMES ANTONIO FRANCO DE OLIVEIRA JNIOR

PORTO ELETRNICO COM ACIONAMENTO POR CHAVE DE


FIM DE CURSO

Trabalho interdisciplinar apresentado Fundao


Educacional de Ituiutaba FEIT unidade associada a
Universidade do Estado de Minas Gerais - UEMG como
pr-requisito para obteno parcial de crditos, sob
orientao da Prof. Msc. Daniela de Freitas Borges.

ITUIUTABA - MG
2010

PORTO ELETRNICO COM ACIONAMENTO POR CHAVE DE FIM DE CURSO


ALINE MENEZES DA COSTA
CAIO CSAR CAMPOS DE OLIVEIRA
FLAVIO ANTONIO RODRIGUES JUNIOR
GUSTAVO PEREIRA DE CASTRO NETO
HUGO AUGUSTO FREITAS DO CARMO
JOAO HENRIQUE DE FARIA
JOAO LUDOVICO MAXIMIANO BARBOSA
LUZIDALVA PAULI NA DE OLIVEIRA
THIAGO DOMINGUES DE OLIVEIRA
THIAGO PIZARRO CARVALHO GOUVEIA
RAFAEL CAETANO DA SILVA
RAFAELLA FERREIRA DE OLIVEIRA
RODRIGO FERREIRA MALTA
RODRIGO MEDEIRO DE AGUIAR
ROMES ANTONIO FRANCO DE OLIVEIRA JNIOR
Este trabalho interdisciplinar apresentado foi julgado adequado para obteno parcial de crditos junto
Fundao Educacional de Ituiutaba FEIT unidade associada Universidade do Estado de Minas Gerais
- UEMG

Apresentada a banca examinadora, integrada pelos professores:


......................................................................................................................
Prof.: Daniela de Freitas Boges
Orientadora
......................................................................................................................
Prof.: Anderson de Melo Valado
Banca Examinadora
......................................................................................................................
Prof.: Adriana de Souza Guimares
Banca Examinadora

AGRADECIMENTOS

Deus, pelo dom da vida.


Aos familiares do Rafael Caetano, por nos tolerar durante meses e durante
vrias horas, inclusive madrugadas.
A equipe da JS Eletrnica, por nos ajudar sempre quando precisvamos de
alguma idia ou pea.
Ao Sr. Tnico, por nos ajudar na hora do trabalho em serralheria, fazendo um
preo justo.
Ao Sr. Arbilon, por estar sempre presente com seus conselhos.
Ao Sr. Luiz, por nos fornecer uma pea importante na montagem do projeto.
Ao alunos Rafael Caetano, Joo Ludovico e Joo Faria, por no terem desistido
hora nenhuma do projeto.

RESUMO

O projeto dever permitir que um porto seja aberto e fechado, tendo como princpio do
movimento o acionamento de chave liga/desliga e o trmino do movimento dever ser
automatizado atravs do estabelecimento de fim de curso que interrompe o movimento.
O fim de curso poder ser implementado atravs de chaves eletro-mecnica,
acionamento por campo magntico, eletro-im, dispositivos mecnicos ou outros
dispositivos que se acharem aplicveis.
O projeto permitir ao aluno avaliar noes de circuitos eltricos, controle e automao
em dispositivos prticos quando na utilizao de chaves, interruptores, motores
eltricos, campos eltricos e magnticos, dimensionamento de cabos e fios eltricos. Os
princpios de controle e automao bsicos como fim de curso, sentido de rotao,
controle de correntes eltricas e painis de controle para dispositivos eltricos tambm
sero abordados, permitindo uma abordagem de vrios contedos e disciplinas do curso.
Palavras-chave: Porto eletrnico, projeto interdisciplinar.

SUMRIO

1.

INTRODUO.........................................................................................................8

2.

TITULO.....................................................................................................................9

3.

OBJETIVOS............................................................................................................10

3.1.

GERAL..............................................................................................................10

3.2.

ESPECFICOS...................................................................................................10

4.

JUSTIFICATIVA....................................................................................................11

5.

TEMA......................................................................................................................12

5.1.

DELIMITAO DO TEMA.............................................................................12

5.2.

FORMULAO DO PROBLEMA..................................................................12

5.3.

HIPTESE.........................................................................................................12

5.4.

REVISO DE LITERATURA..........................................................................12

6.

CALCULO II...........................................................................................................15

6.1.

LIMITE...............................................................................................................12

6.2.

DERIVADA........................................................................................................15

6.3.

DERIVADA PARCIAL: DERIVADA DE DUAS OU MAIS VARIVEIS.......16

6.4.

INTEGRAL DEFINIDA.....................................................................................17

6.5.

DESENVOLVIMENTO......................................................................................19

7.

FSICA....................................................................................................................21

7.1.

MECNICA CINEMTICA...........................................................................21

7.2.

MOVIMENTO RETLINEO UNIFORME........................................................22

7.3.

MOVIMENTO RETLINEO UNIFORMEMENTE VARIADO........................23

7.3.

DESENVOLVIMENTO......................................................................................23

8.

CALCULO NUMRICO........................................................................................26

8.1.

POLINMIO.......................................................................................................26

8.2.

INTERPOLAO..............................................................................................27

8.3.

INTERPOLAO POLINOMIAL.....................................................................27

8.3.1. MTODO DA INTERPOLAO DE NEWTON.............................................28


8.3.2. MTODO DA INTERPOLAO DA INVERSA.............................................29
8.3.3. MTODO DA INTERPOLAO DE LAGRANGE........................................29
8.4.
9.

DESENVOLVIMENTO......................................................................................30
PROLOG.................................................................................................................31

9.1.

RESUMO DA HISTRIA DA INTELIGNCIA ARTIFICIAL.........................31

9.2.

RESUMO DA HISTRIA DO PROLOG............................................................31

9.3.

CARACTERSTICA............................................................................................32

9.4.

TIPOS DE DADOS..............................................................................................32

9.4.1. TIPOS DE DADOS PRIMITIVOS.....................................................................32


9.4.2. TIPOS DE DADOS ESTRUTURADOS............................................................32
9.4.3. TIPOS DE DADOS DEFINIDOS PELO USURIO.........................................33
9.5.

VARIVEIS EM PROLOG................................................................................33

9.6.

FATOS.................................................................................................................33

9.7.

OPERADORES...................................................................................................33

9.7.1. OPERADORES RELACIONAIS.......................................................................34


9.7.2. OPERADORES ARITMTICOS.......................................................................34
9.8.

ENTRADA E SADA..........................................................................................34

9.9.

BANCO DE FATOS............................................................................................34

9.10.

MANIPULANDO O BANCO DE FATOS.........................................................35

9.11.

DESENVOLVIMENTO......................................................................................35

10.
10.1.

LGICA DE PROGRAMAO...........................................................................51
DESENVOLVIMENTO......................................................................................51

11. CIRCUITOS ELTRICOS.....................................................................................52


11.1.

COMPONENTES DO CIRCUITO.....................................................................52

11.2.

DESENVOLVIMENTO......................................................................................54

12. CONCLUSO.........................................................................................................56
13. TRABALHOS FUTUROS......................................................................................57
14. WEBGRAFIA.........................................................................................................58
15. BIBLIOGRAFIA.....................................................................................................59
ANEXO 01 - FOTOS......................................................................................................61

1. INTRODUO

Esta pesquisa pretende mostrar a montagem e estudo de um porto automtico


deslizante com o trmino de movimento atravs da chave de fim de curso, este tipo de
porto o mais utilizado em residncias, pois possui uma mecnica mais simples e um
custo inferior aos demais. Para isso, articulam-se matrias do curso como Circuitos
Eltricos, Fsica, Clculo Diferencial e Integral I e II, Clculo Numrico, Linguagem de
Programao. Utilizando os conceitos de circuitos, hardwares, softwares, programao
de PIC, clculo de rea, clculo de velocidade. Pesquisas foram feitas conforme o que
foi passado durante o processo de inicializao e escolha do projeto. Articulam-se os
resultados a partir de idias de profissionais da rea de montagem e manuteno de
portes eletrnicos, e de professores do curso mencionado.

2. TTULO

Porto eletrnico deslizante com acionamento por chave com fim de curso.

3. OBJETIVOS

3.1.

GERAL

O projeto visa promover um maior envolvimento dos professores e alunos do


curso de Engenharia da Computao com a rea de automao industrial, foco do curso,
promovendo uma maior interao entre os contedos estudados, passando o aluno de
uma atuao passiva para ativa, descobrindo a importncia de cada uma das disciplinas
na construo do conhecimento inerente ao Engenheiro da Computao.
3.2.

ESPECFICOS

A formao continuada dos discentes, incentivando-os participarem do

desenvolvimento de pesquisas com vistas na produo de um conhecimento que seja


produto da interdisciplinaridade.

Propiciar uma experincia relacional entre os alunos e os professores,

buscando aproximar a teoria, que muitas vezes limita o conhecimento, das experincias
prticas dos saberes no acadmicos para, a partir da, produzir um saber novo,

Possibilitar ao aluno de graduao o envolvimento com pesquisa,

engajando-o nas prticas relacionadas ao tema deste projeto, de forma a articular


atividades ligadas ao ensino, pesquisa e extenso.

Agregar os conhecimentos produzidos a partir das diferentes reas das

Engenharias e de suas tecnologias de forma que se articulem em prol de um raciocnio


lgico, crtico e objetivo, levando a concluso mais prxima do real.

10

Obter dados precisos atravs da anlise crtica dos livros didticos e

paradidticos.

4.

JUSTIFICATIVA

Atualmente, o uso de porto eletrnico se tornou crescente em residncias e


apartamentos, no Brasil, devido ao fato do aumento crescente da violncia urbana, alm
de ser uma inovao que permite ao usurio uma grande comodidade tanto para entrar
como para sair de casa ou do trabalho. Utilizaremos o sistema deslizante, pelo fato dele
possuir uma mecnica mais simples e ser o mais utilizado na regio.
Isolando-se este fato, observa-se que esta tecnologia um potencial objeto de
estudo para universitrios em cursos com enfoque na rea de automao industrial. No
seu desenvolvimento possvel integrar diversas reas metodolgicas, j que acionado
eletricamente e possui comandos eletrnicos automatizados.

Isso possibilita ao

estudante maior confiana em seu curso de graduao, integrao da teoria com a


prtica e ampliao do conhecimento prtico e tcnico com a manipulao de
ferramentas e objetos cotidianos.

11

5.

TEMA

Porto eletrnico
5.1.

DELIMITAO DO TEMA

Porto eletrnico deslizante com acionamento por chave com fim de curso
5.2.

FORMULAO DO PROBLEMA

Nos dias atuais, os alunos de graduao em engenharia esto preparados para


desenvolver projetos?
5.3.

HIPTESE

Com os conhecimentos adquiridos no decorrer do curso, graduandos em


engenharia so capazes de desenvolver projetos como o de um porto eletrnico.
5.4.

REVISO DE LITERATURA

Antigamente havia portes que eram abertos e fechados manualmente, tinha-se


que sair do carro sempre que se precisava entrar ou sair de determinado local, deixando
as pessoas mais vulnerveis a um assalto. Atualmente foram introduzidos novos portes
que devido ao avano da tecnologia, abrem-se e fecham-se automaticamente, dispondo

12

de um sistema de travamento automtico que dispensa o uso de cadeado, colaborando


com a segurana.
Para se definir um sistema de automatizao mais adequado a cada necessidade
preciso identificar fatores como peso, dimenso e caractersticas do tipo de abertura:
deslizante, basculante ou pivotante. As estruturas operam com tipos diferentes de
motores e potncias. Dependendo do tamanho do porto e do nmero de vezes que ser
usado num certo espao de tempo ser determinada a potncia atribuda ao motor.

Deslizante O porto abre lateralmente e desliza sobre trilhos. A

metragem da fachada precisa ter no mnimo o dobro do tamanho do porto, para que
tenha espao por onde correr ao ser aberto. Dispem de acionamento manual caso
ocorra uma queda de energia. De fcil instalao e manuteno, o mais comum em
residncias pelo fato de um preo mais acessvel.

Basculante Abre para cima e o porto fica um pouco para dentro e um

pouco para fora da garagem, sem tomar espao do carro, j que avana por cima do
veculo. So indicados para quem deseja aperfeioar a rea da fachada ou para
residncias com terreno mais estreito.

Pivotante Tem abertura para dentro ou para fora, girando sobre um piv

de sustentao lateral, semelhante ao movimento de uma porta. Pode ser em folha nica
ou dupla, sendo necessrio um sistema motorizado para cada uma das partes. No
muito utilizado em residncias porque exige grandes vos livres para abertura e
fechamento.
Portes automticos possuem um sistema de chave de fim de curso
funcionando de modo a desligar o motor assim que o porto chega sua
abertura/fechamento mximo. Isto evita que o motor continue funcionando aps o fim
do percurso, da o nome de chave de fim de curso.
A mecnica dos portes costuma sofrer desgaste natural decorrente do uso
dirio. Para prolongar a vida til e manter o bom funcionamento do aparelho, realiza-se
a manuteno preventiva que geralmente consiste em lubrificar e ajustar algumas peas,
levando o aparelho a uma vida til de at dez anos ou mais. Sem esse tipo de preveno
o aparelho pode durar apenas dois anos.
Alguns anos atrs, os portes eletrnicos privilegiavam a questo esttica, mas
atualmente o equipamento evoluiu trazendo inovaes como a embreagem eletrnica,
13

que substitui a mecnica, alm de uma preocupao com a segurana do usurio em


relao ao uso do aparelho. Nos modelos mais antigos era comum ocorrer acidentes,
agora o ajuste de potncia suficiente apenas para o fechamento do porto, evitando
riscos de leso fsica ou mesmo danos graves no automvel. Alguns acessrios podem
agregar funes ao automatizador, proporcionando mais segurana ao usurio. Por
exemplo, a tecnologia anti-esmagamento, que trava o equipamento caso o porto
encontre um obstculo evitando que pessoas ou veculos sejam pegos de surpresa no
percurso do porto. Uma novidade que tem feito sucesso o inversor de frequncia
tecnologia que torna a abertura mais rpida, chegando a 5 segundos enquanto a mdia
de 13 segundos, proporcionando uma maior comodidade.

14

6.

CLCULO II

6.1. LIMITE

Em matemtica, o conceito de limite usado para descrever o comportamento


de uma funo medida que o seu argumento se aproxima de um determinado valor,
assim como o comportamento de uma sequncia de nmeros reais, medida que o
ndice (da sequncia) vai crescendo, i.e. tende para infinito. Os limites so usados no
clculo diferencial e em outros ramos da anlise matemtica para definir derivadas e a
continuidade de funes.

6.2. DERIVADA

Diz-se que uma funo f derivvel (ou diferencivel) se, prximo de cada
ponto a do seu domnio, a funo f(x) f(a) se comportar aproximadamente como uma
funo linear, ou seja, se o seu grfico for aproximadamente uma reta. O declive de uma
tal reta a derivada da funo f no ponto a e representa-se por:

15

ou por

Seja I um intervalo com mais do que um ponto do conjunto R dos nmeros


reais e seja f uma funo de I em R. Se a = I, diz-se que f derivvel em a se existir o
limite e o mesmo for finito.

Se for esse o caso, aquele limite designa-se por derivada da funo f no ponto a
e representa-se por f(a). Note-se que a derivada de f em a, se existir, nica. Isto
continuaria a ser verdade se I fosse um conjunto qualquer de nmeros reais e se a fosse
um ponto no isolado de I.
Segundo esta definio, a derivada de uma funo de uma varivel definida
como um processo de limite. Considera-se a inclinao da secante, quando os dois
pontos de interseco com o grfico de f convergem para um mesmo ponto. No limite, a
inclinao da secante igual da tangente.

6.3. DERIVADA PARCIAL: DERIVADA DE DUAS OU MAIS


VARIVEIS

Considerando uma funo de duas variveis (x,y), definida em uma regio S


do plano, que admite duas derivadas parciais ou seja

x ou

que obtida

considerando y constante e derivando a funo em relao a x: j a derivada y ou

obtida considerando x constante e derivando a funo em relao a y.


fx(a,b) =

(a,b) =

16

fy(a,b) =

(a,b) =

6.4. INTEGRAL DEFINIDA

Se f uma funo de x, ento a sua integral definida uma integral restrita a


valores em um intervalo especfico, digamos, a x b . O resultado um nmero que
depende apenas de a e b, e no de x. Vejamos a definio.

Definio:
Seja f uma funo contnua no intervalo [a, b]. Suponha que este intervalo seja
dividido em n partes iguais de largura x = (b a) / n e seja x j um nmero pertencente
ao j-simo intervalo, para j = 1, 2, ..., n. Neste caso, a integral definida de f em [a, b],

denotada por

, dada por

x, se este limite

existir.
Pode-se mostrar que se a funo y = f (x) contnua em um intervalo [a,b],
ento ela integrvel em [a,b] .

Interpretao geomtrica:
Suponha que y = f (x) seja contnua e positiva em um intervalo [a,b] .
Dividimos este intervalo em n subintervalos de comprimentos iguais, ou seja, de
comprimento

=, de modo que a = a0 < a1 < a2 < ... < an = b. Seja xj um

ponto qualquer no subintervalo

1, 2,..., n. Construmos em cada um

desses subintervalos retngulos com base x e altura f (xj), conforme a figura abaixo:

17

A soma das reas dos n retngulos construdos dada pelo somatrio das reas
de cada um deles, isto :

Intuitivamente possvel admitir que medida que n cresce, x diminui, e


conseqente-mente o somatrio anterior converge para a rea A da regio limitada pelo
grfico de f e pelas retas y = 0, x = a e x = b. Portanto, a rea desta regio dada por:

mas este limite exatamente igual definio de integral definida e com isso
observamos que a integral definida de uma funo contnua e positiva, para x
variando de a at b, fornece a rea da regio limitada pelo grfico de f, pelo eixo-x e
pelas retas x = a e x = b.
Observao: Na definio de integral definida consideramos uma funo
contnua qualquer, podendo assumir valores negativos. Nesse caso o produto
representa o negativo da rea do retngulo. Portanto, se f (x) < 0 para x [a,b], ento a
rea da regio limitada pelo grfico de f, pelo eixo-x e pelas retas x = a e x = b dada
por
A=

O clculo de uma integral definida atravs de sua definio pode ser


extremamente complexo e at invivel para algumas funes. Portanto, no a utilizamos
para calcular integrais definidas, e sim um teorema que considerado um dos mais
importantes do Clculo:
18

Teorema Fundamental do Clculo: Se y = f (x) uma funo contnua no


intervalo [a,b] e F(x) = f (x) [isto , F(x) uma primitiva ou anti-derivada f (x) ], ento

Propriedades da integral: Se f e g so funes contnuas no intervalo [a,b],


ento:

a)

, onde c uma constante qualquer.

b)

c)
d)

e)
f) Se

6.5. DESENVOLVIMENTO

O uso de limite e derivada foram implicados no clculo de acelerao e


velocidade instntanea aplicando a sua regra na funo horria do tempo, quando
aplicamos a 1 derivada achamos a velocidade instantnea e quando aplicamos a
derivada na frmula da velocidade instantnea ou no caso a 2 derivada da funo
horria achamos a acelerao instantnea.

S(t) = V(instantnea)
S(t) = a(instantnea)
19

Utilizamos o estudo de Mximos e Mnimos para o clculo das dimenses do


porto, poderamos ter utilizado tambm a definio de Integral simples ou dupla para
achar o mesmo, porm optamos pelo uso somente deste mtodo.

Base = 28,2 cm

At = 408,5 cm

Altura = 14,5 cm

V = A x h = 368 cm

Profundidade = 0.90 cm
Clculo das dimenses atravs de mximos e mnimos.

S = 368 = x.y.z

At = 2x.z + 2 y.z + 2 x.y

z=

At =

z = 7,17

+ 2x.y

At =

y=

y=

7,16
= 7,16

0
20

7,17

H(7,17; 7,16) =

Portanto P(7,17; 7,16) determina dimenses mnimas para o porto.

7.

FSICA

7.1. MECNICA CINEMTICA


Cinemtica
Estuda o movimento sem sua causa.
Partcula

21

Dizemos que um corpo considerado uma partcula quando suas dimenses


so desprezadas em relao a outras dimenses. Entretanto a massa do corpo nunca
desprezada.
Trajetria
Caminho descrito por um corpo em movimento.
Referencial
O movimento de um corpo relativo, depende do referencial adotado.
Distncia
a variao entre duas posies numa trajetria.

S = SB SA

Deslocamento
o seguimento de reta que une o ponto inicial e o ponto final de um trajetria.

C = 2..R
S = (2..R)/2 = .R
S = 2.R

Velocidade Mdia
a razo entre a distncia percorrida e o tempo gasto no percurso.

22

Velocidade Instantnea
o limite da velocidade media quando t 0. igual a taxa de variao da
posio com o tempo.

7.2. MOVIMENTO RETLINEO UNIFORME

um tipo de movimento onde o mvel percorre determinada trajetria com


velocidade sempre constante, ou seja, com acelerao nula. Nesse caso, ele se desloca
no espao de forma uniforme em intervalos de tempo tambm uniformes, isto , iguais.
Isto faz com que a velocidade mdia seja sempre igual a velocidade instantnea.
As frmulas utilizadas para o clculo das variveis que se deseja encontrar,
neste tipo de movimento, so:
Frmula do espao S = So + Vt
Frmula da velocidade mdia Vm = (S So) / (t to)
Pode-se observar que uma apenas a reorganizao da outra.

7.3.

MOVIMENTO RETLINEO UNIFORMEMENTE VARIADO

23

No movimento retilneo uniformemente variado, tem-se tambm, alm da


variao do espao, a variao da velocidade do mvel, pois existe uma determinada
acelerao, que pode ser tanto positiva quanto negativa (desacelerao). Essa variao
da velocidade, no entanto, uma variao uniforme, pois o valor da acelerao sempre
constante.
Existe uma variedade maior de frmulas utilizadas para se realizar clculo que
envolvam este tipo de movimento. Seguem abaixo:
Frmula do espao S = So + Vot + (at)/2
Frmula da acelerao mdia Am = (V Vo) / (t to)
Frmula da Velocidade instantnea V = Vo + 2a dS ou V = Vo + at
possvel encontrar o valor da acelerao derivando a frmula V = Vo + at.

7.4. DESENVOLVIMENTO

Analisando-se o modo de abrir do porto utilizado, considera-se que


seu movimento o Movimento Retilneo Uniformemente Variado, pois ele
parte de um estado de repouso onde sua velocidade de mdulo zero
atravs da aplicao de uma fora, produzida pelo motor, para um estado de
ganho de velocidade at sua total abertura.
Como o motor aplica sobre o porto uma fora, isto gera uma
acelerao, a qual faz com que o porto ganhe velocidade, em qualquer um
dos sentidos, seja abrindo ou fechando. Aps ser medida a massa do porto,
cronometrado seu tempo de abertura (que igual ao de fechamento) e
medido o seu tamanho, foi-se possvel calcular as grandezas fsicas
associadas ao seu tipo de movimento, no caso, a fora aplicada pelo motor
sobre o porto, a acelerao produzida e a sua velocidade mdia e final.
Seguem abaixo os clculos:
24

Massa = 388,5g
Tempo de abertura = 1s
S = 0, 255m
Calculando a acelerao:

Calculando a velocidade mxima do porto:

Calculando a fora aplicada para realizar o deslocamento:

Foram utilizados estes valores pois considera-se que o sistema onde


o porto se desloca seja ideal, ou seja, com atrito nulo, pois as superfcies
foram bastante polidas e foram utilizados lubrificantes para gerar o menor
atrito possvel.

25

26

8.

CALCULO NUMRICO

8.1. POLINMIO

Para polinmios podemos encontrar vrias definies diferentes como:


Polinmio uma expresso algbrica com todos os termos semelhantes reduzidos.
Polinmio um ou mais monmios separados por operaes.
As duas podem ser aceitas, pois se pegarmos um polinmio encontraremos nele
uma expresso algbrica e monmios separados por operaes.

3xy monmio, mas tambm considerado polinmio, assim podemos

dividir os polinmios em monmios (apenas um monmio), binmio (dois monmios) e


trinmio (trs monmios).
3x + 5 um polinmio e uma expresso algbrica.
Como os monmios, os polinmios tambm possuem grau e assim que eles
so separados. Para identificar o seu grau, basta observar o grau do maior monmio,
esse ser o grau do polinmio.
Com os polinmios podemos efetuar todas as operaes: adio, subtrao,
diviso, multiplicao, potenciao.

8.2. INTERPOLAO

Interpolar uma funo f(x) consiste em aproximar essa funo por uma outra
funo g(x), escolhida entre uma classe de funes definida a priori e que satisfaa
algumas propriedades. A funo g(x) ento usada em substituio funo f(x).
A necessidade de se efetuar esta substituio surge em vrias situaes, como
por exemplo:

27

a.) quando so conhecidos somente os valores numricos da funo para um


conjunto de pontos e necessrio calcular o valor da funo em um ponto no tabelado;
b.) quando a funo em estudo tem uma expresso tal que operaes como a
diferenciao e a integrao so difceis (ou mesmo impossveis) de serem realizadas.

8.3. INTERPOLAO POLINOMIAL

Suponhamos que conhecemos a funo f em apenas em (n+1) pontos do


intervalo [a,b] e que pretendemos conhec-la em qualquer outro ponto desse intervalo.
Para tal vamos, com base nos pontos conhecidos, construir uma funo que substitua
f(x) dentro de um limite de preciso. Uma tal funo designa-se por funo
aproximante.
A escolha da funo aproximante aqui um polinmio, mas poderia ser outra.
Se escolhssemos funes racionais teramos interpolao racional, se escolhssemos
funes exponenciais teramos interpolao exponencial.
Teorema: Sejam dados (n+1) pontos distintos x0, x1, ..., xn, (xi xj), e os
valores de f(x) nesses pontos f(x0), f(x1), ...,f(xn). Ento existe um nico polinmio
Pn(x) de grau inferior ou igual a n que satisfaz a f(xi)=Pn(xi), i=0, ...,n.
8.3.1. MTODO DA INTERPOLAO DE NEWTON

Trata-se de uma frmula alternativa para o clculo do polinmio interpolador,


baseada numa construo sucessiva a partir dos polinmios de graus inferiores. Para
estabelecer essa frmula convm introduzir a noo de diferena dividida.
Considerando os n+1 pontos (x0,f(x0)), ., (xn,f(xn)) e o polinmio interpolador
pn(x). Newton props de representar o polinmio pn(x) da forma:
pn(x)=d0+d1(x-x0)+d2(x-x0)(x-x1)+.+dn(x-x0).(x-xn-1)
Os coeficientes dk, k=0,., n so diferenas divididas de ordem k entre os pontos
(xj,f(xj)), j=0,.,k

28

A forma de Newton para o polinmio Pn(x) que interpolador f(x) em x0, x1, ,
xn, (n+1) pontos distintos a seguinte:
Pn ( x ) = f [ x0 ] + ( x x0 ) f [ x0 , x1 ]
Operador Diferenas Divididas
+ ( x x0 ) ( x x1 ) f [ x0 , x1, x 2 ] + K + ( x x0 ) ( x x1 ) K ( x x n 1 ) f [ x0 ,
x1,K, x n ]
Operador diferenas divididas f [ x0 , x1,K, x n ] a DIFERENA DIVIDIDA
de ordem n da funo f(x) sobre os n + 1 pontos x0 , x1,K, x n
Operador diferenas divididas x Ordem 0 Ordem 1 Ordem 2 . Ordem n x0
f[x0] f[x0,x1] x1 f[x1] f[x1,x2] x2 f[x2] f[x1,x2,x3] f[x0,.,xn] f[xn-2, xn-1, xn] . xn
f[xn] f[xn-1, xn] f[x0,x1,x2]
Operador diferenas divididas f(x) uma funo tabelada em x0,.,xn. Os
operadores de diferenas divididas so definidos por:
f [ x0 ] = f ( x0 ) f [ x0 , x1 ] = f [ x1 ] f [ x0 ] x1 x0 f [ x , x , x ] = f [ x1 , x2 ] f
[ x0 , x1 ] 0 1 2 x2 x0 f [ x ,., x ] = f [ x1 ,., xn ] f [ x0 ,., xn 1 ] 0 n xn x0 ordem 0 ordem
1 ordem 2 ordem n

8.3.2. MTODO DA INTERPOLAO INVERSA

A interpolao inversa um dos vrios mtodos de interpolao polinomial


utilizados. Consiste em encontrar a abscissa aproximada de um ponto a partir de sua
ordenada. Ou seja, conhecido o valor de f(x) e utiliza-se este para encontrar o valor de
x.
Para se chegar ao polinmio interpolador, deve-se seguir uma srie de passos
utilizando pontos j previamente conhecidos.
Constri-se uma tabela chamada de diferenas divididas utilizando os pontos
conhecidos de f(x). Faz-se a tabela at que se atinja uma ordem n+1, sendo n+1 o
nmero de pontos utilizados. Aps isso, montado o polinmio interpolador de acordo
com a seguinte frmula:
29

P(y) = g [yo] + (y yo) * g [yo, y1] + (y yo) * (y y1) * g [y0, y1, y2]
E assim sucessivamente, dependendo do nmero de ordens utilizadas, as quais
so obtidas montando-se a tabela de diferenas divididas.
O erro na interpolao calculado como se segue:
Rn(y) = |(y yo) (y y1) (y y2) ... (y yn) | |g [yo, y1, y2,, yn] |

8.3.3. MTODO DA INTERPOLAO DE LAGRANGE

O polinmio proposto por Lagrange estabelece a existncia e unicidade do


polinmio de grau inferior ou igual a n, interpolador de uma funo em n+1 pontos
distintos.
Seja f uma funo definida num intervalo [a,b] e conhecida nos pontos da
partio. Existe um polinmio Pn de grau menor ou igual a n interpolador de f nos
pontos escolhidos ou dados.
A frmula para determinao do polinmio interpolador de Lagrange :

8.4. DESENVOLVIMENTO

Para encontrar a funo horria do tempo de abertura e/ou fechamento


utilizamos a interpolao polinomial na Forma de Newton, pegamos os espao
percorrido pelo porto e o tempo que ele leva para chegar a tal espao em determinado
momento, usando isso formamos a tabela e montamos a equao.

30

9.

t(x)

10

15

20

25

m(y)

0,5

0,75

1,2

1,63

PROLOG

9.1. RESUMO DA HISTRIA DA INTELIGNCIA ARTIFICIAL

A Inteligncia Artificial foi desenvolvida com o passar dos tempos, sendo que
alguns dos seus precursores, de acordo com as lendas vm da antiga Grcia.
Oficialmente a Inteligncia Artificial nasceu em 1956, atravs das publicaes de Turing
com o Jogo de Imitao (do ingls, "Imitation Game").
A histria da Inteligncia Artificial est profundamente ligada a histria dos
computadores.

31

9.2. RESUMO DA HISTRIA DO PROLOG

(BERGIN et al., 1996), A linguagem de programao Prolog nasceu de um


projeto que no tinha por foco a implementao de uma linguagem de programao,
mas o processamento de linguagens naturais. Na Universidade de Marselha, Alain
Colmerauer e Robert Pasero trabalhavam na parte de linguagem natural e Jean Trudel e
Philippe Roussel trabalhavam na parte de deduo do projeto. Interessado pelo mtodo
de resoluo SL, Trudel persuadiu um dos seus inventores, Robert Kowalski, que uniuse ao projeto. O projeto resultou em uma verso preliminar da linguagem Prolog em fins
de 1971 sendo que a verso definitiva apareceu em fins de 1972.
O Prolog se tornou uma referncia quando se trata de linguagem de
programao voltada para inteligncia artificial e lingstica computacional, pois tem
sido utilizada para aplicaes de computao simblica, como banco de dados
relacionais, compreenso de linguagens naturais (portugus, ingls, etc.), automao de
projetos, anlise de estruturas bioqumicas e sistemas especialistas.

9.3. CARACTERSTICA

O PROLOG especifica como deve ser a soluo, ao invs de dar o algarismo


para sua resoluo. A soluo se obtm mediante busca aplicando a lgica de
predicados.

9.4. TIPOS DE DADOS

9.4.1.

TIPOS DE DADOS PRIMITIVOS:

Constantes e Variveis:
Inteiros
32

Reais
Caracteres
muito importante lembrar que dados do tipo "String" em PROLOG, devem
sempre ser utilizados entre apstrofos, caso contrrio o compilador ir aceitar a entrada
como uma varivel no alocada, ocasionando erro na sada.

9.4.2.

TIPOS DE DADOS ESTRUTURADOS

tomos: constantes e variveis de cadeia.

Listas representadas entre [ ].

9.4.3. TIPOS DE DADOS DEFINIDOS PELO USURIO


As regras para definir relaes podem atuar como tipos de usurio.
9.5. VARIVEIS EM PROLOG

Os identificadores com a letra inicial maiscula ou comeam com "_"


representam variveis.
Em Prolog uma varivel uma incgnita, cujo valor desconhecido, mas
quando instanciamos um objeto a ela, a mesma no poder ser mais modificada, ao
contrrio de outras linguagens de programao que quando uma varivel declarada
reservado um espao para ela, porm ela pode ser modificada a qualquer momento.

9.6. FATOS

Os identificadores com a letra inicial minscula representam fatos.


33

A estrutura de um fato formada por um predicado, seus argumentos (objetos)


e finalizamos a instruo com um ponto(.) equivalente ao ponto-vrgula das linguagens
comuns de programao.
O predicado a relao sobre os quais os objetos iro interagir.

9.7. OPERADORES

Operadores so utilizados para construir a lgica do programa, em Prolog


existem tanto os operadores relacionais quanto os aritmticos.

9.7.1.

OPERADORES RELACIONAIS

Igualdade: =
Diferena: \= (em alguns compiladores o operador de diferena "<>")
Menor que: <
Maior que: >
Menor ou igual: =< (alguns compiladores seguem a verso ">=")
Maior ou igual: >=

9.7.2. OPERADORES ARITMTICOS

+, -, *, /, mod, is.

9.8. ENTRADA E SADA

O Prolog possui comandos bsicos de entrada e sada: read(), write().


34

9.9. BANCO DE FATOS

O banco de dados em PROLOG dado por uma base de fatos, a modificao


de um fato existente impossvel, esses fatos s podem ser verificados, inseridos ou
excludos.

9.10. MANIPULANDO O BANCO DE FATOS

No Prolog dinamicamente podemos incluir e excluir regras ou fatos. Uma


alterao pode ser feita pela excluso e incluso da informao alterada.
Para incluir e excluir fatos e regras so utilizados os predicados que seguem:
assert (Clusula) armazena de modo permanente a clusula passada como
parmetro.
A clusula ser armazenada no fim da lista de clusulas associadas ao
predicado.
asserta (Clusula) idem assert; porm a clusula ser armazenada no incio
da lista de clusulas associadas ao predicado.
assertz (Clusula) idem assert; porm a clusula ser armazenada no final
da lista de clusulas associadas ao predicado.
retract (Clusula) remove uma clusula da base de fatos. As clusulas a
serem removidas devem ser declaradas como dinmicas.

9.11. DESENVOLVIMENTO
A aplicao da matria Linguagens de Programao foi apenas terica, pois de
ltima hora tivemos que trocar todo o circuito devido inexperincia do grupo com o

35

uso de PIC, mas fica como uma futura implementao o uso do PIC no circuito e
controle via mquina.
Moradores cadastrados:
residentes.TXT
morador("NOME","SOBRENOME",IDADE,APTO,SENHA)
Registro das pessoas que abrem o porto:
historico.TXT
hist(Nome,Sobrenome,APTO)
Administradores cadastrados:
gerente.TXT
prioridade("NOME","CARGO",SENHA,COD.SEGURANCA)
Registro das pessoas que alteraram o banco de fatos:
alterao.TXT
alterado(NOME,CARGO)
Cdigo para simular um porteiro virtual utilizando a Programao Lgica
(PROLOG):
include "porteirovirtual.inc"
facts - residentes
morador(string,string,integer,integer,integer)
facts - historico
hist(string,string,integer)
facts - gerente
prioridade(string,string,integer,integer)
facts - alteracao
alterado(string,string)

36

predicates
nondeterm inicio()
nondeterm menu()
nondeterm opcao1(integer)
nondeterm teste_abrir(string,integer,integer)
nondeterm opcao2(integer)
nondeterm teste_acesso(integer,integer)
nondeterm opcao3(integer)
nondeterm menu_prioridade()
nondeterm remove(string,string,integer,integer)
nondeterm abrir()
nondeterm salvar()
nondeterm menu_prioridade2()
nondeterm teste_acesso2(integer,integer)
nondeterm opcao_prio(integer)
nondeterm remove2(string,string,integer,integer)
nondeterm abrir2()
nondeterm abrir_hist()
nondeterm abrir_alt()
nondeterm existe(string,string,integer,integer)
nondeterm atualiza(integer,string,string,integer,integer)
nondeterm existe2(string,string,integer)
nondeterm atualiza2(integer,string,string,integer)
clauses
%BLOCO INICIAR PROGRAMA E ABRIR ARQUIVOS ---------------------------------inicio():write("\t\tPORTEIRO ELETRNICO\n\n"),
consult("residentes.txt",residentes),
consult("historico.txt",historico),
consult("gerente.txt",gerente),
consult("alteracao.txt",alteracao),
menu().

37

%BLOCO SALVAR -------------------------------------------------------------------------------salvar():write("\t\t\n\nSALVANDO O ARQUIVO"),


save("residentes.txt",residentes),
save("historico.txt",historico),
save("gerente.txt",gerente),
save("alteracao.txt",alteracao).

%MENU PRINCIPAL -----------------------------------------------------------------------------menu():write("\n\n \t\tMENU PRINCIPAL\n\n",


"1 - ABRIR O PORTO\n",
"2 - EDITAR O BANCO DE DADOS\n",
"3 - SAIR DO PROGRAMA\n",
"\nDIGITE UMA OPO: ",
"\n>>> "),
readint(A),
opcao1(A).
opcao1(1):-!,
write("\n","\t\tABRIR O PORTO"),
write("\nDigite o nome: "),
readln(Nome),
write("\nDigite o numero do apartamento de ",Nome,": "),
readint(Ap),
write("\nDigite a senha: "),
readint(Pass),
teste_abrir(Nome,Ap,Pass).
opcao1(2):-!,
write("\n","\t\tATENO: VOC PRECISA TER AUTORIZAO PARA
ALTERAR O BANCO DE DADOS"),
38

write("\n\nDESEJA CONTINUAR? :",


"\n1 - PROSSEGUIR",
"\n2 - VOLTAR PARA O MENU PRINCIPAL",
"\n\n>>> "),
readint(B),
opcao2(B).
opcao1(3):-!,
write("\n<><><> OBRIGADO POR USAR O NOSSO PROGRAMA <><><>"),
salvar().
opcao1(_):write("\n \t\tOPO INESXISTENTE"),
write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),
menu().
%BLOCO OPO 1 ------------------------------------------------------------------------------%BLOCO OPO 1.1 ----------------------------------------------------------------------------teste_abrir(Nome,Ap,Senha):morador(Nome,Sobrenome,_,Ap,Senha),!,
write("\nNome: ",Nome,
"\nSobrenome: ",Sobrenome,
"\nNmero do Apartamento: ", Ap),
assertz(hist(Nome,Sobrenome,Ap)),
write("\n<><><> O PORTO EST SENDO ABERTO <><><>\n"),
menu().
teste_abrir(_,_,_):write("\n<><><> SENHA INCORRETA <><><>\n"),
write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),
menu().
%BLOCO OPO 2 ------------------------------------------------------------------------------39

opcao2(1):-!,
write("\n \tCUIDADO: NO ALTERE OS DADOS INDEVIDAMENTE\n"),
write("DIGITE A SENHA DE ACESSO: "),
readint(Senha1),
write("DIGITE O CDIGO DE SEGURANA: "),
readint(Acesso1),
teste_acesso(Senha1,Acesso1),
menu_prioridade().

opcao2(2):-!,
write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),
menu().
opcao2(_):write("\n \t\tOPO INESXISTENTE"),
write("\n \t\tATENO: VOC PRECISA TER AUTORIZAO PARA
ALTERAR O BANCO DE DADOS"),
write("\n\nDESEJA CONTINUAR? :",
"\n1 - PROSSEGUIR",
"\n2 - VOLTAR PARA O MENU PRINCIPAL",
"\n\n>>> "),
readint(C),
opcao2(C).
teste_acesso(Senha,Acesso):prioridade(Nome,Cargo,Senha,Acesso),!,
write("\t\t \nLOGIN EFETUADO COM SUCESSO\n\n"),
write("\nNome: ",Nome,
"\nCargo: ", Cargo),
assertz(alterado(Nome,Cargo)).
teste_acesso(_,_):write("\t\t \nSENHA DE ACESSO E/OU DE SEGURANA INCORRETA\n\n"),
40

write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),


menu().
menu_prioridade():write("\n \t\tSEJA BEM-VINDO AO SISTEMA CENTRAL",
"\n\n O QUE DESEJA FAZER:",
"\n1 - INSERIR NOVO MORADOR",
"\n2 - ATUALIZAR SENHA",
"\n3 - EXCLUIR MORADOR",
"\n4 - CONSULTAR MORADORES CADASTRADOS",
"\n5 - VOLTAR AO MENU PRINCIPAL",
"\n >>> "),
readint(D),
opcao3(D).
opcao3(1):-!,
write("\n<><><> INSERIR UM NOVO MORADOR <><><>"),
write("\nDigite o nome: "),
readln(Nome),
write("\nDigite o sobrenome: "),
readln(Sobrenome),
write("\nDigite a idade de ",Nome,": "),
readint(Idade),
write("\nDigite o numero do apartamento de ",Nome,": "),
readint(Ap),
remove(Nome,Sobrenome,Idade,Ap),
write("\nDigite a senha: "),
readint(Senha),
assertz(morador(Nome,Sobrenome,Idade,Ap,Senha)),
write("\n<><><> MORADOR INSERIDO COM SUCESSO <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade().
opcao3(2):-!,
41

write("\n<><><> ATUALIZAR OS DADOS DE UM MORADOR <><><>"),


write("\nDigite o nome: "),
readln(Nome),
write("\nDigite o sobrenome: "),
readln(Sobrenome),
write("\nDigite a idade de ",Nome,": "),
readint(Idade),
write("\nDigite o numero do apartamento de ",Nome,": "),
readint(Ap),
existe(Nome,Sobrenome,Idade,Ap).
opcao3(3):-!,
write("\n<><><> EXCLUIR A ENTRADA DE UM MORADOR EXISTENTE
<><><>"),
write("\nDigite o nome: "),
readln(Nome),
write("\nDigite o sobrenome: "),
readln(Sobrenome),
write("\nDigite a idade de ",Nome,": "),
readint(Idade),
write("\nDigite o numero do apartamento de ",Nome,": "),
readint(Ap),
write("\nDigite a senha: "),
readint(Senha),
retractall(morador(Nome,Sobrenome,Idade,Ap,Senha)),
write("\n<><><> REMOVENDO ENTRADAS <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade().
opcao3(4):-!,
write("\n<><><> CONSULTA A LISTA DE MORADORES CADASTRADOS
<><><>"),
abrir(),
write("\n<><><> FIM DA CONSULTA <><><>"),
42

write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),


menu_prioridade().
opcao3(5):write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),
menu().
opcao3(9999):-!,
write("\n \tREA RESTRITA \n\n >>> FAA O LOGIN DE PRIORIDADE
NOVAMENTE\n"),
write("DIGITE A SENHA DE ACESSO: "),
readint(Senha2),
write("DIGITE O CDIGO DE SEGURANA: "),
readint(Acesso2),
teste_acesso2(Senha2,Acesso2),
menu_prioridade2().
opcao3(_):write("\n \t\tOPO INESXISTENTE"),
write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),
menu().
%BLOCO OPO 2.1 ----------------------------------------------------------------------------remove(Nome,Sobrenome,Idade,Ap):morador(Nome,Sobrenome,Idade,Ap,Senha),!,
write("\n<><><> REMOVENDO ENTRADAS <><><>"),
retractall(morador(Nome,Sobrenome,Idade,Ap,Senha)).
remove(_,_,_,_):write("\n<><><> NO H REGISTROS ATUAIS DESTE MORADOR <><><>").
%BLOCO OPO 2.2 ----------------------------------------------------------------------------existe(Nome,Sobrenome,Idade,Ap):morador(Nome,Sobrenome,Idade,Ap,_),!,
write("\n\nDeseja mesmo atualizar os dados de: \nNome: ",Nome," ",Sobrenome,"\n
43

Apto N: ",Ap),
write("\n\n1 - SIM\n2 - NO\n >>> "),
readint(E),
atualiza(E,Nome,Sobrenome,Idade,Ap).
existe(_,_,_,_):write("\n<><><> MORADOR NO CADASTRADO <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade().
atualiza(1,Nome,Sobrenome,Idade,Ap):-!,
write("\n<><><> REMOVENDO ENTRADAS <><><>"),
retractall(morador(Nome,Sobrenome,Idade,Ap,_)),
write("\nDigite o nome: "),
readln(_Nome),
write("\nDigite o sobrenome: "),
readln(_Sobrenome),
write("\nDigite a idade de ",_Nome,": "),
readint(_Idade),
write("\nDigite o numero do apartamento de ",_Nome,": "),
readint(_Ap),
write("\nDigite a senha: "),
readint(_Senha),
assertz(morador(_Nome,_Sobrenome,_Idade,_Ap,_Senha)),
write("\n<><><> DADOS ATUALIZADOS <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade().
atualiza(2,_,_,_,_):-!,
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade().
atualiza(_,_,_,_,_):write("\n<><><> OPO INEXISTENTE <><><>"),
44

write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),


menu_prioridade().
%BLOCO OPO 2.4 ----------------------------------------------------------------------------abrir():morador(Nome,Sobrenome,Idade,Ap,Senha),
write("\n\nNome: ",Nome,
"\nSobrenome: ", Sobrenome,
"\nIdade: ",Idade,
"\nApartamento: ",Ap,
"\nSenha: ",Senha),fail.
abrir().
%BLOCO OPO 9999 (REA RESTRITA) ------------------------------------------------teste_acesso2(Senha,Acesso):prioridade(Nome,Cargo,Senha,Acesso),!,
write("\t\t \nLOGIN EFETUADO COM SUCESSO\n\n"),
write("\nNome: ",Nome,
"\nCargo: ", Cargo),
assertz(alterado(Nome,Cargo)).
teste_acesso2(_,_):write("\t\t \nSENHA DE ACESSO E/OU DE SEGURANA INCORRETA\n\n"),
write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),
menu().
menu_prioridade2():write("\n \t\tSEJA BEM-VINDO AO SISTEMA CENTRAL DE PRIORIDADES",
"\n\n O QUE DESEJA FAZER:",
"\n1 - INSERIR NOVA PRIORIDADE",
"\n2 - ATUALIZAR SENHA DE PROPRIEDADE",
"\n3 - EXCLUIR UMA PRIORIDADE",
"\n4 - CONSULTAR PRIORIDADES CADASTRADAS",
45

"\n5 - CONSULTA AO HISTRICO DE USO DO PORTO",


"\n6 - CONSULTA AO HISTRICO DE ALTERAO DO BANCO DE
DADOS",
"\n7 - VOLTAR AO MENU DE PRIORIDADES",
"\n8 - VOLTAR AO MENU PRINCIPAL",
"\n >>> "),
readint(C),
opcao_prio(C).

opcao_prio(1):-!,
write("\n<><><> INSERIR UMA NOVA PRIORIDADE <><><>"),
write("\nDigite o Nome: "),
readln(Nome),
write("\nDigite o Cargo: "),
readln(Cargo),
write("\nDigite a Senha de ",Nome,": "),
readint(Senha),
write("\nDigite o cdigo de segurana de ",Nome,": "),
readint(Seg),
remove2(Nome,Cargo,Senha,Seg),
assertz(prioridade(Nome,Cargo,Senha,Seg)),
write("\n<><><> PRIORIDADE INSERIDA COM SUCESSO <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
opcao_prio(2):-!,
write("\n<><><> ATUALIZAR OS DADOS DE UMA PRIORIDADE <><><>"),
write("\nDigite o Nome: "),
readln(Nome),
write("\nDigite o Cargo: "),
readln(Cargo),
write("\nDigite o Cdigo de Segurana ",Nome,": "),
readint(Seg),
46

existe2(Nome,Cargo,Seg).
opcao_prio(3):-!,
write("\n<><><> EXCLUINDO UMA PRIORIDADE <><><>"),
write("\nDigite o Nome: "),
readln(Nome),
write("\nDigite o Cargo: "),
readln(Cargo),
write("\nDigite a Senha de ",Nome,": "),
readint(Senha),
write("\nDigite o cdigo de segurana de ",Nome,": "),
readint(Seg),
remove2(Nome,Cargo,Senha,Seg),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
opcao_prio(4):-!,
write("\n<><><> CONSULTA A LISTA DE PRIORIDADES CADASTRADAS
<><><>"),
abrir2(),
write("\n<><><> FIM DA CONSULTA <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
opcao_prio(5):-!,
write("\n<><><> CONSULTA AO HISTRICO DE ACESSO AO PORTO
<><><>"),
abrir_hist(),
write("\n<><><> FIM DA CONSULTA <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
opcao_prio(6):-!,
write("\n<><><> CONSULTA AO HISTORICO DE ALTERAO <><><>"),
47

abrir_alt(),
write("\n<><><> FIM DA CONSULTA <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
opcao_prio(7):-!,
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade().

opcao_prio(8):-!,
write("\n<><><> VOLTANDO AO MENU PRINCIPAL <><><>"),
menu().
opcao_prio(_):write("\n \t\tOPO INESXISTENTE"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
%BLOCO OPO 9999.1
------------------------------------------------------------------------remove2(Nome,Cargo,Senha,Seg):prioridade(Nome,Cargo,Senha,Seg),!,
write("\n<><><> REMOVENDO ENTRADAS <><><>"),
retractall(prioridade(Nome,Cargo,Senha,Seg)).
remove2(_,_,_,_):write("\n<><><> NO H REGISTROS ATUAIS DESTA PRIORIDADE
<><><>").
%BLOCO OPO 9999.2
------------------------------------------------------------------------existe2(Nome,Cargo,Seg):prioridade(Nome,Cargo,_,Seg),!,
48

write("\n\nDeseja mesmo atualizar os dados de: \nNome: ",Nome,"\nCargo: ",Cargo),


write("\n\n1 - SIM\n2 - NO\n >>> "),
readint(F),
atualiza2(F,Nome,Cargo,Seg).
existe2(_,_,_):write("\n<><><> MORADOR NO CADASTRADO <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().

atualiza2(1,Nome,Cargo,Seg):-!,
write("\n<><><> REMOVENDO ENTRADAS <><><>"),
retractall(prioridade(Nome,Cargo,_,Seg)),
write("\nDigite o Nome: "),
readln(_Nome),
write("\nDigite o Cargo: "),
readln(_Cargo),
write("\nDigite a Senha: ",_Nome,": "),
readint(_Pass),
write("\nDigite o Cdigo de Segurana de ",_Nome,": "),
readint(_Seg),
assertz(prioridade(_Nome,_Cargo,_Pass,_Seg)),
write("\n<><><> DADOS ATUALIZADOS <><><>"),
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
atualiza2(2,_,_,_):-!,
write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),
menu_prioridade2().
atualiza2(_,_,_,_):write("\n<><><> OPO INEXISTENTE <><><>"),
49

write("\n<><><> VOLTANDO AO MENU ANTERIOR <><><>"),


menu_prioridade2().
%BLOCO OPO 9999.4
------------------------------------------------------------------------abrir2():prioridade(Nome,Cargo,Senha,Seg),
write("\n\nNome: ",Nome,
"\nCargo: ", Cargo,
"\nSenha: ",Senha,
"\nCdigo de Segurana: ",Seg),fail.
abrir2().
%BLOCO OPO 9999.5
------------------------------------------------------------------------abrir_hist():hist(Nome,Sobrenome,Ap),
write("\n\nNome: ",Nome,
"\nSobrenome: ", Sobrenome,
"\nNmero do Apartamento: ",Ap),fail.
abrir_hist().
%BLOCO OPO 9999.6
------------------------------------------------------------------------abrir_alt():alterado(Nome,Cargo),
write("\n\nNome: ",Nome,
"\nSobrenome: ", Cargo),fail.
abrir_alt().
goal
inicio().
50

%O cdigo foi identado para melhor visualizao

10.

LGICA DE PROGRAMAO

Um sistema lgico um conjunto de axiomas e regras de inferncia que visam


representar formalmente o raciocnio vlido. Diferentes sistemas de lgica formal foram
construdos ao longo do tempo quer no mbito escrito da Lgica Terica, quer em
aplicaes prticas na computao e em Inteligncia artificial [WIKI,09].
10.1. DESENVOLVIMENTO
O cdigo utilizado para programao do porteiro virtual pura lgica de
programao, visto que PROLOG uma linguagem puramente lgica.

51

11. CIRCUITO

11.1. COMPONENTES DO CIRCUITO


Relay 12 volts

52

um dispositivo que possui 5 (cinco) pinos sendo dois para alimentao dele,
e os demais esto conectados conforme a figura abaixo:

Alimentao

Ento quando se esta se aplicando uma tenso especifica (no caso deste relay
12 volts) na alimentao o condutor (linha clara entre o pino 1 e 2) desloca-se para o
lado esquerdo fazendo a ligao agora entre o pino 1 e 3, caso contrario o condutor
fica conectado entre o pino 1 e 2.

Diodo

O diodo um componente eltrico que permite que a corrente atravesse num


sentido com muito mais facilidade do que no outro. O tipo mais comum de diodo o
diodo semicondutor, comumente utilizado para retificar correntes eltricas [WIKI,09].
Quando colocado em um circuito simples o diodo vai permitir ou impedir que a
corrente passe dependendo da polaridade da tenso aplicada.

53

Boto de Pulso e um boto que enquanto pressionado ele fecha o contato.

Interruptor micro switch (chave fim de curso)

um boto que em um sentido ele esta com o contato fechado e no outro


sentido ele esta com o contato aberto, quando o boto de pulso que fica abaixo da haste
de metal e pressionado o contato fechado passa a ser aberto e contato aberto passa a ser
fechado.

11.2. DESENVLVIMENTO

O objetivo proposto do circuito era permitir ligar e desligar o motor atravs de


chave, e deslig-lo assim que o fim de curso fosse ativado, no permitindo que o motor
rotacione mais no sentido desse fim de curso, apenas para outro sentido.
Utilizamos um software muito eficiente em elaborao e simulao de circuitos
eltricos chamado Proteus, infelizmente sua licena no freeware.
Na montagem do circuito utilizamos 2 (dois) chaves fim de curso, 3 (trs) botes
de pulso (Boto 1, Boto 2 e parar), 9 (nove) reles sendo:
3 (trs) para o motor: dois para sentido e um para ligar/desligar;
3 (trs) para abrir: k1 principal, k1 alimentao, e k1;
54

3 (trs) para fechar: k2 principal, k2 alimentao e k2.


A montagem do circuito no Proteus esta na figura abaixo:

O circuito funciona da seguinte maneira:


Quando acionado o boto 1 ele da um pulso no k1 principal, que ativa o k1
alimentao garantido que o k1 principal e o motor continue funcionando, o k1 principal
tambm ativa o k1 que impede que o boto 2 acione o k2 principal, alem de ligar o
motor.
O boto 2 funciona de forma similar ao boto 1, ele da um pulso no k2 principal,
que ativa o k2 alimentao garantido que o

k2 principal e o motor continue

funcionando, o k2 principal tambm ativa o k2 que impede que o boto 1 acione o k1


principal, alem de ligar e inverter o sentido do motor atravs dos relays de sentido.
Boto Parar ativa os relays k1 e k2 que impedem a alimentao do k1 e k2
principal, sendo assim garantido o desligamento do motor.
55

Um fim de curso fica em srie com a alimentao do k1 principal e o outro em


serie com a do k2 principal, sendo assim quando o fim de curso e acionado ele abre o
contato e ento o k principal respectivo no pode ser acionado.
Abaixo temos uma foto do circuito montado no protoboard:

12. CONCLUSO

A finalizao deste projeto veio realmente mostrar a utilidade e a correlao


entre as vrias matrias do curso de Engenharia da Computao. Puderam-se aplicar

56

diversos conceitos de diferentes formas para realizar vrios estudos em cima do projeto
final.
Este projeto vem como um desbravador, aquele primeiro sujeito que entra em
uma mata virgem e abre caminho para os demais. As dificuldades enfrentadas, os
conhecimentos extras adquiridos, as relaes estabelecidas sero e serviro para os
demais projetos propostos e no s para eles, tambm para diminuir a distncia entre a
teoria e a prtica que por tantas vezes um bicho de sete cabeas para os alunos.
Alm de contribuir para o conhecimento especificamente do curso de
Engenharia, um projeto, tal como este, fora a integrao entre os alunos, a discusso de
idias, a proposta de solues, o gerenciamento de recursos e a diviso de tarefas, com
as quais os universitrios batero de frente no mercado de trabalho.

13. TRABALHOS FUTUROS

57

Pretendemos desenvolver no futuro um circuito utilizando PIC e implementar o


uso da mquina para abrir o porto atravs da porta paralela.

58

14. REFERNCIAS BIBLIOGRFICAS

FAVERO, Eloi L.. Programao em Prolog: Um abordagem prtica, 2006. pp. 154.
BERGIN, Thomas J.; GIBSON, Richard G.. History of Programming Languages II.
New York: ACM Press, Addison-Wesley, 1996. pp. 864. ISBN 0-201-89502-1
BOULOS, P. Introduo ao clculo. So Paulo: Ed. Edgard Blcher Ltda., 1978. v.1.
FLEMMING, D.M. & GONALVES, M.B. Clculo A: funes, limites, derivao,
integrao. So Paulo: Makron Books, 1992.
RESNICK, R. & HALLIDAY, D. Fundamentos de fsica 1: mecnica. 4.ed. Rio de
Janeiro: LTC, 1996.
BOULOS, P. Clculo diferencial e integral. So Paulo: Makron Books, 2000. v.2
BARROSO, Leonidas Conceicao; et al; Calculo numrico com aplicaes. 2.ed., 1987,
Editora HARBRA ltda.

59

15. WEBGRAFIA

Disponvel em:
<http://www.brasilescola.com/matematica/polinomios.htm> .
Acesso em: 02 de dezembro de 2010.
Disponvel em:
<http://www.estv.ipv.pt/PaginasPessoais/lsousa/Teoria_actualMN/Cap%C3%ADtulo4interpola%C3%A7%C3%A3o.pdf>.
Acesso em: 03 de dezembro de 2010.
Disponvel em:
<http://wwwp.fc.unesp.br/~arbalbo/Iniciacao_Cientifica/interpolacao/teoria/1_Interpol_
polinomial_Met_Lagrange_Newton.pdf>.
Acesso em: 03 de dezembro de 2010.
Disponvel em:
<http://www.ebah.com.br/interpolacao-metodo-de-newton-pdf-a45876.html>
Acesso em: 05 de dezembro de 2010.
Disponvel em:
<http://www.pessoal.utfpr.edu.br/laurogalvao/aulas/calculo_numerico/apostila/calc_nu
m_a.pdf>
Acesso em: 05 de dezembro de 2010.
Disponvel em:
<www.di.ufpe.br/~if109/slides/interpolacao.ppt>
Acesso em: 07 de dezembro de 2010.
Disponvel em:
<ltodi.est.ips.pt/metnum/documentos/INTERPOL/interpol.pdf>
Acesso em: 07 de dezembro de 2010.
60

Disponvel em:
<http://www.linhadecodigo.com.br/artigo/1697/descobrindo-o-prolog.aspx>
Acesso em: 07 de dezembro de 2010.
Disponvel em:
< http://pt.wikipedia.org/wiki/L%C3%B3gica>
Acesso em: 07 de dezembro de 2010.
Disponvel em:
<http://robokits.co.in/shop/index.php?main_page=product_info&products_id=204>
Acesso em: 07 de dezembro de 2010.
Disponvel em:
< http://pt.wikipedia.org/wiki/Diodo_semicondutor>
Acesso em: 07 de dezembro de 2010.

61

ANEXO 01
FOTOS

62

FOTO 1 TRILHO E RODA


FOTO 2 - TRILHO

63

FOTO 3 CREMALHEIRA, RODA, TRILHO E MDULO REDUTOR

FOTO 4 MDULO REDUTOR

FOTO 5 SUPORTE SUPERIOR

64

FOTO 6 CIRCUITO DE RELS

FOTO 7 - CIRCUITO DE RELS

65

FOTO 8 PORTO COMPLETO

FOTO 9 PORTO COMPLETO

66