This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2013-223144, filed Oct. 28, 2013, the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to an electronic apparatus and a coordinate correcting method.
Electronic apparatuses with a device configured to detect the position indicated on a detection surface by a user using, for example, a pen-type indicator are available. Such devices are called, for example, digitizers.
For instance, the indicator incorporates a magnetic field source, and the digitizer incorporates a plurality of loop coils for detecting the magnetic field of the magnetic field source. The digitizer calculates the coordinates of the position indicated by the indicator, based on the detection results of the loop coils.
When the indicator inclines relative to the detection surface, the coordinates calculated based on the magnetic field of each loop coil may deviate from the position indicated by the tip of the indicator.
It is an object of the embodiments to provide an electronic apparatus capable of accurate position inputting even if the indicator is used inclined, and a coordinate correcting method for use in the apparatus.
A general architecture that implements the various features of the embodiments will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate the embodiments and not to limit the scope of the invention.
Various embodiments will be described hereinafter with reference to the accompanying drawings.
In the description below, like reference numbers denote like elements, and duplicate explanations will be omitted.
In general, according to one embodiment, an electronic apparatus includes a first detector, a second detector and a processor. The first detector is configured to detect a first position on a detection surface. The second detector is configured to detect a second position indicated by an indicator on the detection surface. The processor is configured to determine a first orientation of inclination of the indicator based on first coordinates of the first position on the detection surface and second coordinates of the second position on the detection surface, and to correct the second coordinates based on the first orientation of inclination.
When the touch panel 4 touches part of the body of the user, such as a hand H or a finger, it generates a detection signal corresponding to the contact position. As the touch panel 4, a touch panel of, for example, an electrostatic capacitance type can be used. The user's contact position on the detection surface 30 will hereinafter be refereed to as a “first position P1.”
The LCD panel 5 includes a backlight unit with a light source and a light guiding plate, a liquid crystal module for controlling the passing of light emitted from the backlight unit, and a plurality of optical sheets, such as a prism sheet and a deflection sheet.
The sensor board 6 outputs a detection signal corresponding to the position on the detection surface 30 indicated by the tip of the indicator 10. The position on the detection surface 30 indicated by the tip of the indicator 10 will hereinafter be referred to as a “second position P2.”
The display unit 3 further includes a substrate 7, a signal processor 8, and flexible cables 9a, 9b and 9c. The substrate 7 is mounted with, for example, a signal processor 8. The flexible cable 9a electrically connects the substrate 7 and the touch panel 4. The flexible cable 9b electrically connects the LCD panel 5 and the substrate 7. The flexible cable 9c electrically connects the sensor board 6 and the substrate 7.
The signal processor 8 drives the touch panel 4, the LCD panel 5 and the sensor board 6, and processes detection signals output from the touch panel 4 and the sensor board 6. For instance, the signal processor 8 calculates the coordinates of the first position P1 based on the detection signal output from the touch panel 4. Hereinafter, the X coordinate of the first position P1 will be referred to “Xh,” and the Y coordinate of the first position P1 be referred to “Yh.”
Further, the signal processor 8 calculates the coordinates of the second position P2 based on the detection signal output from the sensor board 6. Hereinafter, the X coordinate of the second position P2 will be referred to “Xp,” and the Y coordinate of the second position P2 be referred to “Yp.”
In the embodiment, the sensor board 6 constitutes a digitizer of the electromagnetic induction type, along with, for example, the signal processor 8. Namely, the sensor board 6 includes a plurality of loop coils C (see
The indicator 10 has a shape like a pen. The indicator 10 contains a resonance circuit 11 functioning as a magnetic field source, and a pen pressure sensor 12. The resonance circuit 11 includes a coil, a capacitor, etc. The pen pressure sensor 12 detects the pressure applied to the pen tip of the indicator 10.
Referring now to (a) and (b) of
When a current has been passed from the substrate 7 to each loop coil C of the sensor board 6 via the flexible cable 9c, each loop coil C generates a magnetic field spreading all over the detection surface 30. Upon receiving the magnetic field, induction voltage occurs in the resonance circuit 11 to accumulate energy therein.
After the supply of current to each loop coil C is stopped, the energy accumulated in the resonance circuit 11 causes the resonance circuit 11 to generate a magnetic field as indicated by the broken lines in (a) and (b) of
The signal processor 8 also calculates the coordinate Yp of the second position P2, using the loop coils C arranged along the Y axis direction and the same method as that used for calculating the coordinate Xp. The resonance circuit 11 is configured to vary in resonance frequency in accordance with the pen pressure detected by the pen pressure sensor 12. The signal processor 8 determines the resonance frequency based on variations in the detection signals of the loop coils C, and generates pen pressure data indicating the magnitude of pen pressure, based on the determined resonance frequency.
When calculating the coordinates (Xp, Yp) of the second position P2 using the above method, a deviation may well occur between the position actually indicated by the tip of the indicator 10 and the coordinates calculated as the above, because of inclination of the indicator 10. This type of deviation is conspicuous in particular when the tip of the indicator 10 is positioned at an end of the detection surface 30.
Referring to (b) of
To prevent the above deviation, the sensor board 6 may additionally employ loop coils C positioned outside the surface (detection surface 30) of the LCD panel 5. In this case, even when the indicator 10 indicates an end of the detection surface 30, the magnetic field of the resonance circuit 11 can be detected. However, the electronic apparatus 1 will inevitably be enlarged by the added loop coils C.
Further, even when the tip of the indicator 10 is positioned at an end of the detection surface 30, the magnetic field of the resonance circuit 11 can be relatively accurately detected by the loop coils C1 to C3, if the indicator 10 is inclined inwardly with respect to the detection surface 30 as shown in (a) of
The electronic apparatus 1 has a function of correcting the above-mentioned deviation.
In the embodiment, an outer peripheral region 31 and a central region 32 are defined. The outer peripheral region 31 is where the above-described coordinate deviation will easily occur, and is defined, for example, at predetermined distances from the four sides of the detection surface 30. The central region 32 is obtained by excluding the outer peripheral region 31 from the detection surface 30. The boundary between the outer peripheral region 31 and the central region 32 may be determined by estimating, for example, the degree of the above-mentioned deviation.
The electronic apparatus 1 includes, in the casing 2, a system controller 20 configured to control each element of the apparatus 1. The signal processor 8 is connected to the system controller 20 via, for example, the substrate 7.
The signal processor 8 includes a memory 80. The memory 80 is formed of a read only memory (ROM) and a random access memory (RAM), and stores, for example, computer programs to be executed by the signal processor 8. The memory 80 is also used as a work area by the signal processor 8. The signal processor 8 realizes various functions associated with the display unit 3 by executing the computer programs stored in the memory 80. For instance, when performing the above-described deviation correction, the signal processor 8 realizes functions as a determination module 81 and a correction module 82.
The determination module 81 determines the inclination orientation of the indicator 10 based on the coordinates (Xh, Yh) of the first position P1 and the coordinates (Xp, Yp) of the second position P2.
When the coordinates (Xp, Yp) are needed to be corrected, the correction module 82 corrects the coordinates (Xp, Yp) based on the inclination orientation determined by the determination module 81. The coordinates corrected by the correction module 82 will hereinafter be referred to as corrected coordinates (Xp′, Yp′), and the position on the detection surface 30 indicated by the corrected coordinates (Xp′, Yp′) will hereinafter be referred to as a corrected position P2′.
While the input by the digitizer is kept on, the signal processor 8 periodically calculates the coordinates (Xp, Yp) and outputs them to the system controller 20. When the coordinates (Xp, Yp) have been corrected, the signal processor 8 outputs the corrected coordinates (Xp′, Yp′) to the system controller 20, instead of the coordinates (Xp, Yp).
The system controller 20 includes a processor such as a central processing unit (CPU), and memories such as a ROM and a RAM. The processor realizes the operating system (OS) of the electronic apparatus 1 and various applications by executing the computer programs stored in, for example, the memories. The coordinates (Xp, Yp) and the corrected coordinates (Xp′, Yp′) sent from the signal processor 8 to the system controller 20 are used during processing by the above-mentioned OS or applications.
In the embodiment, the inclination orientation is expressed using a bearing angle θ and an elevation angle ρ. The bearing angle θ represents the inclination of the indicator 10 with respect to a predetermined reference orientation in the plane parallel to the detection surface 30. The elevation angle ρ represents the inclination of the indicator 10 with respect to the detection surface 30.
Referring now to
In the embodiment, it is assumed that the axis A of the indicator 10 exists on the line connecting the first and second positions P1 and P2. Further, the angle counterclockwise formed from a line X=Xp parallel to the Y axis, to the axis A is defined as the bearing angle θ (0≦θ≦2π). Namely, the above-mentioned reference orientation in the embodiment is the Y axis orientation.
In the example of
θ=tan−1((Xp−Xh)/(Yp−Yh)) (1)
Also in the quadrants where (Xp−Xh) and (Yp−Yh) assume negative and positive values, respectively, where both (Xp−Xh) and (Yp−Yh) assume positive values, and where (Xp−Xh) and (Yp−Yh) assume positive and negative values, respectively, the bearing angle θ can be calculated using the angle obtained in the right-hand side of the above equation (1).
Referring then to
Assuming that the distance between the first and second positions P1 and P2 is Dxy, and that the axis A of the indicator 10 exists at the distance Zh from the first position P1 along the direction opposite to Z axis direction, the elevation angle ρ is given by the following equation:
ρ=tan−1(Zh/Dxy) (2)
where the distance Dxy can be calculated as follows:
Dxy=((Xp−Xh)2+(Yp−Yh)2)1/2 (3)
As is evident from the above equations (2) and (3), 0≦ρ<π/2.
Zh corresponds to the height of the user's hand grasping the indicator 10 from the detection surface 30. Zh can be set as a predetermined fixed value. Further, Zh may be set dynamically based on the detection result of the touch panel 4. For instance, Zh may be determined, based on the contact area of the user's hand on the detection surface 30 estimated from the detection result of the touch panel 4.
Referring to
When the electronic apparatus 1 is activated, the signal processor 8 repeatedly executes the processing shown in the flowchart of
Upon receiving the command (Yes in block B1), the signal processor 8 drives the touch panel 4 and the sensor board 6 (block B2). Further, based on the signals output from the touch panel 4 and the sensor board 6, the signal processor 8 acquires data on the coordinates (Xh, Yh) of the first position P1 in which the user's hand grasping the indicator 10 touches the detection surface 30, on the coordinates (Xp, Yp) of the second position P2 indicated by the tip of the indicator 10, and on pen-pressure data indicating the pen pressure detected by the pen-pressure sensor 12 (block B3).
The signal processor 8 stores, in the memory 80, the coordinate data (Xh, Yh) and (Xp, Yp) and pen-pressure data (block B4). When the coordinate data (Xh, Yh) and (Xp, Yp) and pen-pressure data are already stored in the memory 80, the signal processor 8 updates them by replacing them with the data acquired in block B3.
When the user keeps their hand away from the detection surface 30, the signal processor 8 cannot acquire the coordinate data (Xh, Yh) in block B3. In this case, in block B4, the signal processor 8 maintains the coordinate data (Xh, Yh) that was stored in the memory 80 in block B4 of a previous loop.
After block B4, the signal processor 8 determines whether the coordinate data (Xh, Yh) was acquired in block B3 of the current loop (block B5).
If it is determined that the coordinate data (Xh, Yh) was acquired (Yes in block B5), the signal processor 8 starts time counting using a timer (not shown) (block B6). The timer is, for example, a software timer realized in the signal processor 8. If the timer is already performing time counting, the signal processor 8 resets the timer in block B6.
After block B6, the signal processor 8 determines whether the pen pressure indicated by the pen-pressure data stored in the memory 80 in block B4 exceeds a predetermined threshold E (block B7). The threshold E discriminates the pen pressure obtained when the tip of the indicator 10 touches the detection surface 30, from that obtained when it does not touch the detection surface 30.
If it is determined that the pen pressure indicated by the pen-pressure data is equal to or less than the threshold E (No in block B7), i.e., if the tip of the indicator 10 does not touch the detection surface 30, the processing of the signal processor 8 is returned to block B2.
If it is determined in block B5 that the coordinate data (Xh, Yh) was not acquired in block B3 immediately before block B5 (No in block B5), the signal processor 8 skips block B6 and executes block B7. Namely, the timer continues time counting until new coordinate data (Xh, Yh) is obtained. The time counting by the timer is continued even after the processing indicated by the flowchart of
If it is determined in block B7 that the pen pressure indicated by the pen-pressure data exceeds the threshold E (Yes in block B7), the signal processor 8 executes position correction processing (block B8).
In this flowchart, firstly, the signal processor 8 determines whether the time counted by the timer exceeds predetermined time Te (block B81). The time Te is a threshold for determining whether the coordinates (Xp, Yp) should be corrected, and is set to, for example, approx. 30 seconds.
If it is determined that the time Te is not exceeded (No in block B81), the signal processor 8 calculates the bearing angle θ, using the method that has been described referring to
The signal processor 8 also calculates the elevation angle ρ, using the method described referring to
After block B83, the signal processor 8 determines whether the coordinates (Xp, Yp) stored in the memory 80 belong to the outer peripheral region 31 (block B84).
If it is determined that the coordinates (Xp, Yp) stored in the memory 80 belong to the outer peripheral region 31 (Yes in block B84), the signal processor 8 determines whether the indicator 10 is inclined in an orientation in which correction is needed (block B85). As described above with reference to
Such determination can be performed using the coordinates (Xp, Yp) and (Xh, Yh) stored in the memory 80. For instance, when the coordinates (Xp, Yp) indicate a position close to the right side of the detection surface 30 shown in
If it is determined in block B85 that correction is needed (Yes in block B85), the signal processor 8 generates correction data (Xa, Ya), based on the bearing angle θ calculated in block B82 and the elevation angle ρ calculated in block B83 (block B86). The signal processor 8 stores the generated correction data (Xa, Ya) in the memory 80. The correction data Xa is data for correcting the coordinate Xp, and correction data Ya is data for correcting the coordinate Yp.
After block B86, the signal processor 8 corrects the coordinates (Xp, Yp) stored in the memory 80, using the correction data (Xa, Ya), thereby generating corrected coordinates (Xp′, Yp′) (block B87). The signal processor 8 stores the corrected coordinates (Xp′, Yp′) in the memory 80. Block B87 is the termination of the position correction processing by the signal processor 8.
If it is determined in block B81 that the time Te is exceeded (Yes in block B81), accuracy of correction calculation may be degraded. Therefore, in this case, the signal processor 8 finishes the position correction processing without executing block B82 et seq.
If it is determined in block B84 that the coordinates (Xp, Yp) do not belong to the outer peripheral region 31 (No in block B84), the signal processor 8 finishes the position correction processing without executing block B85 et seq.
If it is determined in block B85 that no correction is needed (Yes in block B85), the signal processor 8 finishes the position correction processing without executing block B86 et seq.
A method example of generating correction data (Xa, Ya) in block B86 will be described. For instance, the signal processor 8 substitutes the bearing angle θ and elevation angle ρ calculated in blocks B82 and B83 into a predetermined function FX (θ, ρ), thereby generating the correction data Xa. Similarly, the signal processor 8 substitutes the bearing angle θ and elevation angle ρ calculated in blocks B82 and B83 into a predetermined function FY (θ, ρ), thereby generating the correction data Ya.
The functions FX (θ, ρ) and FY (θ, ρ) are defined, for example, based on experimentally estimated deviations between the coordinates (Xp, Yp) and the position indicated by the tip of the indicator 10, so that appropriate correction data (Xa, Ya) can be acquired. In general, there are variations between electronic apparatuses of the same type in the degree of deviation and in the orientation in which deviation occurs. In light of this, it is preferable to set the functions FX (θ, ρ) and FY (θ, ρ) for each electronic apparatus 1.
Further, different functions FX (θ, ρ) and FY (θ, ρ) may be set for the respective four sides of the detection surface 30. In this case, the correction data (Xa, Ya) is calculated using the functions FX (θ, ρ) and FY (θ, ρ) associated with the side closest to the coordinates (Xp, Yp).
Subsequently, a method example of generating the corrected coordinates (Xp′, Yp′) in block B87 will be described referring to the model of
As is evident from
Referring back to the flowchart of
The signal processor 8 sends the position data generated in block B9 to the system controller 20 (block B10). At this block B10, the signal processor 8 terminates the processing of the
By iterating the processing of the
As described above, the electronic apparatus 1 of the embodiment corrects the coordinates (Xp, Yp), indicated on the detection surface 30 by the indicator 10, in accordance with the orientation of inclination of the indicator 10. Accordingly, even when the indicator 10 is used, inclined, input of an accurate position is possible.
Further, the electronic apparatus 1 of the embodiment determines the orientation of inclination of the indicator 10, based on the first position P1 (Xh, Yh) detected by the touch panel 4, and the second position P2 (Xp, Yp) detected by the sensor board 6. Namely, the electronic apparatus 1 or indicator 10 does not require any special device for determining the orientation of inclination of the indicator 10. Therefore, the electronic apparatus 1 can be reduced in thickness or in cost.
Furthermore, the electronic apparatus 1 of the embodiment executes the above-described correction on the outer peripheral region 31 in which the above-mentioned deviation will easily occur, and does not execute the correction on the central region 32. By thus limiting the correction target region, the processing load for correction can be reduced.
In addition, the electronic apparatus 1 of the embodiment does not correct the coordinates (Xp, Yp) if the time elapsing from the detection of the coordinates (Xh, Yh) exceeds Te. This prevents degradation of correction accuracy.
Various modifications will be described.
The above-described embodiment employs a tablet terminal as the electronic apparatus 1. However, the same structure as the above is also applicable to another type of electronic apparatus, such as a notebook PC or a smartphone.
In the above-described embodiment, the coordinates (Xp, Yp) are corrected using the bearing angle θ and the elevation angle ρ. However, the correction may be performed using the bearing angle θ or the elevation angle ρ.
In the above-described embodiment, the above correction is performed only when the coordinates (Xp, Yp) exist in the outer peripheral region 31 of the detection surface 30. However, the correction may be performed over the entire detection surface 30.
In the above-described embodiment, the correction data (Xa, Ya) is generated using functions FX (θ, ρ) and FY (θ, ρ). However, the correction data (Xa, Ya) may be generated by other methods. For instance, the correction data (Xa, Ya) may be acquired from a predetermined table. In this table, correction data (Xa, Ya) is set for, for example, each range of the bearing angle θ and the elevation angle ρ. Such tables may be prepared for the respective sides of the detection surface 30, and the correction data (Xa, Ya) be calculated, using the table corresponding to the side that is closest to the coordinates (Xp, Yp).
When the user inputs a position using the indicator 10, if variation in the orientation of inclination of the indictor 10 is small, the coordinates (Xp, Yp) sequentially detected may be corrected using the same correction data (Xa, Ya). Referring last to
If the difference θd is not less than the threshold θe (No in block B100), the signal processor 8 generates correction data (Xa, Ya) as in the above embodiment (block B86), and corrects the coordinates (Xp, Yp) using the generated correction data (Xa, Ya) (block B87).
In contrast, if the difference θd is less than the threshold θe (Yes in block B100), the signal processor 8 skips block B86 and executes block B87. In block B87, the signal processor 8 corrects the coordinates (Xp, Yp) using the correction data (Xa, Ya) that was used in the last position correction processing.
Although in the modification, it is determined based on the difference associated with the bearing angle θ whether the correction data (Xa, Ya) should be generated, this may be determined based on the difference associated with the elevation angle ρ. Yet alternatively, based on both the differences associated with the bearing angle θ and the elevation angle ρ, whether the correction data (Xa, Ya) should be generated may be determined.
To sum up the modification, the signal processor 8 is configured to correct second coordinates (Xp, Yp) using the correction data (Xa, Ya) generated based on the second orientation (θ1) of inclination determined based on third coordinates (Xp, Yp) of a third position (P2) detected by the second detector before the second position (P2), when a difference between the first orientation of inclination (θ0) and the second orientation of inclination (θ1) is less than the first threshold (θe).
In the above-described embodiment and the modification described referring to
The computer programs for realizing the determination module 81 and the correction module 82 may be provided by beforehand installing them in the electronic apparatus, or by recording them in a computer-readable recording medium. Alternatively, the computer programs may be downloaded to the electronic apparatus via a network.
The orders of processing associated with blocks B1 to B10, B81 to B87 and B100 are not always limited to those shown in the flowcharts of
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2013-223144 | Oct 2013 | JP | national |