Description METHOD FOR PRODUCING A LIBRARY OF MULTICHANNEL VIBRATION TYPES, AND MULTI-CHANNEL VIBRATION CONTROL DEVICE Technical Field
[1] The present invention relates to a control of vibration motors, and more specifically to a method for producing a library of vibration types applicable to a plurality of vibration motors (hereinafter, also referred to 'multi-channel vibration types'), and a multi-channel vibration control device.
[2] (Cross Reference to related applications)
[3] This application claims the benefit of Korean Application No. 2004-15063, filed Mar. 5, 2004, in the Korean Industrial Property Office, the disclosure of which is incorporated herein by reference. Background Art
[4] Recently, with the development of Information Technology (IT), users of various IT devices, such as game consoles, mobile phones or any other devices, are requesting more realistic interaction with the devices. On that reason, there is an increase of interest in hardware environments capable of delivering tactile information to users more realistically, along with typical audio and video information.
[5] Conventional vibration devices, which has been adapted to game consoles, mobile phones and so on, cannot include therein a plurality of vibration motors (such as three, four or more of them), due to the large size of vibration motors. Therefore, tactile effects, which are delivered to users by conventional vibration devices, can be varied merely by changing vibration strengths or frequencies of only one or two motors.
[6] For example, Fig. 1 depicts a game console, which was disclosed in Sony Computer Entertainment's PCT patent application No. PCT/JP01/00150, Filed on Jan. 12, 2001, wherein two vibration motors are disposed respectively on the first and second handle parts, 110, 111. The two vibration motors 120 in the game console are different in their size and eccentric members 121, whereby when driven by a fixed driving voltage, the rotational speed of the eccentric members 121 can be made different by making the speed of rotation different, and the frequency of vibrations can also be made to different. Disclosure of Invention Technical Problem
[7] However, since the above-described game console implements tactile effects
merely with two vibration motors, it cannot implement realistic effects suitable for various three dimensional arrangements of vibration motors. Moreover, it cannot provide vibration types appropriate for the changed arrangement of motors, in case of an addition or elimination of a motor(s), or a change in the arrangement of motors, for implementing tactile effects more realistically.
[8] Consequently, according to the prior arts, a developer, who is responsible for developing game software, or application software for various vibrating devices, has not been able to control dimensionally arranged, multiple motors for designing more realistic tactile effects.
[9] It is therefore an object of the present invention to provide a method for producing a library of multi-channel vibration types, by which various tactile effects suitable for various game software or any other applications can be implemented easily and fast.
[10] It is another object of the present invention to provide a vibration control device which allows the above library of multi-channel vibration types can be easily adapted to various game consoles or any other devices (for example, a PC mouse, seats of a movie theater). Technical Solution
[11] To achieve the foregoing and other objects, an aspect of the present invention provides a method of producing a library of vibration types for driving a plurality of vibration motors arranged in an object. The method comprises steps of (a) arranging said motors in the object; (b) specifying vibration patterns to be applied to each of said motors; (c) designating the vibration patterns to said motors, respectively, to create a vibration type and driving said motors in accordance with the vibration type; (d) repeating said steps (a) to (c) and extracting an optimal vibration type; and (e) storing the optimal vibration type in a library file with the locational information of said motors arranged in the object during said step (a).
[12] It is preferable that the method further comprises steps of (f) combining a plurality of vibration types to create a new vibration type; and (g) storing the vibration type created during said step (f) in the library file with the locational information of said motors. Also, it is preferable that the method further comprises a step of (h) searching the library file and modifying the information stored in the library file.
[13] The second aspect of the present invention provides a recording medium storing a computer-readable and executable program, which produces a library of vibration types for driving a plurality of vibration motors arranged in an object, and performs the above-described steps.
[14] The third aspect of the present invention provides a system for producing a library of vibration types for driving a plurality of vibration motors arranged in an object. The
system comprises means for inputting information concerning the locations where each of said motors are arranged in the object; means for specifying vibration patterns to be applied to each of said motors; means for designating the vibration patterns to said motors, respectively, so as to create vibration types; means for extracting an optimal vibration type from the vibration types, means for storing the optimal vibration type in a library file with the locational information of said motors; and means for driving said motors in accordance with the vibration types.
[15] The fourth aspect of the present invention provides a vibration control device for driving a plurality of vibration motors arranged in an object. The device comprises means for storing one or more libraries of vibration types. Each of the vibration types includes a plurality of vibration patterns designated to said motors, and associated locational information of said motors arranged in the object. The device also comprises means for driving said motors; and controlling means coupled to said storing means; and said driving means for extracting a specific vibration type and controlling said driving means to drive said motors in accordance with the specific vibration type.
[16] The sixth aspect of the present invention provides a method for driving a plurality of vibration motors arranged in an object, and the method comprises steps of storing one or more libraries of vibration types, each of which includes a plurality of vibration patterns designated to said motors and associated locational information of said motors arranged in the object, extracting a specific vibration type, and driving said motors in accordance with the specific vibration type.
[17] And, the seventh aspect of the present invention provides a computer-readable recording medium storing one or more libraries of vibration types for driving a plurality of vibration motors. The libraries comprise specification of vibration patterns to be applied to each of said motors, specification of vibration types, each of which specifies association between each of said motors and the vibration patterns, and locational information of said motors associated with the vibration types. Advantageous Effects
[18] As describe above, in accordance with the present invention, a library of multichannel vibration types can be provided before the development of games or any other software applications for various vibrating devices, which is equipped with a plurality of vibration motors. Therefore, developers of the games or applications are just to select ready-made vibration types suitable for the changeable location of the motors, and significant reduction of developing efforts and time can be obtained using the library of multi-channel vibration types during the development process.
[19] Also, a multi-channel vibration control device in accordance with the present invention, advantageously allows the above library of multi-channel vibration types
easily adapted to various game consoles or any other vibrating devices. Brief Description of the Drawings
[20] Fig. 1 shows an example of a conventional game console with two vibration motors. [21] Fig. 2 illustrates vibration patterns according to an embodiment of the present invention. [22] Fig. 3 is a flow chart showing a method for producing a library of multi-channel vibration types according to the first embodiment of the present invention. [23] Fig. 4 is a block diagram of a system for producing a library of multi-channel vibration types in accordance with the second embodiment of the present invention. [24] Fig. 5 is a block diagram of a multi-channel vibration control device in accordance with the third embodiment of the present invention. [25] Fig. 6 is a flow chart showing a method for controlling multi-channel vibration of plurality of motors in accordance with the fourth embodiment of the present invention. [26] Fig. 7 illustrates forward and reverse rotations of a thin coin-type vibration motor in accordance with the above-described vibration patterns or vibration types. [27] Fig. 8 illustrates a simplified 3D model, to which the multi-channel vibration in accordance with the present invention can be applied, and an arrangement of coin-type vibration motors therein. [28] Fig. 9 shows exemplary arrangements of four thin coin-type motors at the 3D model of Fig. 8. [29] Fig. 10 illustrates the arrangement of Fig. 9 (a), which is actually applied to a PC mouse. Best Mode for Carrying Out the Invention [30] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. [31] Fig. 2 illustrates a few vibration patterns to be applied to each of plurality of vibration motors, according to an embodiment of the present invention. As shown in Fig. 2, various patterns 210, 220, 230, and240 can be specified on the basis of the amplitude or strength, frequency, and duty cycle (or period) of a voltage or current, which is to be applied to a vibration motor. [32] The vibration frequency of a motor can be determined by the number of times per second a motor repeats On/Off. For example, the frequency can be set or specified within the range of 0 Hz (corresponding to no vibration) and 100 Hz. The duty cycle of a motor can be set, for example within the range of 0.1 sec. and 10 sec. Although vibration patterns shown in Fig. 2 has the same amplitude, they can be further specified by adjusting the strength of a driving voltage or current, i.e. a driving power, inputted
to a motor. In case that the plurality of motors are different in motor specs, vibration patterns can be specified respectively for each motors with the same spec.
[33] Then, the above vibration patterns can be used to create a vibration type by designating one or more of them respectively to each of said motors.
[34] Referring to Fig. 2, each of the patterns 210, 220,230, and 240 are specified or defined, and for creating a vibration type, the vibration pattern 210 is designated to 'Motor 1', the pattern 220 to ' Motor2', the pattern 230 to 'Motor 3', and the pattern 240 to 'Motor 4'. It should be noted that the same vibration pattern can be designated to one or more motors, and the association between vibration patterns and motors can be modified.
[35] As described above, the relation designated between vibration patterns and each of the motors forms a vibration type for the plurality of motors. Then the plurality of motors will be driven respectively according to one or more of vibration patterns designated thereto in the vibration type, for users' feeling the tactile effect of the vibration type. Then, the vibration type may be named appropriately to present the tactile effect thereof, and may be saved in a library file.
[36] Fig. 3 shows a flow of a method for producing a library of multi-channel vibration types according to the first embodiment of the present invention.
[37] First, at step 300, the motors are arranged to the appropriate locations in an object, which contains the motors, and the information concerning the locations where the motors are arranged in the object, is inputted. The input procedure can be accomplished by means of inputting devices, such as a keyboard or any other similar known devices.
[38] Subsequently, as described in relation with Fig. 2, vibration patterns, which are to be applied to each of the motors, are specified (step 310). At step 320, the vibration patterns are designated to, or associated with the plurality of the motors, respectively, for creating a vibration type, and the plurality of motors are driven in accordance with the vibration type.
[39] As describe above, A vibration type is created by vibration patterns designated to or coupled with the plurality of motors (substantially, no vibration may be included therein as one of the vibration patterns), to represent an overall tactile effect of vibrations caused by all of the motors.
[40] At step 330, the above steps 300 to 320 are repeated to create a number of vibration types, and they may be created with or without the change of the location where each of the motors are arranged in the object, such as a game console, a mobile phone, or any other devices. One of the vibration types, which is regarded as the most appropriate to the object for representing a certain tactile effect, is extracted or selected (Hereinafter, the extracted vibration type will be called 'an optimal vibration type').
One or more of optimal vibration types may be selected, as long as they are proven to be the most suitable for the object, the location of the motors, and/or game environments (or applications), etc., in representing a certain tactile effect, after the plurality of motors are driven in accordance therewith.
[41] To illustrate the above steps, it is assumed there exist four vibration motors, Motor 1, Motor 2, Motor 3, and Motor 4, for example, and four vibration patterns, Pattern 1, Pattern 2, Pattern 3, and Pattern 4 are specified or defined by repeating the step 310, as described in relation with Fig. 2. Although not shown in Fig. 2, Pattern 5, which corresponds to no vibration (OHz), may be provided as a default pattern.
[42] Table 1 illustrates five vibration types, Type l,Type 2, Type 3, Type 4, and Type 5, which are created after repeating the steps300 to 320, especially the step 320.
[43] Table 1 : Examples of vibration types
[44] Referring to Table 1, the vibration motors, Motor 1, Motor 2, Motor 3, and Motor 4, are designated respectively to vibration patterns, Pattern 1, Pattern 2, Pattern 3, and Pattern 4, in the vibration type, Type 1. As such, in the other vibration types, Type 2, Type 3, Type 4,and Type 5, the association between vibration patterns and motors can be understood from Table 1.
[45] It should be noted that in Type 4 and Type 5, Pattern 5 is designated to Motor 4 either by a user, or as a default vibration pattern for motors with no patterns designated thereto by the user. Therefore, in case the motors are driven in accordance with the vibration types, Type 4and Type 5, Motor 4 will not vibrate though the other motors, Motor 1 to 3, will vibrate in accordance with the vibration types designated thereto.
[46] Table 2 illustrates a new vibration type created by designating a series of vibration patterns to each motor at step 320.
[47] Table 2: Examples of a vibration type by designating a series of vibration patterns to each motor
Motor 3 Pattern 2, Pattern 3, Pattern 4, Pattern 4, Pattern 3, Pattern 2 Motor 4 Pattern 4, Pattern 4, Pattern 4, Pattern 3, Pattern 3, Pattern 3
[48] As shown in Table 2, in the vibration type (Type 6), six vibration patterns (Pattern 1, Pattern 2, Pattern 3, Pattern 1, Pattern 2,Pattern 3 ) are sequentially selected and designated to Motor 1, and as such, a series of vibration patterns are designated respectively to Motor 2, 3, and 4.
[49] In relation with extracting an optimal vibration type, if the vibration type, Type 1 is decide to be the most suitable to apply for the positions of the motors [which has been inputted at step 300] among six vibration types, Type 1 to 6, it is chosen as an optimal vibration type. Thereafter, vibration patterns designated to each motor in the optimal vibration type, Type 1, are associated with the location of the motors, and then stored in a library file.
[50] As understood, tactile effects may be felt different as the location of the motors changes. Therefore, by changing the locations of the motors as long as the object allows, and repeating the previous steps, one or more of optimal vibration types, which are regarded as possibly the most appropriate for the locations of the motors, can be extracted.
[51] In relation with a library file, if a library file does not exist when the above storing step begins, a library file will be created and the optimal vibration type(s) will be stored therein. On the contrary, if a library file already exists, the optimal vibration type(s) can be saved either in the existing library file, or in a new library file, as needed. A number of library files can be created for respective combinational locations of the motors, or for respective tactile effects to implement (such effects as car collisions, shots of a gun), and so on. As an alternative, one library file can have one or more of optimal vibration types, each of which are categorized with respective location of the motors or with respective tactile effects.
[52] In configuration of the library file, vibration types and vibration patterns, which are associated with the motors, can be hierarchically arranged to reduce the redundant information. In other words, a vibration type comprises association between vibration patterns and motors, and vibration patterns comprise information concerning vibration frequency, duty cycle, amplitude and so on.
[53] With respect to the locational information of the motors, it may be categorized, in order that vibration types corresponding to the same location of the motors, can share the locational information. As an alternative, each of vibration patterns can be associated respectively with the locational information of a motor, designated thereto in a vibration type.
[54] Referring to step 350, a new vibration type can be created by combining a plurality
of vibration types which are stored in the library file at step 340. For example, a series of vibration types, Type 1, 2,2, 3, 1, 4, can be combined sequentially to create a new vibration type, for example, Type 7. Then, at step 360, the new vibration type can be saved either in the existing library file or a new library file, as described above.
[55] Such a vibration type, which is created at the step350, for example Type 7, is different from the other vibration types, in that it does not directly have vibration patterns designated to each of the motors, but has sequentially combined vibration types. Accordingly, Using the step 350,it is very convenient to make a library of vibration types, because there is no need to designate a vibration pattern to each of the motors (i.e. to each channel).
[56] Fig. 4 shows a block diagram of a system for producing a library of multi-channel vibration types in accordance with the second embodiment of the present invention, which comprises a computer (PC) 410and a control device 420.
[57] First, the computer 410 is configured to input information concerning the location where each of a plurality of motors are installed, to specify vibration patterns to be applied to each of the motors, and to designate vibration patterns respectively to the motors for creating a vibration type. Also, the computer 410 applies an instruction signal to the control device 420 for driving the motors in accordance with the vibration type, and stores one or more of optimal vibration types, which are extracted from the vibration types, in a library file. In the library file, the vibration pattern(s) designated to each of the motors in the optimal vibration type(s)are associated with the locational information of the motors. The above-described functions of the computer 410 may be implemented on a single hardware platform, or on respective devices for each function.
[58] Next, the control device 420 have a controller 430,and N drivers 440 to provide N outputs for driving motors, Motor 1, 2, ..., N. The controller 430 receives the instruction signal, which may contain certain parameters, from the computer 410 and controls the drivers 440 in accordance with the information contained in the instruction signal. The drivers 440drives the motors, Motor 1, 2, ..., N, in accordance with the frequency, duty cycle, and amplitude, which are specified in the vibration patterns for each motor,
[59] The parameters, which may be contained in the instruction signal, include, for example, three parameters Mn, Vn, Tn, which represents a specific vibration pattern. The parameter Mn is to specify a motor, to which the specific vibration pattern is to be applied, and may be selected within the range of 1 to N. The parameter Vn represents the vibration frequency of the motor, i.e. the number of ON/OFF repetitions per unit time. So, if the unit time is 1/100 second and Vn is denoted as '5', it means 500times of ON/OFF repetitions per second. Finally, the parameter Tn represents the duty cycle, i.e. the operation time. If the unit time is 1/100 and Tn is denoted as '50', it means 0.5
second of operation time.
[60] The instruction signal may include another type of instruction signal for the control device 420 to repeat the previously provided instructions. As an alternative, the instruction signal may further contain another parameter for repetition of the previous instructions.
[61] Meanwhile, the control device 420 can comprise display means, such as LCD, for displaying information concerning the operation of the motors, though not shown in Fig. 4.
[62] Fig. 5 shows a block diagram of a multi-channel vibration control device in accordance with the third embodiment of the present invention, which comprises a memory 510 for storing one or more libraries of vibration types, drivers 520 for driving N vibration motors, Motor 1, 2, ...,N, and a controller 530 for controlling the above components.
[63] First, the memory 510 may be provided in various forms, such as IC chips, magnetic disks, and optical storage devices, and may store the libraries of multichannel vibration types made by the method described above in relation with Fig. 3. In other words, the libraries comprise specification of vibration patterns to be applied to each of said motors, and specification of vibration types, each of which specifies association between each of said motors and the vibration patterns. The libraries also comprise locational information of the motors associated with the vibration types. Herein, the meanings of 'vibration pattern' and 'vibration type' are as mentioned before.
[64] In relation with the drivers 520, respective drivers may be provided to drive a motor, as shown in Fig. 5, or a single driver assembly with N output terminals for driving N motors may be provided. As described above, the vibration pattern of each motor can be adjusted by controlling the frequency, duty cycle, amplitude, and so on, of the driving power for the motor.
[65] The controller 530 controls the operation of the memory 510 and the drivers 520, by exchanging data therewith and processing the data.
[66] For example, when receiving an instruction signal for driving a motor or all the motors in accordance with a specific vibration pattern / vibration type, the controller 530 extracts detailed information about the specific vibration pattern / vibration type (such as a vibration pattern designated to each motor, and/or the locational information about the motor) from the memory 510, and controls the drivers 520 to drive the motors in accordance with the extracted information.
[67] Also, when receiving an instruction signal from a user or an outer device, for searching detailed information about a specific vibration pattern / vibration type, the controller 530 extracts the detailed information from the memory 510, and provide it to the user or the outer device. As such, the user or the outer device, such as a PC, may
access detailed information about a specific vibration pattern / vibration type, which is stored in the memory, and then may modify such information. If a user who wants to modify information about a specific vibration pattern / vibration type, provides an instruction signal containing information to be modified, the controller 530 will receive the instruction signal and modify the information stored in the memory 510 in accordance with the information contained in the instruction.
[68] Finally, Fig. 6 shows a flow of a method for controlling multi-channel vibration for a plurality of motors in accordance with the fourth embodiment of the present invention. First, one or more libraries of multi-channel vibration types, which are created by the aforementioned method or system, are provided (step 600). Subsequently, a specific vibration type which corresponds to desired locations of the motors for a specific application, is extracted from the libraries (step 610), then the information about the extracted vibration type (For instance, detailed information about the vibration patterns designated to each of the motors) is obtained. Then, at step 620, the motors are driven in accordance with the information obtained at step 610.
[69] Fig. 7 illustrates forward and reverse rotations of a thin coin-type vibration motor in accordance with the above-described vibration patterns or vibration types. A vibration pattern or vibration type, which can be applied to a coin-type motor for forward rotation, may be defined as shown at Fig. 7 (a), thereby the motor rotates clockwise. On the while, a motor can be driven to rotate reversely, to create different tactile effects compared with forward rotation. For this, a vibration pattern or vibration type, which is shown as (b), can be inverted and then applied to a motor as a driving signal therefor.
[70] Fig. 8 illustrates a simplified 3D model, to which the multi-channel vibration in accordance with the present invention can be applied, and an arrangement of coin-type vibration motors therein. The present invention can be applied to, for example, a game console, a PC mouse, etc.. For simplicity, such objects can be 3D modeled as a cube 800, which is comprised of top, bottom, front, back, left, and right sides, when looking from direction A. Based on such a 3D model, a plurality of thin coin-type vibration motors, Mlto M6, may be arranged at the inner of each side in the cube, as shown.
[71] Fig. 9 shows exemplary arrangements of four thin coin-type motors at the 3D model of Fig. 8. As shown at Fig. 9 (a), four motors, Ml, M4, M5, and M6, are arranged respectively at each of top, rear, left, right sides in a cubic 900, which corresponds to the 3D model of Fig. 8. Detailed location of a specific motor at each side can be decided by trial and error, in order to deliver vibration of the motor more effectively. For example, the motor Ml on the top side may be located more closely to the front side than the rear side, as shown. In case of Fig. 9 (b), four motors, M3, M4, M5, and M6, are arranged at each of front, rear, left, right sides in a cubic900, re-
spectively. In accordance with such different arrangements, the tactile effects created by a plurality of motors can be differentiated.
[72] Fig. 10 illustrates the arrangement of Fig. 9 (a), which is actually applied to a PC mouse. As shown, four thin coin-type vibration motors, Ml, M4, M5, and M6, are arranged respectively at each of top, rear, left, right sides in the mouse. Based on the arrangement, the above-described vibration patterns or vibration types may be applied to each of the motors so as to implement various combinations of multi-channel vibration. At this time, the rotational directions of the motors can be controlled respectively as described above, so as to create more plentiful and detailed tactile effects.
[73] In the embodiments of the present invention, which is described above, vibration motors are preferably brushless motors, and more preferably coin-type brushless motors, since such motors can be fabricated in smaller size than typical motors and then more of them can be arranged in a containing object.
[74] Although a few preferred embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the spirit and principles of the invention, the scope of which is defined in the claims and their equivalents.