DIY IR Receiver USB

OP #7929779
Lesenswert?

ich würde gerne mit einen Linux-PC per IR fernbedienen. Also einen IR-Receiver, ich habe einen VS 1838, an USB anschließen und dann mit ir-keytable die gewünschten Events generieren.

Da kann ich bei Amazon einen FLIRC USB (2. Generation) für 38.26 € kaufen. Selbstbau-Anleitungen finde ich viele, aber keine für meine Mittel: das wäre:

1.) ein Arduino, z.B. Pro Micro hätte ich hier liegen 2.) ein XIAO ESP32C3 (wäre schade drum, aber warum nicht) 3.) ein Raspberry Pi Pico (auch oversized)

Habt Ihr da Ideen?

#7929790
Lesenswert?

Karl-Heinz V. schrieb:

1.) ein Arduino, z.B. Pro Micro hätte ich hier liegen

hat wohl einen 32u4. Also USB als Keyboard Schnittstelle definieren, die IR-codes einlesen und direkt als passende keystrokes senden.

3.) ein Raspberry Pi Pico (auch oversized)

Noch einfacher und schneller. Also USB als Keyboard Schnittstelle definieren, die IR-codes einlesen und direkt als passende keystrokes senden. Bei dem hier sogar in einer bequemen Programmiersprache.

#7929820
Lesenswert?

Karl-Heinz V. schrieb:

ich würde gerne mit einen Linux-PC per IR fernbedienen. Also einen IR-Receiver, ich habe einen VS 1838, an USB anschließen und dann mit ir-keytable die gewünschten Events generieren.

Softwaremäßig LIRC (sollte jede Distro an Board haben). Hardwaremäßig ein beliebiger USB←→UART Umsetzer. Gern auch selbstgebaut. Gern auch mit V-USB. https://www.obdev.at/products/vusb/projects.html listet mehrere Projekte, die IR können. Oder eine andere Schnittstelle am PC benutzen.

: Bearbeitet durch User
(Firma: 1984now) #7930478
Lesenswert?

Dergute W. schrieb:

Frueher gab's mal

Ja früher gab's so vieles, aber jetzt haben wir Sommer, fast Herbst sogar.

Früher(tm) gab's z.B. bei Pollin X10-Fernbedienungen samt USB-Dongle für deutlich unter 5€.

Wenn man sich so anschaut, was man heute für Vergleichbares bei Amazon und Konsorten ablatzen soll, bin ich froh, dass ich früher(tm) einfach drei von den Dingern bei Pollin gekauft und auf Halde gelegt habe. Naja, außer der einen, die ich seit vielen Jahren aktiv benutze. Konnte ja keiner ahnen, dass der Billich-Kram so lange hält...

(Firma: 1984now) #7930496
Lesenswert?

Harry L. schrieb:

Ob S. schrieb:

Früher(tm) gab's z.B. bei Pollin X10-Fernbedienungen samt USB-Dongle für deutlich unter 5€.

Falls noch jemand sowas braucht, hätte ich min. 1 Set abzugeben. Bei Interesse bitte PN!

Vielleicht sollte man noch warnen. X10 ist natürlich Funk, nicht IR.

Zur Bedienung von Multimedia-Geraffel ist das aber eher vorteilhaft. Man braucht die FB nicht auf Sichtlinie zum Empfänger bringen und der Empfänger braucht auch überhaupt nicht sichtbar zu sein. WAF deutlich positiv.

#7930504
Lesenswert?

Ob S. schrieb:

.. Funk, nicht IR.

Zur Bedienung von Multimedia-Geraffel ist das aber eher vorteilhaft. Man braucht die FB nicht auf Sichtlinie zum Empfänger bringen

Wie wahr! In einem SAT-Receiver mit Aufnahmefunktion saß der IR-Empfänger direkt neben der USB-Buchse. Es hat lange gedauert, bis ich erkannt habe, dass der USB-Stick diesen genau aus meiner Richtung abschattete.

#7930510
Lesenswert?

