Forum: Mikrocontroller und Digitale Elektronik DIY IR Receiver USB


von Karl-Heinz V. (khvolk)


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?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Frueher gab's mal den IgorPlugUSB, iirc ein AVR, der auf der einen Seite 
IR-Receiver sprach und auf der anderen Seite USB/Lirc.
Scheinen aber die meisten Links recht tot zu sein.

Gruss
WK

von Norbert (der_norbert)


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.

von Mario M. (thelonging)


Lesenswert?


von Axel S. (a-za-z0-9)


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
von Christian R. (supachris)


Lesenswert?

Ich hatte sowas vor einigen Jahren mal gebaut 
Beitrag "Fernbedien RC5 Empfänger mit MSP430"

Läuft heute noch zuverlässig am DVB Viewer zusammen mit EventGhost.

von Ob S. (Firma: 1984now) (observer)


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...

von Harry L. (mysth)


Lesenswert?

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!

von Ob S. (Firma: 1984now) (observer)


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.

von Manfred P. (pruckelfred)


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.

von Harry L. (mysth)


Angehängte Dateien:

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.

von Karl-Heinz V. (khvolk)


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?

von Cartman E. (cartmaneric)


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.

von Axel S. (a-za-z0-9)


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
von Norbert (der_norbert)


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ß…

von Cartman E. (cartmaneric)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.