Coordinate input apparatus and method using voltage measuring device

Abstract: A high-precision coordinate input apparatus having a small circuit construction. A vibrating pen transmits vibration onto a vibration transmitting tablet, then vibration sensors provided at corners of the vibration transmitting tablet detect the vibration. One of the vibration sensor is used as a reference sensor. Time difference between vibration detecting timing by this reference sensor and detecting timing by one of the other sensors is measured. This measurement is performed on all the vibration sensors with respect to the reference sensor. The obtained time differences are converted into distance differences for calculation of the coordinates of the position in which the vibration has been generated. The vibrating pen has a power source and it operates independent of the apparatus main body. The vibrating pen changes its frequency of vibration in accordance with the voltage of the power source. The apparatus main body captures this change in the vibration frequency and obtain the state of the vibration pen power source.

Description: BACKGROUND OF THE INVENTION [Field of Invention] Present invention relates to a coordinate input apparatus which detects input vibration and specifies the position of the vibration source so as to determine the coordinates of the vibration input position. [Related Art] Conventional coordinate input apparatuses utilizing ultrasonic vibration detect vibration inputted from a vibrating pen by a plurality of sensors on a vibration transmitting panel. The coordinates at the vibrating pen input position on the vibration transmitting panel determination is determined based on difference data, obtained from delay times at the respective sensors, calculated using a reference delay time from a point where the vibration is inputted to a point where one of the sensors (e.g., the sensor that first receives the vibration), as a reference sensor, detects the vibration. As shown in Fig. 11, the above coordinate input apparatus calculates coordinates using the following equations in accordance with the positional relation between vibration sensors S1 to S4 on the vibration transmitting panel and a vibration input point P(x, y): Δdb-Δdd calculated from the difference data among the delay times are: Δdb = db - da Δdc = dc - da Δdd = dd - da Point P(x, y) is obtained from: x = x 2 - Δdd 2 2x + Δdd(Δdb 2 +Δdd 2 -Δdc 2) 2X(Δdb+Δdd-Δdc) y = y 2 - Δdd 2 2x + Δdb(Δdb 2 +Δdd 2 -Δdc 2 ) 2Y(Δdb+Δdd-Δdc) Note that the equations (104) and (105) hold if: Δdb + Δdd - Δdc ≠ 0 If Δdb + Δdd - Δdc = 0 the point P(x, y) is: x = X 2 y = Y ± √A 2 A = Δdb 2 1+ X 2 Y 2 -Δdb 2 Otherwise, the point P(x, y) is: y = Y 2 x = X ± √B 2 B = Δdd 2 1+ Y 2 X 2 -Δdd 2 However, the above conventional coordinate determination method is implemented by simply assigning a start and stop signals of a counter to the respective signals, and measuring the time difference. When a plurality of signals are detected upon obtaining the difference data, the relation between group delay time and phase delay time at each sensor is reversed, causing erroneous judgment of the reference delay time. If two counters are used, the size of the counters must be greater than the repetition period of a signal source. This increases the apparatus construction cost. Further, the above coordinate calculation method has a drawback in that if the equation (106) holds, the results from the equations (104) and (105) tend to cause errors in the equations (108) and (111). Generally, the conventional apparatus of this type measures time from a point where vibration generated by the vibrating pen is inputted to a point where the vibration reaches one of the vibration sensors provided at predetermined positions on the vibration transmitting panel, and calculates the distances between the vibrating pen and the vibration sensors, i.e., coordinates designated by the vibration pen, based on the measured values. US-A-3 504 334 discloses a rectangular coordinate indicating system employing a cordless stylus. The stylus emits an energy wave and the arrival times of the energy wave front at sensors positioned along the X and Y axes are compared. The differences in the arrival times are measured to indicate the displacement of the stylus from the X and Y axes. JP-A-61168031 further discloses a cordless ultrasonic tablet, wherein detecting elements are respectively installed to the marginal sides of a tablet and supersonic waves from an ultrasonic wave transmitting element provided in an input pen are detected. The ultrasonic wave transmitted from the ultrasonic wave transmitting element are propagated through the tablet and reach each detecting elements after respective time intervals. Therefore, the coordinates of the input pen can be determined from the detection time of each detecting element without the necessity of synchronizing the input pen. Further, EP-A-0 584 695, being a European patent application falling within the terms of Art. 54(3), discloses a coordinate input apparatus for sensing a designated coordinate position, comprising oscillation transmission means for transmitting oscillation, a plurality of sensing means for sensing oscillation transmitted by the oscillation transmission means, measuring means for measuring time differences between a time at which reference sensing means senses a certain oscillation and times at which this oscillation is sensed by the other sensing means, wherein one of the plurality of sensing means serves as a reference sensing means, and means for calculating position of an oscillation source based upon the time differences measured by the measuring means. The known coordinate input apparatuses utilizing ultrasonic vibration still give erroneous coordinate positions. SUMMARY OF THE INVENTION It is an object of the present invention to provide a coordinate input apparatus and a coordinate input method with improved coordinate-input precision. This object is solved by the apparatus according to claim 1 and the method according to claim 5. Preferred embodiments are subject of the dependent claims. Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. Fig. 1 is a block diagram showing the configuration of a coordinate input apparatus according to first to third embodiments of the present invention; Fig. 2 is a block diagram showing the construction of an arithmetic control circuit in Fig. 1; Figs. 3 to 5 are flowcharts showing data processing according to the first embodiment; Fig. 6 is a timing chart of the data processing; Fig. 7 is a flowchart showing data correction in the data processing in Fig. 6; Figs. 8A to 8C illustrate the data correction; Fig. 9 is a timing chart of signal processing according to the first embodiment; Fig. 10 is a block diagram showing the construction of a signal detector in Fig. 1; Fig. 11 illustrates coordinate calculation in a conventional coordinate input apparatus; Fig. 12 illustrates coordinate calculation areas corresponding to the signal process timings in Fig. 9; Fig. 13 is a flowchart showing the coordinate calculation; Fig. 14 is a cross-sectional view of a vibrating pen; Fig. 15 is a block diagram showing the construction of an arithmetic control circuit according to the third embodiment; and Fig. 16 is a block diagram showing the construction of a pen timer in Fig. 14. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will be described in detail in accordance with the accompanying drawings. [First Embodiment] 〈Apparatus Configuration〉 Fig. 1 shows the configuration of the coordinate input apparatus according to the first embodiment. In Fig. 1, an arithmetic control circuit 1 controls the overall apparatus and calculates coordinates at a vibration input position. A vibrator driver 2, incorporated in a vibrating pen 3, drives a vibrator 4 in the vibrating pen 3 to vibrate a pen tip 5. A vibration transmitting tablet 8 comprises a transparent member such as an acrylic resin plate and a glass plate. The coordinate-input is made by contacting the vibrating pen 3 with the vibration transmitting tablet 8. As a position within an area A (effective area) represented by a solid line in Fig. 1 is designated using the vibrating pen 3, vibration from the pen 3 is transmitted on the vibration transmitting tablet 8 and measured, and then processing for calculation of coordinates at the designated position is performed. The vibration transmitting tablet 8 has a vibration suppressor 7 at its ends to reduce reflection waves reflected from the ends of the panel 8 towards the center of the panel. As shown in Fig. 1, vibration sensors 6a to 6d comprising such as a piezoelectric element, for converting mechanical vibration into an electric signal, are fixed at inner side surface of the vibration suppressor 7. A signal detector 9 outputs signals detected from the sensors 6a to 6d to the arithmetic control circuit 1. The display 11, comprising such as an LCD, is capable of dot-based representation. The display 11, located under the vibration transmitting tablet 8, driven by a display driver 10, displays a dot at a position designated by the arithmetic control circuit. A user can see the display through the transparent vibration transmitting tablet 8. Vibration frequency of the vibrator 4 is selected to have a value capable of generating Lamb waves upon the vibration transmitting tablet 8. Upon driving the vibrator, a mode for vibration in a vertical direction with respect to the vibration transmitting tablet 8 is selected. Further, selecting a resonance frequency of the pen tip 5 as the vibration frequency of the vibrator 4 enables effective vibration conversion. Thus, elastic waves to be transmitted on the vibration transmitting tablet 8 are plate waves which, compared with a surface wave, advantageously receive smaller influence from scratches (flaws) and obstacles on the transmitting panel surface. 〈Arithmetic Control Circuit〉 In the above construction, the vibrator driver 2 outputs a signal to drive the vibrator 4 in the vibrating pen 3 at predetermined intervals (e.g., 5 ms). Thus-generated vibration from the vibrating pen 3 is transmitted on the vibration transmitting tablet 8, and received by the vibration sensors 6a to 6d, at respective delay times, in accordance with the distances from the vibration input-point. The signal detector 9 detects signals from the vibration sensors 6a to 6d, and generates signals indicative of time differences between transmission timing to the sensor 6a as a reference timing and the respective transmission timings to the other sensors 6b to 6d. The arithmetic control circuit 1 inputs these time difference signals regarding all comparisons between the reference timing and the transmission timings to the other sensors, measures differences between the reference delay time and the respective delay times, and calculates coordinates at the input position by the vibrating pen based on the measured differences. The arithmetic control circuit 1 drives the display driver 10 based on the calculated position information of the pen 3, to control display 11, further, performs serial communication or parallel communication to output the coordinates to an external device (not shown). Note that hereinafter, time from a point where vibration transmission is inputted onto the vibration transmitting tablet to a point where a sensor receives the vibration is referred to as "delay time" of the sensor. Also, the difference between the reference delay time and the delay time of the other sensor is simply referred to as "difference data". 〈Construction of Arithmetic Control Circuit〉 Fig. 2 shows the construction of the arithmetic control circuit 1. In Fig. 2, a microcomputer 21 controls the arithmetic control circuit 1 and the overall coordinate input apparatus. The microcomputer 21 comprises a counter, a ROM in which operation procedures are stored, a RAM used for calculation and a non-volatile memory for storing constants. Counters 22a, 22b, 23a and 23b measure delay times from the start of vibration transmission to respective points where the vibration sensors 6a to 6d detect the vibration. The present embodiment has four counters for inputting the delay time signals indicative of delay time at the reference vibration sensor 6a and delay times at the other vibration sensors 6b to 6d. A signal input circuit 25 inputs the delay time signals from the sensors 6a to 6d outputted from the signal detector 9 into the counters 22a, 22b, 23a and 23b. More specifically, the input circuit 25 inputs a signal Tga, indicative of group delay time at the sensor 6a, to the counter 22a; signals Tgb to Tgd, indicative of group delay times at the sensors 6b to 6d, to the counter 22b; a signal Tpa, indicative of phase delay time at the sensor 6a, into the counter 23a; and signals Tpb to Tpd, indicative of phase delay times at the sensors 6b to 6d, into the counter 23b. A decision circuit 24 judges that the signals have been received, and outputs a judgment signal to the microcomputer 21 to inform the judgment result. The microcomputer 21 performs a predetermined calculation to obtain coordinates at the input position by the vibrating pen 3 on the vibration transmitting tablet 8. The microcomputer 21 outputs coordinate information to the display driver 10 via the I/O port 26, to display a dot at the corresponding position of the display 11. Otherwise, the microcomputer 21 may output the information via the I/O port 26 to an interface circuit, to output the coordinate value to an external device. 〈Operation of Arithmetic Control Circuit〉 Next, the operation of the arithmetic control circuit 1 will be described with reference to the flowcharts in Figs. 3 to 5 and the timing chart in Fig. 6. Figs. 3 to 5 show the operation of the arithmetic control circuit 1 to obtain difference data regarding one vibration sensor. Fig. 6 shows the respective signal timings in accordance with the flowcharts in Figs. 3 to 5. In Fig. 6, a clear signal 40 and a start signal 41 are provided from the microcomputer 21 to the counters for instructing clearing and starting of the counters. A channel-A Tp signal 42 and a channel-B Tp signal 43 respectively correspond to signal 78 or 79 in Fig. 9 to be described later. It should be noted that as the description here is made upon operation for obtaining difference data of the respective sensors, the signals regarding group delay times are omitted in Fig. 6. A channel-B SEL 0 signal 45 and a channel-B SEL 1 signal 46 are selection signals for channel-B sensors. In Figs. 3 to 5, channel-A and channel-B are switched in step S311. Channel-A is set to input the signal from the reference vibration sensor 6a, while channel-B is set to input the signal from the sensor 6b. The sensor as a signal source for the channel-B input is changed by the signal 45 or 46. In step S312, all the counters are reset by a reset signal CLEAR outputted from the microcomputer 21, and the four counters corresponding to channel-A and channel-B are started by a start signal START also outputted from the microcomputer 21. In step S313, reception of signal is determined by the decision circuit 24. If NO, signal input is awaited in step S316 for a predetermined period, e.g., 1.5 msec, thereafter, it is judged that the vibrating pen 3 has not transmitted vibration onto the vibration transmitting tablet 8 in step S317. In step S314, the data is discarded (timing t1 in Fig. 6) for improvement of reliability of data, since the first signal might be indicative of incorrect value due to influence of reverberation or the like. In step S320, the counters are cleared and restarted. In step S321, whether or not the second signal has been inputted into channel-A from the reference sensor 6a is determined. The count values of the counters 22a and 23a are stored into the memory and the count values of the counters 22b and 23b halted by the signal from the sensor 6b are stored into the memory. In step S322, the microcomputer performs calculation according to equations ΔTb = Tgb - Tga and ΔTpb = Tpb - Tpa , using obtained counter values Tga, Tgb, Tpa and Tpb, and stores the calculation results into the memory in step S323. Next, channel-B is set to input a signal from the sensor 6c, and a similar processing is performed. In step S330, the process is in stand-by state for 500 msec to eliminate reverberation. Then, the first pulse is used as a signal for distance calculation. Similarly, channel-B is set to input a signal from the sensor 6d, and a similar processing is performed. As the microcomputer 21 has calculated the difference data of the reference sensor 6a and the sensors 6b to 6d, it further calculates the coordinates of an input position from those data. The microcomputer 21 performs the above operation as interruption. The counters 22a to 23b are finite counters where the maximum count value is determined based on the largest difference data determined from a transmission speed of vibration of the pen 3 on the vibration transmitting tablet 8 and an input area. In the present embodiment, the maximum count value is equal to or greater than a doubled value of the largest difference data. The difference data obtained in steps S322, S334 and S344 in Figs. 3 to 5 are processed as shown in steps S52 to S55 in the flowchart in Fig. 7, and stored into the memory of the microcomputer 21. In step S53 in Fig. 7, whether or not the largest difference data is smaller than the obtained difference data is determined. If YES, the obtained difference data is corrected in step S55. That is, if the difference between the count values of the reference sensor 6a and the sensor 6b is used and the difference is over the maximum counter value, the resulting difference data becomes different from actual difference data. For this reason, when the largest difference data is smaller than obtained difference data, the obtained difference data is modified to a correct value. In Fig. 8A, the obtained difference data ΔAB, ΔAC and ΔAD with respect to the sensors 6b, 6c and 6d are compared with the largest difference data. At each comparison, if difference data is greater than the largest difference data, it is considered that a counter has counted over the maximum count value MAX, then the maximum value MAX is added to the smaller count value. Figs. 8B and 8C show a case where ΔAB is greater than the largest difference data. In Figs. 8B and 8C, when the maximum count value (MAX) ≥ 2 × the largest difference data value the difference data is: |ΔAB| = |b-a| If the obtained difference data (ΔAB) is greater than the largest difference value (Fig. 8B), it is corrected (Fig. 8C). The correction results are as follows: |ΔAB| = |(b+MAX)-a| |ΔAC| = |c-a| |ΔAD| = |d-a| MAX: the largest count value. 〈Detection of Vibration Transmission Time (Figs. 9 and 10)〉 The principle of measurement of delay times for vibration transmission to the respective vibration sensors 6a to 6d will be described below. Fig. 9 is a timing chart for explaining detection waveforms inputted into the signal detector 9 and calculation of delay times for vibration transmission based on these waveforms. Note that the description will be made on detecting the difference between the delay times at the vibration sensors 6a and 6b, however, difference between the delay times at the sensors 6a and 6c, and that between the sensors 6a and 6d are detected in the same way. The vibrator driver 2 outputs a driving signal 71 to the vibrator 4 at periods out of synchronization with the period of the signal detector 9. The ultrasonic vibration, transmitted by the signal 71 onto the vibration transmitting tablet 8 by the vibrating pen 3, travels for time tga, corresponding to the distance from the input point and the vibration sensor 6a, then is detected by the sensor 6a. Numeral 72 denotes a signal waveform detected by the sensor 6a. As the vibration in this embodiment is a plate wave, the relation between an envelope 721 and a phase 722 of the detected waveform changes in correspondence with the transmission distance of the vibration. The traveling speed of the envelope 721, i.e., a group speed is referred to as "Vg", and the phase speed of the phase 722, "Vp". The distance between the vibrating pen 3 and the vibration sensor 6a is determined from the group speed Vg and the phase speed Vp. First, with regard to the envelope 721, having the speed Vg, if a point of a specific waveform, e.g., a zero-crossing point of the second-differential waveform 723 of the envelope 721, i.e., an inflection point of the envelope waveform is detected, the distance between the vibrating pen 3 and the sensor 6a is given, with the vibration transmission time tga: da = Vg·tga This equation is for the vibration sensor 6a, however, similar equations are used to represent the distances between the pen 3 and the other sensors 6b to 6d. The distance difference Δdb between the distance da, from the vibrating pen 3 to the sensor 6a and the distance db from the pen 3 to the sensor 6b is obtained from the following equation, with the difference between the vibration transmission time tgb (signal 73) indicative of time for transmitting the vibration to the sensor 6b, and the transmission time tga as vibration transmission time 731 (Δtgb): Δdb = Vg·tgb - Vg·tga = Vg·Δtgb Further, for more precise coordinate determination, processing based on detection of phase signals is performed. Time tpa is the time from a specific detection point of the phase signal 722, e.g., a vibration application point, to a zero-crossing point of a predetermined level signal 74 after the vibration has been applied. Distance da between the vibration sensor 6a and the vibrating pen 3 is: da = na·λp + Vp·tpa λp: elastic wavelength na: integer The time tpa is obtained by generating a predetermined window signal 78, having a predetermined width, at the initial rising point of a signal 77 after the comparison between the phase signal 722 and the predetermined level signal 74, and by comparing the signal 78 with the phase signal 722. The distance difference Δdb between the distance from the pen 3 to the sensor 6a and the distance from the pen 3 to the sensor 6b is given, with a time Δtpb between the time tpa and a zero-crossing point tpb: Δdb = nb·λp + Vp.tpb - (na·λp+Vp·tpa) = (nb-na).λp + Vp·(tpb-tpa) = nb'·λp + Vp·Δtpb nb,nb': integer From the equations (2) and (4), the integer nb' is: nb' = int[(Vg·Δtgb-Vp·Δtpb)/λp+ 1 N ] N is a real number other than "0". For example, if N ≤ 2 holds, the nb' can be determined when tg variation is within ± 1 / 2 wavelength. The obtained nb' is substituted into the equation (4), thus the distance difference Δdb between the distance from the vibrating pen 3 to the sensor 6a and the distance from the pen 3 to the sensor 6b is precisely calculated. The signal detector 9 generates signals 731 and 791 for detecting the vibration-transmission time difference Δtg and Δtp. Fig. 10 is a block diagram showing a part of the signal detector 9, for detecting the delay time differences Δtgb and Δtpb between the vibration sensor 6a and the 6b. The signal detector 9 also includes the same circuit construction for determining the delay time difference between the sensors 6a and 6c and between the sensors 6a and 6d. In Fig. 10, the output signals from the sensors 6a and 6b enter preamplifiers 81a and 81b which respectively amplify the signals to predetermined levels, then enter band-pass filters 811a and 811b where surplus frequency components are removed from the amplified signals. Thereafter, the signals enter envelope detectors 82a and 82b, comprising an absolute value circuit and a low-pass filter, where only envelopes of the signals are taken. Envelope inflection-point detectors 83a and 83b detect the timings of envelope inflection points. A Δtg signal detector 84, comprising of such element as a monostable multivibrator, generates an envelope delay time difference signal Δtg (841 in Fig. 8) between the two sensors 6a and 6b from the outputs from the inflection-point detectors 83a and 83b, and inputs the signal Δtg into the arithmetic control circuit 1. On the other hand, a signal detector 85a generates a pulse signal 77 indicative of signal portion which exceeds a predetermined threshold signal 74 within a signal waveform 72 detected by the vibration sensor 6a. A monostable multivibrator 86a opens a gate signal 78 at predetermined periods triggered by the initial rising point of the pulse signal 77. A Δtp signal detector 87 detects a zero-crossing point during the initial rising of the phase signal 722 while the gate signal 78 is open, and inputs an output signal from a monostable multivibrator 86b with respect to the signal detected by the vibration sensor 6b. Thus, the delay time difference signal Δtp 791 between the phase signals of the two sensors can be supplied to the arithmetic control circuit 1. Note that the above description is directed to the vibration sensors 6a and 6b, however, similar circuit construction are provided for the other combinations of the sensors. 〈Coordinate Position Calculation (Figs. 11 and 12)〉 Next, the principle of calculating coordinates at a vibration input position by the vibrating pen 3 will be described. In Figs. 11 and 12, the vibration sensors 6a to 6d are provided at positions S 1 to S 4 on the four corners of the vibration transmitting tablet 8. The straight distances from the vibrating pen 3 to the vibration sensors 6a to 6d are da to dd according to the aforementioned principle of detecting vibration transmission time. Then, the distance differences Δdb∼Δdd are obtained from the distances between the distance da, i.e., the distance from the pen 3 to the sensor 6a, and the distances db-dd, i.e., the distances from the pen 3 to the sensors 6b to 6d: db = Δdb + da dc = Δdc + da dd = Δdd + da Next, coordinates (x, y) at a position P of the vibrating pen 3 are obtained using the Pythagorean theorem: da 2 = x 2 + y 2 db 2 = (Δdb+da) 2 = x 2 + (Y-y) 2 dc 2 = (Δdc+da) 2 = (X-x) 2 + (Y-y) 2 dd 2 = (Δdd+da) 2 = (X-x) 2 + y 2 X: distance between the sensors 6a and 6b Y: distance between the sensors 6c ad 6d Next, from (10) - (9), (11) - (12), Δdb 2 + 2da·Δdb = Y 2 -2Y·y Δdc 2 - Δdd 2 + 2da.(Δdc-Δdd) = Y 2 -2Y·y The distance da is obtained from the difference between the equations (13) and (14): da = - Δdb 2 +Δdd 2 -Δdc 2 2(Δdd+Δdb-Δdc) When this equation holds, the denominator in the right member is not "0". The solution of the equation (15) when this denominator is "0" will be described later. y is obtained by substituting the equation (15) into the equation (14): y = Y 2 - Δdd 2 2Y + Δdb(Δdb 2 +Δdd 2 -Δdc 2 ) 2Y(Δdb+Δdd-Δdc) Similarly, x is obtained as follows: x = X 2 - Δdd 2 2X + Δdb(Δdb 2 +Δdd 2 -Δdc 2 ) 2X(Δdb+Δdd-Δdc) Note that the equation (17) holds when: Δdd + Δdb - Δdc ≠ 0 Next, a case where the equation (18) does not hold will be considered. When the equations (6) to (8) are substituted into an equation Δdd + Δdb - Δdc , if the denominator in the right member is "0", dd + db = dc + da This equation holds when x = X 2 or y = Y 2 , and da = dd and db = dc , or da = db and dc = dd . When it is judged that the equation (18) does not hold, the process jumps to a coordinate calculation subroutine, to solve an x or y quadratic equation. First, if x = X 2 (at this time, Δdb = Δdc ) holds, the equations (9) to (12) become as follows: da 2 = X 2 4 + y 2 (Δdb+da) 2 = X 2 4 + (Y-y) 2 y is obtained by substituting da obtained from (21)-(20): y = (Y±sqrt(A)) 2 A = Δdb 2 1+ X 2 Y 2 -Δdb 2 In the equation (22), ± becomes "-" when Δdb > 0, while it becomes "+" when Δdb < 0. squrt(X) is a function which gives a square root of X. Similarly, when y = Y 2 , x is obtained as follows: x = (X±sqrt(B)) 2 B = Δdd 2 1+ Y 2 X 2 -Δdd 2 Note that ± becomes "-" when Δdd > 0, while it becomes "+" when Δdd < 0. However, around y = Y 2 , values of Δdb and Δdb+Δdd-Δdc are close to "0", accordingly, the second and third terms in the equation (16) substantially become "0". This results in excellent precision as to a y-coordinate while bad precision as to an x-coordinate, since data error of time-measurement in Δdd influences the equation (17) at around y= Y 2 . Similarly, around x = X 2 , values of Δdd and Δdb+Δdd-Δdc are close to "0", accordingly, the second and third terms in the equation (17) substantially become "0", thus resulting in excellent precision as to an x-coordinate while bad precision as to a y-coordinate, due to influence from data error of time-measurement in Δdb. These problems are solved by obtaining a y-coordinate with high precision at around y = Y 2 and then obtaining an x-coordinate from the obtained y-coordinate, similarly, at round x = X 2 , by obtaining an x-coordinate with high precision and then obtaining a y-coordinate from the obtained x-coordinate. Next, as shown in Fig. 12, an input area is divided into four areas on the following conditions: Area 1: Δdb > 0 AND Δdc > 0 AND Δdb < Δdd Area 2: Δdd < 0 AND Δdc < 0 AND Δdb < Δdd Area 3: Δdb > 0 AND Δdc < 0 AND Δdb > Δdd Area 4: Δdd > 0 AND Δdc > 0 AND Δdb > Δdd In the areas 1 and 3, an x-coordinate is calculated using the equation (17). A y-coordinate is calculated by substituting the equation (17) into the equation (10): y = Y 2 ± Δdb×sqrt(C) 2 C = 4x 2 Y 2 -Δdb 2 + 1 In the equation (26), ± of the second term becomes "-" in the area 1 when: y < Y 2 and Δdb > 0 In the area 3, ± becomes "-" when: y > Y 2 and Δdb < 0 Similarly, in the areas 2 and 4, a y-coordinate is calculated using the equation (16). An x-coordinate is calculated by substituting the equation (16) into the equation (12): x = X 2 ± Δdd×sqrt(D) 2 D = 4y 2 X 2 -Δdd 2 + 1 In the equation (28),± of the second term becomes "-" in the area 2 when: x < X 2 and Δdd > 0 In the area 4, ± becomes "-" when: x > X 2 and Δdd < 0 Fig. 13 shows the above coordinate calculation. In step S1301, calculation according to Δdb + Δdc - Δdd is performed. In step S1302, whether the obtained value is "0" or not is determined. If YES, the vibrating pen 3 is around on a line x = X 2 or y = Y 2 . Then, |Δdb| and |Δdd| are compared in step S1303. If x = X 2 holds, |Δdd| = 0 , while if y = Y 2 holds, |Δdb| = 0 . Then, if |Δdb| > |Δdd| holds, the process proceeds to step S1305 in which a y-coordinate is obtained with x = X 2 , and the point P(x, y) coordinates are calculated. On the other hand, if NO in step S1302, i.e., it is determined that Δdb + Δdc - Δdd ≠ 0 , an area including the point P(x, y) is determined in steps S1306 to S1308. In case of the area 1 or 3, the x-coordinate is obtained using the equation (17) in step S1311, and the y-coordinate is obtained using the equation (26) in step S1312. In case of the area 2 or 4, the y-coordinate is calculated using the equation (16) in step S1309, and the x-coordinate is calculated using the equation (28) in step S1310. In this manner, the coordinates at the position of the vibrating pen 3 can be directly detected from a signal indicative of difference between vibration signal arrival times at the sensors in a real-time manner. Time for transmitting the vibration within the pen 3 (offset for the arrival delay time) is counterbalanced between two sensors, and the vibration transmission time in the pen (especially at the pen tip) receives no influence from temperature change. This avoids erroneous input and degradation of input precision. Further, as the vibrating-pen input is not synchronized with the operation of the coordinate input apparatus main body, a cordless-type pen can be used as the vibrating pen, as in the present embodiment. However, the pen 3 can be connected with the apparatus main body via a cord for receiving a driving signal from the apparatus main body. Moreover, the reference vibration sensor 6a may be replaced with any of the other sensors similarly for measuring the difference between vibration arrival times at the other sensors, and coordinate calculation as described above can be made based on the measured value. [Second Embodiment] The construction of the coordinate input apparatus and that of the vibrating pen according to the second embodiment are identical to those in the first embodiment as shown in Fig. 1. In this embodiment, as a plate-wave characteristic, vibration transmission speed depends upon the product of frequency and plate thickness. For this reason, variations in sensors and circuits cause changes in the transmission speed and the frequency. Though the first embodiment obtains the wavelength λ, the group velocity Vg and the phase velocity Vp, as constants, based on average values among the four sensors, the present embodiment uses an average value between one pair of sensors to obtain delay time difference data, i.e., the average value between the constants at the reference sensor and those at one of the other sensors, for calculating coordinates. Assuming that the reference sensor 6a and the sensor 6b are in a pair for a channel of a counter for obtaining delay time difference data, the average value between constants at the two sensors are a wavelength λpb, a group velocity Vgb and a phase velocity Vpb. The distance difference Δdb between the distance da from the vibrating pen 3 to the sensor 6a and the distance db from the pen 3 to the sensor 6b is obtained, with respective group delay times tga and tbg: Δdb = db - da = Vgb·(tgb-tga) = Vgb·Δtgb Further, processing based on the phase signal obtains: Δdb = nb·λp + Vpb·(tpb-tpa) = nb·λpb + Vpb·Δtpb nb: integer From the equations (30) and (31), the integer nb is: nb = int Vgb·Δtgb-Vgb·Δtgb λgb+1 + 1 N N: real number equal to or less than "0" Δdb can be obtained with high precision by substituting the nb obtained using the equation (32) into the equation (31). In case of the vibration sensors 6a and 6c, and the sensors 6a and 6d, Δdc and Δdd are similarly obtained using the average value between the constants at the sensor 6a and those at the sensor 6c, and between the constants at the sensor 6a and those at the sensor 6d. As described above, the difference among the distances from the vibration source to the respective sensors can be obtained with high precision based on the average value between the constants at the two sensors. This improves coordinate calculation precision. Thus, the first and second embodiments can improve coordinate calculation precision with a small-sized circuit construction. [Third Embodiment] The construction of the coordinate input apparatus is identical to that in the first and second embodiments as shown in Fig. 1. Fig. 14 shows the construction of the vibrating pen 3. In the vibrating pen 3, the vibrator driver 2, comprising a power 201, a timer 202 and vibration circuit 203, drives the vibrator 4. A driving signal for the vibrator 4 is a pulse signal having a predetermined repetition period, generated from the timer 202 and amplified by the vibration circuit 203 to a predetermined level. The timing of the repetition period of the driving signal is not synchronized with the operation of the arithmetic control circuit 1. The timer 202 and the vibration circuit 203 receive electric power from the power 201 comprising such as a battery. The electric driving signal is converted by the vibrator 4 into a mechanical vibration, and transmitted via the pen tip 5 onto the vibration transmitting tablet 8. Similar to the first embodiment, the vibration frequency of the vibrator 4 is selected to have a value for generating Lamb waves on the vibration transmitting tablet 8 comprising such as a glass plate. Further, selecting a resonance frequency of the pen tip 5 as the vibration frequency of the vibrator 4 enables effective vibration conversion. Thus, elastic waves to be transmitted on the vibration transmitting tablet 8 are Lamb waves which, compared with a surface wave, advantageously receive smaller influence from scratches and obstacles on the transmitting panel surface. 〈Arithmetic Control Circuit〉 In the above-described construction, the vibrator driver 2 outputs a driving signal for the vibrator 4 at predetermined periods (e.g., 5 ms). The vibration from the vibrating pen 3 travels on the vibration transmitting tablet 8, to reach the sensors 6a to 6d with delays respectively corresponding to the distances from the pen 3 to the sensors. The signal detector 9 detects signals from the sensors 6a to 6d, and generates signals indicative of differences between the vibration arrival timing at the reference sensor 6a and those at the respective sensors 6b to 6d. The arithmetic control circuit 1 inputs the signals with respect to all the combinations between the reference sensor 6a and the sensors 6b to 6d, obtains difference among those time differences, and calculates coordinates at the vibration input position by the vibrating pen 3. Further, the arithmetic control circuit 1 drives the display driver 10 based on the calculated coordinates of the pen 3, for display control at the display 11, otherwise, serial communication control or parallel communication control to output the coordinate information to an external device. Fig. 15 shows the construction of the arithmetic control circuit 1 according to the third embodiment. In Fig. 15, a microcomputer 31 controls the arithmetic control circuit 1 and the overall coordinate input apparatus. The microcomputer 31 comprises a counter, a ROM in which operation procedures are stored, a RAM for calculations and a non-volatile memory for storing constants. A timer 33, comprising e.g. a counter, measures a reference clock (not shown) timing. The timer 33 measures the difference between transmission delay time at the reference sensor 6a and that at the sensors 6b to 6d, and inputs the measured data into latches 34b to 34d. Note that the other elements will be described later. The signals indicative of the differences among the vibration-arrival times between the sensor 6a and the respective sensors 6b to 6d, outputted from the signal detector 9 enter the latches 34b to 34c via a signal input port 35. The latches 34b to 34d, respectively corresponding latches for the vibration sensors 6b to 6d, latch time-measurement value at the timer 33 while it receives a vibration-arrival difference signal between a corresponding sensor and the reference sensor 6a. A decision circuit 36 determines when all the vibration-arrival difference signals have been received, and outputs a signal informing the determination result to the microcomputer 31. The microcomputer 31 receives the signal from the decision circuit 36, and reads the respective vibration-arrival delay differences regarding the sensors 6b to 6d out of the latches 34b to 34d, for predetermined calculation to obtain the coordinates at the vibration input position by the vibrating pen 3 on the vibration transmitting tablet 8. The microcomputer 31 outputs the calculated coordinate information to the display driver 10 via an I/O port 37, thus, e.g., displays a dot at a corresponding position on the display 11. Otherwise, the microcomputer 31 outputs the coordinate value to an external device by outputting the coordinate information to an interface via the I/O port 37. Also, the microcomputer 31 outputs a signal to a counter 38, which terminates time-measurement, outputs a measured count value to the microcomputer 31, and restarts measuring. That is, the counter 38 measures intervals between the arrival of vibration, i.e., the vibrator-driving repetition period. The microcomputer 31 inputs the counter 38 output, i.e., the measured vibrator-driving repetition period, and when the output value exceeds a predetermined value or vice versa, executes pre-programmed processings, e.g., displaying a message "RECHARGE BATTERY" at the display 11. Further, the microcomputer 31 detects the peak position on the detected waveforms at the sensors 6a to 6d and time which exceeds a predetermined level (amplitude) or a phase of a detected signal, and measures the vibration-arrival delay time differences from the timing differences among the plural sensors. 〈Vibrating Pen〉 Fig. 16 shows an example of the construction of the timer 202 in the vibrator driver 2. A voltage control oscillator (VCO) 221 generates a rectangular wave having repetition period of the driving-signal to be applied to the vibrator 4. As the VCO 221 receives at its frequency control terminal a voltage having a value in proportion to that of the power, the vibration frequency varies in accordance with change in the power voltage value. The rectangular wave from the VCO 221 enters a monostable multivibrator 222 which outputs a pulse having a predetermined pulsewidth at the timing of the rising or falling point of the rectangular wave. Note that the predetermined pulsewidth is a value for determining the vibration frequency of the vibrator 4. Assuming that a necessary frequency is f, the pulsewidth is obtained from 1 / 2f (sec). The monostable multivibrator 222 output enters the vibration circuit 203, in which it is amplified to a predetermined level or power-amplified to have a necessary current value, then applied to the vibrator 4. In the above construction, the frequency of the rectangular wave outputted from the VCO 221 varies in correspondence with the power 21 voltage, and the vibrator 4 outputs a vibration pulse at intervals corresponding to the frequency. The vibration from the vibrator 4 is transmitted onto the vibration transmitting tablet 8, and inputted via the sensors 6a to 6d into the arithmetic control circuit 1, in which the counter 38 measures time intervals among the arrivals of the vibration. The microcomputer 31 inputs the power voltage change as the time intervals measured by the counter 38. Next, the principle of measuring the difference among the vibration-arrival delay times from the vibration input to the vibration sensors 6a to 6d for calculating coordinates of the vibrating pen will be briefly described below. The values latched by the latches 34b to 34d are differences between vibration transmission times from a point where the vibration is inputted from the vibration pen 3 to respective points where the sensors 6b to 6d receive the vibration and vibration transmission time from a point where the vibration is inputted from the vibration pen 3 to a point where the sensor 6a receives the vibration. The signal detector 9 in the present embodiment has the same construction as that of the first embodiment in Fig. 10. The latches 34b to 34d latch phase-signal delay time differences Δtpb, Δtpc and Δtpd and group delay time differences Δtgb, Δtgc and Δtgd. The coordinate calculation is made based on the obtained delay time differences with the same procedure as that in the first embodiment. It should be noted that the present embodiment also employs a wireless coordinate input apparatus, however, a wired-type coordinate input apparatus with a vibrating pen including a power source can be employed. The present invention can be applied to a system constituted by a plurality of devices, or to an apparatus comprising a single device. Furthermore, the invention is applicable also to a case where the object of the invention is attained by supplying a program to a system or apparatus. The present invention is not limited to the above embodiments and various changes and modifications can be made within the scope of the present invention. Therefore, to apprise the public of the scope of the present invention, the following claims are made.

Claims: A coordinate input apparatus comprising: input means (3) for inputting vibration; a vibration transmission body (8) for transmitting the vibration; a plurality of vibration detection means (6a, 6b, 6c, 6d) for detecting the vibration on said vibration transmission body (8) at different positions; measurement means (1, 9) for measuring arrival times of the vibration at said plurality of detection means (6a, 6b, 6c, 6d); means (1) for calculating difference values by subtracting one of the arrival times at one of said plurality of detection means (6a, 6b, 6c, 6d) from each of the arrival times at the other detection means (6a, 6b, 6c, 6d); comparison means (1) for comparing the difference values with a maximum difference value determined in accordance with the vibration transmission speed of the vibration inputted by said input means (3) and the size of said vibration transmission body (8), correction means (1) for correcting a said difference value based on the comparison result by said comparison means if the difference value exceeds said maximum difference value; and calculation means (1) for calculating coordinates of a vibration source position designated by the input means on said vibration transmission body based on the difference values corrected if necessary by said correction means. The apparatus according to claim 1, wherein said measurement means (9) measures a group arrival time and a phase arrival time of the vibration. The apparatus according to claim 1, wherein said calculation means (1) has means far deciding an area of said vibration transmission body (8) as an area in which the vibration has been inputted, and calculates coordinates using different procedures corresponding to the respective areas. The apparatus according to claim 1, wherein the difference values are corrected, in said correcting step, by subtracting the difference value from a value twice the maximum difference value if the difference value is greater than the maximum value. A coordinate input method comprising: an input step of inputting vibration onto a vibration transmission body (8); a plurality of vibration detection steps for detecting the vibration at different positions; a measurement step (S51) of measuring arrival times of the vibration at said different positions; a step (S52) of calculating difference values by subtracting one of the arrival times at one of the positions where the vibration is detected from each of the other arrival times at the other positions; a comparison step (S53) of comparing the difference values with a maximum difference value determined in accordance with the vibration transmission speed of the vibration inputted in said input step and the size of the vibration transmission body; a correction step (S55) of correcting a said difference value based on the comparison result in said comparison step if the difference value exceeds said maximum difference value; and a calculation step of calculating coordinates of a vibration source position on the vibration transmission body (8) based on the difference values corrected if necessary in said correction step. The method according to claim 5, wherein a group arrival time and a phase arrival time of the vibration are measured in said measurement step. The method according to claim 5, wherein said calculation step includes a step of deciding an area of the vibration transmission body (8) as an area in which the vibration has been inputted, and coordinates are calculated with different procedures corresponding to the respective areas. A method according to claim 5, wherein the difference values are corrected, in said correcting step, by subtracting the difference value from a value twice the maximum difference value, if the difference value is greater than the maximum value.

Inventors: KOBAYASHI KATSUYUKI, SATO HAJIME, TANAKA ATSUSHI, TOKIOKA MASAKI, YANAGISAWA RYOZO, YOSHIMURA YUICHIRO, KOBAYASHI, KATSUYUKI, SATO, HAJIME, TANAKA, ATSUSHI, TOKIOKA, MASAKI, YANAGISAWA, RYOZO, YOSHIMURA, YUICHIRO
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1994
Main classification: G06K11
IPC codes: G06F3