Harry L. schrieb:

Ob S. schrieb:

Früher(tm) gab's z.B. bei Pollin X10-Fernbedienungen samt USB-Dongle für deutlich unter 5€.

Falls noch jemand sowas braucht, hätte ich min. 1 Set abzugeben. Bei Interesse bitte PN!

Hab mal nachgeschaut. Ich hab sogar 2 kompl. Sets abzugeben. Davon ist eins komplett unbenutzt.

Angehängte Dateien:
OP #7932031
Lesenswert?

Norbert schrieb:

3.) ein Raspberry Pi Pico (auch oversized)

Noch einfacher und schneller. Also USB als Keyboard Schnittstelle definieren, die IR-codes einlesen und direkt als passende keystrokes senden. Bei dem hier sogar in einer bequemen Programmiersprache.

wäre nett, wenn du hier konkreter würdest.

einfach und schnell geht es natürlich mit einem Raspi 5. So einer ist mein Küchenfernseher. Einen IR-Receiver-IC an 3V, GND und z.B. GPIO 17 anschließen und dann in /boot/firmware/config.txt:

dtoverlay=gpio-ir,gpio_pin=17,gpio_pull=up

Mit "ir-keytable -t" sieht man dann:

1
Testing events. Please, press CTRL-C to abort.
2
54.920014: lirc protocol(nec): scancode = 0x411
3
54.920022: event type EV_MSC(0x04): scancode = 0x411
4
54.920022: event type EV_KEY(0x01) key_down: KEY_1(0x0002)
5
54.920022: event type EV_SYN(0x00).
6
55.052016: event type EV_KEY(0x01) key_up: KEY_1(0x0002)
7
55.052016: event type EV_SYN(0x00).

Wenn man gerade eine "1" auf der Fernbedienung gedrückt hat. Mit der schnell gemachten /etc/rc_keymaps/kfs-rpi5.toml Definitionsdatei:

1
#  29. Januar 2025  khv   Raspi5 IR mit alter NEC-Fernbedienung
2
[[protocols]]
3
name = "kfs-rpi5"
4
protocol = "nec"
5
[protocols.scancodes]
6
0x52 = "KEY_1"
7
0x50 = "KEY_2"
8
0x10 = "KEY_3"
9
...
10
0x5a = "KEY_LEFT"
11
0x1b = "KEY_RIGHT"
12
...
13
0x19 = "KEY_MUTE"
14
0x13 = "KEY_VOLUMEUP"
15
0x17 = "KEY_VOLUMEDOWN"

Dann kann ich ohne weiteres Zutun z.B. lauter und leiser werden. Oder auch im Livestream der ARD mit links vor und rechts zurück in der Zeit gehen. Und das alles ohne ein einziges LIRC-Paket.

Solch eine Funktionalität hätte ich gerne in einem USB-Receiver am PC.

Oder braucht man diesen Receiver:

https://oshwlab.com/wagiminator/ch32v003-ir2usb

Kann man den irgendwo kaufen? Hat jemand von euch Erfahrung damit?

#7932072
Lesenswert?

Axel S. schrieb:

Softwaremäßig LIRC (sollte jede Distro an Board haben). Hardwaremäßig ein beliebiger USB←→UART Umsetzer. Gern auch selbstgebaut. Gern auch mit V-USB. https://www.obdev.at/products/vusb/projects.html listet mehrere Projekte, die IR können. Oder eine andere Schnittstelle am PC benutzen.

Wird da nicht von LIRC ein RS-232 Statusbit ausgewertet? Das sollte mich wundern, wenn das über einen UART-USB-Adapter zuverlässig funktioniert.

#7932123
Lesenswert?

Cartman E. schrieb:

Axel S. schrieb:

Softwaremäßig LIRC (sollte jede Distro an Board haben). Hardwaremäßig ein beliebiger USB←→UART Umsetzer. Gern auch selbstgebaut. Gern auch mit V-USB. https://www.obdev.at/products/vusb/projects.html listet mehrere Projekte, die IR können. Oder eine andere Schnittstelle am PC benutzen.

