Abstract:
The present invention provides a system and method for a computer to perform a vehicle operation proficiency test and based upon the results, to transfer performance features upgrade data to a vehicle controller. The vehicle controller combines the functionality of an RC controller with that of a “joystick” within the same device by controlling an RC vehicle when used as an RC controller and controlling a computer virtual vehicle game when used as a “joystick.”

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     This application relates to and claims priority from commonly assigned U.S. Provisional Patent Application No. 60/164,519, filed on Nov. 10, 1999 and entitled, “A Car and Driver Toy” by Brendan J. Boyle and Jeff Grant, the disclosure of which is hereby incorporated by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates generally to radio controlled (“RC”) car toys and computer virtual car games, and more particularly to a system and method for sending control data input to both using a single controller. 
     2. Description of the Background Art 
     Conventionally, RC cars and computer virtual car games use separate and non-interchangeable input devices. A radio controller for an RC car only works with the RC toy and not with a computer game. Similarly, a joystick or other computer input device only works with the computer virtual car game. Accordingly, a user cannot interchange the radio controller with the joystick and therefore the user must use two separate input devices. 
     Another problem with conventional RC car toys is that the user is limited to playing with the car during the daytime in order to see and accurately control the car. Further, in the event of inclement weather, such as rain or snow, the user would not be able to play with the RC car outside. Furthermore, playing indoors presents problems with limited space for maneuvering and speed, and the possibility of damage to interior furniture and/or to the car itself due to collisions. 
     Accordingly, during nighttime or inclement weather, the user may play with a computer virtual car game instead of with the RC car. However, because a different controller is used for the computer virtual car game, skills that are learned with the computer game are not easily transferred to the RC car toy, if at all. 
     Therefore, an improved radio controller and computer virtual car game are needed. 
     SUMMARY OF THE INVENTION 
     The present invention comprises a system and method for combining the functionality of an RC controller with the functionality of a joystick. In essence, the RC controller acts as an RC controller when used with an RC car, and acts as a “joystick” input device when used with a computer virtual car game. In the preferred embodiment of the invention, an RC car toy is used. However, any other controllable vehicle, for example, trucks, motorcycles, airplanes, boats, or helicopters, both real and virtual, can be substituted. 
     The present invention also permits a virtual car of the computer virtual car game and the RC car to both be customized to look as similar as possible. For example, a user can select and print racing decals and/or the user&#39;s name to attach to the RC car using a printer or other appropriate output device so as to match the appearance of the virtual car. Similarly, the user can use the computer virtual car game software to modify the virtual car&#39;s appearance to match the appearance of the RC car. Accordingly, the user experiences an interesting play experience since the virtual car onscreen can look identical to the RC car that he or she owns. The computer virtual car software program may also sense which “model” of RC car or vehicle that the user owns, and automatically display the matching model on the computer video output screen during operation of the computer virtual car game. Therefore, for example, if the user buys a red sports car, the computer virtual car game senses the red RC car and displays a virtual red sports car on the computer screen identical to the red RC car. 
     In addition, the virtual car game performs testing of the user in which the user practices skill sets in order to improve his or her operation of the RC car. Upon achieving pre-specified proficiency levels, the virtual car game unlocks certain features or removes limits that may be placed initially upon the virtual and/or RC car toy. For example, the RC car may start out with limited speed or capabilities. Through playing the virtual car game, the user may unlock abilities, such as increased maximum speed, of the RC car. 
     Accordingly, the invention provides an improved RC controller that is capable of sending input commands to both the RC car and virtual car game. Further, the invention provides virtual car game software that has the ability to sense a vehicle&#39;s model and match the appearances of the virtual car with the RC car. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1A is a perspective view of the RC controller with its radio frequency (“RF”) antenna extended and sending input to an RC car; 
     FIG. 1B is a perspective view of a user retracting the RF antenna of the RC controller; 
     FIG. 1C is a perspective view of a user coupling the RC controller to a computer; 
     FIG. 1D is a perspective view of the RC controller when used with a computer virtual car game; 
     FIG. 2 is a block diagram of the RC controller components; 
     FIG. 3 is a block diagram of a computer suitable for implementing the computer virtual car game; 
     FIG. 4 is a block diagram of memory in the computer system shown in FIG. 3; 
     FIG. 5 is a flowchart of the method steps performed by the Computer Virtual car game; and 
     FIG. 6 is a flowchart of the method steps performed by instructions stored in read-only memory (“ROM”) in the RC controller. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The present invention provides a system and method for an RC controller to send control data input to an RC car and a corresponding computer virtual car game. The present invention also includes a system and method for skill improvement and transfer between the computer virtual car game and the RC car. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiments shown but is to be accorded the widest scope consistent with the principles and features described herein. 
     FIG. 1A is a perspective view of the RC controller  140  with its RF antenna  240  extended and sending input to an RC car  130 . The user controls the velocity of RC car  130  using input control  250  of RC controller  140 , which in turn sends input control data to car  130  via RF antenna  240 . Controller  140  will be discussed in further detail in conjunction with FIG.  2 . Car  130  receives the input control data and adjusts velocity accordingly. In alternative embodiments of the invention, car  130  can be any controllable vehicle, such as an airplane, hovercraft, boat, etc. 
     FIG. 1B is a perspective view of a user retracting the antenna  240  of the RC controller  140 . In this view, the user ends the play session with the physical RC car toy  130  and retracts antenna  240 . The user may discontinue playing at this point, or the user may decide to switch the play session over to a computer virtual car game on computer  120 . 
     Referring now to FIG. 1C, a perspective view of a user coupling the RC controller  140  to a computer  120  is shown. The user couples the controller  140  to the computer  120  that will be used for the computer virtual car gaming session. The user plugs the controller into I/O interface  320  of computer  120  so that computer  120  can receive control data input from controller  140 . However, in the preferred embodiment of the invention, controller  140  sends control input data via antenna  240 , in which case the RF antenna  240  remains extended. 
     FIG. 1D is a perspective view of the RC controller  140  when used with a computer virtual car game on computer  120 . In this view, a user is manipulating input controls  250  on the RC controller  140 , which is coupled directly to computer  120  for the computer virtual car gaming session. RC controller, in turn, sends input data to computer  120  via I/O interface  320 . Computer  120  displays a computer virtual car, whose model is identical to RC car  130 , on monitor  350 . 
     FIG. 2 is a block diagram of the RC controller  140  components. The RC controller  140  includes system bus  210 , power switch  220 , PC interface  230 , an RF antenna  240 , an input control  250 , a data toggle switch  255 , ROM  260 , an RF transceiver  270 , a central processing unit (“CPU”)  280 , and flash memory  290 , all interconnected for communication via system bus  210 . The power switch  220  is used to turn power on or off for the controller  140 . The PC interface  230  provides connectivity between the RC controller  140  and computer  120 . The RF antenna  240  sends and/or receives data between the controller  140  and RC car  130  or controller  140  and computer  120 . Input control  250  accepts user control data input into controller  140 . Input control  250  can be any type of input device such as a joystick, trackball, touchpad, keyboard, mouse, lightpen, microphone, or any device capable of generating positional signals responsive to user manipulation of the device or a combination thereof. The data toggle switch  255  toggles between sending data to RC car  130  and computer  120 , depending upon user choice. The data toggle switch  255  setting prevents both RC car  130  and computer  120  from receiving control input instructions at the same time. ROM  260  stores executable instructions for analyzing and modifying user control data input per car features  295  data stored in flash memory  290 . ROM  260  also stores the digital code for car model information for matching the virtual car viewed onscreen with the RC car  130 . The car model digital code of the RC car  130  is sent to the computer  120  the first time the controller  140  is connected to computer  120 . 
     During RC car  130  operation, the CPU  280  executes the instructions stored in ROM  260 , which analyzes and modifies control data input according to the limitations set in car performance features  295 . Flash memory  290  stores car performance features  295  data, even when RC controller  140  is turned off. RF transceiver  270  receives CPU  280 -modified control data input and sends the modified data to RC car  130 . In addition, in the preferred embodiment of the invention, RF transceiver  270 , via antenna  240 , sends control data input to computer  120 . Operation of RC controller  140  will be discussed in further detail in conjunction with FIG.  6 . 
     FIG. 3 is a block diagram of computer  120  and its components suitable for implementing the computer virtual car game. Computer  120  includes optional I/O interface  320 , RF transceiver  330 , memory  340 , monitor  350 , CPU  360 , and optional printer  370 , all interconnected for communication via system bus  310 . Optional I/O interface  320  is a port on the computer  120  that sends and receives signals between the computer  120  and the controller  140  in the event that the controller  140  is directly coupled to the computer  120 . I/O interface  320  may be a parallel port, serial port, universal serial bus (“USB”) port, or any other port capable of transmitting data. However, in the preferred embodiment, RF transceiver  330  transmits and/or receives data between computer  120  and controller  140 . 
     Memory  340  stores game software  420  (FIG. 4) and other computer  120  programs and applications from game software  420 . Memory  340  will be discussed in further detail in conjunction with FIG.  4 . Monitor  350  displays video output for presenting images to the user. Monitor  350  may comprise a cathode ray tube (“CRT”), a liquid crystal display (“LCD”), or any other suitable equivalent. CPU  360  executes game software  420  stored in memory  240 . CPU  360  may comprise, for example, an Intel® Pentium® processor. Printer  370  prints decals for affixing to RC car  130 . 
     FIG. 4 is a block diagram of memory  340  in the computerstem  120  (FIG.  3 ). The memory  340  comprises an operating system (“OS”)  410 , game software  420 , an RF driver  430 , car performance features  440 , and decals  450 . The memory  340  may include volatile random access memory (RAM), non-volatile ROM, magnetic or optical disk drives such as hard drives or CD-ROM, or any appropriate combination of the foregoing or equivalents thereto. OS  410  may be Windows NT®, Windows 98®, Windows 95®, Linux, SunOS/Solaris, Apple Mac OS®, or any other operating system suitable for operating with game software  420 . Game software  420  is a computer virtual car game and vehicle operation proficiency testing software and will be described in further detail in conjunction with FIG.  5 . RF driver  430  extends the operating system  410  to support the RF transceiver  330  device. The car performance features  440  include RC car  130  performance limitations, such as maximum allowable velocity, for the computer RC car  130 . The user can enhance learning and skill set proficiency in the virtual environment on computer  120  and can then employ these enhanced skills later on when playing with physical RC car  130 . Decals  450  are the image files that match the RC car  130  and may be printed on printer  370  for application to RC car  130  in order to customize the appearance of RC car  130 . 
     FIG. 5 is a flowchart of the method steps performed by the computer virtual car game software  420 . At step  500 , the user starts the computer  120  gaming session. At step  510 , the game software  420  determines whether the data toggle switch  255  is set to send data to RC car  130  or to computer  120 . If the data toggle switch  255 , which prevents both car  130  and computer  120  from receiving control input instructions at the same time, is currently set to send data to RC car  130 , the game software  420  terminates the session at step  515 . 
     If the game software  420  determines that data toggle switch  255  is set to send data to computer  120 , then at step  520 , game software  420  determines whether to run a practice session or a proficiency test session according to the user&#39;s choice. If game software  420  determines to run a practice session, then at step  525 , game software  420  runs the practice on. At step  545 , game software  420  terminates the session. 
     If, at step  520 , game software  420  determines to run a proficiency test session according to the user&#39;s input, then, at step  530 , game software  420  runs a proficiency test session to test the user&#39;s proficiency in operating a virtual car corresponding to RC car  130 . The proficiency test session is based on parameters stored in car performance features  440  with the aim of decreasing limitation on RC car  130  operation imposed by the parameters. 
     After running the proficiency test session of step  530 , game software  420  determines at step  540  whether the user has achieved the proper proficiency level to unlock features of car  130 , such as maximum velocity, turning ability, etc. If the proper proficiency level has not been attained, then game software  420  terminates at step  545 . 
     However, if at step  540  the user has achieved a desired level of proficiency for unlocking features or removing limits in car  130 , then at step  550 , the game software  420  unlocks a feature, such as maximum velocity, or removes a limit of car  130 , and transfers this unlocking information to controller  140 . Controller  140 , in turn, updates car performance features  295  stored in flash memory  290 . Next, at step  560 , game software  420  updates car performance features  440 . At step  570 , the method ends. 
     FIG. 6 is a flowchart of the method steps performed by the ROM  260  instructions in the RC controller  140  when a user inputs control data. At step  600 , the method starts. At step  610 , the ROM  260  of controller  140  receives control input data. At step  620 , Rom  260  determines whether the RC car  130  is on. If the RC car  130  is not on, the ROM  260  transmits data at step  625  and the process loops back to step  610 . If, at step  620 , the ROM  260  determines that the RC car  130  is on, the method proceeds to step  630 . At step  630 , the ROM  260  determines whether the data exceeds the parameters that are stored in the car performance features  295  file. If the data does not exceed the parameters, the ROM  260  transmits data at step  625  and the process loops back to step  610 . If the data does exceed the parameters stored in the car performance features  295  file, the method proceeds to step  640 . At step  640 , the ROM  260  modifies control input data so as not to exceed parameters. After step  640 , the ROM  260  transmits data at step  625  and the process resumes again at step  610 . 
     It is noted that other embodiments of the invention will be apparent to those skilled in the art upon review of this disclosure. Therefore, these and other variations upon the preferred embodiments are intended to be covered by the present invention.