An electronic pen can utilize sensors to detect writing movements when writing on a writing surface, such as a piece of paper. An electronic pen and a piece of paper are independent objects, and thus the electronic pen's recorded writing may be tilted at an arbitrary angle relative to the piece of paper causing the written words to appear “rotated” compared to the user's intended orientation.
Embodiments of calibrating an electronic writing device are described with reference to the following Figures. The same numbers may be used throughout to reference like features and components that are shown in the Figures:
In embodiments of calibrating an electronic writing device, an electronic writing device includes a calibration component configured to calibrate writing data to an orientation of a writing surface. To do so, the calibration component determines whether writing data corresponds to a calibration movement. If the calibration component determines that the writing data corresponds to the calibration movement, the calibration component determines a correction angle based on the writing data and stores the correction angle in a writing buffer. The calibration component then uses the correction angle to adjust subsequently received writing data to align the writing data to the orientation of the writing surface.
While features and concepts of calibrating an electronic writing device can be implemented in any number of different devices, systems, and/or configurations, embodiments of calibrating an electronic writing device are described in the context of the following example devices, systems, and methods.
Electronic writing device 102 includes processors 106 and computer-readable media 108, which may include memory media 110 and storage media 112. Computer-readable media 108 also includes a calibration component 114 and a digitizer 116, which will be described in more detail below.
Electronic writing device 102 further includes a writing tip 118, sensor(s) 120, and a writing buffer 122. Writing tip 118 is usable to write on writing surface 104, and may be implemented, by way of example and not limitation, as an ink tip or a pencil tip. For example, writing tip 118 may enable electronic writing device to write in ink or in pencil on a piece of paper.
Sensors 120 are configured to sense movement of electronic writing device 102 when writing on writing service 104, and to generate writing data corresponding to the movement of electronic writing device 102. For example, the movement senses by sensors 120 can be passed to digitizer 116 which converts the movement into digital writing data.
In one or more embodiments, sensors 120 are implemented as optical sensors, similar to those used in computer mouse input devices. Optical sensors are configured to sense movement of electronic writing device 102 in the “x” and “y” directions, and to generate writing data in the form of x-coordinates and y-coordinates corresponding to the writing of the electronic writing device 102. Writing buffer 122 is configured to store the writing data generated by sensors 120.
Electronic writing device 102 may also include one or more wired interface(s) 124 and/or wireless interface(s) 126 that are configured to communicate writing data stored in writing buffer 122 to an external computing device. For example, wired interface 124 may be implemented as a universal serial bus (USB) device that can be inserted into a computing device to transfer the data in writing buffer 122 to the computing device. As another example, wireless interface 126 may be implemented as a Bluetooth™ device configured to wirelessly communicate writing data in writing buffer 122 to an external computing device that is also equipped with a Bluetooth™ device.
Electronic writing device 102 can also be implemented with any number and combination of differing components as further described with reference to the example device shown in
Electronic writing device 102 and writing surface 104 are independent objects, and thus sensor 120 may not know the orientation of writing surface 104 relative to electronic writing device 102. As a result, the writing data generated by electronic writing device 102 may be tilted at an arbitrary angle relative to writing surface 104 causing the words to appear “rotated” compared to the user's intended orientation.
Consider, for example,
Consider, for example,
In accordance with various embodiments, calibration component 114 is configured to calibrate electronic writing device 102 so that the writing data is aligned with the orientation of writing surface 104. To do so, calibration component 114 can determine when writing data corresponds to a calibration movement, and then determine a correction angle based on the calibration movement.
In various embodiments the calibration movement is one or more substantially straight lines drawn on writing surface 104 using electronic writing device 102. In some embodiments, the calibration movement may be single straight line drawn substantially parallel to an axis of writing surface 104, such as the horizontal axis of writing surface 104 or the vertical axis of writing surface 104. In other embodiments, a first line is drawn in a first direction, and a second line is traced back over the first line to the starting point of the first line. Using two lines for the calibration movement may decrease the likelihood of detecting a calibration movement that is unintended by the user. It is to be appreciated, however, that a variety of different calibration movements may be detected by calibration component 114.
Calibration component 114 can detect the calibration movement by detecting that a substantially straight line has been drawn on writing surface 104 using electronic writing device 102. Consider, for example,
Example 400 further illustrates a representation of writing data 404 that is generated when calibration movement 402 is drawn on writing surface 104. As described above, writing data 404 is tilted or rotated based on the orientation of writing surface 104 relative to electronic writing device 102.
After detecting calibration movement 402, calibration component 114 determines a correction angle 406 based on the calibration movement. The correction angle is computed as the difference between the calibration movement 402 and the writing data detected by sensors 120. Thus, the correction angle can be used to adjust the detected writing data so that it aligns with the orientation of writing surface 104. Note, therefore, that the calibration movement does not need to be drawn parallel to an axis of the writing surface, because the calibration component will rotate the writing data to align with the orientation intended by the user. For example, a user may purposely want to calibrate electronic writing device 102 to an artwork that is slanted at 60 degrees within writing surface 104 so technical construction lines that are aligned to this slanted artwork can be drawn. After detecting the correction angle, calibration component 114 stores the correction angle in writing buffer 122.
Subsequently, when additional writing data is received, calibration component 114 can retrieve the stored correction angle from writing buffer 122, and adjust the writing data using the stored correction angle to align the writing data with the orientation of writing surface 104.
Consider, for example,
In order to better understand why writing data must be adjusted by a correction angle, consider
At 602, electronic writing device 102 is perfectly aligned with writing surface 104, as indicated by the x-axis 604 of electronic writing device 102 being aligned with the x-axis of writing surface 104, and the y-axis 606 of electronic writing device 102 being aligned with the y-axis of writing surface 104. In this case, the writing data does not need to be adjusted by calibration component 114.
In contrast, at 608, electronic writing device 102 is rotated counter-clockwise to writing surface 104, as indicated by the x-axis 610 of electronic writing device 102 being rotated counter-clockwise from the x-axis of writing surface 104, and the y-axis 612 of electronic writing device 102 being rotated counter-clockwise from the y-axis of writing surface 104. In this case, the writing data generated by electronic writing device 102 is rotated in a positive direction due to the orientation of electronic writing device 102. Thus, to align the writing data with the orientation of writing surface 104, calibration component 114 adjusts the writing data with a positive correction angle.
In contrast, at 614, electronic writing device 102 is rotated clockwise to writing surface 104, as indicated by the x-axis 616 of electronic writing device 102 being rotated clockwise from the x-axis of writing surface 104, and the y-axis 618 of electronic writing device 102 being rotated clockwise from the y-axis of writing surface 104. In this case, the writing data generated by electronic writing device 102 is rotated in a negative direction due to the orientation of electronic writing device 102. Thus, to align the writing data with the orientation of writing surface 104, calibration component 114 adjusts the writing data with a negative correction angle.
Calibration component 114 is configured to detect this calibration movement by detecting that two lines are drawn that are each substantially parallel to an axis of writing surface 104. For example, calibration component 114 may determine that two lines are drawn that are each substantially parallel to a horizontal axis or vertical axis of writing surface 104.
In one or more embodiments, calibration component 114 may detect the calibration movement if a length of each of first line 702 and second line 708 is greater than a line threshold length. For example, if first line 702 and second line 708 are drawn parallel to the horizontal axis of writing surface 104, calibration component may detect the calibration component only if a length between x-coordinates of first point 704 and second point 706, and a length between x-coordinates of second point 706 and third point 710 are greater than the line threshold length. Similarly, if first line 702 and second line 708 are drawn parallel to the vertical axis of writing surface 104, calibration component may detect the calibration component if a length between y-coordinates of first point 704 and second point 706, and a length between y-coordinates of second point 706 and third point 710 are greater than the line threshold length. In some cases, the line threshold length may be half of a width of writing surface 104, such as half of the width of a piece of paper.
In one or more embodiments, the starting point of the first line of the calibration movement and the ending point of the second line of the calibration movement must be near to each other. For example, in
In various embodiments, calibration component 114 determines that writing data corresponds to the calibration movement if first line 702 and/or second line 708 are within one or more angle thresholds.
Consider, for example,
At 804, a portion of first line 702 is zoomed in on, and is illustrated at various different times, T=0, T=1, and T=2. In order to determine whether first line 702 is straight enough to qualify as a calibration movement, calibration component 114 determines whether first line 702 is within a first angle threshold. In this example, a first angle β1 is calculated between a first point 806 of first line 702 corresponding to T=0 and a second point 808 of first line 702 corresponding to T=1. A second angle β2 is calculated between second point 808 of first line 702 corresponding to T=1 and a third point 810 of first line 702 corresponding to T=2. In order for first line 702 to qualify as a calibration movement, calibration component 114 determines whether β1 and β2 are each within the first angle threshold.
Alternately or additionally, in order to determine whether first line 702 is straight enough to qualify as a calibration movement, calibration component 114 determines whether first line 702 is within a second angle threshold. In this example, a third angle α1 is calculated between first point 806 of first line 702 corresponding to T=0 and second point 808 of first line 702 corresponding to T=1. In this case, α1 is equal to β1. A second angle α2 is calculated between first point 806 of first line 702 corresponding to T=0 and third point 810 of first line 702 corresponding to T=2. In order for first line 702 to qualify as a calibration movement, calibration component 114 determines whether α1 and α2 are each within the second angle threshold.
In various embodiments, the first angle threshold is greater than the second angle threshold. In some cases, for example the first angle threshold may be approximately 25 degrees whereas the second angle threshold may be approximately 15 degrees. Requiring the calibration movement to be within both first angle threshold and second angle threshold ensures that the line of the calibration movement is substantially straight, thereby eliminating unintentional lines drawn using electronic writing device 102 from being interpreted as a calibration movement. Note that smaller values for first angle threshold and second angle threshold may result in higher accuracy, but may make it more difficult for the user to calibrate electronic writing device 102 because the user would have to draw a more perfectly straight line.
While only a single calibration line is illustrated in
Block 1002 receives writing data generated by an electronic writing device writing on a writing surface. For example, calibration component 114 (
Block 1004 determines whether the writing data corresponds to a calibration movement. For example, calibration component 114 determines whether the writing data corresponds to a calibration movement, such as one or more lines drawn substantially parallel to an axis of writing surface 104.
If it is determined that the writing data corresponds to the calibration movement, block 1006 determines a correction angle based on the calibration movement, and block 1008 stores the correction angle in a writing buffer. For example, calibration component 114 determines a correction angle 406 (
Alternately, if it is determined that the writing data does not correspond to the calibration movement, block 1010 adjusts the writing data by the correction angle, and block 1012 stores the adjusted writing data in the writing buffer. For example, calibration component 114 adjusts the un-calibrated writing data 302 by correction angle 406 to generate adjusted writing data 502, and stores the adjusted writing data in writing buffer 122 (
The computer device 1100 includes communication transceivers 1102 that enable wired and/or wireless communication of device data 1104, such as received data, data that is being received, data scheduled for broadcast, data packets of the data, etc. Example communication transceivers 1102 include wireless personal-area-network (WPAN) radios compliant with various IEEE 802.15 standards, Bluetooth™ standards, wireless local-area-network (WLAN) radios compliant with any of the various IEEE 802.11 (also referred to as WiFi™) standards, wireless-wide-area-network (WWAN) radios for cellular telephony, wireless-metropolitan-area-network (WMAN) radios compliant with various IEEE 802.16 (also referred to as WiMAX™) standards, and wired local-area-network (LAN) Ethernet transceivers.
The computer device 1100 may also include one or more data input ports 1106 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television content, recorded video content, and any other type of audio, video, and/or image data received from any content and/or data source. The data input ports may include USB ports, coaxial cable ports, and other serial or parallel connectors (including internal connectors) for flash memory, DVDs, CDs, and the like. These data input ports may be used to couple the computer device to components, peripherals, or accessories such as microphones or cameras. Additionally, the computer device 1100 may include media capture components 1108, such as an integrated microphone to capture audio and a camera to capture still images and/or video media content.
The computer device 1100 includes one or more processors 1110 (e.g., any of microprocessors, controllers, and the like), which process computer-executable instructions to control operation of the device. Alternatively or in addition, the computer device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits, which are generally identified at 1112. Although not shown, the computer device can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.
The computer device 1100 also includes one or more memory devices 1114 that enable data storage, examples of which include random access memory (RAM), non-volatile memory (e.g., read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable disc, any type of a digital versatile disc (DVD), and the like. The computer device 1100 may also include a mass storage media device.
A memory device 1114 provides data storage mechanisms to store the device data 1104, other types of information and/or data, and various device applications 1116 (e.g., software applications). For example, an operating system 1118 can be maintained as software instructions within a memory device and executed on the processors 1110. The device applications may also include a device manager, such as any form of a control application, software application, signal-processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on. In embodiments, the computer device also includes a calibration component 1120. Calibration component 1120 is an example of calibration component 114 at electronic writing device 102 shown in
The computer device 1100 also includes an audio and/or video processing system 1122 that generates audio data for an audio system 1124 and/or generates display data for a display system 1126. The audio system and/or the display system may include any devices that process, display, and/or otherwise render audio, video, display, and/or image data. Display data and audio signals can be communicated to an audio component and/or to a display component via an RF (radio frequency) link, S-video link, HDMI (high-definition multimedia interface), composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link, such as media data port 1128. Additionally, the audio system and/or the display system may be external components to the computer device, or alternatively, are integrated components of the example computer device.
Although embodiments of calibrating an electronic writing device have been described in language specific to features and/or methods, the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of calibrating an electronic writing device.
This application claims the benefit of U.S. Provisional Application Ser. No. 61/889,932, filed Oct. 11, 2013, the entire contents of which are hereby incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
61889932 | Oct 2013 | US |