arduino als IR Empfänger einsetzen?

  • Freut mich, wenn es klappt :D - ich muss mal sehen, wie man da ein Einschalten des Rechners und ein paar andere Spielereien noch integrieren kann, ohne IRMP mit seinem Interrupt auf dem Arduino zu sehr in die Queere zu kommen...


    Einschalten ist einer der Gründe, warum ich überhaupt damit angefangen habe. Am Besten wahlweise über USB (müsste ja eigentlich gehen, wenn das im MB-Bios entsprechend konfiguriert ist) oder mit geschaltetem powerswitch. Für den Anfang könnte man ja einfach einen festen Code hinterlegen und damit dann einen Digtalausgang schalten, an den man den Powerswitch des Mainboards anschließt (3,3 oder 5V ? und bestimmt nur'n paar mA, Versuch macht klug :-))


    Unabhängig davon ist der arduino aber ein cooles gadget. Bevor linuxdep diesen thread gestartet hat (wo steckt der eigentlich?), wusste ich weder was ein arduino ist noch hätte ich gewusst wofür ich einen brauche ;-)


    Mit ein bisschen ausgereifterer Software (ggfs. die Möglichkeit, den sketch direkt als hex-file zu flashen für Leute, die die IDE nicht installieren wollen), Dokumentation und optional noch ein Gehäuse dann _der_ USB Empfänger für VDR und Co.

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • damit dann einen Digtalausgang schalten, an den man den Powerswitch des Mainboards anschließt (3,3 oder 5V ? und bestimmt nur'n paar mA, Versuch macht klug :-))


    Ich würde da wie im original-Schaltplan zum IRMP-Empfänger auf ATMEGA-Basis einen Optokoppler hinsetzen, der dann über einen kurzen Wechsel eines Pins von LOW nach HIGH und zurück den Powertastendruck nachvollzieht.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Am Besten wahlweise über USB (müsste ja eigentlich gehen, wenn das im MB-Bios entsprechend konfiguriert ist)


    Ich halte es für sehr unwahrscheinlich, dass das geht. Du musst zum Einschalten ein paar seltsame Dinge mit den USB-Datenleitungen machen, aber der Atmega auf dem Arduino hat gar keine Kontrolle über die USB-Leitungen, weil da ein FTDI-Chip dazwischen ist und ich glaube nicht, dass du den FTDI dazu bringen kannst den PC einzuschalten. Man kann den Atmega auch so programmieren, dass er selbst die USB-Schnittstelle simuliert, aber esdürfte ziemlich kompliziert werden sowohl im Timing der USB-Schnittstelle zu bleiben, als auch IR-Codes zu interpretieren.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Man kann den Atmega auch so programmieren, dass er selbst die USB-Schnittstelle simuliert, aber esdürfte ziemlich kompliziert werden sowohl im Timing der USB-Schnittstelle zu bleiben, als auch IR-Codes zu interpretieren.


    Ich hoffe da noch auf den Arduino Leonardo oder seine Clones, der hat den USB-Controller mit onboard auf dem µC (Atmega32u4) und lässt sich angeblich aufgrund der existierenden LUFA (http://www.fourwalledcubicle.com/LUFA.php) entsprechend verwenden.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Angehängt mal meine (weitgehend vollständige) keymap.json (mit original sketch erstellt) für die Logitech Harmony, Profil KLS 1.6


    gda , seahawk1986: Ihr habt euch offensichtlich wohl schon etwas intensiver mit dem arduino beschäftigt ....

    Files

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • gda , seahawk1986: Ihr habt euch offensichtlich wohl schon etwas intensiver mit dem arduino beschäftigt ....


    Nö gar nicht, habe mir das immer selbst zusammengelötet. So viel braucht man dafür ja nun nicht.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hi,


    habe die IRMP Ausgabe kompatibel zum IRMAN Lirc Treiber umgeschrieben und einen Optokoppler als Einschalter hinzugefügt. Die Taste zum Einschalten ist programmierbar und wird im eeprom gespeichert.


    Interesse?


    Gruß


    Phil

  • Mir gefällt der Ansatz ein uinput-Eingabegerät zu erstellen besser, weil ich dann nicht auf eine zu steuernde Anwendung beschränkt bin und der Großteil der Konfiguration (mit Ausnahme der Einschalttaste und der zu unterstützenden Protokolle) außerhalb des Arduino erfolgen kann. Ethersex ermöglicht sicherlich interessante Features, aber soweit ich das Verstanden habe, gibt man damit die Vorteile des Arduino-Bootloaders auf - und gerade die Tatsache dass man mit einem 12€ Arduino aus Fernost und Bauteilen für ein paar Euro einen sehr brauchbaren Universal-Empfänger bekommt, der falls nötig auch auf einem kleinen Breadboard laufen kann ohne sich in die Interna der µC Programmierung einzuarbeiten und evtl. nie wieder benötigtes Zubehör zu kaufen finde ich an der Lösung reizvoll.


    habe [...] einen Optokoppler als Einschalter hinzugefügt.


    Das habe ich auch schon.

    Die Taste zum Einschalten ist programmierbar und wird im eeprom gespeichert.
    Interesse?


    Also so wie bei den Atric-Einschaltern? Hatte das auch schon überlegt, ob ich das noch mache - aber wenn du es schon umgesetzt hast immer doch :)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi,
    habe die IRMP Ausgabe kompatibel zum IRMAN Lirc Treiber umgeschrieben


    Da Phyton (trotz OO) irgendwie so gar nicht meine Sprache ist und die Verwendung von serial2uinput die Installation der python uinput-Erweiterung voraussetzt, habe ich mir nach Anregung von seahawk1986 einen klassischen daemon zusammengedengelt. Ist (noch) nicht wirklich schön gemacht (C ist bei mir auch schon geschätzte 25 Jahre her, da sieht man erst mal wieder, was für Fortschritte moderne Programmiersprachen gemacht haben), funktioniert bei mir aber schon ganz gut.


    Quote


    ..... und einen Optokoppler als Einschalter hinzugefügt. Die Taste zum Einschalten ist programmierbar und wird im eeprom gespeichert.
    Interesse?


    Auf jeden Fall Interesse, her damit ;-)


    Grüße, Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Hi,


    der Optokoppler CNY17-2 hängt über 390 Ohm Vorwiderstand an Digital Pin 7. Zum Anlernen einfach über ein Terminal "PWR" zum Arduino schicken. Der nächste empfangene IR Code wird dann im eeprom gespeichert.


    Gruß
    Phil

  • Hat jemand schon den irs(e)nd-Teil genutzt und kann einen Beispielcode posten?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wenn du einen passend programmierten Arduino hast, der kompatibel zu irmplircd oder dem irman-Protokoll arbeitet, steht dem ganzen nichts im Weg. Mein in diesem Thread geposteter Ansatz funktioniert im Prinzip auch, aber nachdem ich hier mittlerweile mehr IR-Empfänger rumliegen habe als VDRs die ich damit einschalten kann habe ich momentan kein Interesse da groß weiterzumachen.


    Es gibt ein yavdr-addon-irmp und irmplircd ist als Paket vorhanden. Dann brauchst du noch eine passende udev-Regel, wie z.B. die für den USB-Einschalter und IR-Receiver Projekt, die ein Upstart-Event beim Ein- bzw. Abstecken auslöst: https://github.com/yavdr/irmpl…ter/debian/irmplircd.udev
    Und dann musst du dir noch eine passende keymap erstellen.


    Mit dem irman-Protokoll ist es auch kein großes Ding, einfach im WFE Lircd auf einen irman-Empfänger umstellen und dann in der /etc/lirc/hardware.conf noch den passenden Gerätepfad eintragen und das Ding mit irrecord anlernen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)