Hyperion, die Ambilight-Alternative – Teil 4

3
3140
StockSnap / Pixabay

Heute im letzten Teil von “Hyperion, die Ambilight-Alternative” möchte ich auf die Programmierung eingehen. Natürlich beschreibe ich hier auf intux.de den Linux-Weg, mit Zugang zum Raspberry Pi (Modell B)  via SSH und SFTP. Das Ganze funktioniert selbstverständlich auch mit anderen Systemen wie Windows. Hierzu empfehle ich Tools wie PuTTY und/oder FileZilla.

Da ich einen Fushicai-Grabber (Logilink) einsetze, konnte ich mit dem aktuellen Image von Raspbian arbeiten. Dieses kostenlose Image läd man von der Seite http://www.raspberrypi.org/downloads/ herrunter. Das Build habe ich in mein Home-Verzeichnis entpackt und wie folgt auf die SD-Karte für mein Hyperion-Steuergerät Raspberry Pi gespielt.

sudo dd if=/home/intux/2015-02-16-raspbian-wheezy.img of=/dev/mmcblk0 bs=1M

Hier muss natürlich der Name des Home-Verzeichnisses an das eigene System angepasst werden, will man das Projekt am heimischen Rechner ebenfalls so nachbauen.

Im Anschluss wird die SD in den Raspberry Pi eingelegt und dieser gestartet. Eine Tastatur muss natürlich für den ersten Start an den RasPI angeschlossen sein. Später kann man dann bequemer vom PC oder Notekook über SSH auf das Gerät zugreifen.

Beim ersten Start von Raspbian auf dem Pi kommt man in das Konfigurationsmenü. Hierbei ist das Dateisystem über Punkt 1 zu erweitern und über Punkt 8 SSH und SPI zu aktivieren.

news-460

news-464

news-465

news-466

Ist das erledigt bestätigt man mit Finish und startet den Pi neu.

Nach dem Neustart führt man ein

sudo apt-get update && sudo apt-get upgrade

durch, um das System zu aktualisieren. Sicherheitshalber startet man den Raspberry Pi mit

sudo reboot

nochmals neu. Nach der Eingabe

lsusb

erscheint der Fushicai-Grabber ID 1b71:3002 wie in der Abbildung zu sehen ist in der Auflistung.

news-459

Gibt man

ls /dev

ein, sollte nun spidev0.0 und video0 hier zu sehen sein.

news-467

Das Programm HyperCon ist nun auf den PC zu laden und auszuführen. Hierbei muss Java installiert sein um HyperCon ausführen zu können. Man stellt im Programm die Anzahl der LEDs, die Anordnung etc. ein. Auf der Abbildung sieht man nun meine Vorgaben für 46 Leuchten (42 Zoll). Diese Konfigurationsdatei wird auf dem PC vorzugsweise in Home gespeichert.

Hyperion

Nun wird das Gegenstück Hyperion, zur Steuerung der LEDs, auf dem Pi installiert.

cd /tmp
wget -N raw.github.com/tvdzwan/hyperion/master/bin/install_hyperion.sh
chmod +x install_hyperion.sh
sudo ./install_hyperion.sh
cd /home/pi

Alle Voraussetzungen sind nun geschaffen und man muss nur noch ein wenig konfigurieren!

Ein Screenshot des vom Grabber ausgegebenen Bildes, mit dem Hyperion arbeitet, muss nun erstellt werden.

sudo hyperion-v4l2 --width 720 --height 576 --screenshot

Die entsprechende screenshot.png liegt dann im Hauptverzeichnis /home/pi des Raspberry Pi. Um nun den Grabber richtig einzustellen, schaut man sich das Bild auf dem PC an. E ist es hilfreich den Screenshot via SFTP (z.B. mit Filezilla) auf den PC zu holen. Man beschneidet jetzt mit crop das Bild solange bis die schwarzen Streifen um das Bildschirmfoto verschwunden sind.

news-461

Bei mir sieht der Befehl dann wie folgt aus:

sudo hyperion-v4l2 --width 720 --height 576 --screenshot --frame-decimator 2 --size-decimator 0 --crop-left 18 --crop-right 5 --crop-top 90 --crop-bottom 0

news-462

Um den Raspberry Pi nicht in die Knie zu zwingen, wird mit einer kleineren Auflösung zur Steuerung gearbeitet. Der passende Befehl wäre dann:

sudo hyperion-v4l2 --width 720 --height 576 --screenshot --frame-decimator 2 --size-decimator 8 --crop-left 18 --crop-right 5 --crop-top 90 --crop-bottom 0

Diese Werte editiert man im nachfolgenden Text und fügt das Ganze dann entsprechend so in die Konfigurationsdatei hyperion.config.json nach

// 	"boblightServer" : 
// 	{
// 		"port" : 19333
// 	},

ein.

/// Configuration for the embedded V4L2 grabber
/// * device : V4L2 Device to use [default="/dev/video0"]
/// * input : V4L2 input to use [default=0]
/// * standard : Video standard (no-change/PAL/NTSC) [default="no-change"]
/// * width : V4L2 width to set [default=-1]
/// * height : V4L2 height to set [default=-1]
/// * frameDecimation : Frame decimation factor [default=2]
/// * sizeDecimation : Size decimation factor [default=8]
/// * priority : Hyperion priority channel [default=800]
/// * mode : 3D mode to use 2D/3DSBS/3DTAB (note: no autodetection) [default="2D"]
/// * cropLeft : Cropping from the left [default=0]
/// * cropRight : Cropping from the right [default=0]
/// * cropTop : Cropping from the top [default=0]
/// * cropBottom : Cropping from the bottom [default=0]
/// * redSignalThreshold : Signal threshold for the red channel between 0.0 and 1.0 [default=0.0]
/// * greenSignalThreshold : Signal threshold for the green channel between 0.0 and 1.0 [default=0.0]
/// * blueSignalThreshold : Signal threshold for the blue channel between 0.0 and 1.0 [default=0.0]
"grabber-v4l2" :
{
"device" : "/dev/video0",
"input" : 0,
"standard" : "PAL",
"width" : 720,
"height" : 576,
"frameDecimation" : 2,
"sizeDecimation" : 8,
"priority" : 1100,
"mode" : "2D",
"cropLeft" : 18,
"cropRight" : 5,
"cropTop" : 90,
"cropBottom" : 0,
"redSignalThreshold" : 0.1,
"greenSignalThreshold" : 0.1,
"blueSignalThreshold" : 0.1
},

