Remote control of computer
Purpose of this paper is to give familiarization to people about smart device of type "great idea" (tested by satisfied users).
Introduction:
Try to build very simple remote control of your computer. Computer control is possible with arbitrary infrared remote control (e.g. to TV, VCR, CD, ...). Here introduced scheme is 100% functionable. At design of remote control I accentuate for maximum simplicity of hardware and transfer all intelligence to service software.
On internet is possible to find miscellaneous construction of remote control of computer. Many of them is solved with using of microcontroller (PIC, Atmel), which decode received code from IR-control and transmit it to the computer. Disadvantage of this design is small flexibility when problem happens with atypical remote control code (codes transmitted from IR-controls is not standardized: every manufacturer have its own - although there exists quasi-standards like as RC5, RECS-80, NEC). And this "exotic" remote controls are worldwided. At that time there is need for software update in microcontroler, what is difficult for "common" user (necessity of knowledge of programming mikroconrolers and technical devices - programmers). Other disadvantage is higher price of hardware too.
Construction:
In my design is hardware very simple and cheap (cca 1US$). All intelligence is made by service software. When problem will happen with atypical code of IR-control then is enough upgrade of software, what every user know sure (download from internet site).
As service software for remotes I choose Girder. It is very good multilanguage program, and as one of few is freeware. It has well-solved support of software and hardware plugins. Therefore I have created my own plugin to Girder, which communicate with hardware part of remote control. Program Girder and my plugin you can obtain in downloased section.
At the next picture is schematic of hardware:
or with another type of sensors:
Attention! According to users experiences: Increasing of R1 to value up to 10k may increase receiving sensitivity - using this type of sensors (SFH5110 and SFH5111).
Or in case of problems schematic with better receiving sensitivity.
And here is figure of its physical image (it is very simple):
And here is in details more pictures (cca180kB).
Don't see to its simplicity. Only plug it into the serial port of computer and execute Girder. In configuration of hardware plugins there is necessary to choose "IgorSFH-56 device" and set correct COM port.
In case of your interest you can see here more details about plugin settings.
Sensitivity of receiver is fine. Even if the receiver is plugged directly in serial port on computer back side (which is below the table), is receiving marvelous good (comparison with TV). In choice of sensor frequency (xx in schematic) is necessary to respect matching frequency of IR-transmitter with used receiver. But this choice is not critical: e.g. sensors for 36kHz (SFH56-36; TSOP1736) receive with sufficient sensitivity transmitters at 38kHz too (but 40kHz too). The best way is choosing receiver at 38kHz (SFH56-38; TSOP1738), which are receiving with good sensitivity all remote controls.
Most of remote controls operate at 38kHz, some at 36kHz and some (mostly Sony) at 40kHz.
There is appropriate to read Girder's help (exist in several languages) .
Description of function:
Circuit uses integrated infrared receiver used for receiving of modulated signal. This chip contains circuits needed for receiving and demodulation of infrared signal. From its output goes only pure digital signal (envelope curve of amplitude modulated transmitted signal). Available are receivers of types SFH56-xx a TSOP17xx (tested). Chips SFH56-xx are only in bargain sale (end of production). Number "xx" mean used frequency for receiving. The persons concerned about details of this chips, they can find it in datasheets on internet.
Integrated circuit is supplied directly from computer serial port - from pin RTS. Stabilization of voltage to 5V makes Zener diode D1. It is without limiting resistor, because it used fact, that serial port has current limiting cca 10mA. In first version was used limiting resistor, but there was problem with insufficient voltage in case of notebooks using. In notebooks are signal levels about +/-6V and voltage loss on resistor causes receiving unreliability (same reason is impossibility to use stabilization with circuits of type 7805, which have min. voltage loss about 2V).
Capacitor C1 is for filtration (flow peaks). Resistor R1 is pull-up according to recommendation of manufacturer of TSOP17xx. Output of receiver is connected to signal DSR of serial port, where is software decoded.
Service driver is designed as plug-in module "IgorPlug.dll" in program Girder, to which it send received code. Girder in the next executes function, which was choosed. Assigning of transmitted code to given action is going through so-called learning by following: In program Girder we create given action and then we push button "Learn Event" (see figure). In the next we push button on IR-control, transmitted code is received and assign to given action. Functionality of action we test by pushing the same button on remote control.
Possible replacements of IR detector (in order of its applicability):
TSOP1738, TSOP1138, TSOP2138, SFH56-38 (end of production), SFH506-38, SFH5110-38 (need to use schematic with improved receiving sensitivity).
(Attention! some sensors have pins connected in another order - sensors in small packages)
Dealers in Slovakia (none promotion - only for Yours help): Nedis (cash on delivery too), SOS (through internet too), GM Electronic (try ?), 3Q Service
Practical applications:
The greatest domain of remote control application is certainly comfortable control PC and in PC add-on devices: TV and radio cards, CD, DVD, WinAmp ... For this purpose was this device developed and mostly used too (who isn't lazy for get up and go to computer, in which just now is going movie?)
But good property of all programs of type Girder is possibility to transfer application which was written only for user interface by mouse and keyboard in to environment of industry automatization. For example Girder makes possible remote controlling through TCP/IP network too. There is possible to choice communication medium and then reduce the protocol as we need. After this manner we obtain computer with powerful software, which is located at controlled place of work, but its control may be done from another place and especially with more simple hardware (reduced keyboard or microcontroller). From software point of view is only necessary to assign to external commands theirs competent actions on PC (key pushing, mouse movement and clicking, executing program etc.). So program, which wasn't dedicated for example for its controlling through RS232 will become by this manner externally controlled. Requirement is only using of operating system Windows (but there are versions and projects for Linux too).
Space for another applications I let for readers, but there are many : types of security systems of buildings , controlling on out-of-reach places by embedded PCs , wireless extension of control etc.
Action definition in Girder:
Here I present very good internet links, where is good description and technique of command definition, eventually already finished command groups:
- possible download already defined actions to Girder (here you are - only select):
http://www.girder.nl/exportgr.php
- very asked control of WinAmp:
http://www.girder.nl/exports/winamp263.gxr
or http://www.girder.nl/exports/winamp271.gxr
- control of Windows Media Player:
http://www.girder.nl/exports/mediaplayer64.gxr
- Common control of Windows98:
http://www.girder.nl/exports/windows98.gxr
And for people who want some to create by ourselves:
- fine explanation of Windows control principle is on pages of Jan Rehak (Czech language),
where are another interesting links (for example: controlling of all PC )
- good is read too czech help from David Pribyl (for Czech and Slovak users)
And at address http://www.girder.nl/links.php are good links relevant to Girder and PC control by IR remote control.
Latest news:
- new hardware construction for ethernet network IgorPlug-UDP (AVR) - also has support in last plugin
- Internet payment possible: to pay for donation or to order registered version of USB receiver. More info here
- new plugin for WinXP for USB and COM port IgorPlugXP - intended use for USB and UDP receiver. But works also with COM receiver (requires modified COM schematic: added connection between pins 1(DCD) and 3(TxD) on DB9 serial connector - see schematic included in plugin)
- new hardware construction for USB port IgorPlug-USB (AVR)
Downloads:
- Girder has changed from freeware to shareware - download of Girder is possible only from Girder website (Downloads section).
- Last version of plugin IgorPlug and IgorPlugXP . Packed by WinZip (cca 260kB). Installation of plugin consist in copying file "IgorPlug.dll"to directory "\GIRDER\Plugins\". Has support for USB and UDP receiver
- Sound files for talking clock for Girder in Slovak language. Talking clock say you current time after pressing button on RC. This is my voice - so ... ;-) Sound.zip (cca 230kB). You only copy directory "Sound" into directory "\GIRDER\" and you can try Talking Clock.
- Plugin mirrors: my mirror webpages, Girder's downloads page.
Donation and support !!!:
- If you are satisfied with this my smart idea - you can you can send to me some small financial payment (amount of payment is your choice):Bank account number:
- Or simply use internet payment: to donate and sponsoring next development - use here as recipient my e-mail: cesko@internet.sk . Thanks.
Information about last version:
version: 1.15 and 4.05 for WinXP
added functions/changes concerning to previous versions:
v0.75-added autorepeat,
v0.76-support Sharp RC,
v0.77-correction in receiving RECS-80 code,
v0.80-changes in receiving codes, changes in schematic,
v0.84-support RC6 code (Philips),
v0.90-added solution of main problem: Code receiving is now reliable! (but only under Win9x/ME and on processors above 486 - see section Problems solution),
v0.91-possibility of manual priority setting (as driver in v0.90)
v0.92-added version information into DLL, non setting Girders thread priority
v0.93-schematic picture for better understanding how to build device
v0.94-settings priority of plugin (if you have performanced computer and multimedia is stopping during code receiving - you may decrease priority)
v0.95-improoved performance and better receiving in WindowsXP
v0.96-added help in config window (question mark in upper right corner), independent schematic window, detection of hardware presence (RTS-CTS), small software changes
v0.97-improoved detection of hardware failure in receiver construction
v0.99-lower CPU usage during receiving, changes in timing (removed problem of variable processor frequency - Intel SpeedStep, AMD PowerNow! - especialy on notebooks)
v1.00-added support for Girder 3.1.x (another changed plugin API in new Girder), but it supports older Girder 3.0.x too
v1.01-added support for Girder 3.2.x (new changed plugin API in new Girder), but it supports older Girder 3.0.x and 3.1.x too
v1.06-added solution for WinXP users : Code receiving is more reliable! (possibility to set Ring0 priority under WinXP/2k/NT too - see section Problems solution). Added correct receiver waking up after computer waking (from sleep mode, suspend, ...)
v1.07-small change in RECS80 code receiving
v1.08- support of new hardware construction for USB port : IgorPlug-USB (AVR) , added option of masking last bits
v1.09-removed small bug in USB receiving (division by zero)
v1.10-small changes - behaviour during ending Girder
v1.11-changes about receiving code from RC for TV Mascom
v1.12-added LED control in USB receiver (device enabled LED, and command received LED) - for more information see IgorPlug USB key.pdf
v3.00- USB and COM plugin with improved serial port version under WinXP (serial port is for WinXP only), Attention! serial port schematic was slightly changed : added connection between TxD and DCD - pins 1 and 3 (see included schematic in plugin config)
v4.01- USB and COM and UDP plugin - all in one. Removed problems with crash during config window open. For UDP version see article aboutIgorPlug-UDP (AVR) ethernet network receiver (and see schematic in plugin configuration)
v4.03- removed problems calling plugin DLL from others programmers languages (images in config window behavior)
v4.04- small changes in decoding (improvement in RC5 code receiving)
v4.05 and v1.14- support for Girder 4 added
v1.15- removed problem with freezing in config window
tested with RC: Sony TV (Sony code), Orava TV (RC5 code), Panasonic Video (RECS-80 code), PCTVLive (NEC code), Creative iNFRA CDROM (NEC code), Xwave DVD (NEC code), Philips DVD (RC6 code), Philips TV (RC6 code) and certainly other too...
Problems solution:
Command is executed not only once: Some RC transmit code repeatedly with delay ones to tens milliseconds. In this case only adjust in Girder for this command in box "Antirepeat wait time" value about 100 ms (according to your button speed dropping).
Command is not executed repeatedly when key on RC is press: Then is necessary button on RC pressing and unpressing (not to let pressed). It is mistake of RC, because some RC tramsmit another code at first pressing and another code at long pressing (autorepeat has different code - usually smaller) - from version 0.75 and up is already autorepeat fully functional for most RC !
Code receiving is unreliable (different code at the same button press): Try to come near to receiver. If problem was then removed by this procedure, mistake is in matching frequency of transmitter and receiver or transmitter power is small - in this case is better the receiver move to the front (to direct visibility). If problem remains is possible, that on computer is running software, which usage processor at 100% (typically some 16-bit programs) and there is not enough time for service of code receiving. Look at processor usage and close program, which uses system, eventually try to reduce priority of some program (typically WinAmp on slow computers). If you now are browsing internet through local modem, then is receiving limited (see next section: "Mistakes to the present time"). This problem was removed use version above 1.06. But is necessary to turn on "Allow Ring0 priority" and set"Priority" to 7 or 8.
Another mistakes: Write to me description of mistake. In plugin configuration turn on service mode and then transmit some codes from RC. In directory"/Girder" will be created file "log.txt" , which you send to me by e-mail together with error description. I try to repair yours problem - wait for a new plugin version at this site. Note.: Data are only adding to the file, therefore if you want you can delete file (manually) and then update data in file by next button pressing on RC. Service mode is after program start always turned off - it not remains turned on if you are not turn it off.
Mistakes to the present time:
Windows shutdown problem: Using Girder's command for Windows shutdown happens that Girder freezes. Use following procedure to shutdown computer:
Instead of using simple "Shutdown" command in Girder use before this command "Disable device" (in sheet Girder), and put this commands into MultiGroup command..
Control problem in case of modem using: Code receiving is uncertain in case of using device, which uses driver for serial port. This situation can be for example during connecting to internet if you use local modem (including internal modem), or when you move fast mouse (but who will be to control PC by RC if you are browsing). In plugin settings switch "Priority level" to 7 and switch on "Allow Ring0 priority".
Problematic applications: Code receiving is uncertain if on computer is running program, which uses 100% processor time or is sensitive to speed: teletext, multimedia (video, MP3). Then there depends at processor speed, but control is possible with some breaks from above Pentium 120MHz (may be less too).
Some applications use drivers, which periodically in short intervals (periodically cca 50 milliseconds) take control of system (interrupt is about ones of milliseconds) and by this they lock during this interrupt code receiving. At that time happens in code change in several bits (during this some milliseconds), but periodically at another part of code, then the code looks as different at another times. Problem of this type is solvable only by adjusting problematic application - if is this possible. (Driver is running at system kernel level and it is not possible "decrease" its priority.) But : This problem was removed - use version 1.06 (and higher). In plugin settings switch "Priority level" to 7 and switch on "Allow Ring0 priority".
FAQ:
- Is possible to use IrDA port to receive signal from remote? No!!! This is impossible. IrDA is designed for data transfer and is incompatible (HW and SW) with standard remote controls used in electronic devices
- Is possible to use USB to COM adapter for serial receiver? No!!! USB is in this application too slow! Believe me. USB response is cca 1ms and the signal changes from remotes are also below 0.2ms. Therefore I have developed USB receiver IgorPlug-USB (AVR).
- Received code is always 0000. Why? In plugin above version 3.0 is implemented new serial receiver schematic. You must connect pin1 and pin3 on COM connector together. Or next solution is to use plugin below version 3.0 (only for serial receiver).
- Girder says that there is incompatible plugin. Don't copy file "IgorUSB.dll" into plugins directory. This file is not plugin, this is driver library for USB receiver. Don't touch this file.
Tested on operating systems:
- Windows95, Windows98, WindowsME, Windows2000, Windows XP
- Girder run on Windows NT too - but remove another plugins (*.dll files), which are showed in opening error messages
(my plugin is functional)
- I have developed also version for DOS - DOSGir :
- appropriate for embedded systems (MP3 players based on old computers)
- simulation of keyboard pressing (in future eventually mouse moving)
- my own Girder
Hardware requirements:
- minimal tested configuration : Intel486 66MHz, 8MB RAM (works fine); Intel486 33MHz, 8MB RAM (not now works!!!)
- maximal tested configuration : Intel Pentium4 3.4GHz, 1024MB RAM ; AMD Athlon XP 3500+ 1034MB RAM
- if you have experience out of above ranges (faster/slower frequencies) let me now by e-mail.
s.m.sethupathy,
sms communication,
Bangalore.
mobile : 8892462501, 09944 186 173
www.questionpaperlink.co.cc
www.sethu-panguvarthagam.blogspot.com
Currently have 0 comments: