TOYS IMITATING CHARACTERS BEHAVIOR
FIELD OF THE INVENTION
The invention relates to toys that imitate characters behavior and respond to external activations including the presence of other toys.
BACKGROUND OF THE INVENTION
Toys relate to objects that aU people use. For children toys determine the world that surrounds them, are a strong means of development, education and up-bringing. For adults toys can be a pleasant souvenir that entertains, helps to relieve stress, enhances life, and calls up memories.
NormaUy, toys are passive participants ofthe interaction with the user who uses his/her voice and imagination to make toys able to speak and interact with each other. For many years there have been toys that respond to a certain activation by the user, for example toys that give sounds when they are pressed. If toys get a possibiUty to imitate to a certain extend the behavior of real or fairy characters and to interact among themselves, and at the same time if toys get individual features, the ability to express emotions and different reactions to the interaction with other toys, then the toy world wiU become alive, more diverse and instructive.
An important condition of providing toys with individual behavior is the presence of memory about previous events. Toy's behavior expressed by its actions and responses should depend on the events happened to the toy before. The memory of toys with different personaUty should keep pleasant and unpleasant events for a
different time. This wiU make it possible to imitate behavior of toys with different personalities.
The prior art provides us with the doU with programmable speech activated by pressure on particular parts of head and body, U.S. Pat. No. 5,376,038 to Arad, et al, 1994. This DoU comprises storage means for storing a pluraUty of prerecorded audible speech messages. These audible messages are reproduced, when the user presses switches located in different parts of doU's head and body. The choice of a message is determined by what switch is activated by the user. The toy also has a mode, in which the sequence of pressures on one or several switches results in reproduction of a sequence of corresponding messages.
The limitation of this device is that the pressure on certain parts of doU's head and body always results in playing hack the same messages. This feature is certainly good for educating a chUd. But in play the doU that gives the same verbal response to every touch will soon become boring. This toy does not provide the imitation of behavior that depends on preceding events.
An attempt to overcome this limitation was made in U.S. Pat. No. US6012961 to Sharpe, et al., 2000 that discloses an electronic toy including a reprogrammable data storage device. This invention aUows to record from an external source that can be a regular PC a functioning program and a set of audible messages for reproduction into toy storage device. The toy operation is possible both when the toy is connected to a PC and autonomously, when the toy is controUed by the recorded program. The reproduction of recorded audible messages and other responses of the toy are determined by the above-mentioned program and the activation by the user of command input means located in the device. It makes it possible for the user, for example for a parent, to make playing with the toy more diverse and improve its educating and entertainment features.
However, the behavior of this toy is straightforwardly determined by the program and does not depend on preceding events, surrounding conditions, contacts with other toys, etc. This proves to he a limiting factor for imitating real behavior of characters.
A partial solution to the problem is provided in U.S. Pat. No. 4,857,030 to Rose, 1989 that shows conversing doUs. Two or more doUs with speech synthesizing systems appear to inteUigently converse whUe signaling each other via a radio frequency transmission to indicate what has been spoken, and to request a response, which is inteUigent with respect to the synthesized speech of the other doU. AdditionaUy, the synthesized speech is made responsive to various positions ofthe doU or the actuation of certain sensors on the doU, or even the motion ofthe doU. The choice of a program that determines the content of a conversation between doUs each time is randomly made up of several programs. However, this invention has limitations of its own. AU doUs participating in the conversation have the same programs. Roles are randomly assigned to the doUs every time they begin the conversation. That is why it is not possible for a doU to get a permanent role or a personaUty. The doUs do not have a memory of events, that is why the run ofthe program does not depend on preceding events. In result, character behavior imitation is possible within a narrow framework.
There is also interactive man-machine interface for simulating human emotions, U.S. Pat. No. 5367454 to Kawamoto et al., 1993. The system stores data representing each of eight basic emotions and continually changes the level of each basic emotion depending on environmental stimuli, internal relations among the emotions and the passage of time. The degree of internal relations among emotions is programmed before operation. All eight basic emotions are made to reduce in intensity over time. Based on a database of facial expressions, the system displays a composite expression corresponding to the intensity levels of aU eight basic emotions. However, this invention does not provide a memory of events. The system remembers its last state only. That is why behavior imitation that depends on events in the past is only possible in a primitive way.
U.S. Pat. No 6048209, to BaUey et al., 2000 discloses a doU simulating adaptive infant behavior. This doU includes sensors that detect care given to the doU, such as feeding, rocking, and neglect or abuse, and a microcontroUer, which operates on a behavioral state machine to produce infant behaviors that are expected of a
human infant in response to similar care. The microcontroUer is programmed to receive inputs from the pluraUty of sensors, and causes the doU to undergo a pluraUty of behavioral cycles, such as sleeping, hunger, feeding, crying, waUing, etc. During each behavioral cycle, the microcontroUer transitions through a pluraUty of states and updates a pluraUty of timers to count preset time limits as weU as adaptive time limits that are responsive to care given to the doU during previous cycles. The timers control the length of time in each state, the transition between cycles, and provide inputs to the indicators such as the speaker and the LEDs.
The limitation of this invention is that it also does not have a memory of events. Changes in doU's behavior are determined by pre-programmed transitions from one state into another in accordance with the user actions and time that passed since the previous change of states. This solution does not aUow to imitate behavior variations depending on a sequence of events in the past.
OBJECTS AND SUMMARY OF THE INVENTION
It is an object ofthe present invention to provide a toy that imitates character behavior and has a memory for recording of events that happen to the toy, and able to change its behavior depending on constant parameters that determine a personality of the character represented by the toy, on extemal effects, and on events that happened before.
Another object of the present invention is to provide toys, each of which has different behavior caused by the same external effects and previous events, so that the behavior of every toy simulates personality, temperament, and individuality of the character represented by the toy.
The further object ofthe present invention is to provide toys, each of which has an internal timer that determines the speed of changing of toy's state and behavior and the speed of the internal time flow depends on constant parameters that characterize the toy, on the current state of the toy, on external activation and on other factors.
The further object ofthe present invention is to provide toys, for each of which receiving a message from another toy is one ofthe types of extemal activating, and the behavior of which depends on messages earlier received from other toys.
The further object ofthe present invention is to provide toys, behavior of which expresses emotional states of characters represented by the toys and these emotional states could have different degrees of intensity.
The further object ofthe present invention is to provide toys, behavior of which is characterized by higher diversity depending on preceding events and on parameters that determine the personaUty of every toy. The further object of the present invention is to provide toys with character behavior simulation that can be ensured by simple and inexpensive technical means to keep toy production costs to the minimum.
The . further object of the present invention is to provide toys that simulate different types of behavior of different characters and that have a unified internal device that wiU aUow to reduce cost of production of a big amount of different types of toys.
The above-mentioned and other objects of the invention are met in toys that wiU be described below.
Each of toys that simulates character behavior comprises a housing that determines a form and appearance of the toy. This housing in its turn comprises executive means for providing execution of behavior simulating actions, reception means for receiving extemal effects, storage means and control means.
Control means record into storage means data about extemal events, where each of external events is a change of some extemal activating ofthe toy. Then, in accordance with signals received from reception means and with the data stored in storage means, control means determine parameters that characterize an internal state ofthe toy, form control signals that provide execution of actions corresponding to the internal state ofthe toy, and send these control signals to execution means. The rules used to determine parameters characterizing toy's internal state are set for every toy individuaUy that ensures a wide range of behavior variants.
Further, the toy simulating character behavior comprises means for generating internal events. Control means record into memory means data about internal events and take this data into account when determining parameters characterizing the internal state ofthe toy. Means for forming internal events can be implemented as a timer, the. period of which is set by control means in accordance with an external activation ofthe toy.
External and internal events form an internal time scale that can be different in different toys. Internal state and behavior changes of every toy take place according to its internal time scale. As a result, the range of behavior variants of toys further increases.
Other objects, features and advantages of the invention shaU become apparent as the description thereof proceeds when considered in connection with accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGS
Fig.1 shows two toys imitating characters behavior and the structure of one of them; Fig.2 shows an electric circuit ofthe toy;
Fig.3 shows data areas in a random access memory (RAM);
Fig.4 shows History Table;
Fig.5 shows data areas in a read-only rne nory (ROM);
Fig.6 shows Sound Responses area in ROM; Fig.7 shows Identificators Table in ROM;
Fig.8 shows Parameters Table in ROM;
Fig.9 shows Emotions Table in ROM;
Fig.10 shows Timer Table in ROM;
Fig.11 shows Functions Table in ROM; Fig.12 shows Coefficients Table in ROM;
Fig.13 shows a flowchart of a program run on a microcontroUer in the toy;
Fig.14 shows a flowchart of a subroutine of waiting for events;
Fig.15 shows a flowchart of a subroutine of checking the receiving of a message from another toy;
Fig.16 shows a flowchart of a subroutine of detemήning a type of external activation that is receiving a message from another toy;
Fig.17 shows a flowchart of a subroutine of recording events into History Table in RAM;
Fig.18 shows an example of deleting events from History Table;
Figs.l9A and 19B show a flowchart of a subroutine of determining toy's reaction;
Fig.20 shows a flowchart of a subroutine of checking conditions for transition into Power Down mode.
DETAILED DESCRIPTION OF THE INVENTION
In the beginning, we wiU provide a general description of the structure and operation of toys simulating characters behavior.
Fig.1 shows first toy 1 and second toy 2 that interact with each other. Each of toys 1, 2 can have an appearance of a doU, of any fairy tale or cartoon character, a real or a fantastic animal. Each of toys 1, 2 has housing 3. Inside housing 3 there are electronic block 4, photosensor 5, and Ught-ernitting diode 6. In appropriate places of housing 3 there are sensors 7 and 8, speaker 9 and power supply block 10.
Photo-sensor 5 is a regular photodiode of short IR range. Light- emitting diode 6 is emitting in short IR range. Sensors 7 and 8 can be implemented as mini-switches that lock when pressed and unlock when the pressure is terminated. Power supply block 10 can comprise one or several batteries.
In the preferred embodiment ofthe present invention, each of toys 1, 2 taken separately responds to the activation by the user in a form of pressing sensors 7 and 8. Responses of every toy 1, 2 are sounds synthesized in electronic block 4 and reproduced through speaker 9. These responses make up the behavior of every toy.
First toy 1 sends message 11 that contains data about this first toy 1. Second toy 2 sends message 12 that contains data about this second toy 2. In each toy, the message is formed as an electric signal in electronic block 4 and is transmitted by Ught-emitting diode 6 in a form of modulated D emanation. Each of toys 1, 2 receives a message from another toy with the help of its photosensor 5. The received message is decoded in electronic block 4.
First toy 1, having received message 12 from second toy 2 and having got data about second toy 2 from message 12, responds to the presence of second toy 2 by reproducing a sound message that expresses emotional state of first toy 1 at the moment of meeting second toy 2. In the similar way, second toy 2 having received message 11 from first toy 1 and having got data about first toy 1, responds to the presence of first toy 1 by reproducing of a corresponding sound message.
Sound messages reproduced by each of toys 1,2 conespond to the appearance ofthe toy. For example, a teddy bear can growl, a cat can mew and purr, a fantastic animal can produce fantastic sounds, etc. It is also possible to reproduce prerecorded voice messages and to synthesize voice messages according to prerecorded text fragments.
Each of toys 1, 2 has several types of response that correspond to different emotional states (or simply emotions) of the character represented by the toy. The type of emotional state is further denoted as RType. In the prefened embodiment of the present invention, RType can get four values: 4 - Joy, 3 - Sadness, 2 - Anger, and 1 - Fear. Every emotion has a sound corresponding to it. For example, a toy dog can express its joy by sounds simulating cheerful barking, sadness - by whining, anger - by growling or angry barking, and fear - by low growling that goes into whining. Common notions can serve a base for selecting sounds or voice messages characterizing different emotional states of any toy.
Each type of an emotional state has several degrees. The value of emotional degree is further denoted as RDeg. hi the preferred embodiment of the present invention, RDeg can get four values: 0, 1, 2, 3. RDeg = 0 corresponds to a neutral state that is the same for aU emotions. RDeg = 1 corresponds to a minimum of expressing an emotion, RDeg = 2 is a medium degree of expressing an emotion, and
RDeg = 3 corresponds to the maximal emotional degree. Synthesized sounds depend on the degree of an emotional state. For different toys these dependencies can be expresses by changes of volume, of frequency spectrum, of intervals between repetitions of synthesized sound responses, of content of reproduced messages, of intonation, etc. The type of sound can also change, for example from growling to loud barking, when the above-mentioned toy dog expresses its anger.
The response of toy 1 or 2 taken separately is determined by what character the toy represents and/or which of sensors 7 and 8 is activated by the user. When two toys 1 and 2 interact, the response of each of them depends on what character exactly is its paitner. Besides, the reaction ofthe toy depends on what happened to it earUer and can change with time.
Electronic block 4 in each toy 1, 2 comprises a memory, where data about the events that have happened to this toy is stored. Events are divided into internal and extemal. The external events are different changes in the surrounding world perceived by the toy. In the preferred embodiment of the present invention, the external events are the beginning of the activation by the user of sensor 7 and/or sensor 8, the termination ofthe activation by the user of sensor 7 and/or sensor 8, the beginning ofthe message receiving from another toy with the help of photo-sensor 5, the termination of the message receiving from another toy. Internal events are generated by the timer in electronic block 4 that wiU be described later.
External and internal events fixed in toy's memory make up an internal time scale for every toy. The degree of an emotional state caused by any interaction graduaUy increases in time after the activation has begun and graduaUy decreases in time after the activation has terminated. Changes in toy's responses in time that can be observed by the user depend on the extemal activation that causes this response, on the speed of internal time flow, and on toy's permanent features. This makes it possible to simulate different behavior patterns of the character represented by the toy.
Further, we wiU provide a detaUed description ofthe preferred embodiment of the present invention.
As shown in Fig.2, electronic block 4 comprises controUer 21 containing Readonly Memory (ROM) 22, Random Access Memoiy (RAM) 23, timers 24, 25. One of controUer 21 outputs is connected to transmitting circuit 26, to the outputs of which Ught-emitting diode 6 is attached. One of controUer 21 inputs is connected to the output of receiving circuit 27, to the inputs of which photosensor 5 is connected. To another output of controUer 21 sound reproducing circuit 28 is connected. The output of sound reproducing circuit 28 is connected to speaker 9. Sensors 7 and 8 are connected to other inputs of controUer 21. Sensors 7 and 8 are also connected to the inputs of logical element AND 29, the output of which is connected to Reset input of controUer 21. The power is suppUed from power supply block 10 to electronic block 4.
ControUer 21 can be realized as microprocessor AT89C52 by Atmel Inc., USA, with 8 Kbytes ROM 22, 256 byte RAM 23, programmed timers 24 and 25, each of which can be a source ofthe program run interruption. Certain bits of controUer 21 input/output ports fulfill the functions of its inputs and outputs. ControUer 21 implemented on the above mentioned microprocessor has Power Down Mode, in which power consumption is very low, but aU information in RAM 23 is saved. Exit of controUer 21 from Power Down Mode takes place when signals are simultaneously sent from both sensors 7, 8 via logic element AND 29 to controUer 21 Reset input.
Transmitting circuit 26 comprises transistor switch and current- determining resistor for forming current impulses through Ught-emitting diode 6. Receiving circuit 27 comprises a preamplifier, a filter and a comparator. Such schemes are well known in the art. Sound reproducing circuit 28 comprises a digital-to-analog converter (DAC) and an amplifier that can be realized on any appropriate integiated circuits.
ControUer 21 fulfils the program recorded in ROM 22. Doing this, it interrogates sensors 7, 8 and receiving circuit 27, sends to sound reproducing circuit 28 data for reproducing sound messages depending on emotional state of the toy, sends data to transmitting circuit 26 for message transmission. The program run by controUer 21 wiU be described later in fuU detail. During the device operation, the
data received through receiving circuit 27 and variables used by the program are recorded in RAM 23. Timer 24 periodicaUy interrupts the lunning of the main program to run the subroutine of sending messages through transmitting circuit 26 and Ught-emitting diode 6. Timer 25 selves to form internal events. Timer 25 does not generate inteixuption, but is interrogated by the program.
Each message 11 sent by first toy 1 comprises a starting part that makes it possible for electronic block 4 in second toy 2 to detect the beginning ofthe message and start its receiving, and parameters that identify first toy 1. Each message 12 sent by second toy 2 has the same structure. Messages format and transmitted parameters coding method can be the same as in widely known IR remote control devices.
As shown in Fig.3, RAM 23 comprises Variables area 31, where variables used in controUer 21 programs are stored. Further, RAM 23 comprises History Table 32 and State Table 33 that wiU he considered below.
In History Table 32 shown in Fig.4, internal and external events happening to the toy are fixed. Events of different types get digital identificators. In every ceU of History Table 32, an identificator of one event is recorded. When an extemal or an internal event happens, recordings of the previous events are shifted one ceU to the right, and the identificator of a new event is recorded into the last left ceU. This procedure wiU be described in fuU detaU later. The fuU number of ceUs in History Table 32 is fiuther denoted as NHT, and the content ofthe n-th ceU is denoted as an element of array HT[n], n = 1..NHT.
Every type of external activation has a digital number. In the preferred embodiment ofthe present invention, activations of sensors 7 and 8 have numbers 01 H 02 respectively. The activation in a form of receiving messages from other toys has two-digits numbers expressed by other positive integers.
An event that is the beginning of an extemal activation has a positive digital identificator equal to the number of this external activation. An event that is the teπnination of an external activation has a negative identificator equal to the number of this extemal activation with a minus. An internal event generated by timer 25 has a positive digital identificator, the value of which is different from all possible extemal activations numbers.
In the example in Fig.4, aU internal events have identificators equal to 99. External event 34 is the beginning of the external activation with number 08. External event 35 is the termination of the external activation with number 25. External event 36 is the beginning of the extemal activation with number 25. External event 37 is the teimination of the extemal activation with number 01. External event 38 is the beginning of he external activation with number 01. As it will be shown below, in the preferred embodiment ofthe present invention at every moment of time there can be fixed only one extemal activation. The beginning of a new extemal activation can be fixed in History Table 32 only after the previous external activation has terminated.
State Table 33 consists of ceUs, the number of which is equal to the number of the emotions of the toy. In the prefened embodiment of the present invention, we have four emotions, hi every ceU of State Table 33 values of the conesponding emotional degrees RDeg are recorded. As it wiU be demonstrated further, values RDeg in all ceUs of State Table 33 change after every event according to the predetermined rales.
As it is shown in Fig.5, ROM 22 is divided into areas, each of which has a special assignment. ROM 22 has the foUowing areas: Control Program 41, Sound Responses 42, Constants 43, Identificators Table 44, Parameters Table 45, Emotions Table 46, Timer Table 47, Functions Table 48, Coefficients Table 49.
Control program area 41 comprises the program run on controUer 21. This program is similar for aU toys according to the present invention.
As shown in Fig.6, Sound Responses area 42 has Addresses Table 51 and Sound Programs area 52. Addresses Table 51 comprises starting addresses of programs of sound responses reproduction for aU possible pairs of values of emotion type RType and emotion degree RDeg. As there are twelve possible pair of values RType and RDeg in the prefened embodiment of the present invention, Addresses Table 51 comprises 12 program addresses Adrl...Adrl2. It is not necessary to store values RType and RDeg in Addresses Table 51, if the order of address locations for aU pans of these values is exactly determined. Sound Programs area 52 comprises the programs of sound response reproductions. The amount of memory occupied by
different programs can be different. Sound Program 1 is stored in ROM 22 starting with address Adrl, Sound Program 2 is stored in ROM 22 starting with address Adr2, etc.
The programs of sound response reproduction are different for different types oftoys.
Constants area 43 comprises constant parameters characterizing the toy when it interacts with other toys. The first of these parameters is TD identificator that is given to every toy according to the present invention, hi the prefened embodiment, ID is a three-digit decimal integer. ID is a part of every message sent by every toy for another toy to receive. As it wiU be shown below, every toy knows in advance IDs of several other toys that consequently turn out to be famiUar for the toy.
Further, Constants area 43 comprises parameters that characterize the given toy when it interacts with toys that "do not know" it in the above-mentioned sense ofthe word. In the considered embodiment there are two such parameters: Size characterizing sizes, and Appearance characterizing appearance. Parameter Size can have values 0 - small, 1 - less than average, 2 - average, 3 - big. Parameter Appearance can have values 0 - dreadful, 1 - unpleasant, 2 - pleasant, 3 - beautiful. Parameters Size and Appearance are given to eveiy type oftoys and become a part of eveiy message sent by the given toy to be received by another toy. Besides, Constants area 43 comprises other parameters determining pecuUarities of sound responses of the given type of toys. The information about these parameters will be provided later, when the program is described.
Identificators Table 44 (Fig.7) and Parameters Table 45 (Fig.8) aUow to determine a type of extemal activation of first toy 1 from the data received from second toy 2. Identificators Table 44 consists of records, each of which comprises two numbers. In the upper ceU of the table there is the value of ID identificator of second toy 2, and in the lower ceU there is a conesponding number of extemal activation S. If JD identificators are present in Identificators Table 44 of first toy 1, these toys are considered familiar to first toy 1. Parameters Table 45 contains the numbers of external activations S (lower row in Fig.8) for aU possible combinations of Size and Appearance parameters of
second toy 2, a message from which is received by first toy 1. It should be noted that the same value S of extemal activation number may cones ond to different values of ID identificators or Size and Appearance parameters.
Further, in Emotions Table 46 shown in Fig.9, there are the records of values of aU emotional state types RType and emotional state degree RDeg for aU possible values of external activation number S. The number of possible values of S equal to 64 is given as an example. As it is explained below, the value of emotion degree RDeg recorded in Emotions Table 46 is the maximal possible value for corresponding external activation S and is achieved in some time after the beginning of activation S. In the last column of Reaction Table 46 there are RType and RDeg for the case when there is no extemal activation, and value S is equal to 0.
Timer Table 47 shown in Fig.10 comprises the values ofthe period of forming of internal events by timer 25 under the different values of external activation number S.. Period values are given in seconds. In the last column there is the value of internal events period for the case when there is no external activation.
Functions Table 48 shown in Fig.11 comprises the data that describes changes of emotion degree RDeg value in time after an extemal event that has the influence over this emotion. Columns in Functions Table 48 show the numbers of internal time intervals in the toy. Every interval of internal time is an interval between two events, each of which can be both an external and an internal event. To determine emotion degree RDeg internal time is measured by a number of intervals counted from an external event that had the influence on this emotion. The maximal number of internal time interval MaxT can not be more than the number of ceUs in History Table 32. The first four rows of Functions Table 48 in Fig.11 give the dependencies that describe the increase of emotion degree RDeg for each of four types of emotions after the beginning of the external activation that causes this emotion. These dependencies are further denoted as h(RType,n), where RType = 1..4 is a type of emotion, n = L.MaxT is a column number in Functions Table 48. In four foUowing rows of Functions Table 48 in Fig.11 there are dependencies that describe the fading of emotional degree for each of four types of emotions after the termination of the
external activation that caused this emotion. These dependencies are further denoted as k(RType,n). The notions RType and n were explained before. Numbers in the ceUs of Functions Table 48 change in the interval from 0.0 corresponding to the zero value of RDeg, to 1.0 conesponding to the maximal value of RDeg shown in Emotions Table 46 for the external activation that has caused this emotion. The algorithms for computing RDeg wiU be provided further.
Coefficients Table 49 shown in Fig.12, comprises values of weight coefficients used to determine a resulting emotional state in cases when at the same time there are more than one emotion with non-zero value of RDeg. Further, these weight coefficients wiU be denoted Wij, where i is a row number in Coefficients Table 49, j is a column number in Coefficients Table 49.
Further, a detaned description ofthe program run on controUer 21 in first toy 1 is provided. The program in second toy 2 is the same, but numerical parameters can be different. The foUowing global constants and variables are used when describing the main program and subroutines that are caUed from the main program: NHT is a number of ceUs in History Table 32;
HT[n], n = 1..NHT, is a number recorded in the n-th ceU of History Table, where n = 1 conesponds to the ceU, in which the last in time event is recorded; CS is a number ofthe cunent external activation ofthe toy;
Ev is a cunent event identificator;
State Table 33 is presented as an anay of integers ST[n], n=1..4, where the cunent values of emotional state degrees for four emotional types are stored;
RTCur, RDCur are the resulting values ofthe emotional state type and degree ofthe toy at the present moment;
ID2, Sz2, Appr2 are variables, where the values of ID identificator and of Size and Appearance parameters of second toy 2 transmitted as part of the message by second toy 2 and received by first toy 1 are stored;
Tint is a period of timer 24 that causes intenuptions of the main program running.
As shown in Fig.13, the running ofthe program begins in block 101, when the power is switched on or signals anive from both sensors 7, 8 through logic element AND 29 to Reset input of controUer 21. In block 102 the initialization takes place. Global variables CS and Ev get zero values. If the program was activated by turning the power on that can be found out by, for example checking the contents of RAM 23, then zero is recorded in aU cells of History Table 32. In the same block 102, the permission for the interruption of the main program by timer 24 is set. Also, the value of intemiption period Tint is set by the way of loading of a conesponding number into timer 24. Then, controUer 21 continues to subroutine of waiting for an event 103, where it stays till an extemal or an internal event takes place. When an event takes place, controUer 21 records this event into History Table 32 (block 104).
After this, emotion determining subroutine 105 is fulfilled. In this subroutine, controUer 21 taking into account the extemal activation of first toy 1 or the internal event that is taking place and taking into account events that happened earUer and are recorded into History Table 32 determines the value of emotion type RTCur and the value of emotion degree RDCur characterizing the cunent emotional state ofthe toy.
Then, response forming subroutine 106 is ca ied out. This subroutine finds in
Sound Responses area 42 of ROM 22 (Fig.6) the address ofthe subroutine of sound response forming for found values RTCur and RDCur and caUs up this subroutine. Sound response forming subroutines are weU known and there is no need to describe them. Thus, a sound response is reproduced after eveiy external and internal event and it conesponds to the type and degree of an emotional state at the current moment ofthne. After this the program continues to logic block 107, where it finds out if it is time to transfer into Power Down Mode. If in logic block 107 the answer "True" is received, then in block 108 the program prohibits interruptions from timer 24. After this controUer 21 transfers to Power Down Mode (block 108), in which it stays till the user activates simultaneously both sensors 7, 8. If in logic block 107 the answer "False" is received, then the program returns to the beginning of the loop to subroutine 103.
Along with the described main program, a subroutine is carried out that is caUed by interruptions of timer 24, the flowchart of which is shown in Fig.13 on the right. This subroutine begins when an intenupting signal a ives from timer 24 (block 109). Then parameters transmission subroutine 110 is fulfilled. ControUer 21 according to the accepted transmission protocol sends to transmitting circuit 26 message starting bits, then ID values of first toy 1, then Size and Appearance values of first toy 1. After this, the lunning of the subroutine by interruptions terminates (block 111). Thus, first toy 1 periodically with period Tint transmits its parameters so that they could be received by second toy 2. Further, the flowcharts of subroutines called from the main program are described.
In the flowchart of subroutine of waiting for events 103 (Fig.14) variable OldS is used, in which the value ofthe number ofthe previous external activation is stored. After entering the subroutine (block 121), variable OldS gets the value of variable CS, and variable CS gets the value of zero (block 122).
Then, in subroutine 123 controUer 21 addresses receiving circuit 27. If a message transmitted by second toy 2 is received, then subroutine 123 gives the answer "Trae", and controUer 21 continues to subroutine 124, in which it determines the number ofthe external activation that corresponds to receiving the message from second toy 2 and gives variable CS the value equal to this number. Subroutines 123 and 124 wiU be described later.
If there is no message received from second toy 2, then subroutine 123 gives the answer "False", and controUer 21 continues to block 125, in which it checks if any of sensors 7 or 8 is activated. If they are activated (the answer in block 125 is "True"), then in block 126 variable CS gets the value of 1, if sensor 7 is activated, or the value of 2, if sensor 8 is activated. If there is no external activation, variable CS keeps the value of 0.
As it foUows from what has been said, receiving a message from another toy has higher priority than activation of any of sensors 7, 8. If the user continuously presses one of sensors 7, 8 of first toy 1, and at this time second toy 2 happens to be around, and first toy 1 starts to receive messages transmitted by second toy 2, then
subroutines 123 and 124 wiU be caUed in subroutine 103, and variable CS will get the value found in subroutine 124.
After the execution of both subroutine 124 and block 126, controUer 21 continues to block 127, in which it checks the difference ofthe computed value of variable CS from the value of OldS. If checking shows that CS is different from OldS (the answer is "Trae"), then controUer 21 in block 128 compares value OldS to zero. If it turns out that OldS is equal to zero, then variable Ev gets the found value CS (block 129), as in this case the event is the beginning ofthe external activation with CS number, and there has been no extemal activation before. If checking in block 128 showed that value OldS is not equal to zero, then instead of the external activation with number OldS there is the external activation with number CS. For example, the user continuously presses sensor 7 of first toy 1, and at this time second toy 2 appears and first toy 1 starts to receive messages transmitted by second toy 2. The reverse effect of the external activation wiU take place if in the situation described second toy 2 is taken away in a certain time and receiving of messages by first toy 1 stops, and the user continues his/her activation of sensor 7.
In such cases, two external events are recorded into History Table 32. Fust, the event that is the termination ofthe extemal activation with number OldS is recorded. For this purpose, in block 130 variable CS gets the value of 0, and variable Ev gets value OldS. In the next run ofthe main program (Fig.13) in subroutine of waiting for an event 103, an external event is recorded that is the beginning of a new extemal activation. In this case, subroutine 103 wiU be run through block 129.
After fulfilling block 129 or block 130, controUer 21 continues to fulfilling block 135, in which timer 25 is reset and the next interval counted by timer 25 is determined by Timer Table 47 depending on the value of variable CS. After this, the subroutine terminates in block 136.
If checking in block 127 shows that CS coincides with OldS, that is the external activation has not changed, then controUer 21 in block 131 intenogates timer 25. If timer 25 has aheady counted preset time interval, then in block 132 variable Ev gets the value of 99, that in the prefened embodiment co esponds to
internal event identificator. After this, block 135 described above is fulfilled. In the opposite case, the program continues to block 123 and the cycle of waiting runs one more time.
If in block 125 the negative answer is received, that is neither of sensors 7, 8 is activated, then in block 133 the value of variable OldS is compared to zero. If the result is negative, then in block 134 variable Ev gets the value of OldS, as the event is the teiToination of the external activation with number OldS. Then, the program continues to block 135. If in block 125 the positive answer is received, then an external event has not happened, and the program continues to block 131, where it checks, if there is an internal event that was discussed earUer.
Thus, the subroutine of waiting for an event finds external and internal events and ensures that the requirement is fulfilled that recorded in History Table 32 external events conesponding to the beginning and the termination of an extemal activation alternate. Fig.15 shows the flowchart of subroutine 123 that intenogates receiving circuit
27 and checks if there is a message from second toy 2. In this flowchart the foUowing designations are used: Kis a counter of executed cycles of waiting for a signal at the output of receiving circuit 27; KM is a maximal number of executing a cycle of waiting for a signal at the output of receiving circuit 27. After entering the subroutine (block 141), variable K gets the value of 0 (block
142). Then in logic block 143, the program checks if there are impulses at the output of receiving circuit 27. To fulfil this operation, the program can, for example regularly check if during the preset period of time the level of voltage at the output of receiving circuit 27 has changed. A more detaUed description of this procedure is not given here, because these operations are well known, for example in signal receiving of remote, control devices. If impulses at the output of receiving circuit 27 are not detected, then the conclusion is made that there is no message from second toy 2, and the program continues to block 144, in which the value of variable K increases by a unit. Then, the program checks in logic block 145, if maximal number KM of executed cycles of waiting for a signal at the output of receiving circuit 27 has been
reached. If this number has not been reached, that is K < KM, then the program returns to the beginning of the waiting cycle in block 143. If K = KM, then the waiting cycle terminates, subroutine 123 gives the answer "False" and terminates in block 146. If checking in block 143 shows that there are impulses at the output of receiving circuit 27, then the program continues to logic block 147, in which it checks the value of variable K If K= 0, then the running of subroutine 123 started at the moment, when the transmission of a message by second toy 2 had aheady begun. In this case, the program continues to logic block 148, in which it waits for the message transmission to finish, that is for the moment when there are no impulses at the output of receiving circuit 27. When the transmission of this message is completed, the program returns to logic block 143 to begin the cycle of waiting for the next message from second toy 2. The execution of the waiting cycle was described earUer. Jf checking in logic block 147 shows that K > 0, then the message transmission from second toy 2 has just begun, because several runs ofthe waiting cycle had been canied out before impulses were found. In this case the program continues to data receiving subroutine 149, in the process of which controUer 21 reads bit by bit data from the output of receiving circuit 27, selects from the data received the value of LD identificator of second toy 2 and its Size and Appearance parameters, and stores these values in variables ID2, Sz2 and Appr2 in Variables area 31 in RAM 23. A more detaUed description of data receiving subroutine 149 is not provided here, as such subroutines are weU known, for example in LR devices of remote control.
After this, subroutine 123 in block 150 gives the answer "Trae" and teixninates. Fig.16 shows the flowchart of subroutine 124. After entering this subroutine in block 151, controUer 21 checks in logic block 152, if second toy 2 is famihar to first toy 1. To do so, controUer 21 consequently compares ID2 identificator value received from second toy 2 to ID identificators values recorded in Identificators Table 44 in ROM 22. If there is ID identificator value in Identificators Table 44 coinciding with received ID2 value, then logic block 152 gives the answer "Trae", that means that second toy 2 is familiar. Then the program continues to block 153, in
which controUer 21 reads from Identificators Table 44 the value of the external activation number that conesponds to ID2 identificator and gives this value to variable CS.
If there is no ID identificator in Identificators Table 44 coinciding with received JD2 value, then logic block 152 gives the answer "False", that means that second toy 2 is not famiUar to first toy 1. In this case, the program continues to block 154, in which controUer 21 finds in Parameters Table 45 in ROM 22 a column conesponding to received values Sz2 and Appr2 of Size and Appearance parameters of second toy 2, reads from the found column the value of external activation number and gives this number to variable CS.
Then subroutine 124 terminates in block 155.
Further, we wiU proceed to the description of subroutine 104 of recording events in History Table 32, the flowchart of which is presented in Fig.17. After entering this subroutine (block 161), controUer 21 checks number HT[NHT] recorded in the last ceU of History Table 32 (block 162). If this number is 99, then the earhest event recorded in History Table 32 is an internal event. If this number is equal to zero, then no event has been recorded yet in the last cell of History Table 32 after the power was switched on. In both cases, block 162 gives the answer "Trae". After this, the block of subroutine 163 is canied out, in which the number from the one before last ceU HT[NHT-1] is copied into the last ceU HT[NHT]. After this, controUer 21 continues to block 166 that wiU be discussed below.
If number HT[NHT] recorded in the last ceU of History Table 32 is not equal to 99 and not equal to zero, then the earhest event recorded in History Table 32 is an external event. As it foUows from the further explanation, the earhest possible extemal event recorded into History Table 32 can only be the beginning of some extemal activation. That is why number HT[NHT] can be positive only, hi this case, controUer 21 continues to block 164, in which it checks the sign of number HT[NHT-1] recorded in the one before last ceU of History Table 32. If this number is positive, controUer 21 does not change number HT[NHT] and at once continues to block 166. It should be noted that in the prefened embodiment of the present invention in the situation under consideration positive number HT[NHT-1] in the one
before last ceU of History Table 32 can only be number 99, as it is impossible for two external events to appear one after another in History Table 32, when each of these events is the beginning of an external activation. This was shown when subroutine 103 was considered (Fig.14). Jf number HT[NHT- 1] is negative, in block 165 number 99 is recorded into the last ceU of Table 32. This means that the external activation, the beginning and ending of which were fixed in the last and the one before last ceUs of History Table 32 accordingly, is deleted from History Table 32. The toy forgets about this activation. In the cycle consisting of blocks 166, 167, 168, and 169, the identificators of external and internal events recorded in History Table 32 get shifted. Each identificator beginning with HT[n-2] shifts one ceU to the right. Identificator HT[n-2] takes the place of identificator HT[n-l], then identificator HT[n-3] takes the place of identificator HT[n-2], and so on. FinaUy, identificator HT[1] takes the place of identificator HT[2]. After going out of this cycle, identificator ofthe last event HT[1] gets value Ev found in subroutine 103 (block 170), and the subroutine terminates in block 171.
Further, we wiU consider an example explaining the operation of subroutine 104. As it was pointed out before, when the power is switched on, aU ceUs of Histoiy Table 32 are filled with zeros. The first event is fixed in the first (last left in Fig.4) ceU of History Table 32. When a new event is recorded, aU the events recorded before shift one ceU to the right tUl the first event is not in the last ceU (last right in Fig.4) of Histoiy Table 32.
Fig.18 shows the content of the last twelve ceUs of Histoiy Table 32 in five states consecutive in time. Every next state is received from the previous state, when a new event is recorded in Histoiy Table 32 and the events recorded earUer are shifted one ceU to the right. In state 175, there is number 7 in the last ceU that shows the beginning of the extemal activation with number 7. In two previous ceUs there are numbers 99 that indicate internal events. In the ceU that is the fourth from the end, there is number -7 that indicates the ending of the external activation with number 7.
In next state 176, number 7 is preserved in the last ceU, as subroutine 104 does not aUow the situation, when the ending ofthe external activation is fixed in History Table 32 without storing in it the record ofthe beginning of this external activation. The records in aU preceding ceUs have shifted one ceU to the right. In result, the number of internal events between external event with identificators 7 and -7 has decreased. The transition into the foUowing state 177 is made in the similar way.
In the foUowing state 178, numbers 7 and -7 indicating the beginning and ending ofthe extemal activation are deleted from History Table 32, instead of them number 99 conesponding to an internal event is recorded in the last ceU. The toy forgets about the external event with number 7. The simultaneous deleting of extemal events that are the beginning and ending of the extemal activation from History Table 32 is a necessary condition for the coixect device operation and it is ensured by subroutine 104.
In the last state 179 one more shift ofthe content of History Table 32 one ceU to the right is shown. During this shift the internal event that was located in the last ceU is deleted from History Table 32.
In the result of emotion determining subroutine 105, controUer 21 finds the current resultant value of emotional state type RTCur and emotional state degree RDCur ofthe toy at the current moment. The method of calculation of values RTCur and RDCur in the prefened embodiment ofthe present invention makes it possible to take into consideration aU the events recorded in History Table 32 at the cunent emotional state ofthe toy.
In the flowchart of emotion determining subroutine 105 (Figs. l9A, 19B) the foUowing designations are used: - RX and DX are integer-valued variables, wherein emotional state types and maximal values of emotional state degree generated by an extemal activation, the influence of which is being calculated by the subroutine, are stored accordingly;
- RS is an integer variable used for storing the number of external activation, the influence of which on the emotional state of the toy is being calculated by the program;
- RV is a real variable used for storing of interim results of calculations;
- STB[n], n = 1..4, is an anay of real numbers used for storing interim results when calculating value of emotional states degrees;
- STW[n], n = 1..4, is an anay of real numbers wherein weighted values of emotional state degrees of four types are stored; - n is an integer variable comprising the number ofthe foUowing ceU to be looked through in History Table 32;
- m is an integer variable comprising the ceU number in History Table 32, from which the search for the record about an extemal activation in History Table 32 begins; - q is an auxiUary integer-value variable.
Designations h(RType,n) and k(RType,n) have been introduced when
Functions Table 48 was described with reference to Fig.11. Array ST[n], n=1..4, was introduced when the main program flowchart was considered in Fig.13. Constant
NHT and anay HT[n], n=l..NHT, were defined in the description of History Table 32 in Fig.4. Weighted coefficients Wij were introduced, when Coefficients Table 49 was described with reference to Fig.12.
After entering the subroutine (block 181), the initial setting of variables takes place (block 182). The variables get the foUowing values: STB[1] = 0; STB[2] = 0;
STB[3] = 0; STB[4] = 0; m = NHT. In block 183, variable n receives the value of variable m that is equal to NHT, that is the number ofthe last ceU in History Table
32.
Then, controUer 21 runs the program cycle loop consisting of blocks 183...186.
The assignment of this cycle is to find in History Table 32 the beginning ofthe first in time extemal activation, that is to find the first external event. For this purpose, first in block 184 number HT[n] recorded in n-th ceU of History Table 32 is compared to numbers 99 and 0. As it was explained before, number 99 is an identifier of an internal event and zeros appear in History Table 32 when the program starts after switching the power on.
If number HT[n] is not equal to any of the above-mentioned numbers (the answer in block 184 is "False"), then the cycle terminates and the program continues to block 187. If block 184 gives the answer "Trae", then the value of variable n is
compared to the one in block 185. By that the program checks if the consecutive checking of ceUs in History Table 32 has reached the first ceU. If this has taken place (the answer is "Trae"), then controUer 21 continues to block 199 in Fig. l9B. In the opposite case, in block 186 the value of variable n decreases by the unit and the program returns to block 184 for running the next pass ofthe cycle.
Thus, the ceUs checking procedure in Histoiy Table 32 begins from the last ceU and continues till it finds the ceU comprising the identifier ofthe external event that is first in time and, as it was shown above, is the beginning ofthe external activation. For more clarity, this external activation wiU further be caUed the first external activation. In block 187, the number ofthe found ceU disposed in variable n is stored in variable q. In block 188, variable RS receives the value of HT[n], that is equal to the number of the first extemal activation. In block 189, controUer 21 reads from Emotions Table 46 (ref. Fig.9) the value of the type of the emotional state and the maximal value of the degree of the emotional state for the first external activation with number RS and stores these values in variables RX and DX respectively.
Further, the program calculates the contribution of the first external activation into computed values of emotional state degrees stored in variables STB[1]..STB[4]. In the prefened embodiment ofthe present invention, external activation RS affects only the emotional state, for which RType = RX, and computed value RDeg of which is stored in STBfRX]. As it was explained when Fig.11 was considered, when there is an external activation affecting the emotional state of RX type, the degree of emotional state of RX type increases according to function h(RX, i), where i is a number of internal time intervals passed after the beginning ofthe above-mentioned extemal activation. After the termination of the extemal activation, the emotional state degree decreases according to function k(RX, j), where j is a number of internal time intervals passed after the termination ofthe activation
In the cycle consisting of blocks 190..193 and in block 194, the program calculates the degree of the emotional state of RX type in the time interval, when there is an external activation. Variable RV is used for intermediate storing of computation results. Variable n indicates the number ofthe internal time interval, for which the degree of the emotional state is calculated in the cunent ran of the
program cycle. The program looks through the ceUs in History Table 32 beginning with the ceU, in which the beginning of the first external activation is fixed, and looks for the ceU in which the end ofthe first external activation is fixed.
The cycle begins from block 190, in which the value for variable RV for the cunent value of n is computed:
RV = DX*h(RX, q - n + 1) . (1)
The value q - n + 1 reflects the number of internal time intervals separating the cell with number n in History Table 32 from the ceU with number q, in which the beginning ofthe first external activation is fixed. As the first argument in Functions Table 48 (Fig.11) is number 1, one is added to the difference q - n. It is important to note that if it turns out that q - n + 1 > MaxT, where MaxT is a number of internal time moments for which the values of function h(RX, i) are set (Fig.11), then in formula (1) MaxT is used instead of q - n + 1 (not shown in Fig.19A).
Then in block 191, the value of n is compared to one. If the value of n is more than 1 (the answer is "Trae"), then the program has not reached the first ceU of History Table 32. In this case, controUer 21 in block 192 compares number HT[n-l] recorded in the foUowing ceU of History Table 32 to number 99. If the result ofthe comparison is negative (the answer is "False"), then the cycle run terminates, as the identificator ofthe external event, that is the ending ofthe first external activation, is recorded in the foUowing ceU. hi this case, controller 21 continues to running block 195.
If in block 192 the answer "Trae" is received that shows that in the foUowing ceU of History Table 32 the identificator of the internal event is recorded, then the value of variable n decreases by one (block 193), and the program returns to block 190 and continues the execution ofthe cycle.
If in block 191 the answer "False" is received that means that n is equal to one, and that the checking of History Table 32 is completed, then the cycle is terminated.
In this case, the external activation stiU continues, that is why the event of its termination is not recorded in Histoiy Table 32. The program continues to 194, in which the cunent value ofthe response degree of RX type is computed:
STB[RX] = STB[RX] + RV . (2)
Then the program continues to block 199.
As it is noted above, if in block 192 in (n-l)-th ceU of History Table 32 the identifier ofthe end ofthe first extemal activation is found, the program continues to block 195. The completed first external activation at the moment of its termination has created an emotional state of RX type with the value of the response degree recorded in variable RV. From the end ofthe first external activation to the cunent moment there are (n - 1) external and internal events recorded in Table 32. In block 195, the value of the contribution of the first external activation into the emotional state degree for the current moment of time is computed: RV = RV*k(RX, n - 1) . (3)
Then in block 196, formula (2) is used to calculate the value ofthe degree of the emotional state of RX type.
In block 197, variable m gets the value of n - 1. This value is the cell number in History Table 32, in which the event that foUows the termination ofthe first external activation is recorded. Further, controUer 21 in block 198 checks the value of variable m.
If the value of variable m is bigger than zero, the program returns to block 183. Then, in History Table 32, the program looks for the beginning ofthe next (second) external activation and calculates its contribution into the value ofthe emotional state degree generated by the above-mentioned second external activation. This contribution is added to one of variables STB [1]... STB [4] in accordance with the type of emotional state caused by the second extemal activation. As it foUows from formula (2), contributions of separate external activations that cause emotional states of the same types are summed up. Then, the searching for the next (third) external activation in History Table 32 takes place, and so on. This continues till aU extemal activations recorded in History Table 32 are processed.
The end of processing of aU the extemal activations is determined in block 185, or in block 193 that was described before, or in block 198. In the last case, the end of processing is indicated by the answer 'TSTo" showing that no external or internal event is recorded in History Table 32 after the last external activation has terminated. In aU
above-mentioned cases, after the teixnination of processing of aU the external activations, controUer 21 starts the execution of block 199 (Fig.l9B).
In block 199, controUer 21 computes the cunent value of the emotional state degree for four emotion types and records them into the coiresponding State Table 33 ceUs:
ST[l] = Round(STB[l]), ST[2] = Round(STB[2]),
(4)
ST[3] = Round(STB[3]), ST[4] = Round(STB[4]), wherein Round(x) is a rounded function that returns an integer nearest to number x. After computing each of values of ST[i], i = 1..4, according to formula (5), in block 199 it is checked if the computed value of ST[i] has not exceeded the maximal possible value of the emotional state degree equal to three. If it is found out that ST[i] > 3, then ST[i] gets the value of 3.
In block 200, controUer 21 calculates weighted values of emotional states degrees:
STW[1] = Wπ*STB[l] + Wι2*STB[2] + W13*STB[3] + W14*STB[4], STW[2] = W2ι*STB[l] + W22*STB[2] + W23*STB[3] + W24*STB[4], (5)
STW[3] = W31*STB[1] + W32*STB[2] + W33*STB[3] + W34*STB[4], STW[4] = W41*STB[1] + W42*STB[2] + W43*STB[3] + W44*STB[4] . By this calculation the interference of emotional states and their priority for the given toy are taken into account. Then in block 201, variable RTCur gets the value of the emotional state type for which the weighted value of emotional state degree is maximal. For example, if among four numbers found by equation (5) STW[3] turned out to be the biggest, then RTCur gets the value of 3. In the same block 201, controUer 21 determines the current value of emotional state degree: RDCur = ST[RTCuι]. (6)
After this, subroutine 105 terminates in block 202.
Fig.20 depicts the flowchart of subroutine 107 of checking conditions for transfer into Power Down Mode. The foUowing designations are used in this flowchart: NP - is an integer-valued variable used as a counter; NPM is an integer- valued constant. After entering the subroutine (block 211), controUer 21 in block 212 checks the cunent values of emotional state degrees. If at least one of numbers ST[i], i = 1..4, is not equal to zero, then the program continues to block 213, where variable NP gets the value of zero. Then, subroutine 107 terminates in 217 giving the answer "False".
If in block 212 it is found out that aU numbers ST[i], i = 1..4, are equal to zero, then controUer 21 compares the value of variable NP to constant NPM. If the value of NP has not reached NPM, then block 214 gives the answer "False", the value of variable NP increases by one (block 215), and subroutine 107 terminates in block 217 giving the answer "False". The value of variable NP is stored in Variables area 31 in RAM 23 and is used in subroutine 107 in the next run of the cycle of the main program (Fig.13).
If in block 214 the answer "Trae" is received, then subroutine 107 terminates in block 216 giving the answer "Trae". Thus, the transition into Power Down Mode takes place, if during NPM cycles of the main program (Fig.13) aU emotional states had zero values of degree RDeg. This takes place, if there has been no extemal activation ofthe toy for a long enough period of time.
As it foUows from the description above, the prefened embodiment of the present invention comprises several means for setting the toy behavior. All these means aUow to change toys responses to extemal activation taking place at the present moment and to external activations that happened in the past. To choose the behavior, it is not necessary to change hardware or sof ware ofthe toy. It is enough to change the parameters recorded in ROM 22.
The type of an emotion generated by each extemal activation and the maximal degree of this emotion for different extemal effects including contacts with other toys are set by the data recorded in Identificators Table 44, Parameters Table 45 and Emotions Table 46. Thanks to this, the same type of activation can results in various
emotional states in different toys. For example, meeting of Tigger makes Winnie-the- Pooh happy, frightens Piglet, discourages Eeyore and sUghtly irritates Owl. This makes it possible to imitate various characters and interpersonal relations.
The data in Timer Table 47 determines the period of forming an internal event, thus setting the rate for toy internal time depending on the external activation. If for a certain activation a smaU value ofthe period of forming an internal event by timer 25 is recorded in Timer Table 47, then, when this activation appears, internal time will go slowly and past events wiU be kept in memory for a long time.
The data in Functions Table 48 determines the speed of change of every emotional state with time. The increasing and decreasing of the speed of emotional degrees substantiaUy determines the personaUty of the character represented by the toy. An optimistic character has a fast glowing and slowly decreasing state Joy and, vice versa, slowly increasing and fast decreasing state Sadness. A pessimistic character has the opposite dependency of its emotional states on time. The possibiUty to get arbitrary dependencies of emotions on time allows to achieve interesting effects in toy behavior. Let's suppose that emotion A slowly decreases after the termination ofthe first activation that caused this emotion. At this moment, the second activation appears generating emotion B. In such a situation, first the toy will give a response conesponding to emotion A, and then this response wiU be replaced by a response conesponding to emotion B. If the second activation terminates quickly, and emotion B generated by it fades quicker than emotion A, a response conesponding to emotion A can appear again. For example, a short meeting with the Cat can sUghtly frighten the Mouse, but then the Mouse can resume its good mood. Another interesting effect is achieved when degrees of the same emotional state are summed up when several activations resulting in the same emotional state happen one after another, and slowly fading emotions caused by these activations overlap in time. In result, the total degree ofthe emotional state can turn out to be higher than the maximal degree of the emotion for any of these activations taken separately.
Weight coefficients recorded in Coefficient Table 49 make it possible to create additional variants oftoys behavior. If at the same time there are degrees of several emotional states different from zero caused both by the cunent external activation and the terminated ones, then these weight coefficients are used to determine the type ofthe resulting emotional state. Choosing values of weight coefficients aUows to set priorities for the emotions ofthe given toy and to take into account the interference of various emotional states.
CONCLUSION, RAMIFICATIONS AND SCOPE
As it foUows from the above detaUed description ofthe prefened embodiment of the present invention, this invention provides new possibiUties and advantages over the toys imitating character behavior known before. This new possibiUties and advantages are ensured by the fact that each toy according to the present invention has a memory, where the data about events happening to the toy is stored.
The behavior ofthe toy expressed in its actions and in particular in reproducing of various audible messages is determined by its emotional state imitating an emotional state ofthe character represented by the given toy. The emotional state of the toy is in its turn determined by an external activation of the toy and by the sequence of events registered in toy's memoiy. In result, the behavior of the toy depends on events that happened before. This makes it possible to enlarge the capacity to imitate the behavior of fairy tale characters, real people and animals.
Another advantage of the present invention is the possibility to get many variants oftoys behavior, and thus, imitate the behavior of characters with different personaUties and temperaments. To achieve this, it is possible to vary dependencies of emotional state degrees on time and on an extemal activation, dependency of internal time rate on external events, as weU as to choose actions performed by the toy in different emotional states in accordance with the character represented by the toy.
The next advantage ofthe present invention is that one ofthe types of external activation is receiving a message from other toys of the kind. In addition to the above-mentioned dependency of behavior on the remembered events, this feature provides the possibiUty of getting a big variety of toys interactions. Having several toys, it is possible to form various pa s, and the behavior of each toy wiU depend on the particular partner and the order in which they exchanged messages.
Remembering the "life story" of the toy in a form of a succession of events aUows to store this "story" in a srnah volume memory. At the same time, the programs described above aUow to compute degrees of aU emotional states for each internal time interval according to the recorded events. It being the implementation of these programs does not require a big amount of calculations and the use of highspeed or special processors. Thus, the influence of the events in the past is imitated by simple and inexpensive means.
Toys representing different characters and imitating different types of behavior can have the same stracture and components of then electronic blocks and only differ by the data recorded during programming. The unification of electronic blocks aUows to reduce production costs.
The imitating characters behavior toys according to the present invention have a good market potential. Users can either graduaUy increase then community oftoys introducing new members into it, or buy these toys by thematic sets, for example a set from a popular cartoon series, or a set of the rain forest animals. At the same time, toys manufacturers can produce new toys interacting among themselves and with the toys manufactured before, and demonstrating new variants of behavior. This wiU help to support constant interest of consumers to such toys, and consequently the demand for such toys.
Although the description above contains many specificities, these should not be construed as limiting the scope ofthe invention but as merely providing iUustrations of the presently prefened embodiment of this invention. Many other ramifications are possible. Some of these variants are discussed below. The message transmission from one toy to another with the use of IR rays was given above as an example only. Radio transmission can be an alternative way of
message transmission. In this case, it is possible to make use of some weU-known technology in the field of mobUe and cordless phones or mobUe networks, for example Bluetooth standard. Messages can also be transmitted in the form of acoustic signals including ultra-sonic range. For every method of message transmission any suitable message format and antijamming coding method can be used.
The number of sensors, as weU as then: position in the toy according to the present invention can be various. Sensors can be not only pressure- sensitive, but can also be activated by sounds (claps, whistles), by turning on and off the Ught, by a person approaching, and by other extemal events. Sensors of different types of activation are weU known in the art.
The behavior ofthe toy in the prefened embodiment ofthe present invention is expressed through audible messages. Other ways of expressing behavior are also possible including movements of any part ofthe body (hands, head, tail, etc.), Ught signals, for example sparkling eyes, appearance of some signs or symbols on LCD, as weU as any combination ofthe mentioned and other means.
In the prefened embodiment of the present invention, one sound response recorded in Sound Responses area 42 conesponds to every value of each emotional state degree. It is possible to record several sound responses for each degree of each emotion and each time to choose one of them, for example by a random law.
The types of emotional states and the degrees of emotional states provided in the above description ofthe present invention are given for iUustrative purposes and can be different, moreover different for different toys. For example, eight basic emotions can be used: Joy, Acceptance, Fear, Surprise, Sadness, Disgust, Anger, Expectation. Also, such states as curiosity, submission to a paitner, or in the opposite, the will to dominate the partner, etc. can be used. The implementations of these ramifications wiU not require serious changes in the prefened embodiment of the present invention. It is necessary just to change values range for RType and RDeg parameters and respectively change tables stored in ROM 23 and RAM 23. The rules of changing emotional state degrees in time that in the prefened embodiment of the present invention are provided in the form of function
dependencies stored in Functions Table 48, can have a different form. For example, tables of transitions among states for various extemal and internal events can be set.
The resulting emotional state of the toy in the prefened embodiment of the present invention is determined as an emotion having the maximal RDeg out of aU emotions. However, it is possible to use other methods of determining the resulting state, for example, by algebraic summing of degrees of aU emotional states with conesponding weight coefficients, or by the way of geometric summing on a special emotions map. When computing emotional states for varying of intensity degree of the resulting emotion, a random numbers generator can be used. In the prefened embodiment ofthe present invention, when there is no external activation during a long enough period of time, the degrees of aU emotional states fade to zero and the toy transfers into the neutral state wherein no responses are produced. The option is possible, when the toy in the neutral state responses to each internal event generated by timer 25 by, for example a message that it is bored without interacting with other toys or with the user. hi the prefened embodiment of the present invention, the duration of time intervals generated by timer 25 is set in accordance with extemal activation of the toy. The conespondence rales are set by data in Timer Table 47. The other possible way is setting the above-mentioned time intervals in accordance with the cunent emotional state. To implement this option, it is necessary to use emotion type RType and emotion degree RDeg as input parameters in Timer Table 47. In this case, the internal time rate wiU depend on emotional states ofthe toy, that wiU fiuther increase the variety oftoys behavior. It is also possible to employ both described methods of setting time intervals. The messages transmitted by the toy can comprise not only its ID identificator and Size and Appearance parameters, as it is described in the prefened embodiment of the present invention, but also other data that can influence other toys behavior. For example, they can comprise data if the toy has a coat and what color it is, if the toy has a taU, etc. The principles of deterrnining the behavior ofthe toy wiU remain as described above. It is necessaiy just to change Parameters Table 45 including in it additional toy p arameters.
Data transmitted by toys can comprise not only then static parameters, such as Size and Appearance, but also values of emotional state type RTCur and emotional state degree RDCur that characterize the cunent state of the toy. For example, the Wolf can transmit the message "I am hungry and angry" or the message "I am happy!" In this case, the behavior of the toy that has received the message can depend on the emotional state ofthe toy that has transmitted the message. To do so, it is necessary to introduce related data into Parameters Table. Interference of emotional states of interacting toys in combination with various dependencies of emotional states on time wiU result in a wide range oftoys behavior variants. The transfer ofthe controUer into Power Down Mode is an optional feature. It is possible that the toy is in the active mode and is able of receiving messages from other toys aU the time the power is on. In this case, the toy can comprise a power switch.
Thus, the present invention provides wide possibiUties for imitating various interesting behavior patterns and interactions among toys, for creating toys communities Uving their own Uves that wiU be useful for children and adults.
Having described the prefened embodiment ofthe invention with reference to the accompanying drawings, it is to be understood that the invention is not limited to these precise embodiment, and that various changes and modifications may be effected therein by one skiUed in the art without departing from the scope or spirit of the invention as defined in the appended claims.