Es liegt aber nicht an stromschwankungen, sondern daran das ein Bauteil auf das hochenergetische licht reagiert...
Beiträge von timkn
-
-
Es liegt meiner Meinung nach nicht am Grabber selber, sondern am Vorgang des grabbens, dadurch hat der PI keine zeit die befehle fürs Funkmodul in Echtzeit zu übertragen...
mein Funk modul hängt jetzt mit am arduino der auch meinen HDMI-switch steuert, problem gelöst.
-
http://elinux.org/RPi_Low-level_…nout.2C_top_row
Hier sind alle Funktionen der Pins angegeben...
-
Zollfreigrenze ist das zauberwort, sind 22€, darunter fällt keine MwSt an. CE und Rohs sollten für Privatpersonen keine Rolle spielen.
-
Ich gehe davon aus das der grabber, sobald er läuft, die doch ziemlich kritischen timings von RcSwitch stört...
-
Wahnsinnig konstruktiv.
Hdmi kann als Variante von single-link dvi ansich garkein 2160p, das ist nicht in der hdmi Spezifikation.Davon mal abgesehen finde ich zum Beispiel 4k/UHD im consumer bereich absolut sinnlos, unter 50" diagonale völlig überzogen und selbst da nützt es auch nur dann etwas wenn man direkt davor sitzt...
-
Ja, an wirren mit wiringPi und den gpio zahlen habe ich gedacht, mittlerweile denke ich aber das einfach das timing nicht passt, da parallel hyperion läuft
-
Auf elinux.org gibts ne Auflistung und ja, auf gpio18 liegt auch SPI
-
-
Ja, Pin 13 und 17.
Bei dem Script oben benötigt man kein Crontab mehr, da in dem Script eine Dauerschleife steckt.
hier nochmal ein kurzes Testscript das einem die CEC-events ausgibt.
Python#!/usr/bin/env python import cec from time import sleep cec.init() def test(event, *args): print("Got event", event, "with data", args) cec.add_callback(test, cec.EVENT_ALL & ~cec.EVENT_LOG) sleep(10000)
benötigt wird python-cec welches libcec benötigt
-
Problem gefunden... GPIO17 ist SPI1_CE wird also durch die aktivierung von /dev/SPI0.0 blockiert...
Ich schau mal nach ner lösung...
Ich hab da mal ne lösung parat! In der send.cpp int pin = 0 auf Pin der whal endern, neu kompilieren und umstecken, dann sollte es funktionieren, hab es aber selber noch nicht getestet... -
Mit manchen hdmi-switches funktioniert es, mit anderen nicht. Wenn es mit dem unmodifizierten switch funktioniert, dann auch mit dem Umbau.
-
Ja, ich hab für mich das CEC Signal aufgetrennt, da ausser meinem bd player kein gerät CEC unterstützt, man kann aber die Leitung auch nur anzapfen, dann kann man mit dem PI mithören und befehle an alle Geräte senden
-
Wenn die Verkabelung stimmt musst du nur noch den Grabber in der Hyperion-Config aktivieren.
-
Löten müsstest du an 2 Pins an dem großen IC, 116(SDA) und 117(SCL), dazu suchst du dir noch ein schönes Plätzchen für 0V/GND (z.B. 113 oder 123). Die 3 anschlüsse existieren genauso auch am PI, einfach verbinden, Pegel ist laut Datenblatt bei beiden 3,3V.
Danach die Leiterbahnen unterbrechen das die originale Steuerung der Matrix nicht mehr stören kann.Dann am PI I2C aktivieren, dann in der gewünschten Programmiersprache dem Matrix-IC unter der I2C-Adresse 0xC8 oder 0xD8 (kommt auf den Aufbau der Matrix an. ) auf das Byte 49 die Werte
- 76543210 - Bitreinfolge
- 00110000 - Input 1 auf beiden Ausgängen
- 00110101 - Input 2 auf beiden Ausgängen
- 00111010 - Input 3 auf beiden Ausgängen
- 00111111 - Input 4 auf beiden Ausgängen
Das sollte auf den ersten Blick alles sein, genaueres kann ich leider nicht sagen.
Hier mal der link zum Datenblatt und zum Software Guide
-
Einfach zusammenstecken, aber für alle Quellen fehlt dir ein switch
Quelle -> Switch -> Splitter -> TV
**********************-> HDMI2AV -> Grabber -> PI -
Zum testen kann man auch den PI an den TV hängen und vom Splitter an einen externen Monitor gehen, damit kann man dann zumindest testen wie es funktioniert.
-
Dann müsste man eine Art Brücke bauen, das der Pi CEC immer mithören kann.
-
Ich habe mir dafür ein Splitter-kabel gebaut, so hört mein pi alle CEC befehle ab, hab dazu auch schon einen Thread erstellt.
-
Ich wollte euch hier mal mein Hyperion-Setup zeigen, dabei geht es mir aber nicht um die Hyperion-config, sondern das Drum-Herum.
Mein Python Script steuert Hyperion mit dem ein/aus-Schalten des TVs, ich kann über die Fernbedienung meines TVs meinen FireTV, den HDMI-Switch und meine Funksteckdosen steuern.
Das Script mag nicht allzu sauber sein, was aber daran liegt das ich mich erst seit ca 2 Wochen mit Python beschäftige. Noch dazu kann das Script auch "Artefakte" von Versuchen, also sinnlosen Code, enthalten.
Für Anregungen und neue Ideen bin ich immer offen!
Python
Alles anzeigen#!/usr/bin/env python import cec import os import serial import commands from time import sleep ser = serial.Serial('/dev/ttyUSB0', 9600) sleep(5) adbConnect = 'adb connect 192.168.178.29' os.system(adbConnect) adapters = cec.list_adapters() def ftv_keys(key): bashCommand = 'adb shell input keyevent ' + str(key) print bashCommand os.system(bashCommand) def test(event, key, val): global num #print("Got event", event, "with data", args) if (val == 0): if(key == 0): #ok print("OK") ftv_keys(66) elif(key == 1): #up print("UP") ftv_keys(19) elif(key == 2): #down print("DOWN") ftv_keys(20) elif(key == 3): #left print("LEFT") ftv_keys(21) elif(key == 4): #right print("RIGHT") ftv_keys(22) elif(key == 13): #back print("BACK") ftv_keys(4) elif(key == 44): #home print("HOME") ftv_keys(3) elif(key == 115): #menu print("MENU") ftv_keys(1) elif(key == 75): #next print("NEXT") ftv_keys(87) elif(key == 70): #play/pause print("PLAYPAUSE") ftv_keys(85) elif(key == 76): #prev print("PREV") ftv_keys(88) elif(key == 113): #blue Ambilight-Off bashCommand = 'hyperion-remote -c black' os.system(bashCommand) elif(key == 114): #red Ambilight-On bashCommand = 'hyperion-remote -x' os.system(bashCommand) elif(key == 115): #green print("green") elif(key == 116): #yellow print("yellow") elif(key == 32): #0 Start App on FireTV bashCommand = 'adb shell am start -n com.elgato.eyetv.netstream/com.elgato.eyetv.ui.SplashScreen' os.system(bashCommand) elif(key == 33): #1 HDMI-In 1 ser.write('c 1\n') elif(key == 34): #2 HDMI-In 2 ser.write('c 2\n') elif(key == 35): #3 HDMI-In 3 ser.write('c 3\n') elif(key == 36): #4 print("5") elif(key == 37): #5 print("5") elif(key == 38): #6 print("6") elif(key == 39): #7 num = 'sudo div/rcswitch-pi/send 10001 1 ' print(num) elif(key == 40): #8 num = 'sudo div/rcswitch-pi/send 10001 2 ' print(num) elif(key == 41): #9 num = 'sudo div/rcswitch-pi/send 10001 3 ' print(num) elif(key == 49): tmp = num + str('0') print(tmp) os.system(tmp) elif(key == 48): tmp = num + str('1') print(tmp) os.system(tmp) print adapters cec.init() print 'Devices: ', cec.list_devices() d = cec.Device(0) print d num = 1 cec.add_callback(test, cec.EVENT_ALL & ~cec.EVENT_LOG) while True: try: if(d.is_on()): if(commands.getoutput('pgrep -l hyperion |wc -l') == "0"): start = 'sudo /etc/init.d/hyperion start' os.system(start) else: if(commands.getoutput('pgrep -l hyperion |wc -l') == "1"): black = 'hyperion-remote -c black' stop = 'sudo /etc/init.d/hyperion stop' os.system(black) os.system(stop) except IOError: if(commands.getoutput('pgrep -l hyperion |wc -l') == "1"): black = 'hyperion-remote -c black' stop = 'sudo /etc/init.d/hyperion stop' os.system(black) os.system(stop) pass sleep(5)