{"version":"1.0","provider_name":"Gerald Schneider","provider_url":"https:\/\/schneidr.de","author_name":"Gerald Schneider","author_url":"https:\/\/schneidr.de\/author\/gerald\/","title":"TSOP 1738 IR Empf\u00e4nger am Raspberry Pi GPIO","html":"Die Tage fiel mir beim Aufr\u00e4umen eine alte Apple Remote in die H\u00e4nde, die seit Jahren in einer dunklen Kiste ihr Dasein fristete. Dabei fiel mir ein, dass auch noch irgendwo ein IR-Empf\u00e4nger sein musste, den ich mir vor vielen vielen Jahren mal f\u00fcr den Betrieb am seriellen Anschluss zusammengel\u00f6tet hatte. Das w\u00e4re doch ideal, um damit den MPD auf meinem Raspberry Pi B+\u00a0zu steuern, dann m\u00fcsste ich nicht immer umst\u00e4ndlich \u00fcber die Handy-App den Radio-Stream ein- und ausschalten. Also, den IR Empf\u00e4nger rausgesucht, mit einem USB-Seriell-Adapter, den ich auch noch da hatte, angeschlossen und ausprobiert. Leider habe ich das ganze dar\u00fcber nicht zum laufen\u00a0bekommen. Ein Freund, der bei\u00a0solchen Sachen etwas mehr Erfahrung hat, meinte dazu, dass \u00fcber diese USB-Seriell-Adapter so einiges nicht funktioniert, aber ich habe doch ein wenig meine jugendlichen L\u00f6tk\u00fcnste in Verdacht, die eventuell zu einem Kurzschluss gef\u00fchrt haben.<!--more-->\r\n\r\n<a href=\"http:\/\/schneidr.de\/wp-content\/uploads\/2017\/01\/photo_2017-01-07_08-59-25.jpg\"><img class=\"aligncenter size-large wp-image-2491\" src=\"http:\/\/schneidr.de\/wp-content\/uploads\/2017\/01\/photo_2017-01-07_08-59-25-709x1024.jpg\" alt=\"\" width=\"660\" height=\"953\" \/><\/a>\r\n\r\nDas Ding passte auf diese Art immerhin genau in das Geh\u00e4use eines RS-232-Steckers. Da es so aber nicht funktionierte, beschloss\u00a0ich den IR-Empf\u00e4nger herauszul\u00f6ten und direkt mit den GPIO-Pins des Raspberry Pi zu verbinden.\r\n<h2>Empf\u00e4nger anschlie\u00dfen<\/h2>\r\nDie <a href=\"https:\/\/web.archive.org\/web\/20161119084951\/http:\/\/www.engineersgarage.com:80\/electronic-components\/tsop1738-datasheet\">Belegung der Pins des TSOP 1738 Empf\u00e4ngers<\/a> war leicht herauszufinden und\u00a0Berichte wie man solche Empf\u00e4nger mit dem Pi verbindet gibt es im Netz zu hauf. Allerdings musste ich mir die Informationen an so vielen Stellen zusammensuchen und noch mehr herumprobieren, dass ich mir das ganze f\u00fcrs n\u00e4chste Mal zusammenstelle.\r\n\r\n[gallery columns=\"2\" link=\"file\" ids=\"2492,2493\"]\r\n\r\nDer Anschluss an den Pi ist sehr simpel. VCC an Pin 2, GND an Pin 6 und Data an Pin 12 (Das ist GPIO 18, den brauchen wir sp\u00e4ter noch).\r\n<h2>Pi Konfigurieren<\/h2>\r\nAls n\u00e4chstes die Software installieren:\r\n<pre>sudo apt install lirc mpc<\/pre>\r\n<em>lirc<\/em> ist der Linux Infrared Remote Control Daemon, der im Hintergrund l\u00e4uft und auf Signale einer Fernbedienung wartet. Diese Signale kann er dann interpretieren und auf verschiedenste Art und Weise weitergeben. <em>mpc<\/em> ist ein Kommandozeilentool zum Steuern des Music Player Daemons <em>mpd<\/em>.\r\n\r\nUm die GPIO-Pins nutzen zu k\u00f6nnen musste ich noch einen Eintrag in der <em>boot.txt<\/em> \u00e4ndern.:\r\n<pre>dtoverlay=lirc-rpi,gpio_in_pin=25<\/pre>\r\nDie Zeile war bereits vorhanden, sie war\u00a0aber auskommentiert. Die <em>#<\/em> am Anfang entfernen, SD-Karte wieder in den Pi und wieder starten. Der Parameter\u00a0<em>gpio_in_pin=25<\/em> legt fest auf welchem GPIO-Pin der Empf\u00e4nger angeschlossen ist. Standardm\u00e4\u00dfig ist das GPIO18 (Entspricht Pin 12), ich habe den Empf\u00e4nger jedoch an Pin 22 angeschlossen (Entspricht GPIO25).\r\n\r\nAls n\u00e4chstes das lirc_rpi Kernel-Modul konfigurieren. Dazu die Datei <em>\/etc\/modules<\/em> in einem Editor \u00f6ffnen und diese Zeile einf\u00fcgen:\r\n<pre>lirc_rpi gpio_in_pin=25<\/pre>\r\nHier den Pin angeben an dem die Data-Leitung des Empf\u00e4ngers angeschlossen ist.\r\n<h2>Konfiguration von lirc<\/h2>\r\n<em>\/etc\/lirc\/hardware.conf<\/em>\r\n<pre>LIRCD_ARGS=\"--uinput\"\r\nLOAD_MODULES=false\r\nDRIVER=\"default\"\r\nDEVICE=\"\/dev\/lirc0\"\r\nMODULES=\"lirc_rpi\"\r\nLIRCD_CONF=\"\"\r\nLIRCMD_CONF=\"\"<\/pre>\r\nDanach kann man pr\u00fcfen ob der Empf\u00e4nger funktioniert.\r\n<pre>sudo service lirc restart\r\nmode2<\/pre>\r\nDas Tool <em>mode2<\/em> gibt, wenn\u00a0alles\u00a0korrekt konfiguriert ist, Meldungen aus sobald\u00a0Signale von einer Fernbedienung ankommen. Mit Hilfe von <em>irrecord<\/em> kann man diese Signale aufzeichnen, es gibt aber\u00a0auch bereits f\u00fcr\u00a0viele Fernbedienungen <a href=\"http:\/\/lirc-remotes.sourceforge.net\/remotes-table.html\">vorhandene Konfigurationen zum Herunterladen<\/a>. F\u00fcr meine Apple Remote A1156 habe ich so eine Konfiguration heruntergeladen und nur die Button-Namen etwas angepasst. Die Namen der Buttons m\u00fcssen sp\u00e4ter mit den Bezeichnungen in der Konfiguration von <em>irexec<\/em> \u00fcbereinstimmen.\r\n\r\n<em>\/etc\/lirc\/lircd.conf<\/em>\r\n<pre>begin remote\r\n name Apple_A1156\r\n bits 8\r\n flags SPACE_ENC\r\n eps 30\r\n aeps 100\r\n\r\nheader 9065 4484\r\n one 574 1668\r\n zero 574 547\r\n ptrail 567\r\n repeat 9031 2242\r\n pre_data_bits 16\r\n pre_data 0x77E1\r\n post_data_bits 8\r\n post_data 0xC5\r\n gap 37600\r\n toggle_bit 0\r\n ignore_mask 0x80ff\r\n\r\nbegin codes\r\n KEY_PLAYPAUSE 0x20 # Was: play\r\n KEY_VOLUMEUP 0xD0\r\n KEY_NEXT 0xE0 # Was: ffwd\r\n KEY_PREVIOUS 0x10\r\n KEY_VOLUMEDOWN 0xB0 # Was: minus\r\n KEY_MENU 0x40 # Was: menu\r\n end codes\r\n\r\nend remote<\/pre>\r\n<em>\/etc\/lirc\/lircrc<\/em>\r\n<pre>begin\r\n prog = irexec\r\n button = KEY_PLAYPAUSE\r\n config = mpc toggle\r\n repeat = 0\r\nend\r\n\r\nbegin\r\n prog = irexec\r\n button = KEY_PREVIOUS\r\n config = mpc prev\r\n repeat = 0\r\nend\r\nbegin\r\n prog = irexec\r\n button = KEY_NEXT\r\n config = mpc next\r\n repeat = 0\r\nend\r\nbegin\r\n prog = irexec\r\n button = KEY_VOLUMEUP\r\n config = mpc volume +2\r\n repeat = 1\r\nend\r\nbegin\r\n prog = irexec\r\n button = KEY_VOLUMEDOWN\r\n config = mpc volume -2\r\n repeat = 1\r\nend<\/pre>\r\nZu guter letzt:\r\n<pre>sudo service lirc restart<\/pre>\r\nJetzt l\u00e4sst sich der MPD mit der Fernbedienung steuern.","type":"rich","thumbnail_url":"https:\/\/schneidr.de\/wp-content\/uploads\/2017\/01\/IMG_20170107_094959-150x150.jpg","thumbnail_width":150,"thumbnail_height":150}