Decodificação de controle remoto IV da Philips

Para "abobrinhas" use o " Boteco"

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor kaoalex » 21 Jun 2009 11:48

MOR_AL,

Agora sim! Sei tudo de PWM. :lol:
Obrigado.

Código: Selecionar todos
                         Crystal Frequency
PWM Freq  = -----------------------------------------
               (PR2 + 1) * (Timer2 Prescaler) * 4


               1
PWM Freq =  -------
               T
                                 


Timer2 Prescaler => 1, 4 ou 16
(por isso o wizard me dava 3 opções uma para cada Timer2 Prescaler)

PR2 => 0 até 255
8 bits

Duty => 0 até PR2
PR2 = 100%

O CCS faz alguma "mágica" para aumentar a precisão do duty, eles falam a respeido disso no fórum mas não entendi o porque.

Estou pensando em reescrever o código e ir variando o campo information via serial para ver o que o receptor me diz...
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52

Mensagempor MOR_AL » 21 Jun 2009 13:05

É isso aí. Agora você está fera em PWM. :D
Tem um macete para aumentar a precisão do PWM. Envolve os bits 4 e 5 do registro CCP1CON. Mas conforme a frequência do PWM aumenta, a precisão começa a ficar limitada pela frequência do clock do PIC.
Já obtive as sequências dos códigos para algumas teclas.
O código é uma sequência de níveis. O primeiro '0' dura 2,666ms e os outros duram 0,444ms. Dá um total de 46 a 47 níveis. Alguns são repetidos (vários zeros ou vários uns).
Gerar eles não dá muito trabalho, agora detectar qual tecla é que vão ser elas.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor kaoalex » 21 Jun 2009 14:05

MOR_AL,
Tenho um método infalível! Vou jogar o valor e ver o que o receptor faz!!!
Vou alterar o código agora, difícil vai ser tirar a minha sobrinha do meu quarto para eu testar...
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52

Re: Decodificação de controle remoto IV da Philips

Mensagempor Renie » 22 Jun 2009 02:09

Olá Mor_al,

Montei no protoboard o projeto do site SB e gravei um PIC com o código
para RC5 (com as peças que eu tenho aqui, claro :) :)

Se você está pretendendo brincar com algum controle já pronto, é uma
boa idéia montar também para saber os códigos que o seu gera, pois
dependendo do controle pode mudar os comandos de algumas teclas e
até mesmo algumas não funcionarem.

Meus testes:
Controle de TV 29 polegadas (aquele que usei no teste do Encontro),
todas as teclas geram controle 00 e comandos distintos, sendo que
as 4 teclas de DVD não geram nada (a TV não tem DVD mesmo!hehehhe),
as teclas de 0 a 9 geram 00 a 09.

Controle do System FW390C , o power depende do último modo que o
controle foi usado (110C tuner, 120C tape, 140C CD,150C AUX), as teclas de
modo (113F tuner, 123F tape, 143F CD, 153F AUX), as teclas relativas
ao amplificador (volume, surround, mute, etc.) sempre
geram o controle 10 xx, as teclas Play, avanço, stop, next, etc. também
dependem do modo, ou geram o controle correspondente ao modo com
o comando (valor igual em todos os modos), ou não geram nada.

Controle do System Fw36, semelhante ao do Fw390C.

Os comandos iguais em todos os testes:
vol + = 10
vol - = 11
mute = 0d
Stop = 36 (nada em modo tuner)
Pausa = 30 (idem)
Anterior = 21 (idem, na TV = cha -)
Proxima = 20 (idem, na TV = cha +)
Program = 24 (só no modo CD e na TV)

O avanço rápido e retrocesso rápido tem valores de comandos
diferentes no modo CD e modo tuner

Teclas distintas:
TV
Timer = 2F, estéreo = 23, AV = 38, SmartSound 14, Surf = 79,
Smart picture = 15, Menu = 52, OSD = 0F, Para cima = 50,
para baixo = 51, para direita = 56, para esquerda = 55, sleep = 26
CC = 3A (nem sei o que é isso !hehehehe)

FW390C
Surround 40, DBB = 46, DSC = 4F, repeat = 1D, Shuffle = 1C,
CD direct 1 = 37, CD direct 2 =38 e 3 = 39.

FW36
News = 5A (também não sei o que é isso).

Nota: todos os valores acima são em hexa.

Como cada controle tem teclas extras diferentes, só capturando mesmo
para saber seus valores.

[]'s
Renie
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor MOR_AL » 22 Jun 2009 15:15

Olá Renie.

