quinta-feira, agosto 22, 2013

Controle Remoto Infravermelho Parte 1

Uma aplicação corriqueira de comunicação infravermelha são os controles remotos dos chamados "aparelhos eletrônicos de consumo" (TVs, aparelhos de som, etc). Nesta série de posts vamos conhecer um pouco como isto é feito e fazer algumas experiências.


Neste primeiro post quero repassar o básico da teoria. Um descrição excelente está no site SB-Projects, mais exatamente aqui.

Já vimos anteriormente os componentes básicos de transmissão e recepção infravermelho. Entretanto, são necessários vários cuidados especiais para conseguir uma comunicação confiável e com bom alcance.

O primeiro ponto importante é fazer a transmissão modulando uma portadora. Ao invés de manter o LED IR continuamente aceso, ele é piscado em uma frequência (normalmente entre 30 e 60KHz), gerando o que chamamos de portadora. Esta portadora é modulada pelo sinal digital. Quando o sinal digital for 1 a portadora é transmitida, quando for 0 ela é suprimida (isto é um caso particular da modulação AM, onde a amplitude da portadora é controlada pelo sinal analógico a transmitir). Para que toda esta complicação? Para aumentar a imunidade a ruídos, como o  infravermelho da luz solar.

No lado do receptor é necessário um circuito mais sofisticado, que amplifica o sinal detectado por um fotodiodo ou fototransistor e retira a portadora, recuperando o sinal digital. Felizmente não é necessário montar este circuito com componentes discretos, existem módulos (com tamanho pouco maior que um transistor comum) que contém tudo que é necessário. Duas características são importantes no módulo receptor: a frequência de IR aceita e a frequência da portadora. Embora dê para operar fora destas frequências, a qualidade da recepção piora.

O passa seguinte é decidir como estes sinais digitais correspondem aos bits 0 e 1 que queremos transmitir. Uma primeira ideia seria usar os próprios bits de dados como sinal, porém isto pode gerar problemas de sincronismo. Receptor e transmissor podem ter bases de tempo ligeiramente diferentes (inclusive porque não costuma se usar cristais nos controles remotos para barateá-los). Uma sequência grande de zeros ou uns não fornece nenhuma indicação de ontem está cada bit, podendo ser interpretada de forma errada.

Existem várias técnicas para resolver este problema, por exemplo:
  • Codificação Manchester: cada bit de dados corresponde dois sinais digitais complementares, de forma a sempre existir a transmissão de portadora. Por exemplo, um dado zero é transmitido como um tenpo com portadora seguido de um tempo sem portadora e o dado zero como o contrário.
  • Codificação por distância de pulso: cada bit de dados é transmitido como um tempo fixo com portadora seguido de um tempo de silêncio diferente para zero e um.
Para completar, é necessário definir um formato que contenha uma marca especial de início da mensagem, os bits de dados e, possivelmente, uma marca especial de fim da mensagem. Os bits de dados da mensagem normalmente contem um campo de endereço (por exemplo, para indicar se estamos controlando a TV ou o aparelho de som) e um campo de comando.

Os detalhes variam bastante de fabricante para fabricante e até entre modelos de um mesmo fabricante. Para ver um exemplo real não muito complicado, veja o protocolo RC5 da Philips.

Em posts futuros veremos mais detalhes e faremos algumas experiências práticas.

Nenhum comentário: