Controle remoto infra vermelho para Windows

Controle remoto tem esse nome porque está sempre longe da gente quando se precisa dele.

A placa de TV e captura PixelView PlayTV Pro tem uma entrada para controle remoto infravermelho e vem acompanhada por um receptor Infra Red (IR) e uma botoeira de controle remoto. Ideal para quem gosta de ficar procurando controles remotos. Os programas que vêm com a placa poderiam ser controlados por eles, mas o driver BT878 argentino causa a desabilitação do controle. Leia a seguir a solução para isto.

Use um programa que leia e traduza os comandos IR enviados pelo controle. Para Linux 2.6, entrada IR é automaticamente instalada como um teclado extra. Ou seja: é possível se controlar programas através de teclas de atalho emitidas pelo controle remoto.

Para Windows, é muito difícil achar um programa para controle remoto infra-vermelho. Por sorte, em algum lugar da rede eu achei justamente o RemoteControl. Não parece estar mais em desenvolvimento e tem alguns bugs menores, mas tem funcionado para mim depois de uma boa hackeada.

Baixe o RemoteControl no link ao final desta página.

Para fazê-lo funcionar, foi preciso editar manualmente os arquivos de configuração, pois a interface do próprio RemoteControl não grava os valores que a gente coloca. De volta aos velhos tempos de configuração manual de arquivos-texto.

Programando o controle remoto

A primeira coisa a fazer com o RemoteControl é definir os códigos enviados pela botoeira. Rode o programa RemoteControl e clique com o botão da direita do mouse no ícone dele, na bandeja do sistema. Aparecerá um menu. Escolha “IR codes”, códigos infravermelho. Use o botão “Add” para adicionar os códigos para cada botão do aparelho de controle remoto. Invente um nome de tecla e aperte o botão correspondente para capturar o código. Estes dados ficam no arquivo RemoteControl.cfg no mesmo diretório do executável.

Remote control setupNo controle remoto da PixelView PlayTV Pro, o código retornado para cada tecla é algo como 00FFDF29, por exemplo. Os números 00, FE e 29 são sempre os mesmos. O lugar onde está o número DF é onde fica o código correspondente a cada tecla. Acontece que, usando estes códigos, as teclas ou o RemoteControl se comportam como se a tecla estivesse sempre pressionada.

Como uma única tecla — Volume Up — não se comportava assim, e o número retornado era 00FF5429, intuí que as outras teclas estavam sendo enviadas com uma flag, algum bit ligado que marcaria a tecla como “tecla repetida”. Então, troquei todos os números retornados por números com o bit 7 desligado (oitavo bit). Ou seja, onde o código da tecla era 00FFD329, troquei para 00FF5329. Em vez do número “D” (1101, em binário), coloquei o número “5” (0101, em binário). Repare que o oitavo bit foi desligado. O hacking funcionou perfeitamente. Realmente, o oitavo bit dos códigos é interpretado pelo RemoteControl como se a tecla estivesse sempre pressionada.

Depois de arrumar todos os códigos, trocando a letra C por 4 e a letra D por 5, meu arquivo de configuração RemoteControl.cfg ficou assim:

[Settings]CodeMask=0000FF00
DefaultCode=00FFDF29
Interface=00000000
MouseSpeed=5
ShutdownTimeout=15
ContinueAfterPrograms=0
ContinueAfterBrowser=0

[Codes]
00FF4029=Source
00FF4129=1
00FF4229=0
00FF4329=TV-FM
00FF4429=Func-
00FF4529=4
00FF4629=7
00FF4729=Scan
00FF4929=5
00FF4A29=8
00FF4B29=2
00FF4C29=Func+
00FF4D29=Reset
00FF4E29=Function
00FF4F29=Freeze
00FF5029=+100
00FF5229=9
00FF5329=Loop
00FF5429=Ch-
00FF5529=6
00FF5629=Ch+
00FF5729=Vol-
00FF5829=Mute
00FF5B29=3
00FF5C29=Zoom
00FF5E29=Power
00FF5F29=Vol+

[Functions]
0000=01,00000000,
0001=02,00FF5629,
0002=03,00FF5429,
0003=04,00FF4B29,
0004=05,00FF4A29,
0005=06,00FF4529,
0006=07,00FF5529,
0007=08,00FF4129,
0008=09,00FF5B29,
0009=0A,00FF4629,
000A=0B,00FF5229,
000B=0C,00FF4229,
000C=0D,00FF5329,
000D=0E,00FF5029,
000E=0F,00FF5E29,
000F=00,00FF4329,G:...DScalerDScaler.exe
0010=00,00FF4729,G:...PowerDVDPowerDVD.exe