Wird da nicht von LIRC ein RS-232 Statusbit ausgewertet? Das sollte mich wundern, wenn das über einen UART-USB-Adapter zuverlässig funktioniert.

Ja, ein RS-232 Handshake Signal, IIRC DCD. Ich habe einen älter-als-die-Steinkohle IR-Dongle (Eigenbau) hier liegen, der direkt an die RS-232 Schnittstelle eines PC paßte. Den habe ich damals per LIRC ausgewertet. K.A. ob das an einem USB-to-UART Adapter auch spielt. Wenn nicht - LIRC hat einige USB basierende Lösungen auf der Website.

https://www.huitsing.nl/irftdi/ https://usbirboy.sourceforge.io/ https://dicks.home.xs4all.nl/avr/usbtiny/

Mit IRMP kann man das IR-Protokoll aber auch komplett im µC abhandeln und zum Host hin sich als USB-Keyboard ausgeben. Dann spart man sich LIRC.

: Bearbeitet durch User
#7932142
Lesenswert?

Karl-Heinz V. schrieb:

wäre nett, wenn du hier konkreter würdest.

Auf dem Pico (oder Pico2) den USB-Anschluß als reinen USB-HID für Tastatur konfigurieren. Oder als Kombo, VCP+HID. Da könnte man über USB-VCP die nötigen Codes auch noch konfigurieren. Den TSOP mit PULL_DOWN 15kΩ an einen GPIO-Pin hängen. Kompensiert die Spannungspegel die der TSOP-interne PULL_UP an 5V selbst erzeugt. So bleibt's zwischen 0 und ca. 2-2.5V. Der Pico hat Schmitt-Trigger welche bei ½Vcc ± 100mV schalten (▼1.55V▼, ▲1.75V▲) bei 3.3V.

Bei diesem GPIO-Pin mittels PIO die Impuls- und Pausenlängen des TSOP17xx einlesen. RX-FIFO kombiniert ist acht Einträge tief, da kann man zwischendurch sogar frischen Kaffee eingiessen. Eine simple Routine mappt diese Sequenzen dann direkt zu Keycodes für das USB-HID.

Voilà, IR Puls-Pause Zug kommt rein, der Pico analysiert und sendet wie eine Tastatur eine gewünschte Zeichenfolge.

Und was die Bequemlichkeit angeht, diese Problemstellung kann man vollumfänglich mit Micropython erschlagen. Das minimiert die Entwicklungsumgebung auf vi** und mpremote.

** Jaja, ich weiß…

#7932185
Lesenswert?

Axel S. schrieb:

Cartman E. schrieb:

Wird da nicht von LIRC ein RS-232 Statusbit ausgewertet? Das sollte mich wundern, wenn das über einen UART-USB-Adapter zuverlässig funktioniert.

Ja, ein RS-232 Handshake Signal, IIRC DCD. Ich habe einen älter-als-die-Steinkohle IR-Dongle (Eigenbau) hier liegen, der direkt an die RS-232 Schnittstelle eines PC paßte. Den habe ich damals per LIRC ausgewertet. K.A. ob das an einem USB-to-UART Adapter auch spielt. Wenn nicht - LIRC hat einige USB basierende Lösungen auf der Website.

Die IR-Dongles gab es später zu jeder Skystar2 SAT-Karte nebst einer Fernbedienung dazu. ☺ Bei der ersten Revision war das noch nicht so. Die beiliegenden IR-Dongle waren um einiges empfindlicher als ein Eigenbau mit einem TSOP1138.

Mit IRMP kann man das IR-Protokoll aber auch komplett im µC abhandeln und zum Host hin sich als USB-Keyboard ausgeben. Dann spart man sich LIRC.

Eine Funktastatur steckte schon am Rechner. ☺

Ansonsten wohl die beste Lösung: https://www.mikrocontroller.net/articles/USB_IR_Remote_Receiver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren