Stap 4: Hacken de afstandsbediening
Het meten van de IR-signalen:
Om te begrijpen van de afstandsbediening ik aangesloten op mijn IR-detector met een geheugenoscilloscoop en begon knoppen in te drukken. Het aardige ding over een opslag scope is dat het bespaart de IR-code op het scherm voor u om te analyseren. Nemen het een stap verder, ik heb eigenlijk opgeslagen de sporen voor elke knop als een. CSV-bestand importeren in een Excel of OpenOffice Calc Spreadsheet. Zie het bijgevoegde bestand van mijn IR signaal werkblad voor de Power-knop.
Het analyseren van de IR-signalen:
Voor het gebruik van de afstandsbediening, was ik niet per se kochten de berichtenstructuur van het hele te decoderen. Ik wilde vooral, om de verschillen in het signaal voor elke druk op de knop te vinden.
Met behulp van het werkblad en de gegevens van het tijdstempel toepassingsgebied, ontdekte ik dat elk infrarood signaal had drie onderdelen - een puls van start, een 16-bits externe-ID (die is hetzelfde voor alle knoppen) en een 16-bits knopcode die uniek is voor elke knop. Door te kijken naar de laatste 16-bits van het infrarood signaal, zijn wij in staat om te onderscheiden welke knop werd ingedrukt.
De een netelige deel aan het gebruik van de externe code is wanneer u een knop ingedrukt, de afstandsbediening stuurt een identieke "herhaal code" uit totdat de knop wordt vrijgegeven. Dit herhaal code is zeer gelijkaardig aan de start pulse, maar met een verschillende tijdsduur.
Met behulp van de IR-signalen:
Ik heb het IR signaal krijgen via de PIC Interrupt-op-Change pin. De interne Timer 0-module gebruiken we de periode tussen dalende randen kunnen rekenen op deze pin. Iedere keer dat er een dalende rand is de PIC bespaart de staat van het TMR0-register (om op te nemen van de voorgaande periode) en wordt opnieuw opgestart TMR0 (om op te nemen van de volgende periode). Met deze informatie kunnen we bepalen of een 1, 0, pulse Start, of herhaal puls werd ontvangen.