Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
private:rasperry_pi_ir-onoff [2013/01/25 23:37]
Patrick Wacker [XBox 1 DVD-Fernbedienung] Dekodierung überarbeitet
private:rasperry_pi_ir-onoff [2013/02/04 19:38] (aktuell)
Patrick Wacker [Technisat DigiPal 2 - DBV-T Fernbedienung] Aufgetretene Probleme dokumentiert
Zeile 29: Zeile 29:
   * Übertragungsfehler im IR-Signal sollten erkannt werden.   * Übertragungsfehler im IR-Signal sollten erkannt werden.
   * Automatische Erkennung von RCA und RC5   * Automatische Erkennung von RCA und RC5
 +  * Die IR-Codes (Tasten) sollten ohne den PIC neu zu Programmieren änderbar sein.
 +    * RCA und RC5 Codes zum Ein-/​Ausschalten im EEProm sichern
 +    * Updates der Codes wenn z.B. der Taster > 8s betätigt wurde.
 +      * - Taster >8s --> IR-Code aufnehmen.
 +      * - 1. "​STOP"​-Taste
 +      * - 2. "​SELECT"​-Taste
 +      * - 3. "​POWER"​-Taste
 +      * - [4. "​ANZAHL der STOP-Codes"​ (STOP so oft betätigen wie es zum einschalten genutzt werden soll) (Default: 2 (z.B. bei "​Skip"​))] ((eventuelle Erweiterung))
 +      * - [5. "​ANZAHL der STOP-Codes"​ (STOP so oft betätigen wie es zum ausschalten genutzt werden soll) (Default: 4 (z.B. bei "​Skip"​))] ((eventuelle Erweiterung))
 +      * - [6. "​ANZAHL der POWER-Codes"​ (POWER so oft betätigen wie es zum Ein-/​Ausschalten genutzt werden soll) (Default: 1 (z.B. bei "​Skip"​))] ((eventuelle Erweiterung))
 +      * Entscheidung ob RCA oder RC5 gespeichert wird innerhalb des PICs treffen
 +      * Wenn ein Code nicht gespeichert werden soll (z.B. keine "​POWER"​-Taste vorhanden) sollte dieser Abschnitt durch ein kurzes betätigen des Tasters übersprungen werden können.
 +      * Anzeige über LED ob CODE richtig entgegen genommen wurde.
 +        * und durch Blinken anzeigen welcher Code gerade eingegeben werden soll. (1-3 mal Blinken, dann ca. 3 Sekunden Pause)
 +      * Automatischer Abbruch der Aufzeichnung wenn länger als 2 Minuten keine Befehle empfangen wurden.
 +    * Taster > 20 Sekunden betätigt --> RESET der IR-Codes auf "​Standard"​ Werte!
   * PIC-Code und Schaltplan/​Layout in Subversion verwalten.   * PIC-Code und Schaltplan/​Layout in Subversion verwalten.
  
Zeile 35: Zeile 51:
     * 2x STOP, dann SELECT --> Einschalten     * 2x STOP, dann SELECT --> Einschalten
     * 4x STOP, dann SELECT --> Ausschalten     * 4x STOP, dann SELECT --> Ausschalten
 +  * Aber auch das Ein-/​Ausschalten über eine "​POWER"​-Taste auf der Fernbedienung sollte möglich sein.
  
  
Zeile 140: Zeile 157:
  
 ==== Technisat DigiPal 2 - DBV-T Fernbedienung ==== ==== Technisat DigiPal 2 - DBV-T Fernbedienung ====
 +
 +Codierung der einer Taste auf der DigiPal 2 (ohne '​e'​) Fernbedienung (RC5 - Format)
 +
 +{{svg>​private:​rasperry_pi_ir-onoff:​timing_digipal_remote}}
 +
 +Dieses Timing ist für das RC5 Format, im Nachhinein wurde festgestellt das einige Tasten ein "​extended"​ RC5 Format übertragen.
 +Bei diesem ist die START Codierung anders ('​10'​ statt '11 -> somit low-Pegel für 1,8ms). Dadurch überschneidet sich die Zeitmessung mit dem RCA Format.
 +
 +Außerdem gibt es Probleme beim "​fehlerfreien"​ Empfang des RCA Formats:
 +  - Das Start-Bit ist, bei direkter Richtung der Fernbedienung auf den IR-Empänger,​ nicht 4ms lang sondern schwankt zwischen 0.8ms und 4ms. Teilweise werden auch mehrere Pulse erkannt!
 +  - Die Logitech Harmony wird besser erkannt als die Original MS XBox Fernbedienung.
 +  - 
 +
 +Die nachfolgenden Zeiten wurden mit dem Oszilloskop ermittelt.
 +
 +| **Timings** ^  t_low  ^  t_high ​ ^  t_puls ​ ^ __t_soll__ ^
 +^  Start      |   0.9ms |    0.9ms |    1.8ms |     x.y ms |
 +^  "​0" ​       |   0.9ms |    0.9ms |    1.8ms |     x.y ms |
 +^  "​1" ​       |   0.9ms |    0.9ms |    1.8ms |     x.y ms |
 +
 +
  
  
Zeile 168: Zeile 206:
  
 ===== Umsetzung ===== ===== Umsetzung =====
 +
 +==== Verwendete Module ====
 +
 +  * TIMER0: Increment alle 32µs (Bei 4MHz --> Prescaler 1:32), Overflow bei 8,192ms
 +    * Zur Zeitmessung des IR-Data-Signals
 +  * TIMER1: Increment alle 8µs (Bei 4MHz --> Prescaler 1:8), Overflow bei 524,288ms
 +    * Zur Erkennung von Button-Presses und Zeitmessungen für Sleep/​CMD-Ende
 +  * 
  
 ==== Schaltplan ==== ==== Schaltplan ====
Projektwerkzeuge