sexta-feira, 19 de junho de 2009

Plotter PCB

Antes das impressoras laser caírem de preço, uma das melhores formas de se fazer uma placa de circuito impresso com razoável qualidade e sem utilizar os métodos fotográfico e serigrafia, era construir uma Plotter para Circuito Impresso. Após estudar amplamente os circuitos do Luiz Cressoni (Lutcho) e também do Luberth me encorajei a construir minha plotter.
Seguindo a tendência dos modelos construídos pelos autores acima citados, elaborei a máquina utilizando somente suca: uma impressora e 1 scanner. Após construída, testei diversos programas, porém optei por escreve meu próprio em C++. Uma tela dele encontra-se abaixo. Os traços vermelhos indicam onde a caneta está levantada.


Aqui vimos uma imagem (em baixa resolução) de uma placa desenhada pela plotter e corroída. Nota-se que em um ponto diversos a proximidade das trilhas, necessitando-se com um estilete abri o "curto".

Aqui vai um close da placa desenhada, antes de ser banhada pelo percloreto de ferro:

Uma vista da etapa de controle dos 2 motores de passo e também do motor DC responsável por levantar/baixar a caneta de desenho.

Aqui uma visão um pouco mais abrangente da máquina. Verifica-se a utilização de sucata para sua construção, ficando com custo quase zero e realizando bons trabalhos.

Esta em projeto a construção de uma fresa também a partir de materiais retirados de impressoras. O funcionamento do sistema pode ser descrito resumidamente: A partir da placa elaborada no Eagle, exporto através do processor CAM no formato HPGL. Em seguida meu software interpreta o arquivo HPGL e controla pela porta paralela os 2 motores de passo responsáveis pelo deslocamento no sentido XY. Também controla o motor DC que levanta/baixa a caneta.

sexta-feira, 5 de junho de 2009

Dev-C++ - outportb & inportb

Para quem utiliza o Dev-C++ para acesso a Porta Paralela, existem duas possibilidades:

- Usar a inpout.dll

- Usar rotinas ASM para realizar o acesso.

Neste último caso, ressalta-se as diferenças entre o asm dos compiladores Borland e do compilador utilizado no ambiente em questão. A partir de informações coletadas na www, foi testada e disponibilizada a biblioteca abaixo que permite o uso das funções outportb e inportb. No WinXP é necessário que esteja sendo usado o USERPORT para desta forma liberar a LPT aos aplicativos.

Segue o código das rotinas em ASM para uso no Dev-C++ e controle da LPT.

// ------- inportb para dev c++ ---------------------------
unsigned char inportb(unsigned int port) {
unsigned char ret;
asm volatile("inb %%dx,%%al":"=a" (ret):"d"(port));
return ret;
}

// -------- outportb para dev c++ ----------------------------
inline void outportb(unsigned int port, unsigned char value) {
asm volatile("outb %%al,%%dx": :"d"(port),"a" (value));
}


quarta-feira, 3 de junho de 2009

Dimensionamento de Antena Direcional

Já precisou construir uma antena Yagi-Uda? O correto dimensionamento garante o sucesso na transmissão como na recepção.
Um excelente artigo sobre este tipo de antena você encontra no site do CT1AHM de onde também foram retirados os cálculos para elaboração do programa. Com a utilização de um software, fica mais fácil, já que com uma calculadora, quando precisar repetir-se diversas vezes os cálculos, facilmente se introduzem erros.

Acima temos uma imagem do programa. No caso dimensionamento de uma antena para a faixa dos 144MHz. Nota: o número máximo de elementos possíveis de se determinar com este programa é 5.
Elaborado em Dev-C++, é totalmente free.
Baixar o Programa ( Menos de 100Kb)