Ergebnis 1 bis 3 von 3
  1. #1
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     

    Fernbedienungs-Codes (RC5) von der Box an den TV senden !

    Mein Zweitfernseher lässt sich leider nicht über HDMI-CEC von der Box aus einschalten und auch nicht auf den HDMI-Eingang schalten.
    Auch einen RC-Code für den HDMI-Eingang gibt es nicht, lediglich eine RC-Sequenz.
    Eine makrofähige Fernbedienung, die das kann, ist vorhanden aber nicht familientauglich.

    Die einzige Lösung: Die Box muss den Fernseher über Infrarot steuern !

    Es ist ein Grundig, der RC5-Codes auf 940/950nm versteht (RC-5 – Wikipedia).
    Nun suche ich eine Möglichkeit, RC5 Codes von der Box aus zu senden.
    Es gibt durchaus USB-IR-Transmitterdoch die sind teuer, und die Treiberfrage ist ungewiss.

    Die Sende-Hardware selbst ist kein Problem, es gibt Module aus China, die vermutlich günstiger sind als die Einzelkomponenten in Deutschland gekauft:
    Da ich softwarescheu bin, möchte ich auf die naheliegende Lösung, einen Raspberry Pi oder ähnlich einzusetzen, verzichten. Die Box soll die RC-Codes erzeugen. 36kHz sollten selbst in Python machbar sein.

    Hat jemand eine Idee, wie man an der Box einen einfachen programmierbaren Digital-Ausgang (GPIO) realisieren kann ?
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

    •   Alt Advertising

       

  2. #2
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Ich sehe gerade, ich war etwas zu optimistisch, was die "Software in Python" angeht:

    You can’t manually modulate the GPIO pins at 38 KHz, as 20 μsec accuracy is really hard to achieve with a Linux userland program.
    (aus https://www.stavros.io/posts/how-tur...emote-control/)

    Interessant ist dort der Verweis auf http://www.lirc.org/ .
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  3. #3
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Motiviert von Adenin
    vergiss es
    habe ich es tatsächlich geschafft, meine Gigablue Quad in einen RC5-Transmitter zu verwandeln, der auch über eine Wand in der Lage ist, den Fernseher zu steuern - meine Alternative zu HDMI-CEC.

    Ich nutze dabei die UART (RS232) für die 36kHz-Modulation der Infrarot-Signale. Diese Modulation ist ein wesentliches Merkmal jeder Infrarot-Strecke im häuslichen Bereich, sie macht die Übertragung unempfindlich gegen Störlicht aller Art. Beim RC5-Protokoll werden 36kHz mit einem Puls-Pausen-Verhältnis von 1:3 gefordert. Eine Null wird codiert als 32 Pulse (889µs) gefolgt von einer genauso langen Pause, eine Eins als 889µs-Pause gefolgt von 32 Pulsen, siehe die sehr schönen Abbildungen unter Elektronik: IR-Fernbedienung, RC-5 . Aus den so codierten Bits wird dann eine 14 Bit lange Sequenz zusammengesetzt, die unter anderem ein Startbit, eine Geräteadresse und das eigentliche Kommando enthält, was ebenfalls in diesem Link beschrieben ist.

    Die Schwierigkeiten dabei sind

    • Die Modulationsfrequenz von 36kHz:Gelöst durch eine Nicht-Standard-Baudrate von 360 kbit/s bei 10 bit (1 Startbit, 8 Datenbits, 1 Stopbit). Pro Puls wird ein Byte über die UART gesendet.
    • Die exakte Dauer der Pausen: Gelöst über einen kontinuierlichen Datenstrom auf der RS232-Schnittstelle. Auch in den Pausen werden, entsprechend der geforderten Dauer der Pause, 32 Bytes gesendet, jedoch ohne dass diese Bytes in Infrarot-Pulse umgesetzt werden.
    • Das Puls-Pausen-Verhältnis von 1:3: Gelöst über einen unsymmetrischen RC-Filter, der steigende und fallende Flanken unterschiedlich verzögert. So wird in den Pausen jeweils das einzelne Startbit unterdrückt. In den Phasen, in denen gepulst werden soll, wird aus 5 Bits mit High-Pegel (incl. Startbit) ein halb so langer Infrarot-Puls, dessen Länge sich in Hardware (Widerstand R2) oder in Software (Anzahl der aktiven Bits) auf das Verhältnis 1:3 kalibrieren lässt.

    Ein paar Bilder sagen mehr als 1000 Worte:

    Fernbedienungs-Codes (RC5) von der Box an den TV senden !-rc5tx.jpg
    (auch als pdf: RC5TX.pdf)
    Fernbedienungs-Codes (RC5) von der Box an den TV senden !-rx5tx_proto_top.jpg
    Fernbedienungs-Codes (RC5) von der Box an den TV senden !-rx5tx_proto_bot.jpg
    Dazu gibt es etwas Software:

    gistfile1 (aus dem Netz): Zum Setzen der Nicht-Standard-Baudrate von 360 kbit/s.
    Code:
    /usr/bin/gistfile1 /dev/ttyS0 360000
    ttyloop32: Zum Verifizieren der Baudrate (wenn kein Frequenzmessgerät vorhanden ist) und der RC-Filterung, es sendet kontinuierlich ein Vielfaches von 32 identischen Bytes.
    Code:
    time /usr/bin/ttyloop32 /dev/ttyS0 255 112500
    sollte 100 Sekunden benötigen (112.500*32Byte * 10Bit/Byte / 360.000Bit/s = 100s) und keine IR-Pulse erzeugen, die Spannung an MP4 sollte 0V sein. Eine Digitalkamera (Handy) sollte eine dunkle IR-Diode zeigen.
    Code:
    time /usr/bin/ttyloop32 /dev/ttyS0 240 112500
    sollte ebenfalls 100 Sekunden benötigen, die durchschnittliche Spannung an MP4, gemessen mit einem Multimeter in der V-DC-Einstellung, sollte 1,25V betragen (1/4 von 5V für 25% Duty Cycle, 1:3).

    rc5tx
    : Zum Senden von RC5-Kommandos.
    Code:
    /usr/bin/rc5tx device togglebit addr cmd loops
    • 'device' ist dabei die UART (z.B. /dev/ttyS0).
    • Das 'togglebit' dient der Unterscheidung zwischen langen und erneuten Tastendrücken. Es sollte bei jedem neuen Tastendruck wechseln.
    • 'addr' ist die Geräteadresse. Die meisten Philips-Fernseher verstehen Kommandos der Adressen 0 und 3.
    • 'cmd' ist das Kommando, bei Philips-Fernsehern z.B. '2' für die Zahlentaste '2' auf der Fernbedienung.
    • 'loops' ist die Anzahl der Wiederholungen des Kommandos, so dass ein langer Tastendruck emuliert werden kann. Auch bei einem kurzen Tastendruck sind 2-3 'loops' empfehlenswert, dies macht die Übertragung weniger störanfällig.

    Zum Compilieren der Software in einer aufgesetzten Build-Umgebung (heißen Dank an Adenin):
    RC5_source.zip
    Code:
    cd ~/openatv/build-enviroment/meta-local/recipes-local
    tar -xzvf [path_to_tarfiles]/rc5tx.tar.gz
    cd ~/openatv/build-enviroment/builds/openatv/release/[box_name]
    source ./env.source
    bitbake rc5tx
    cp ./tmp/deploy/ipk/mips32el/rc5tx_1.0-r0_mips32el.ipk [path_to_box_root]/tmp
    Alternativ gibt es die fertigen ipk's für mipsel:
    RC5_mipsel.zip

    Installation der Software auf der Box:
    Code:
    cd /tmp
    ipkg remove rc5tx
    ipkg install rc5tx_1.0-r0_mips32el.ipk
    HDMI-CEC ist tot, es lebe RC5 !
    Geändert von Fischreiher (10.03.2017 um 09:21 Uhr)
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  4. Thanks sgs, satguy bedankten sich

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.
Powered by vBulletin® Version 4.2.5 (Deutsch)
Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.
Resources saved on this page: MySQL 5,26%
Parts of this site powered by vBulletin Mods & Addons from DragonByte Technologies Ltd. (Details)
vBulletin Skin By: PurevB.com