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);
}