Contador de visitas

sexta-feira, 27 de maio de 2011

Progamação final do ROV

Para utilizarmos o progama Builder C ++, devemos antes realizar alguns processos  para que ocorra tudo bem, entre a comunicação da porta paralela e o programa feito.


Passo 1 -   Instalar o Driver UserPort


  Driver para acessar a Porta Paralela no Windows 2000 e XP (SP1 e SP2)
  Clique aqui


Passo 2 - Use no cabeçalho na  parte de códigos do  Builder

#include <windows.h>

Esse include é uma biblioteca necessária  para rodar o programa

Passo 3 - Depois de "TForm1 *Form1;" coloque o código:

void outportb(UINT portid,
BYTE value)
{
__asm mov edx,portid
__asm mov al,value
__asm out dx,al

}


COMEÇANDO O PROGRAMA



O primeiro passo,  que realizamos foi definir a função de cada comando e quantos botões serão necessário para realizar a tarefa desejada
Após a definição chegamos ao resultado de 8 botões.

6 botões para realizar os movimentos: Frente, Trás, Esquerda, Direita, Cima, Baixo, 
1 botão para acionar a bomba.
e mais 1 botão para  desligar o comando  que está acionado " OFF "

O  layout do programa feito no Builder:




A  imagem no centro do progama, é referente a captação da imagem da Webcam, que passa diretamente ao  Builder C ++.

Para acionar os botões utilizamos o comando outportb(0x378, Y )
Onde Y corresponde ao pino que desejamos enviar um sinal através da porta paralela, dessa forma acionando ao relê do circuito, e conseqüentemente aos motores DC.

Ex: D0 = 1, D1 = 2, D2= 4

As linhas de código referente  ao acionamento dos botões  são:



void __fastcall TForm1::FrenteClick(TObject *Sender)
{
 outportb(0x378,20);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrasClick(TObject *Sender)
{
 outportb(0x378,40);       
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EsquerdaClick(TObject *Sender)
{
 outportb(0x378,24);       
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DireitaClick(TObject *Sender)
{
 outportb(0x378,36);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CimaClick(TObject *Sender)
{
 outportb(0x378,1);       
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BaixoClick(TObject *Sender)
{
 outportb(0x378,2);       
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EscovaClick(TObject *Sender)
{
 outportb(0x378,128);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BombaClick(TObject *Sender)
{
 outportb(0x378,64);       
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OFFClick(TObject *Sender)
{
 outportb(0x378,0);
}








Progamação

Para controlar o ROV usaremos uma programação através do compilador Builder 6 C++, que acessará a PORTA PARALELA do computador através do comando "outportb(0x378, y)" sendo o 'y' valor do pino da família D.
A partir  deste software, poderemos  enviar pulsos elétricos, diretamente para o circuito eletrônico, que será conectada ao DB25 da porta paralela. Dessa forma acionando o circuito eletrônico para controlar os motores DC de tal maneira que eles possam  movimentar o ROV para a direção que quisermos.


* PORTA PARALELA

A Porta Paralela, é um circuito digital por onde o computador envia e recebe dados de outros circuitos ou computadores, podemos conectar outros dispositivos como impressoras, controles, joystick,  Webcams.

* CONECTOR DB25





 Nesse conector cada pino recebe um nome, que está relacionado ao registrador que o controla.

Como  o  D0, D1, D2, D3, D4, D5, D6 e D7 são controlados pelo Registrador de Dados (saída de dados), e a letra D indica isso. O número que vem após a letra corresponde à posição do pino dentro do Byte.

Para controlar o nosso ROV, usaremos esses pinos relacionados acima.

Atenção: Existem pinos na Porta Paralela que trabalham com lógica invertida, isso quer dizer que quando queremos ativar esses pinos temos que enviar um sinal lógico “0” e quando desejamos desativar, devemos mandar um sinal lógico “1”.


* BORLAND BUILDER 6  C ++

O Borland C++ Builder 6 é um ambiente visual de desenvolvimento de aplicações orientado a objeto que permite desenvolver, de forma rápida e fácil, aplicações para Windows. Ao utilizá-lo, você poderá criar eficientes aplicações com o mínimo de codificação manual. Assim, qualquer pessoa pode desenvolver programas  relativamente complexos em pouco tempo, usando conceitos de programação visual e a reutilização de códigos.