Controle RemotoTudo começou quando presenteei minha Mãe com um televisor Sony Bravia. O problema que surgiu foi um dos mais típicos para a grande parte dos idosos: A acessibilidade. Como é usual, o controle remoto que acompanha o televisor mais parece um painel de um Boeing, possuindo 49 teclas e infinitas funções. Para uma parte das pessoas isso não causa muitos problemas. Contudo, para os idosos, isso dificulta tremendamente as coisas. A primeira dificuldade é relacionada à operação do controle remoto, pois muitas opções deixam as coisas confusas para aqueles acostumados a entender um televisor como sendo apenas um televisor. Mesmo eu fico muitas vezes aborrecido com tal parafernalha e na verdade uma boa parte dos consumidores acabam usando somente o básico. Entretanto, o pior problema é relacionado com a visualização dos controles, ou seja, a presença de muitas teclas implica em legendas pequenas, símbolos indecifráveis e teclas minúsculas que de nada ajudam uma pessoa que tenha restrições na visão. De imediato fui em varias lojas procurando um controle remoto mais simples, com menos teclas e símbolos de fácil visualização. Após muito esforço só encontrei um modelo da própria Sony que não é vendido no Brasil, sendo disponível somente em uma loja nos Estados Unidos. Em principio isso resolveria o problema. Porem, ao calcular o custo total, somando o preço do produto, custo de remessa internacional e os prováveis impostos, desisti de tal aquisição. Portanto, só me sobrou uma opção: Construir meu próprio controle remoto adaptado exatamente para as necessidades presentes.

Para tal projeto utilizei um microcontrolador AVR, o tradicional ATmega8, sendo o firmware escrito em Bascom. A escolha de tal plataforma de desenvolvimento foi devido ao fato de que tal linguagem já incorpora o protocolo SIRC (Sony Infrared Remote Control) via o comando SONYSEND, o que simplificou bastante as coisas. Contudo, existem alguns pequenos truques na codificação dos endereços e comandos. Grande parte das informações necessárias são mostradas em detalhes na pagina http://www.rockabilly.net/sony/, onde é listado em formado decimal a identificação dos equipamentos, ou seja, o endereço, e o código dos comandos para os diversos eletrodomésticos fabricados pela Sony. Alem dessas informações, um resumo sobre o protocolo SIRC pode ser visto aqui. Entretanto, muitas vezes as coisas ficam um pouco confusas, pois dependendo da função requisitada um mesmo controle remoto pode fazer referencia a endereços completamente distintos. Portanto, acabei sendo forçado a identificar o par endereço/comando realmente enviado pelo controle remoto do televisor em questão. Para resolver tal problema contei com a nota técnica AN120 da MCS Electronics. Assim sendo, após algumas modificações estratégicas ficou possível decodificar qualquer controle remoto Sony usando o hyper-terminal do Windows. Tanto o diagrama esquemático do decodificador como seu firmware estão disponíveis aqui. Como de costume usei um FT232R para comunicação USB, sendo o respectivo driver disponível aqui.

Uma vez que o problema da identificação do par endereço/comando foi resolvido, se faz necessário converter tal par em um código hexadecimal apropriado para o comando SONYSEND do Bascom. O primeiro passo é converter o endereço e o comando em números binários, invertendo posteriormente a ordem dos dígitos binários. Após isso, concatena-se o comando e o endereço (nesta ordem) em um único numero que ao final deve ser convertido para hexadecimal. Para exemplificar um pouco as coisas, temos no quadro a seguir um exemplo para o comando "aumenta volume" usando SIRC com 12 bits.

 

  Decimal Bits Binário Invertido
Endereço 1 5 00001 10000
Comando 18 7 0010010 0100100
Concatenação - 12 - 010010010000
Hexadecimal - 12 - &H490

 

 

Uma complicação adicional esta relacionada com o numero total de bits. No SIRC um código pode ter 12, 15 ou mesmo 20 bits. Os comandos ocupam sempre 7 bits, sendo o restante destinado ao endereço ou extensões. Este é o caso da tecla "ponto", presente nos controles remotos dos televisores Sony Bravia, que é composto por um código de 20 bits. Contudo, o procedimento de obtenção do código hexadecimal é o mesmo que o ilustrado acima.

IMPORTANTE: Alguns televisores da SONY apresentam problemas para reconhecer o "PONTO" usado na sintonia dos canais digitais. Portanto, optei por utilizar rotinas próprias para a transmissão dos códigos SIRC. O arquivo ZIP disponibilizado para download (ver abaixo) contem ambas as versões. A versão atualizada é a Ver2017, que também se encontra no diretório raiz de tal arquivo junto com outras informações. Adicionalmente, cabe mencionar que pequenas modificações no firmware e no diagrama esquemático foram também realizadas com o intuito de estabilizar o funcionamento do presente controle remoto.

Superado os problemas relacionados com a codificação SIRC, surgiu um ultimo ponto a ser considerado no projeto do circuito: O consumo da bateria. Para isso, usei uma estratégia onde cada tecla do controle remoto é na verdade uma tecla "liga". Ao serem pressionadas elas acionam a alimentação do microcontolador. O primeiro comando executado pelo firmware consiste em acionar um bypass, composto por uma 4066. Após executar o programa, o bypass é desligado e a alimentação do microcontrolador é interrompida. Desta forma, a maior parte do circuito só é de fato ligada quando pressionamos uma tecla, permanecendo ligado somente durante o tempo estritamente necessário. Para alimentar o circuito optei por usar uma bateria de 9 V. Então, para evitar qualquer consumo extra, usei um diodo zener de 4.7 V para a reduzir a tensão da bateria e deixar a alimentação dentro da faixa de operação do ATmega8. Contudo, chamo a atenção que é necessária a inclusão de um led para garantir a corrente de manutenção sobre o zener, visando evitar grandes variações na tensão de alimentação do restante do circuito. Evidentemente, tal led fica ligado somente enquanto o microcontrolador estiver em operação. O diagrama esquemático é mostrado na figura abaixo, sendo o código fonte e o firmware compilado disponível aqui para download.

Controle Remoto

O código fonte esta suficientemente comentado para se efetuar qualquer modificação que se fizer necessária, principalmente aquelas relacionadas com o numero dos canais. Na versão 2012 é disponibilizado 8 canais, controle de volume e liga/desliga, algo minimalista e que é extremamente pratico para qualquer um. Na versão 2017 é disponibilizado 7 canais digitais, mute, controle de volume e liga/desliga, continuando assim bem minimalista. O tamanho "exagerado" do controle remoto nunca foi uma preocupação. Contudo, tenho que admitir que ele não ficou muito "bonitinho"! De qualquer forma, o problema principal foi de fato resolvido.

NOTA: O presente projeto possui finalidades didáticas sem pretensões comerciais. Fico isento de qualquer responsabilidade pelo uso, montagem, aplicação ou reprodução desse projeto, integramente ou em partes. Em especial, não me resposabilizo por qualquer dano que pode ser por ele provocado. Para questões adicionais, sugestões e comentários favor entrar em contato via o email: Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.