Nun ist noch der framegrabber und der xbmcVideoChecker  auszukommentieren (mit ///).

Meine fertige Config sieht nun so aus:

// Automatically generated configuration file for 'Hyperion daemon'
// Generated by: HyperCon (The Hyperion deamon configuration file builder

{
	/// Device configuration contains the following fields: 
	/// * 'name'       : The user friendly name of the device (only used for display purposes)
	/// * 'type'       : The type of the device or leds (known types for now are 'ws2801', 'ldp8806',
	///                  'lpd6803', 'sedu', 'adalight', 'lightpack', 'test' and 'none')
	/// * 'output'     : The output specification depends on selected device. This can for example be the
	///                  device specifier, device serial number, or the output file name
	/// * 'rate'       : The baudrate of the output to the device
	/// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.).
	"device" :
	{
		"name"       : "MyPi",
		"type"       : "ws2801",
		"output"     : "/dev/spidev0.0",
		"rate"       : 250000,
		"colorOrder" : "rgb"
	},

	/// Color manipulation configuration used to tune the output colors to specific surroundings. 
	/// The configuration contains a list of color-transforms. Each transform contains the 
	/// following fields:
	///  * 'id'   : The unique identifier of the color transformation (eg 'device_1')	///  * 'leds' : The indices (or index ranges) of the leds to which this color transform applies
	///             (eg '0-5, 9, 11, 12-17'). The indices are zero based.	///  * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following 
	///            tuning parameters:
	///            - 'saturationGain'  The gain adjustement of the saturation
	///            - 'valueGain'       The gain adjustement of the value
	///  * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the 
	///                           following tuning parameters for each channel:
	///            - 'threshold'       The minimum required input value for the channel to be on 
	///                                (else zero)
	///            - 'gamma'           The gamma-curve correction factor
	///            - 'blacklevel'      The lowest possible value (when the channel is black)
	///            - 'whitelevel'      The highest possible value (when the channel is white)
	///
	/// Next to the list with color transforms there is also a smoothing option.
	///  * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning 
	///                  parameters:
	///            - 'type'            The type of smoothing algorithm ('linear' or 'none')
	///            - 'time_ms'         The time constant for smoothing algorithm in milliseconds
	///            - 'updateFrequency' The update frequency of the leds in Hz
	"color" :
	{
		"transform" :
		[
			{
				"id"   : "default",
				"leds" : "*",
				"hsv" :
				{
					"saturationGain" : 1.0000,
					"valueGain"      : 1.0000
				},
				"red" :
				{
					"threshold"  : 0.0000,
					"gamma"      : 1.0000,
					"blacklevel" : 0.0000,
					"whitelevel" : 1.0000
				},
				"green" :
				{
					"threshold"  : 0.0000,
					"gamma"      : 1.0000,
					"blacklevel" : 0.0000,
					"whitelevel" : 1.0000
				},
				"blue" :
				{
					"threshold"  : 0.0000,
					"gamma"      : 1.0000,
					"blacklevel" : 0.0000,
					"whitelevel" : 1.0000
				}
			}
		],
		"smoothing" :
		{
			"type"            : "none",
			"time_ms"         : 200,
			"updateFrequency" : 20.0000
		}
	},

	///  The configuration for each individual led. This contains the specification of the area 
	///  averaged of an input image for each led to determine its color. Each item in the list 
	///  contains the following fields:
	///  * index: The index of the led. This determines its location in the string of leds; zero 
	///           being the first led.
	///  * hscan: The fractional part of the image along the horizontal used for the averaging 
	///           (minimum and maximum inclusive)
	///  * vscan: The fractional part of the image along the vertical used for the averaging 
	///           (minimum and maximum inclusive)
	"leds" : 
	[
		{
			"index" : 0,
			"hscan" : { "minimum" : 0.4286, "maximum" : 0.5000 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 1,
			"hscan" : { "minimum" : 0.3571, "maximum" : 0.4286 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 2,
			"hscan" : { "minimum" : 0.2857, "maximum" : 0.3571 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 3,
			"hscan" : { "minimum" : 0.2143, "maximum" : 0.2857 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 4,
			"hscan" : { "minimum" : 0.1429, "maximum" : 0.2143 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 5,
			"hscan" : { "minimum" : 0.0714, "maximum" : 0.1429 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 6,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0714 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 7,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.8889, "maximum" : 1.0000 }
		},
		{
			"index" : 8,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.7778, "maximum" : 0.8889 }
		},
		{
			"index" : 9,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.6667, "maximum" : 0.7778 }
		},
		{
			"index" : 10,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.5556, "maximum" : 0.6667 }
		},
		{
			"index" : 11,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.4444, "maximum" : 0.5556 }
		},
		{
			"index" : 12,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.3333, "maximum" : 0.4444 }
		},
		{
			"index" : 13,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.2222, "maximum" : 0.3333 }
		},
		{
			"index" : 14,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.1111, "maximum" : 0.2222 }
		},
		{
			"index" : 15,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.1111 }
		},
		{
			"index" : 16,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0714 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 17,
			"hscan" : { "minimum" : 0.0714, "maximum" : 0.1429 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 18,
			"hscan" : { "minimum" : 0.1429, "maximum" : 0.2143 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 19,
			"hscan" : { "minimum" : 0.2143, "maximum" : 0.2857 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 20,
			"hscan" : { "minimum" : 0.2857, "maximum" : 0.3571 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 21,
			"hscan" : { "minimum" : 0.3571, "maximum" : 0.4286 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 22,
			"hscan" : { "minimum" : 0.4286, "maximum" : 0.5000 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 23,
			"hscan" : { "minimum" : 0.5000, "maximum" : 0.5714 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 24,
			"hscan" : { "minimum" : 0.5714, "maximum" : 0.6429 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 25,
			"hscan" : { "minimum" : 0.6429, "maximum" : 0.7143 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 26,
			"hscan" : { "minimum" : 0.7143, "maximum" : 0.7857 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 27,
			"hscan" : { "minimum" : 0.7857, "maximum" : 0.8571 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 28,
			"hscan" : { "minimum" : 0.8571, "maximum" : 0.9286 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 29,
			"hscan" : { "minimum" : 0.9286, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 30,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.1111 }
		},
		{
			"index" : 31,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.1111, "maximum" : 0.2222 }
		},
		{
			"index" : 32,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.2222, "maximum" : 0.3333 }
		},
		{
			"index" : 33,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.3333, "maximum" : 0.4444 }
		},
		{
			"index" : 34,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.4444, "maximum" : 0.5556 }
		},
		{
			"index" : 35,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.5556, "maximum" : 0.6667 }
		},
		{
			"index" : 36,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.6667, "maximum" : 0.7778 }
		},
		{
			"index" : 37,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.7778, "maximum" : 0.8889 }
		},
		{
			"index" : 38,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.8889, "maximum" : 1.0000 }
		},
		{
			"index" : 39,
			"hscan" : { "minimum" : 0.9286, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 40,
			"hscan" : { "minimum" : 0.8571, "maximum" : 0.9286 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 41,
			"hscan" : { "minimum" : 0.7857, "maximum" : 0.8571 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 42,
			"hscan" : { "minimum" : 0.7143, "maximum" : 0.7857 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 43,
			"hscan" : { "minimum" : 0.6429, "maximum" : 0.7143 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 44,
			"hscan" : { "minimum" : 0.5714, "maximum" : 0.6429 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 45,
			"hscan" : { "minimum" : 0.5000, "maximum" : 0.5714 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		}
	],

	/// The black border configuration, contains the following items: 
	///  * enable    : true if the detector should be activated
	///  * threshold : Value below which a pixel is regarded as black (value between 0.0 and 1.0)
	"blackborderdetector" : 
	{
		"enable" : true,
		"threshold" : 0.01
	},

	/// The configuration of the effect engine, contains the following items: 
	///  * paths        : An array with absolute location(s) of directories with effects 
	///  * bootsequence : The effect selected as 'boot sequence'
	"effects" : 
	{
		"paths" : 
		[
			"/opt/hyperion/effects"
		]
	},

	"bootsequence" : 
	{
		"effect" : "Rainbow swirl fast",
		"duration_ms" : 3000
	},

	///  The configuration for the frame-grabber, contains the following items: 
	///   * width        : The width of the grabbed frames [pixels]
	///   * height       : The height of the grabbed frames [pixels]
	///   * frequency_Hz : The frequency of the frame grab [Hz]
	///"framegrabber" : 
	///{
	///	"width" : 64,
	///	"height" : 64,
	///	"frequency_Hz" : 10.0
	///},

	/// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields: 
	///  * xbmcAddress       : The IP address of the XBMC-host
	///  * xbmcTcpPort       : The TCP-port of the XBMC-server
	///  * grabVideo         : Flag indicating that the frame-grabber is on(true) during video playback
	///  * grabPictures      : Flag indicating that the frame-grabber is on(true) during picture show
	///  * grabAudio         : Flag indicating that the frame-grabber is on(true) during audio playback
	///  * grabMenu          : Flag indicating that the frame-grabber is on(true) in the XBMC menu
	///  * grabScreensaver   : Flag indicating that the frame-grabber is on(true) when XBMC is on screensaver
	///  * enable3DDetection : Flag indicating that the frame-grabber should switch to a 3D compatible modus if a 3D video is playing
	///"xbmcVideoChecker" : 
	///{
	///	"xbmcAddress" : "127.0.0.1",
	///	"xbmcTcpPort" : 9090,
	///	"grabVideo" : true,
	///	"grabPictures" : true,
	///	"grabAudio" : true,
	///	"grabMenu" : false,
	///	"grabScreensaver" : true,
	///	"enable3DDetection" : true
	///},

	/// The configuration of the Json server which enables the json remote interface
	///  * port : Port at which the json server is started
	"jsonServer" : 
	{
		"port" : 19444
	},

	/// The configuration of the Proto server which enables the protobuffer remote interface
	///  * port : Port at which the protobuffer server is started
	"protoServer" : 
	{
		"port" : 19445
	},

	/// The configuration of the boblight server which enables the boblight remote interface
	///  * port : Port at which the boblight server is started
// 	"boblightServer" : 
// 	{
// 		"port" : 19333
// 	},

/// Configuration for the embedded V4L2 grabber
/// * device : V4L2 Device to use [default="/dev/video0"]
/// * input : V4L2 input to use [default=0]
/// * standard : Video standard (no-change/PAL/NTSC) [default="no-change"]
/// * width : V4L2 width to set [default=-1]
/// * height : V4L2 height to set [default=-1]
/// * frameDecimation : Frame decimation factor [default=2]
/// * sizeDecimation : Size decimation factor [default=8]
/// * priority : Hyperion priority channel [default=800]
/// * mode : 3D mode to use 2D/3DSBS/3DTAB (note: no autodetection) [default="2D"]
/// * cropLeft : Cropping from the left [default=0]
/// * cropRight : Cropping from the right [default=0]
/// * cropTop : Cropping from the top [default=0]
/// * cropBottom : Cropping from the bottom [default=0]
/// * redSignalThreshold : Signal threshold for the red channel between 0.0 and 1.0 [default=0.0]
/// * greenSignalThreshold : Signal threshold for the green channel between 0.0 and 1.0 [default=0.0]
/// * blueSignalThreshold : Signal threshold for the blue channel between 0.0 and 1.0 [default=0.0]
"grabber-v4l2" :
{
"device" : "/dev/video0",
"input" : 0,
"standard" : "PAL",
"width" : 720,
"height" : 576,
"frameDecimation" : 2,
"sizeDecimation" : 8,
"priority" : 1100,
"mode" : "2D",
"cropLeft" : 18,
"cropRight" : 5,
"cropTop" : 90,
"cropBottom" : 0,
"redSignalThreshold" : 0.1,
"greenSignalThreshold" : 0.1,
"blueSignalThreshold" : 0.1
},

	"endOfJson" : "endOfJson"
}

Die fertige Datei läd man dann via SFTP nach /home/pi. Von da wird sie via SSH nach /opt/hyperion/config in das entsprechende Config-Verzeichnis verschoben, da man mit SFTP standardmäßig keine root-Rechte hat, um in das System zu schreiben.

sudo mv /home/pi/hyperion.config.json /opt/hyperion/config

Jetzt startet man den RasPi neu und der Ambi-Clon nimmt seine Arbeit auf!

sudo reboot

Nachtrag

Um am laufenden System erneut einen Screenshot zu erstellen, muss der Daemon gestoppt werden. Dies erledigt man mit

sudo /etc/init.d/hyperion stop

Mit einem

sudo reboot

wird der Daemon wieder gestartet.

Nachtrag

Nachdem ich den HDMI-Konverter nochmals austauschen musste (HDMI zu AV Konverter), habe ich aufgrund eines neuen Screenshots mit folgenden Crop-Werten gearbeitet.

"cropLeft" : 20,
"cropRight" : 20,
"cropTop" : 5,
"cropBottom" : 5,

Viel Spaß!

3 Kommentare

  1. Hallo
    habe alles gemach wie beschrieben. funktioniert super. tolle anleitung
    danke (;

    nur habe ich folgende problem

    1. wie bekomme ich ein schönes weiß hin?
    habe schon alles getestet mit der app (zur info: die kostet bei iphone 3,99€) aber hat immer einen blaustich dabei. wird nie wirklich weiß
    2. z.b. bei avatar bei der feuerszene wird bei mir das feuer eher grün als rot/orange
    aber sonst passt eig. alles (auch mit den testbildern)
    4. wie weit stehen eure tv’s von der wand weg?
    5. wie bekommt man so ein ergebniss hin???
    https://m.youtube.com/watch?v=bLLoOMHKgC4
    6. die helligkeit verändert sich auch nicht wirklich egal was ich einstelle
    7. leds schalten nicht aus wenn ich kodi herunterfahre muss ich extra stecker ziehen und wenn ich wieder anstecke, schalten sich die leds nach einiger zeit wieder an

    • Hallo Philipp,
      wie du siehst ist das Ganze schon fast ein Jahr her. Es ging mir nie um einen produktiven Einsatz, deshalb habe ich nach der Realisierung alle Komponenten verkauft nach einer gewissen Testphase verkauft.
      zu 1. Hier kannst Du nur mit Hyperion testen und die Einstellungen vornehmen. Ich hatte gemerkt, dass es beim Konverter Unterschiede gibt, die sich auch auf das Farbbild auswirken. Hier eine Auflistung der von mir verwendeten Komponenten: https://www.intux.de/2015/03/hyperion-die-ambilight-alternative-zusammenfassung/
      zu 2. Auch hier kann ich nur auf Hyperion verweisen. Meine Einstellung war: RGB Byte Order: RGB
      Das muss an die entsprechenden LEDs angepasst werden.
      zu 4. Meiner stand 25cm von der Wand. Idealerweise sollte er sich fast direkt an der Wand befinden. Dabei ist es für den Effekt dienlich, wenn kein Schrank etc. nah am TV steht und die Wand weiß ist. Hat man in unmittelbarer Nähe hellbraune Möbel, so reflektiert weißes Licht gelblich.
      zu 5. Hier handelt es sich um ein anderes System.
      zu 6. Dazu kann ich nichts sagen. Ich hatte mit der Helligkeit keine Probleme. Ich weiß auch nicht, ob die einstellbar ist. Ich kann das leider nicht mehr überprüfen. Tut mir leid.
      zu 7. Das Problem hatte ich auch. Nach dem Wechsel auf den neuen Konverter ging das dann aber. Siehe: https://www.intux.de/2015/03/hdmi-zu-av-konverter/
      Das Ganze ist aber mehr ein Glücksspiel! Hier kann ich keine Garantie für ein Gelingen geben, da ich nicht weiß was momentan im Handel ist. Ich hoffe die Links sind noch aktuell.
      Hier noch schnell ein Link:
      http://www.forum-raspberrypi.de/
      Hier wird dir sicher weitergeholfen! Die Jungs sind kompetent, die sich genau mit dieser Materie beschäftigen.
      Ich wünsche ein gutes Gelingen!

Kommentieren Sie den Artikel

Bitte bestätige diesen Kommentar!
Bitte den Namen hier eingeben

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.