[Browser]
Directory=
Selected=0
FontName=Tahoma
FontSize=36
TextColor=00FFFFFF
BackColor=00000000
SelectionColor=00FF0000
ExitOnSelect=0
00=00000000
01=00000000
02=00FFCA29
03=00000000
04=00000000
05=00000000
06=00000000
07=00000000
08=00000000
09=00000000
0A=00000000
  • Em Codes estão os códigos retornados pelo controle remoto.
  • Em Functions, estão a funções de movimentação de mouse (ideal para tetraplégicos controlarem um PC) e teclas para abrir programas.
  • Em Browse, os comandos para um gerenciador de arquivos old style, embutido no RemoteControl.

Definindo teclas

Remote control 2Depois de definir os códigos da teclas, você pode criar perfis de programas para serem controlados por IR. No ícone da bandeja do sistema, clique com o botão da direita e escolha “Settings” e a aba “Programs”. Adicione um programa e defina os botões do controle remoto que usará e as teclas a que correspondem:

  1. O nome do comando (Command)
  2. A tecla modificadora (Modifier: CTRL, SHIFT, ALT)
  3. A tecla (Key) que será emitida pelo controle remoto
  4. Defina se estará ativa (Activate: True) ou não (False)
  5. Pressione o botão do controle remoto para definir o código (IR code). Atenção: os códigos, no meu caso, não foram gravados no arquivo de configuração. Isto serve apenas para se criar os comandos. Os códigos devem ser entrados à mão.
  6. Abra o arquivo de definições RemoteControl.ini com um editor de texto e coloque à mão os códigos das teclas, desligando o oitavo bit dos códigos. É simples: copie os códigos do arquivo Remotecontrol.cfg e cole no comando apropriado.

Se você acessar novamente a interface de configuração e clicar num comando, os códigos podem ficar errados. Então, edite sempre por um editor de texto.

Um perfil para o programa Dscaler ficaria assim:

[DScaler]@window=DScaler
@class=DScaler
Channel Up=0021,00FF5629,1
Channel Down=0022,00FF5429,1
Previous Channel=0208,00FF5329,1
Volume Up=006B,00FF5F29,1
Volume Down=006D,00FF5729,1
Mute=004D,00FF5829,1
Exit=0473,00FF4329,1
Full Screen=040D,00FF5C29,1
Func-=0142,00FF4429,1
Func+=014B,00FF4C29,1
Func=004C,00FF4E29,1
Reset=0042,00FF4D29,1
Freeze=004B,00FF4F29,1
Source=0000,00FF4029,0
Scan=0000,00FF4729,0
Power=0000,00FF5E29,0
+100=0000,00FF5029,0
1=0031,00FF4129,1
2=0032,00FF4B29,1
3=0033,00FF5B29,1
4=0034,00FF4529,1
5=0035,00FF4929,1
6=0036,00FF5529,1
7=0037,00FF4629,1
8=0038,00FF4A29,1
9=0039,00FF5229,1
0=0030,00FF4229,1

Ops!

Se algo for editado errado, coisas estranhas podem acontecer. Teclas ficam sempre apertadas, programas definidos para abrirem por teclas ficam fechando e abrindo, ou o RemoteControl pode abocanhar 100% do processamento do micro.

Freqüentemente, também, o programa RemoteControl toma conta da CPU e consome todo o processamento sem razão aparente. Isto acontece quando fecho o Dscaler. Ainda não decobri a razão. Mas se seu micro ficar muito lento e travado, pode ser o RC.

Ah!

Se estiver bem configurado, você poderá controlar qualquer programa que use teclas de atalho. Pode, inclusive,desligar o micro (o botão Power é ideal pra isso). Alguns botôes do controle remoto podem ser definidos para disparar programas. A partir daí, o programa disparado é que será controlado pelo controle remoto. Ou seja: as teclas podem ser redefinidas conforme cada programa, inclusive as teclas que disparam outros programas.

O mais comum é definir a tecla para rodar um programa, e no perfil deste programa definir a mesma tecla para desligá-lo (ALT+F4, em geral). Assim, uma tecla vira liga-desliga. Por exemplo, nas minhas configurações gerais, a tecla TV\FM abre o DScaler. No DScaler, a tecla TV\FM emite um ALT+F4, o que fecha o programa.

Baixe o programa: RemoteControl 1.0

About José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.