Primeiro eu fotografei as formas de onda de algumas teclas do controle Sky da Philips. As fotos dos sinais de algumas teclas encontram-se no arquivo a seguir:
http://rapidshare.com/files/247448375/S ... s.doc.html
Observando as fotos, concluí que o controle já usava o protocolo RC6. :lol:
Junto com as informações fornecidas pelo site http://www.sbprojects.com/knowledge/ir/rc6.htm , e com a ajuda do Kaoalex, fui identificado os códigos.
Agora, de posse dos tempos e do protocolo, dá para fazer o identificador de teclas. Pelo menos para o protocolo RC6.

Acho que agora só fica faltando confirmar, que o bit TR muda, cada vez que uma tecla pressionada for repetida.

Bom. É isso aí.

[]'s
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor kaoalex » 24 Jun 2009 13:30

MOR_AL,
Só agora tomei coragem de abrir o arquivo....
Imagino o trabalho que deu.
Na sexta-feira vou tentar imprimir e tabelar tudo.
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52

Mensagempor MOR_AL » 24 Jun 2009 20:27

Kaoalex.

Agora que tenho os tempos do protocolo RC6 (verifiquei apenas as teclas 1 e 6 nas formas de onda das respectivas fotos), estou fazendo um fluxograma para verificar o código de cada tecla.
Ao ser pressionada uma tecla, o código aparece em 8 leds. Apesar do programa também obter o byte control, primeiramente aparecerá apenas o byte information.
Mas estou com pouco tempo, daí que vai demorar um pouco.
[]'s
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor MOR_AL » 31 Jul 2009 15:39

Bom.
Finalmente, acho que consegui fazer o que eu me propuz. Um aparelhinho que funcione na identificação do código das teclas de um controle remoto Philips RC6:
Código: Selecionar todos
;     1 - Este programa identifica a tecla pressionada no controle remoto da Philips, com o protocolo de transmissão RC6.
;     2 - O hardware é constituído pelo MC 16F628A. Um receptor infravermelho (IV) tem sua saída comectada ao pino RB0,
;      que dispõe de interrupção acionada por transição negativa, indicando a presença de radiação IV no receptor,
;      com taxa próxima a 38kc/s. Oito portas de saída acionarão 8 leds (L7-L0), através de 8 resistores. RB3 = L7,
;      RB2 = L6, RB1 = L5, RA4 = L4, RA3 = L3, RA2 = L2, RA1 = L1, RA0 = L0.
;      Os leds conterão a informação de quatro dados.
;      Ao se pressionar a tecla do controle remoto, caso a detecção esteja se comportando corretamente, um buzzer
;      ativo, conectado em RB4, soará um bip curto com 0,15s de duração. Os leds indicarão:
;      a) A identificação do período '0' correto do Leader Simbol (L7 = aceso).
;      b) A identificação do período '1' do Start Bit (L6 aceso)
;      c) A identificação dos tres bits de Modo mb2, mb1 e mb0 (L5, L4 e L3 respectivamente. Aceso = '1').
;      d) A identificação da existência do bit Toggle com os períodos corretos (L2 aceso).
;      Após confirmar a correção dos estados dos leds, o operador deverá acionar a chave momentânea CH1, conectada ao
;      pino RB5. Esta atitude exterioriza o estado do byte Control (a7-a0) para os leds. ('1' aceso, '0' apagado). O
;      buzzer soará dois bips curtos com 0,15s de duração em intervalo de 0,15s, identificando a etapa Control.
;      Após confirmar a correção dos estados dos leds, o operador deverá acionar a chave momentânea CH1. Esta atitude
;      exterioriza o estado do byte Information (c7-c0) para os leds. ('1' aceso, '0' apagado). O buzzer soará tres
;      bips curtos com 0,15s de duração em intervalos de 0,15s. O operador deverá confirmar o estado destes bits.
;      Quando houver algum tipo de erro detectável pelo programa, tais como:
;      a) Existência de nível '1' antes de terminar o período '0' em Leader Simbol. Código 31.
;      b) O não retorno para '1' após o período '0' em Leader Simbol. Código 32.
;      c) O excesso do período '1' em Leader bit. Código 33.
;      d) Falta de transição esperada em Start Bit. Código 34.
;      e) Falta de transição esperada em um dos bits de Modo. Código 35.
;      f) Falta de transição esperada em Toggle Bit. Código 36.
;      g) Falta de transição esperada no bit 7 de Control. Código 37.
;      h) Falta de transição esperada em um dos bits 6-0 de Control. Código 38.
;      i) Falta de transição esperada no bit 7 de Information. Código 37.
;      j) Falta de transição esperada em um dos bits 6-0 de Information. Código 38.
;      o buzzer soará de meio em meio segundo, com intervalos de meio segundo, indicando que o estado dos leds representa
;      o código do erro detectado. O buzzer deixará de emitir o som ao se pressionar a tecla CH1. Os leds apagarão e
;      o programa retorna ao estado de espera de nova tecla.
;      A chave CH2, conectada ao pino RA5, é a chave de Reset do aparelho.
;      Acrescentou-se no pino RB7, uma saída, que gera uma transição positiva, sempre que o programa espera por uma
;      transição que informa o valor de um bit. Ao ocorrer a transição que identifica o valor do bit, a saída RB0 retorna a 0.
;      Com isso pode-se observar, no osciloscópio, o quão correto se situa o intervalo de monitoração da transição que vai
;      determinar o valor do bit.

