terça-feira, 16 de agosto de 2011

Projeto TDM - Considerações básicas

     O projeto TDM (Mutiplexação por Divisão do Tempo) é um circuito que permite o “envio” de até oito sinais de áudio diferentes através de um único fio. Para que isso seja possível, o sinal é amostrado, ou seja, dividido em pequenos segmentos que são enviados para o receptor. Assim que todos os sinais forem amostrados, eles são enviados em espaços de tempo que são chamados de “time slots”. A figura abaixo mostra o sinal amostrado e os “time slots”:










O sinal amostrado está representado pelos quadrados coloridos nas bordas da imagem. Já o centro da imagem mostra como o sinal é enviado através de um único fio. Cada amostra de sinal, ou segmento, é enviado em um intervalo de tempo e depois a fonte da amostra enviada é trocada, e isto é feito através de um multiplexador. O multiplexador é capar de chavear diferentes entradas para apenas uma única. O envio é feito desta maneira: 1A + 1B + 1C + 1D; depois 2A + 2B + 2C + 2D e assim sucessivamente. Embora na figura sejam mostrados apenas 4 canais nosso circuito pode chavear até 8 canais.  
            Porém o multiplexador por si só não é capaz de chavear entre as diferentes entradas sozinho, para isso ele precisa de um circuito contador que controle a multiplexação. O multiplexador utilizado em nosso projeto é o CD4051, e ele possui três entradas para o controle de qual sinal irá para a saída, sendo que estas entradas obedecem o padrão de contagem binário, sendo A o bit menos significativo e C o bit mais significativo.
            O contador, que será de 3 bits, deverá resetar a cada oito mudanças e reiniciar o ciclo. Este contador necessitará de um sinal de clock para que a contagem avance. E uma segunda consideração é que cada combinação na saída do contador será repetida a cada oito pulsos de clock, ou seja, o sinal do clock será dividido por 8, conforme a tabela abaixo:

Pulso do
clock
Saída do
contador
Dado selecionado no MUX
000
A
001
B
010
C
011
D
100
E
101
F
110
G
111
H

            O gerador de pulsos do clock, pode ser implementado com um 555 funcionando como multivibrador astável.

Por enquanto é so.

Até mais,

Giovanni WarLock.

segunda-feira, 1 de agosto de 2011

Projeto RAMA - Video de funcionamento

Olá,

Como já terminamos o projeto e não tivemos tempo de postar o resto do material, aqui vai um vídeo do protótipo pronto, mas ainda sem acabamento.


Por enquanto é só.

Até mais,

Giovanni WarLock

quinta-feira, 7 de julho de 2011

Projeto RAMA - Sensor de obstáculos

Ola,

Hoje vou explicar como foi feito o sensor que serve para ver se há algum obstáculo em frente ao mesmo.
Ele funciona segundo o princípio da reflexão da luz. Utiliza dois componentes básicos: o led infra vermelho e o receptor infravermelho.
A rotina de leitura do sensor é a seguinte: desligar LED -> medir fundo -> ligar LED -> medir leitura ->calcular.

Vou explicar como funciona: primeiro ele desliga o led infravermelho e mede a intensidade do fundo, isto é, a quantidade de infravermelho que já "havia" no local e a grava na variável fundo(apenas em uma sala completamente escura não há nenhum infravermelho).


Depois ele liga o LED infravermelho e mede a intensidade da luz refletida pelo objeto, e se não houver nenhum objeto então a intensidade refletida vai ser pouco diferente da intensidade de fundo.  
No código fonte a leitura é invertida devido à construção eletronica do sensor.

Depois disto, o programa no PIC calcula a direfença e verifica se o resultado é maior que o valor de disparo para objeto, que é um valor fixo que indica quando a diferença de luz chega a um nivel onde há um objeto na frente do sensor, então retorna uma variável booleana (sim ou não) com o resultado da leitura.

O esquemático e a placa de circuito:














Placa de circuito impresso: http://www.megaupload.com/?d=65Z3B9K1

Segue o código fonte:
> SensorIR.c
 ////////////////////////////////////////////////////////////////////////////////
//////////////////////////ROTINAS DO SENSOR/////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

#DEFINE irled pin_a2

int disparo=60;
int fundo=0, leitura=0, res=0;

//Funçao para detecção de obstáculo
boolean obstaculo()
{
   set_adc_channel(0);
   delay_us(30);
   output_low(irled); //Desliga LED
   fundo = read_adc(); //Lê fundo
   delay_us(30);
   output_high(irled); //Liga LED
   leitura = 255 - read_adc(); //Lê medida
   output_low(irled);
   res = leitura - fundo; //Calcula
   if (res>disparo) //Retorna resultado
   {
      return true;
   }
   else
   {
      return false;
   }
}
Só isso por enquanto.

Até mais,

Giovanni WarLock

quinta-feira, 30 de junho de 2011

Projeto RAMA - Robo Autonomo com Mapeamento Adaptativo

Olá,

     Esta é a página inicial do projeto RAMA (Robo Autonomo com Mapeamento Adaptativo) que estou desenvolvendo junto com um amigo meu (@GHINOMO).
     O projeto consiste em um robo que, após programado com as coordenadas inicias dele e as coordenadas do objetivo, encontra um caminho para chegar ao local desejado independentemente dos obstáculos que estiverem no meio do caminho. E, se o usuário desejar retornar ao ponto de origem, onde o robo estava inicialmente, o robo considera os osbtáculos que já haviam sido detectados e segue pela melhor rota (se o robo não tiver sido reinicializado).
     O robo vai utilizar o microcontrolador PIC 16F877A, quatro botões e um display LCD para configuração.
     O diagrama de funcionamento básico do robo é o seguinte:






























Por enquanto é isso pessoal.


Até mais,
Giovanni WarLock

sexta-feira, 24 de junho de 2011

Começando...

Olá pessoal,

Este é meu primeiro post e, hum, não sei o que dizer escrever.
Aqui vocês poderão encontrar meus projetos em desenvolvimento e também os já concluídos.
Também vou estar elaborando uma página separada para cada projeto, para ficar mais organizado.
Vou tentar explicar todos os projetos o máximo possível e estou aberto a críticas.

Espero que gostem do blog!

Até mais,

WarLock