sexta-feira, 19 de junho de 2009
Plotter PCB
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
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)