Obtive os seguintes códigos (em hexa) para as teclas do controle remoto da Sky.
Teclas numéricas (de 0 a 9) possuem o mesmo código dos dígitos (o = 0, ..., 9 = 9).
Vol+ = 10h, Vol- = 11h, Ch+ = 20h, CH- = 21h, Mute = 0Dh, "O" no centro das quatro setas = 5Ch, Seta p/ direita = 5Bh, Seta p/esquerda = 5Ah, Seta p/a cima = 58h, seta p/ baixo = 59h, Retornar = 83h, ? = CBh, L/D = 0Ch, TV = 43h, Mosaico = 66h, +Plus = 4Ch, iTV = F5h.
Como os leds que indicavam os códigos, o faziam do mais significativo para o menos significativo (direita p/ esquerda) para mim, pode haver algum erro.
Introduzi pulsos de sincronismo (RB7). Sempre que o programa abria uma "janela" para monitorar a transição, que determina o estado do bit, RB7 ia para '1'. Quando a transição era detectada, RB7 retornava a '0'. Com isso eu pude observar, no osciloscópio, se as "janelas" estavam bem posicionadas no tempo.
Agora que parece que está funcionando, vou retirar as duas primeiras etapas (Header e Control), e também o tratamento dos erros que ocorriam.
Pretendo que ao se pressionar um botão do controle, o código da tecla, fique contido em um registro. Com isso será possível estabelecer um comando remoto.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor MOR_AL » 29 Ago 2009 09:16

Reavivando o tópico. Segue a imagem da minha placa montada.... E o diagrama esquemático. Não deu para reduzir o tamanho do diagrama sem perda de nitidez!!!
ImagemImagem
MOR_AL
Editado pela última vez por MOR_AL em 29 Ago 2009 17:00, em um total de 1 vez.
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor kaoalex » 29 Ago 2009 11:48

MOR_AL,

Muito boa...
A plaquinha ficou de primeira... Parabéns!
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52

Mensagempor MOR_AL » 29 Ago 2009 12:27

kaoalex escreveu:MOR_AL,

Muito boa...
A plaquinha ficou de primeira... Parabéns!

Obrigado Kaoalex.
Deixei os dois resistores (1k8) com as pernas maiores, porque vou substituí-los por 1k5, que é o valor correto.
Talvez nem precisasse do cristal, mas agora já foi.
[]'s
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor jeanfernandes » 18 Set 2009 02:10

Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor MOR_AL » 18 Set 2009 14:05

jeanfernandes escreveu:http://www.picbasic.nl/frameload_uk.htm?http://www.picbasic.nl/nummermelder_uk.htm


jeanfernandes.

"Caller Line Identification (CLI)"

Não entendi. O que você apresentou é um site de identificador de chamada telefônica, né?
O que você quis passar?
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor edison » 18 Set 2009 23:30

MOR_AL escreveu:
jeanfernandes escreveu:http://www.picbasic.nl/frameload_uk.htm?http://www.picbasic.nl/nummermelder_uk.htm


jeanfernandes.

"Caller Line Identification (CLI)"

Não entendi. O que você apresentou é um site de identificador de chamada telefônica, né?
O que você quis passar?
MOR_AL


Talvez ele queira que vc implante um display ao seu projeto com indicações dos status por texto .
Creio eu....

Té mais..
-----------------------------------------------
"Os políticos e as fraldas devem ser trocados freqüentemente. E pelas mesmas razões"
-----------------------------------------------
Avatar do usuário
edison
Dword
 
Mensagens: 2011
Registrado em: 10 Mar 2007 00:18
Localização: Curitiba

Mensagempor jorgeluiz » 19 Set 2009 02:01

Caro Moris:
estou pensando em implementar essa tecnica para um controle remoto por RF. Alguma sugestao?
Hoje conclui um transmissor para controle de um motor por RF, com uma simples tecnica de enviar uma frequencia de 40 Hz a 2500 Hz, e contagem dos pulsos no pic do receptor (Ja deu pra ver, que varia de 4 a 250, nao e'?), e colocar esse valor no controle do PWM. O motor devera girar nos dois sentidos, espero.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

AnteriorPróximo

Voltar para Assuntos Gerais

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x