Abstract:
A method and implementing computer system are provided in which an interface device is designed to provide an interface between a remote controller (RC) device for controlling the operation of a vehicle, and a computer system such as a personal computer. The interface device is enabled to receive RC signals from the RC device and convert those RC signals to input signals which are input to a computer system. The interface device builds a translation table for converting the RC or joystick signals to appropriate input signals for the type of vehicle in a particular application. A user is thereby enabled to manipulate an RC device such as a joystick and observe how the user&#39;s input joystick movement affects the movement of a simulated controlled vehicle which is displayed on a display screen of the computer system.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates generally to information processing systems and more particularly to a methodology and implementation for enabling simulation of remotely controllable vehicle movements on a personal computer.  
         BACKGROUND OF THE INVENTION  
         [0002]    In learning to operate vehicles in general, there is always a greater risk of personal injury as well as damage to the vehicle during the learning process itself. For this reason, simulators for vehicles of many types have increased in usage for the purpose of training new operators to manipulate the movements of the vehicle without personal risk or risk of damage to the vehicle itself. The present disclosure is made relative to an example of an airplane model although it is understood that the principles apply also to other vehicles and other vehicle models such as automobiles and boats.  
           [0003]    In learning to manipulate the flight of an aircraft model for example, the only way to learn is for a user to actually manipulate a joystick-type of remote control (RC) device and watch a model aircraft fly in the skies in response to the movement of the joystick. The RC signals are transmitted from the remote controller. If a wrong move is made with the joystick, the model plane may crash before corrective action can be taken. In the present example, the RC signals are radio control signals although other means of signal transmission, i.e. other than radio frequency signals, may also be used.  
           [0004]    Further, many model operators would like to be able to learn how to operate several different kinds of aircraft models. Heretofore, this could only be accomplished by purchasing the models of interest and test-flying the purchased models.  
           [0005]    Thus, there is a need for an improved method and system for enabling a user to simulate operation of a vehicle on a simulation device by which a user may learn to operate the vehicle without incurring a risk of personal injury or damage to the vehicle.  
         SUMMARY OF THE INVENTION  
         [0006]    A method and implementing computer system are provided in which an interface device is designed to provide an interface between a remote controller (RC) device for controlling the operation of a vehicle, and a computer system such as a personal computer. The interface device is enabled to receive RC signals from the RC device and convert those RC signals to input signals which are input to a computer system. The interface device determines the movement characteristics of that vehicle and builds a translation table for converting the RC or joystick signals to appropriate input signals for the type of vehicle in a particular application. The interface device also calibrates and correlates RC movements of a joystick for example, to appropriate and corresponding movements on the particular display size and display area being used in the computer system. A user is thereby enabled to manipulate an RC device such as a joystick and observe how the user&#39;s input joystick movement affects the movement of a simulated controlled vehicle which is displayed on a display screen of the computer system. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]    A better understanding of the present invention can be obtained when the following detailed description of a preferred embodiment is considered in conjunction with the following drawings, in which:  
         [0008]    [0008]FIG. 1 is a schematic block diagram illustrating several of the control components within a typical model aircraft system.;  
         [0009]    [0009]FIG. 2 is an illustration of a simulation system arranged in accordance with the present invention;  
         [0010]    [0010]FIG. 3 is a block diagram illustrating several components of the exemplary computer system with connection to the RC-PC interface unit or joystick converter;  
         [0011]    [0011]FIG. 4 is a flowchart illustrating an overall sequence of operation for an exemplary embodiment of the present invention;  
         [0012]    [0012]FIG. 5 is a flowchart illustrating a Power-Up sub-routine shown in FIG. 4;  
         [0013]    [0013]FIG. 6 is a continuation of FIG. 5;  
         [0014]    [0014]FIG. 7 is a flowchart illustrating a Convert Signals sub-routine shown in FIG. 4;  
         [0015]    [0015]FIG. 8 is a flowchart illustrating a Power-Down sub-routine shown in FIG. 4;  
         [0016]    [0016]FIG. 9 is a flowchart illustrating an exemplary sequence in the Build PC Interface Table shown in FIG. 5;  
         [0017]    [0017]FIG. 10 is a flowchart illustrating an exemplary sequence in the Build Joystick Interface Table shown in FIG. 6; and  
         [0018]    [0018]FIG. 11 is an illustration showing an exemplary format for the tables developed by the interface device of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0019]    With reference to FIG. 1, there is shown a schematic block diagram illustrating several of the control components within a typical model aircraft system. A remote control (RC) unit  101  is shown in the example having a movable joystick  103 . The RC unit  101  also includes control circuitry  105  for translating joystick movements into RC signals, and a removable crystal device  107  (designated “Crystal #45”) for providing a frequency reference for use in transmitting the RC signals through an antenna unit  109  to a controlled model aircraft  111 . The crystal device is removable and is inserted into a crystal receptacle on the RC unit. There are different crystals available and each crystal, for example crystal #45, is designed to provide a unique frequency for transmissions between the RC unit and a controlled model aircraft. Two crystal devices are purchased as a pair of matching crystal devices by a user wishing to control a particular model. Generally, one of the crystal devices is inserted into the RC device while the other crystal device  117  is inserted into a model vehicle such as the model aircraft  111 . The model aircraft  111  also includes a receiver  113  and a control section  115 , as well as control circuitry for throttle control  119 , the ailerons  121  the elevator controls  123 , the rudder  125  and the gear mechanism control  127 , among other controls. As is known in the art, the RC unit  101  includes control mechanisms which are set or adjusted by a user to control the various control servos onboard the model aircraft  111 .  
         [0020]    As shown in FIG. 2, a simulation system in accordance with the present invention includes an interface unit  211  which is also referred to as a RC-PC interface unit. In the present example, the interface unit  211  is connected between the RC device  102  and a personal computer (PC)  216 . The RC unit  102  includes, inter alia, a joystick  104 , a crystal device socket  106  and an antenna unit  110 . A matching crystal device  218  is plugged into the interface unit  211  to enable communication between the RC unit  102  and the interface unit  211  between RC antenna  110  and interface antenna  209 . The interface unit also includes a receiver  210 , a signal converter unit  213 , a programmable memory device  215  (such as a flash memory), as well as a pair of light emitting diodes (LEDs) or similar indicating devices  220  and  222 . One of the LEDs is used to indicate the status of the communication channel between the RC unit  102  and the interface unit  211  while the other LED is used to indicate the status of the communication channel between the interface unit  211  and the PC  216 . The PC  216  is connected, in the present example, to the interface unit  211  through a standard Universal Serial Bus (USB) connector  224  and the interface unit is arranged to receive power from the CPU box  221 . The PC also includes a keyboard input  223  (and may include other input devices) and a display device  219  which is used to display a simulation of a vehicle being controlled by a user with the RC unit  102 .  
         [0021]    In FIG. 3, several of the major components of the PC unit  216  are illustrated. As shown, the RC-PC interface unit  211  is connected to the input interface  311  of the PC. A keyboard  313  and other input devices may also be connected through the input  311  to the main bus  303  of the PC  216 . The PC  216  also includes one or more processors, such as processor  301 . Also connected to the main bus  303  in the present example, are the following components: a cache memory  305 ; a system memory  307 ; a diskette drive  319 ; a CD drive  322 ; a network connection device  309 ; a storage device  318 ; a sound system  324 ; a video subsystem  325  and a display device  219  having a display screen.  
         [0022]    An overall operation of the exemplary embodiment is illustrated in FIG. 4. When the system is started  401 , power-up and initialization functions are performed  403 . During this operation, as is hereinafter explained in more detail, it is determined if the communication channels from the RC unit  102  to the interface unit  211  and from the interface unit  211  input to the PC  216  are functional. If either of those channels is not functional  405 , then the system re-tries initialization. If both channels of communication are operational  405 , then the system begins to convert the RC signals to PC input signals in a steady state mode and displays the controlled aircraft model on the display screen of the PC. When the operator wishes to exit the system, a Power-Down function  409  is performed. The Power-Down function is hereinafter explained in more detail in connection with FIG. 8. After the Power-Down function,  409 , the processing ends  411 .  
         [0023]    The Power-Up and Initialize block  403  is illustrated in greater detail in FIG. 5. As shown, when the function is called  501 , a standard six-button joystick with rudder and throttle information is transmitted  503  from the RC unit  102  to the input interface  311 . This is accomplished for the main purpose of checking the operability of the communication channels among the various devices within the system. If the input interface communication channel is not good  505 , then an associated LED such as LED  220 , is set to red  507  in the present example, and the processing is then ready to receive through the crystal to the joystick  509 . If the input interface to the PC checked-out good  505 , then the input LED  220  is set to green  511  and a PC side of an interface table is built  513  before the processing is ready to receive crystal to joystick  509 . The building of the PC side to the interface table is hereinafter explained in more detail in connection with FIG. 9.  
         [0024]    In FIG. 6, the processing continues to determine if the RC interface is active  603 . If that channel is not active, then an RC interface LED such as LED  222  is set to red  605 , and the processing returns  607  to the sequence shown in FIG. 4. If it is determined that the RC interface communication channel is active  603 , then the RC interface LED  222  is set to green  609  and the Joystick or RC side of the Interface table is built-up  611  (as explained in more detail in connection with FIG. 10) before the processing is returned to the FIG. 4 sequence.  
         [0025]    In FIG. 7, the “convert signals” processing  701  begins by determining  703  when a signal has been received from the RC unit or joystick  102 . The processing waits until such a signal is received. After receipt of an RC signal  703 , the RC signal is processed by the interface unit  211  to provide a corresponding input signal to the PC  216 . This processing includes a “store” function which stores the value of the received RC signal, a “look-up” function in which a PC input corresponding to the received RC signal is “looked-up” from a translation table and a transmit function in which an input signal corresponding to the received RC signal is transmitted  707  to the PC  216  to effect a change in the displayed model aircraft orientation for example. The model aircraft is displayed on the PC display screen against a recognizable background such that changes in aircraft orientation in response to joystick movements can be perceived by the joystick user. The processing continues in this manner in a steady state mode until the user terminates the processing by turning off the power  708  which ends the processing  709 .  
         [0026]    As shown in FIG. 8, in a Power-Down mode  801 , the last known joystick type is saved  803  to memory  805 , before the processing is returned  807  to be turned off. The memory  805  may comprise the programmable memory  215  which may be a flash memory device.  
         [0027]    In FIG. 9, a PC interface table is built  901  by inputting a series of predetermined test signals  903  to the PC  216  and receiving acknowledgement signals  905  back from the PC  216 . After this is accomplished for a series of “N” signals, the process is returned  907  to block  509  in FIG. 5.  
         [0028]    In FIG. 10, a similar processing is accomplished in building the joystick side of an interface table  921 . A series of “N” predetermined test signals are sent  923  to the joystick or RC device  102  and after all acknowledgement signals have been received  925 , the processing is returned  927  to block  611  in FIG. 6.  
         [0029]    In FIG. 11, an exemplary form for the interface table is illustrated. As shown, the table is built-up by the interface unit  211  in response to input received from the RC unit  102 . Generally, joystick input is communicated in the form of the frequency of a pulse train. A far left position on a joystick may result in the transmission of a pulse train having a frequency “F1” and a far right position of the joystick may cause a transmission of a signal from the RC unit of a pulse train having a frequency of “F2”. These extreme position signals correspond to “Low” and “High” values under the “RC Side Actual Values” columns of the format shown in FIG. 11. Each pin of the connector  224  carries a control signal for different ones of the controllable functions of the particular application. Corresponding high and low values for PC input signals corresponding to the RC signals are also presented in the interface table shown in FIG. 11 under the “PC Side Expected Values” columns. At system start-up, the user is prompted to move the joystick to extreme positions and this extreme position information is input to the interface unit and saved in association with the particular joystick being used. The maximum movement positions of the joystick are also saved for conversion to corresponding positions on a display screen which will vary depending on the size and resolution of the display screen.  
         [0030]    The method and apparatus of the present invention has been described in connection with a preferred embodiment as disclosed herein. The disclosed methodology may be implemented in a wide range of sequences, menus and screen designs to accomplish the desired results as herein illustrated. Although an embodiment of the present invention has been shown and described in detail herein, along with certain variants thereof, many other varied embodiments that incorporate the teachings of the invention may be easily constructed by those skilled in the art, and even included or integrated into a processor or CPU or other larger system integrated circuit or chip. The disclosed methodology may also be implemented solely or partially in program code stored on a CD, disk or diskette (portable or fixed), or other memory device, from which it may be loaded into memory and executed to achieve the beneficial results as described herein. Accordingly, the present invention is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the invention.