quinta-feira, 21 de outubro de 2010

O blog está aberto a todos!!

Olá companheiros de pesquisas e internautas.

Depois de muito trabalho, conseguimos finalizar o nosso projeto, que está sendo exposto na 10ª Feira do Jovem Empreendedor Joseense.

Hoje os avaliadores foram ao nosso stand conhecer o nosso projeto e gostaram muito do que viram. Gostaria de dizer que ndependentemente do resultado da avaliação, podemos dormir com a consciência tranquila, pois fizemos realmente um ótimo trabalho

Infelizmente, não conseguimos implementar o recurso do portão automático... (fica para a próxima) Mas conseguimos de forma brilhante desenvolver um projeto de automação residencial onde aprendemos muitos fundamentos de eletrônica e de como controlarmos elementos externos através do computador.

Hoje estamos abrindo este blog ao público para que outras pessoas que se interessem em aprender este conceitos usufrua de nossa pesquisa.

Foi um grande prazer trabalhar com vocês!!

Obrigado.

sábado, 21 de agosto de 2010

Monografia - Domótica

Olá pessoal, encontrei um material muito interessante que é similar ao nosso, porém, o material não é tão simples de se entender. Neste material existem codificações prontas de como acionar os dispositivos, e o mais legal é que este projeto também foi desenvolvido em Delphi 7. Poderemos utilizá-lo para aprender como controlar o restante dos componentes e assim atingirmos o nosso objetivo.

Estudem este conteúdo.

Estamos na reta final e o nosso prazo está se esgotando. Precisamos nos mobilizar, nos dedicar mais do que nunca para realizarmos este projeto. Sei que é um grande desafio, mas também sei que iremos vencê-lo.

O arquivo está disponível para no setor de links de download.

Conto com a dedicação e com o esforço de todos!!!

sábado, 31 de julho de 2010

Enviando e recebendo sinais pela porta paralela

Olá pessoal, encontrei uma página que mostra como funciona o recebimento de sinais externos pela porta paralela. Inclusive tem exemplificado um circuito para testar esta funcionalidade... Agora precisamos escrever um programa para controlar esta função. Acredito que esta será a solução para finalizarmos esta etapa da aprendizagem, vou levar este esquema para o Prof. Egydio na 2ª feira para debatermos com ele esta solução. Postei na íntegra a matéria do site citado. Se quiserem visitar o site fonte segue o link:


Estou muito otimista com este circuito, acho que teremos sucesso!!

Vamos seguir em frente!!! Estamos no caminho certo para a conquista do nosso objetivo!!

Porta Paralela


É muito interessante, conhecermos um pouco mais sobre a Porta Paralela,
pois ela oferece muitos recursos, como por exemplo, você pode acionar motores,
lâmpadas, controlar sensores, etc... e tudo atravez do seu software!

INTRODUÇÃO

A porta de comunicação paralela, foi criada especificamente para a impressão, mas ela pode ser usada para outras finalidades. Se você conhece um pouco de eletrônica e domina uma linguagem de programação (C, C++, Pascal, Delphi ou Visual Basic), poderá controlar um circuito eletrônico externo através desta porta. Essa porta de comunicação é chamada fisicamente pelo seu computador de LPT1, LPT2 ou até de LPT3, contém também 3 (três) registradores de controle que são:

378h - Registro de Dados, envia sinal
379h - Registro de Status, lê sinal
37Ah - Registro de Controle, envia sinal

O conector responsável para essa interface é chamado de DB25, que contém 25 pinos

Cada pino tem sua função como descrito abaixo:

Os pinos de cor azul e verde servem para saída de sinal que é(5v), os de cor laranja servem para entrada que também é(5v), e os vermelhos servem para fechar o circuito que recebe um sinal de voltagem negativa.

ATENÇÃO: as cores usadas só serviram para explicação.

A porta paralela do computador trabalha com a tecnologia TTL isso seguinifica que teremos que enviar/receber 0.5v ou 5v (0.5 nível baixo - 5 nível Alto) que será lido por três tipo de registradores de controle:

378h - Registro de Dados, envia sinal
379h - Registro de Status, lê sinal
37Ah - Registro de Controle, envia sinal

Se construirmos um programa que mande para a porta paralela um numero em binário, esse numero se relacionará com os pinos S0, S1, S2, S3, S4, S5, S6, S7 (que formarão um byte(8 posições)), obtendo então, ausência ou presença de energia nos mesmos, por exemplo: se mandar-mos o numero binário 00101010 para a porta paralela, os pinos S0 à S7 se relacionarão dessa forma:

isso significa que o pino S7 está em nível baixo ou seja com 0.5v, S6 nível baixo 0.5v, S5 nível alto 5v e assim por diante.

Se você sabe algo sobre eletrônica, poderá aproveitar a voltagem que está por exemplo no pino S5 e montar algo . Lembre-se você esta trabalhando com a porta paralela que esta ligada na placa mãe, qualquer circuito provocado pode danificar seu computador.

CRIANDO UM CIRCUITO PARA ENVIAR SINAL

Sabemos que os pinos do DB25 S0 à S7 quando em nível alto emitem 5v, então vamos montar um aparelho eletrônico que receba o sinal emitido pêlos pinos e ligue um circuito. Antes de começar-mos, temos que criar um software que envie para a paralela os números em binários. O aparelho é formado por fios um Led e um Resistor. Uma das extremidade é conectada em um dos pinos(S0,S1,S2,S3,S4,S5,S6,S7) a outra nos pinos terra (18,19,20,21,22,23,24,25). Quando o pino de saída é ativado o Led do aparelho se acende indicando presença de energia. Através desde principio você pode ampliar o circuito criando mais 7 conjunto de led's e resistores que iram todos conectados nos pinos (S0 à S7) formando então um verdadeiro jogo de led's ou até mesmo montar qualquer circuito eletrônico que será startado pelo computador. Abaixo o esquema do aparelho.

CRIANDO UM CIRCUITO PARA RECEBER SINAL

Como mencionamos a cima, a porta paralela recebe/envia 0v ou 5v, então o que temos que fazer é saber quais são os pinos que recebem sinal e qual o registrador que faz a leitura. Se você voltar na introdução desta pagina vai ver que os pinos responsáveis para o recebimento de sinal são os pinos 10,11,12,13,15 e o registrador que faz a leitura é o 379h. Tendo tudo isso definido é só criar um circuito e um programa que faça a leitura. Agora vamos fazer um circuito extremamente simples que envia sinal para dentro do computador. Você irá precisar de uma pilha pequena e dois fios (que iremos chamar de A e B). Conecte os dois fios (A e B) no polo negativo da pilha, uma extremidade você coloca no terra do DB25 e a outra em qualquer pino responsável pelo recebimento de sinal e então execute o programa. Você ira notar que o programa ira retornar um numero diferente, cada vez que você mudar o fio B de pino. Com esse principio você pode indicar para o computador pôr exemplo que um alarme esta ligado.


quinta-feira, 29 de julho de 2010

Ligando e Desligando Leds via porta paralela

Este é o desenho do nosso primeiro circuito.

A princípio o objetivo do circuito-1 é de ligar e desligar oito LEDs, conectados através de uma cabo à Porta Paralela.
No esboço abaixo, observe que o terminal do catodo (K) dos LEDs estão ligados aos terminais dos resistores, que estes por si, estão ligados através do cabo aos pinos do DB25. Se invertidos, o circuito não funcionará. Observe a enumeração da pinagem do conector DB25.


segunda-feira, 19 de julho de 2010

RECEBENDO SINAIS EXTERNOS ATRAVÉS DA PORTA PARALELA

A Porta Paralela, no modo padrão, têm cinco entradas. Isso é útil quando você precisa capturar sinais do mundo externo para dentro do computador. Como por exemplo, saber se um sensor esta ativo ou não; se um alarme foi disparado, etc.

As cinco entradas através do conector DB25 são: Ack no pino 10, Busy no pino 11, Paper end no pino 12, Slct out no pino 13 e Error no pino 15. Portanto você poderá enviar para o computador cinco bits de uma só vez.
Os bits do byte de STATUS também são conhecidos como; S7 (Busy), S6 (Ack), S5 (Paper end), S4 (Slct out), e S3 (Error). A letra S significa registrador de STATUS, e onúmero significa a posição do bit no byte; juntos, formam um nome sugestivo para os sinais.
OBS.: Quando o nome de um bit de Status estiver com uma linha em cima, indica que o sinal será ativo com 0 (zero).
_
_
Ex.: S7 (Busy).

Usando as funções inportb() ou Recebe() da classe TPorta, já comentadas nesta página, você poderá ler o registrador de Status da Porta Paralela, e saber se o sinal em um determinado pino está alto ou baixo (0-zero ou 1-um) no sistema binário.
As funções inportb() e Recebe() lêem um byte através da Porta Paralela. Se você quiser saber se um determinado pino está com o sinal alto ou baixo, terá de converter este byte em binário para saber o estado do mesmo.
Nem todos os bits do byte recebido através das funções inportb() ou Recebe() são válidos, como eu já mencionei, são somente cinco as entradas no registrador de Status da Porta Paralela, e cada entrada está relacionada com um bit.
Ao ler o registrador de Status, os bits nas posições 0, 1 e 2 não devem ser levados em conta, porque não estão relacionados com nenhum pino do DB25, mesmo assim fará parte do byte recebido.

A tabela abaixo mostra o significado de cada bit do byte recebido, através das funções inportb( ) ou Recebe( ), usando o Circuito 4 conectado à Porta Paralela. Observe que os bits, Ack, Paper end, Slct out e Error, trabalham de maneira normal, diferente de Busy, que só é ativado quando tiver um sinal 0 (zero) no pino 11:

Tabela descritiva dos sinais de STATUS
Descrição/número dos pinos:
__
S7
S6S5S4S3
Nenhum pino relacionado nestas posições do byte

11

10

12

13

15
Byte lido em binário:
0
1
1
1
1
1
1
0
Byte lido em Decimal:
126

