Теоретически можно повесить ИК диод на какую-нибудь ножку COM-порта (LPT-порта) и дергать её программно.
Практически такое уже может быть реализовано, но я пока не нашел.
Вот пример ИК-приемника на RS232
Нашёл таки и передатчик
http://wiki.johnroy.com/serial-ir-transmitterА софтина - тот же LIRC.
Цитата:
Testing your hardware & configuration
If you have build the infrared hardware yourself you are probably eager to find out if it really works. If you have not build the hardware yourself you can skip the first test. For most receivers it even won't work because it makes no sense.
Type su to get root privileges and start mode2 (Warning: don't confuse mode2 with mode3: mode3 will set your video card to a vesa mode using the vesa bios calls...). This should load the kernel module into the kernel and display the infrared signals. Hold your remote control to your infrared receiver and press some buttons. You should see an output like this (the values of your remote will probably be different):
pulse 93
space 4965
pulse 108
space 4969
pulse 93
space 7496
pulse 93
space 7489
pulse 93
space 47915
pulse 138
space 7475
pulse 93
space 7494
pulse 93
If you don't see anything, try to find out: (a) if you selected the correct driver with the correct settings (I/O base address, IRQ), (b) if you use a remote which works and (c) if your hardware works. The voltage input of the infrared receiver should be 5V +/- 0.5V, the output pin of the receiver should be about 0.5V less than the input voltage.
From time to time there should be long spaces (>30000). If you can see very long pulses this usually means that sense auto detection of your serial port IR receiver circuit has failed. You can override sense auto detection by loading the device driver with the following option:
modprobe lirc_serial sense=0 if your receiver circuit is active high or
modprobe lirc_serial sense=1 if your receiver circuit is active low.
Well, the driver seems to work, now let's test if lircd also does its job. This only works, if lircd uses a config file which fits to your remote control. Use irrecord in the case the LIRC distribution doesn't provide a config file suitable for your remote and it still is not available at the LIRC homepage. A more detailed discussion of creating new config files is available in the section about, you guess it: Adding new remote controls.
Then start the decoder daemon with (make sure it is in your path): lircd [config file]
The following program dumps the decoded key codes from lircd to stdout: irw
This looks like this (depending on your remote):
0000000000f40bf0 00 1_DOWN ANIMAX
0000000000f40bf0 01 1_DOWN ANIMAX
0000000000f40bf0 02 1_DOWN ANIMAX
0000000000f40bf0 03 1_DOWN ANIMAX
0000000000f40bf0 04 1_DOWN ANIMAX
0000000000f40bf0 05 1_DOWN ANIMAX
0000000000748bf0 00 1_UP ANIMAX
0000000000748bf0 01 1_UP ANIMAX
0000000000748bf0 02 1_UP ANIMAX
0000000000718ef0 00 RED_BUTTON_UP ANIMAX
If the driver test did work, but you now see nothing, then check /var/log/lircd. If you still see nothing suspicious compile lircd in DEBUG mode and look at the log file again. In debug mode lircd has an additional command line option that lets you choose the detail level of debug information.
Sending infrared signals
The LIRC package contains the irsend tool for sending infrared signals to e.g. your TV or CD player. For reliable transmission a good config file is even more important than for receiving. A discussion of all the infrared protocols is way beyond the scope of this manual but when creating a config file at least read the hints at the end of this manual. You can find exact timing specifications for most common inside the remotes/generic/ directory of the LIRC package.
If you want a graphical interface for controlling your devices using LIRC, you should have a look at xrc. You can download the xrc package from the LIRC homepage. xrc is a Qt based program. Setting up xrc and Qt is a bit tricky so if you don't manage to compile it you can still use irsend. It has the full functionality you need.
Вот ещё
http://www.lirc.org/transmitters.htmlПаять и пробовать!