TITLE: INTERACTIVELY PROGRAMMABLE TOY
CROSS-REFERENCE TO RELATED APPLICATIONS: This appUcation claims the benefit of U.S. Provisional Application No. 60/ 117,816, filed January 28, 1999.
TECHNICAL FIELD The present invention relates to the field of programmable toys, and in particular to toys which are connectable to a computer for reprogramming operational features of such toys.
BACKGROUND ART
Toys have been developed that operate under the control of resident microprocessors. The microprocessor is programmed to operate the toy in a given way. Typically a memory is included that allows the storage of data that defines toy functions, such as movement, light operation, or audio output on a speaker. There are presently three general types of reprogrammable toys:
Toys with cartridge based programs; Toys programmed directly by the user; and Toys programmed via a connection to a computer.
Examples of toys having replaceable cartridges include video games and educational toys that may use different cartridges for different activities. Cartridge systems store the program in a non-volatile memory or ROM in the cartridge. The selection of programs is determined by the number of programs stored on each cartridge and the number of different cartridges available.
Examples of conventional user programmable toys are dolls that record and play back a child's voice, and toy cars that execute a user defined series of commands. These toys store the input information in a volatile memory, such as SRAM. This system gives the user the ability to customize the function of the toy. Since the user creates the program, its size and complexity is reduced compared to cartridge-based toys. However, these user-programmable toys do not use popular characters and proprietary material that a cartridge-based toy might use.
Some toys are programmed from a computer database by connecting the toy to a computer and downloading the data. This gives the user professionally prepared content like
a cartridge system and the ability to customize the downloaded data in different ways. This enhances the value of using popular characters to create content. Electronically programmable toys use volatile memory, such as SRAM.
One conventional toy in this final category is programmed with sounds, and the other is a vehicle or robot that stores a sequence of operational commands. Both of these are programmed with information stored on a compact disc (CD).
Although all of these types of programmable toys provide some variety in the operation of the toys, the amount and nature of interaction with the child using the toy is limited. In order to increase the enjoyment of the user, it is desirable to have programmable toys that are easier to reprogram and provide greater interactivity and variety of operating characteristics.
DISCLOSURE OF INVENTION
The present invention provides a system for reprogramming an interactive unit comprising the steps of coupling the interactive unit to an internet web site and downloading from the web site into the interactive unit a file defining operation of the interactive unit.
Preferably a personal computer associated with the interactive unit accesses a dedicated web site via a world wide web or internet connection. Connection may also be by direct connection of the interactive doll to the internet whereby files are downloaded from the web site directly to the doll without an intermediate storage on the personal computer. Either way, the doll is connected to a computer, whether it is a local personal computer or a web site on an internet computer, from which files are downloaded.
When the doll is connected to the personal computer the doll preferably provides spoken instructions to the user describing how to select and download files. Files are selected from the web site and downloaded through the personal computer to the doll. A loader program in the personal computer is executed by an internet browser program when a file of a designated format is downloaded. Preferably a plurality of files are sequentially downloaded into volatile memory in the doll with assigned pointers identifying the beginning of the files. The doll may be disconnected from the local or remote computer for stand-alone play. Playback of files is determined by user activation of buttons on the doll.
These and other features and advantages of the present invention will be apparent from the preferred embodiment described in the following detailed description and illustrated in the accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 is a block diagram showing the components of a computer system, including an interactive unit, for practicing the invention.
FIG. 2 is an illustration of an interactive unit of FIG. 1 in the form of a doll.
FIG. 3 is a schematic diagram of a preferred circuit contained within the doll of FIG. 2.
FIG. 4 is a flow chart of the interactive process according to one aspect of the invention for downloading behavior files to the interactive unit of FIG. 1.
FIG. 5 is a flow chart illustrating the process of downloading data to an interactive unit according to another aspect of the invention.
BEST MODE FOR CARRYING OUT THE INVENTION
As has been mentioned, in general terms, the invention provides an interactive unit that has operating characteristics determined by data downloaded from the user's personal computer. The interactive unit included in this invention preferably is designed to have particular features that children or other users enjoy. For instance, the unit could be in the form of a doll having the shape of an imaginary or real person or animal or be any other form of toy desired. The possibilities are only limited by the imagination of the designer.
A system 10 according to the invention is shown in FIG. 1. System 10 includes the programmable interactive unit 12 having an input/output interface 14. Interface 14 serves two functions. One is to provide output to a user such as a moved arm, a lit light, or an emitted sound or speech. The other is to receive information downloaded from a user computer 16 or from a user using the interactive unit. Computer 16 may receive information downloadable to the interactive unit from resident sound and command files 18, such as could be provided on a CD-ROM. More preferably, the user computer is connected to a remote web site computer 20, referred to as a server, via a world wide web, generally referred
to as the internet 22, or other computer network. The server has resident sound and command files 24. Files 24 thus are readily updated or changed, and are then available to any personal computer that has access to the internet.
One character for the interactive unit that is expected to provide user interest and enjoyment is that of a professional wrestler. FIG. 2 shows an illustration of a doll 30 in the shape of a wrestler having a muscular physique. The doll is preferably made of plastic and fabric, houses the electrical circuit shown in FIG. 3, stands about 12" high, and has ajeweled belt 32 that contains two buttons 34 and 36. When pressed by the user, button 34 activates sound effects and button 36 activates speech. Other buttons or activation devices like photodiodes, switches or audible commands from the user could activate any other features incorporated in the doll.
The doll also includes a speaker 38 for emitting sounds. A recessed reset button 42, preferably mounted in an inconspicuous place, such as on the back of the doll which is not shown in the view of FIG. 1, allows for resetting the microprocessor program as discussed below. The doll could also have other functions, such as motorized movement of its head, arms and legs, or eyes that light up or lights on the belt that flash.
Doll 30 is preferably coupled to computer 16 by a conventional serial communication link, shown generally at 44. The left hand 46 of the doll is structured with a standard three- wire audio jack 48 for receiving a plug 50 disguised as a microphone. An indicator light 51 is mounted on the microphone to indicate when there is data communication taking place in the communication link. The microphone is connected to a serial port of a computer by a cable 52. The serial port typically uses a nine-pin connector inserted at the back of the computer, similar to the connection that a cursor control device, such as a mouse, uses. This connection may also be provided by other equivalent apparatus, such as infrared or radio frequency links, or even remotely reprogramming a cartridge that is inserted into a receptacle in the doll. The doll could also be placed in a docking station interconnecting the computer and the doll circuit.
During downloading of information into the doll, as is described below, the microphone plug is in place in the hand phone jack. After downloading is complete, the plug is removed, as represented by arrow 54, and the child plays with the doll independently of the computer system.
Referring now to FIG. 3, a circuit 60 for doll 30 is illustrated. Those features identified with reference to FIG. 2 that are shown in FIG. 3 have the same reference numbers. This circuit is made of conventional devices and components that are commercially available. A microprocessor 62 is operated by a program stored in a resident nonvolatile memory, not separately shown. A reprogrammable memory 64, such as a RAM, FLASH- ROM, or EPROM, stores data from the user computer, including operating controls and output data, such as audio files, as well as any data the toy generates. Bias voltages and power are provided by a power supply 66 that is preferably provided by replaceable batteries. For example, two "AA" batteries provide the preferred power supply of 3 volts for this circuit.
Activation elements, like the buttons, may be used to produce other effects, such as make lights turn on or flash, or make an arm or head move. Other forms of activation devices could also be used to activate the doll. For instance, the doll could have a microphone for receiving the user's voice or other signal. With voice recognition programming, the doll could be programmed to respond in a given way when preset words are spoken.
Additionally, the doll could contain a conventional motion sensor that activates the doll when there is movement of an object, such as the child's hand, through an area near the doll. Also, an accelerometer could be used for sensing movement of the doll itself, or a light-sensing diode could sense a change in the external light conditions for triggering given responses. The doll may also contain sensors that modify the play pattern or record play information. The communication link provides two way communication via cable, IR, or RF link, as is well known in the art, so the doll can upload play information to the computer when they are connected.
It is also preferred that the doll be programmed so that command data downloaded into the doll or other interactive unit allows it to use conditional branching when playing sounds during stand alone play. Thus, the doll output is not predictable, making it more interesting and intelligent. We can selectively play different types of sounds, and use more than one button, and can use other types of sensors, to trigger sounds.
The child initially accesses the doll's dedicated web site on the internet using a conventional web browser program, such as those identified by the proprietary names
Netscape Navigator® or Internet Explorer®. The web site first guides the child in connecting the doll to the computer. As described with reference to FIG.2, the child plugs the
connecting cable into the doll, or puts the doll into a docking station, or whatever is appropriate. There is some speech built into the doll to help prompt the child to program it. The computer directly controls the doll and uses its output functions, such as speech, when it is connected. The user initially runs a conventional setup program from the web site to configure the user's computer. It installs what is referred to as a loader or doll-operating program along with any other useful files on the user's personal computer, and configures them and the user's web browser program to operate the toy. The setup program also queries the user for information, such as the com port number or the user's name, to help avoid conflicts with other hardware and software connected to the user's computer, and to customize the toy.
Once the setup procedure is complete, the child then browses through the web site and is prompted by the web site program using conventional techniques to select sounds for programming into the toy. The web site also preferably contains graphics, media clips, and other interesting information related to the character of the particular doll. The downloaded information consists mainly of audio files. Included in these files is data which identifies the sounds, and commands that tell the doll how to use the sounds and operate other doll features, such as lights or motors. It is also possible to transmit information from the doll back to the computer via the communication link, preferably using standard serial communication at 38,400 bits per second. The doll's web site server holds its web pages and a large database of sound files. The web site and database could also be on a CD. The web server has an advantage in that it is easy to update with new web pages and sound files. The sound files are in a file format suitable for use with the doll, and also contain control information for the doll. The sounds are preferably sampled at 6 kHz using ADPCM, and may also be encrypted to match selectively output data with specific doll character traits. The sound file contains special data bytes that identify the type of sound and command the doll to turn on and off special features as the sound is playing.
Encryption of the data serves several purposes. One is to avoid mixing data files associated with different characters. For instance, the sounds associated with a wrestler would be inconsistent with the character of a teddy bear. If information identifying the doll is uploaded to the server, the server could be programmed to only download data to that doll that is consistent with that doll's character. Encryption reduces the risk of un-authorized
downloads. Encryption also typically includes compression, allowing files of smaller sizes to be downloaded and allowing the use of smaller memories in the doll.
There are various well-known ways to encrypt the download data. These include
1. tagging the data file, such as by inserting a special header in the download data stream which is used by the doll to determine whether the data is destined for it. ;
2. encrypting the data file with one or more of the well known data encryption methods, such as DES, RC4, or Blowfish.;
3. compressing the data file using well known data compression algorithms, such as Huffman, LZW or RLL; and 4. adding a checksum to the data before it is downloaded, which checksum is then used to determine whether the downloaded data is intact. Any combination of these four methods may be used to further scramble the data stream.
The web site consists of linked pages to be viewed with the user's web browser. The web site guides the user through the process of selecting sounds to download into the doll through visual, audio or text prompts. It also provides visual and auditory background for the story line programmed into the doll, so that visiting the web site becomes part of the play pattern. As selections are made they are downloaded by the web browser to the user's computer, and stored for later use or automatically programmed into the doll with the loader program. The loader program also archives or deletes these files as they are used depending on the user's preference, and provides a means for reloading the files at a later time. It could also modify the files as it loads them into the doll, such as by adding the user's name or unencrypting the files. The process of making choices about what the doll should do is part of the play pattern. The computer downloads sounds into the doll as the child selects them through the user's internet browser. As mentioned, the child then disconnects the doll from the computer and uses it by itself to play out whatever scenario corresponds to the files that the child selected. As discussed above, the child is able to trigger speech and sound effects and, if provided, activate lights or other features.
Using conventional techniques, the doll is also programmed to prompt the child to act, such as to push a selected button. When that action is taken, the doll makes an appropriate response, such as making a given statement.
When the child is finished playing with the doll using the selected downloaded files,
the child may reconnect the doll to the computer. Depending on the activity that was selected by the child, the computer then gives the child feedback on the child's responses. The child then has the option of starting over or reprogramming the doll with something new. In one aspect of the invention, the doll prompts the child in the programming process, as is illustrated in FIG. 4. The microprocessor in the doll has data pointers in its on board memory. These pointers tell the doll which sound to play next, and are incremented or randomly chosen after each sound is played. The random assignment of pointers makes it unpredictable as to which sound or speech will be heard next. When the processor is reset, it goes through a startup routine which among other things, initializes the pointers to zero and eliminates any previous program data files. In addition, if the processor, in the course of play, determines that the memory content is corrupt, it initializes the pointers to zero and eliminates any previous program data files. A zero value for the data pointers indicates that the doll needs to be programmed.
As shown in block 70, when power in the doll is turned on, the unit waits for activation of a first button on the doll. When the child presses the first button, the microprocessor determines if the doll is connected to the computer, as shown at decision block 72. If it is connected, then selected sounds are downloaded, as shown by block 74, and then the sound pointers are set as represented by block 76. The sound pointers determine which sound to play. This process continues so long as the doll is connected to the computer. This downloading process is described in further detail below with reference to FIG. 5.
When the doll is disconnected from the computer, the microprocessor waits until a second button is pressed, as shown at block 78. When the second button is pressed, the microprocessor determines if a first pointer A is at zero, as shown by block 80. If pointer A is at zero, then a determination is made as to whether a second pointer B is at zero, as illustrated at block 82. If pointer B is also at zero, the processor plays sound A from a first section of its onboard ROM, as shown by block 84. This speech gives instructions for accessing the web site to download sound. The message would be something like this: "On the Windows start menu, choose Run, type 'www.jackswwf.com', and hit enter". The term "www.jackswwf.com" is an example of an address for a web site. The actual web site address associated with the doll would be used.
This sound is played until the end of the sound file is reached. If the second button is held down, the sound file is repeated until the second button is released, as shown by block
86. The process then returns to the beginning, as represented by block 70. Files are not downloaded until the doll is connected to the computer, the web site is accessed, and files are selected, as has been described. When the child accesses the web site and programs the doll, the programming routine in the processor sets the sound pointers for the first sound. In addition to the instructions stored in the onboard ROM, about 45 seconds of more detailed instructions are programmed into the doll's memory at the factory. If this memory is corrupted during shipping, the sound pointers are reset to zero, and the doll plays speech from the onboard ROM. Otherwise the doll verbally gives instructions for connecting the doll to the computer and downloading sounds. If pointer A is not zero, the processor plays the appropriate downloaded sound from the memory, as shown at block 88. This sound continues until the second button is released, as shown by block 86, after which the process returns to block 70.
If it is determined at block 78 that the second button is not pressed, then a determination is made at decision block 90 as to whether pointer B is at zero. If it is not zero, then the sound at pointer B is played, as represented by block 88, until the second button is released, as shown in block 86.
If pointer B is determined at block 90 to be at zero, then a determination is made at block 92 as to whether pointer A is at zero. If it is not zero, then the sound at pointer A is played, as represented by block 88, until the second button is released, as shown in block 86. If pointer A is zero, then the processor plays sound B from a second section of its onboard ROM, as shown by block 94. This speech will not provide instructions for downloading files, but rather will be speech representative of the character of the doll for in-store demonstration used to promote interest in the toy. As with the other situations, this speech continues until the second button is released. In another aspect of the invention, the loader program modifies downloaded data before it is loaded into the doll, during the downloading of sounds shown at block 74. This downloading process is illustrated in the flow chart of FIG. 5.
The loader program is preferably executable in the Microsoft® Windows® environment. When being downloaded by the setup program, the loader program is registered in the MS Windows® registry database on the user's computer to automatically handle the associated sound file type. For instance a sound file could be identified by the file name extension *.wwf The loader program runs independently of the user interface
application used to download files from the web site, which is the internet browser.
The doll's install program writes an entry in the MSWindows® registry, which identifies the loader program as the application which is associated with *.wwf files. It also writes a registry entry to indicate that the loader program is to be run automatically when downloading *.wwf files. This means that when the user selects a link to a *, wwf sound file on a web site, the browser automatically downloads it to a temporary storage on the user computer, and then opens the loader program using the name of the *. wwf file as a command line switch. The loader program then prepares and downloads the *. wwf file into the doll according to the procedure illustrated in FIG. 5. If the loader program is already downloading a file, it queues the new filename while it handles the previous files. The loader program handles each file in turn by first unencrypting it, and then by transmitting it through the computer serial port at an appropriate rate of transmission, such as 38,400 bits per second. When the loader program has finished downloading all the files, it terminates itself. Referring now to FIG. 5, the loader program lies dormant, unexecuted until the internet browser downloads a *. wwf file to the hard drive on the user's computer, as shown in block 100. Then, as shown at block 102, the internet browser causes the loader program to be launched when *. wwf files are downloaded. Then the loader program places the filename of the newly downloaded file at the end of a file queue, as indicated at block 104.
The file is downloaded at block 106, after which the user is queried, as indicated at block 108, as to whether to playback the last downloaded file. If so, the doll is directed to playback the file and the program waits at block 110 for the playback to complete. Then, if there is no playback, or at the end of the playback, a determination is made at block 112 as to whether there is another file in the queue.
If there is another file, the next file is identified at block 114 and the loader program begins downloading the file at block 116. Processing then continues as described in blocks 106-116 until all of the selected files are downloaded. If there are no more files in the queue, then the user is prompted at block 118 to determine whether to delete any existing and previously downloaded files. Files selected by the user are deleted and the program terminates until being reexecuted at block 102 by the browser.
INDUSTRIAL APPLICABILITY
It is thus seen that the invention provides a programmable doll and associated system
in which the doll provides spoken instruction to the child for connecting the doll to the computer and downloading files. Additionally, a loader program is provided that stores a plurality of files in the doll, with different files being played depending on input from the user. Although the present invention has been described in detail with reference to a particular preferred embodiment, persons possessing ordinary skill in the art to which this invention pertains will appreciate that various modifications and enhancements may be made without departing from the spirit and scope of the claims as written and as judicially construed according to principles of law. The above disclosure is thus intended for purposes of illustration and not limitation.