CIRCUITO-4

Com o circuito-4 conectado à Porta Paralela você poderá enviar sinais para dentro de seu computador através das entradas E1 a E 5.
Para enviar um bit através da entrada E1, ligue-a direto ao negativo da fonte de alimentação (0v), ou instale um interruptor para ficar mais prático.
Como o circuito abaixo utiliza um Circuito Integrado buffer, que tem o poder de amplificar o sinal recebido, você poderá estender os cabos conectados as entradas (E1 a E5) a mais ou menos 20m de distância. Faça testes.


Circuito-4

Atenção!
Para enviar dados para dentro de seu computador através do circuito acima, use as entradas E1 a E5, com tensão elétrica negativa (0V) da fonte de alimentação em uso.
Para enviar um bit com valor (1), ligue a respectiva entrada ao negativo.
Para enviar um bit com valor (0), desligue a respectiva entrada do negativo.

Lista de componentes:
1 (um) Cabo Paralelo - o mesmo utilizado pela impressora;

5 (cinco) Capacitores cerâmicos de (C1 a C5) todos de 100nF;
1 (um) Circuito Integrado 74LS541 (buffer);
1 (uma) fonte de alimentação estabilizada de 5 volts;
Geral: fios, fero de soldar, solda etc.

Código fonte em C/C++.
O programa abaixo, lê a Porta Paralela LPT1 ininterruptamente enquanto nenhuma tecla seja pressionada, e exibe na tela do computador, o valor recebido em decimal.

//www.rogercom.com
//rogercom@rogercom.com

//-------------------------------------------------------------------------------------------------------------

#include
#include

#include
int main(void)
{
unsigned char RetByte; //Para armazenar o valor recebido da Porta Paralela.
while( ! kbhit( ) ) //Faz enquanto nenhuma tecla for pressionada.
{
RetByte = inportb(0x379); //Ler um byte da Porta Paralela (0x379)LPT1.
printf("%u\n",RetByte);
}
}

Código fonte em C/C++.
O programa abaixo, foi escrito para o Sistema Operacional MS-DOS, mas pode ser adaptado para outros sistemas.
Ele lê a Porta Paralela LPT1 ininterruptamente enquanto nenhuma tecla for pressionada, e exibe na tela do computador o estado de cada bit do byte recebido a cada ciclo do laço while().

//www.rogercom.com
//rogercom@rogercom.com

//-------------------------------------------------------------------------------------------------------------
#include
#include

#include
#define BIT0 0x01 //
Não usado
#define BIT1 0x02 // Não usado
#define BIT2 0x04 // Não usado
#define BIT3 0x08 // Error
#define BIT4 0x10 // Slct out
#define BIT5 0x20 // Paper End
#define BIT6 0x40 // Ack
#define BIT7 0x80 // Busy


int main(void)
{
int x=10, y=5; //Coluna e Linha do vídeo
unsigned char Byte; //Para armazenar o byte recebido da Porta Paralela
clrscr();
gotoxy(30,1); printf("RECEBENDO SINAIS...");
gotoxy(30,20); printf("Pressione uma tecla para sair...");
gotoxy(x, y); printf("Bit 3 - Error....:");
gotoxy(x,y+1); printf("Bit 4 - Slct out.:");
gotoxy(x,y+2); printf("Bit 5 - Paper End:");
gotoxy(x,y+3); printf("Bit 6 - Ack:.....:");
gotoxy(x,y+4); printf("Bit 7 - Busy.....:");
while( ! kbhit() ) //Executa enquanto nenhuma tecla for pressionada.
{
Byte = inportb(0x379); //Ler um byte da Porta Paralela
if((Byte & BIT3) == 0){ // Error: 0000-1000
gotoxy(x+20,y); printf("INATIVO");
}else{
gotoxy(x+20,y); printf("ATIVO ");
}
if((Byte & BIT4) == 0){ // Slct out: 0001-0000
gotoxy(x+20,y+1); printf("INATIVO");
}else{
gotoxy(x+20,y+1); printf("ATIVO ");
}
if((Byte & BIT5) == 0){ // Paper end: 0010-0000
gotoxy(x+20,y+2); printf("INATIVO");
}else{
gotoxy(x+20,y+2); printf("ATIVO ");
}
if((Byte & BIT6) == 0){ // Ack: 0100-0000
gotoxy(x+20,y+3); printf("INATIVO");
}else{
gotoxy(x+20,y+3); printf("ATIVO ");
}
if((Byte & BIT7) == 0){ // Busy: 1000-0000
gotoxy(x+20,y+4); printf("INATIVO");
}else{
gotoxy(x+20,y+4); printf("ATIVO ");
}
}
clrscr();
}


Enviando sinais via porta paralela


Olá pessoal, este é o vídeo do primeiro teste do nosso pequeno circuito.

segunda-feira, 19 de abril de 2010

Achei o plugin para controlar a porta paralela.

Olá pessoal, segue o link do site para fazer o download do plugin que permite controlar a porta paralela pelo Delphi.


Let's Go!!

Contador Grátis