A user input device can be used by a user to provide an input to an electronic device, such as to cause a task to be performed at the electronic device. Examples of user input devices include a mouse device, a keyboard, a touchpad, a touchscreen display, a game controller, and so forth. A touchpad or touchscreen display detects a touch by a user on a touch-sensitive surface. This touch input can be interpreted as an input event that is sent to an electronic device.
Some implementations are described with respect to the following figures.
Users can use touch-based input devices to provide input to an electronic device. A touch-based input device can include a touchpad, a touchscreen display, or any other input device that includes a touch-sensitive surface. A touch-sensitive surface is able to detect user touches or swipes on the touch-sensitive surface, which are interpreted as input events that are communicated to the electronic device. A touch-sensitive surface can rely on use of capacitive sensing of touches or swipes.
In some cases, an input device with a touch-sensitive surface may not be easily usable with an electronic device. For example, the electronic device can be a desktop computer that has a display that is oriented generally vertically, which makes touch-based input on the display inconvenient for a user. Also, a touch-sensitive surface relies on a user actually touching the touch-sensitive surface (using either a finger or a stylus) for an input to be recognized. Thus, a touch-sensitive surface may not be able to recognize an input object (e.g. a stylus or user finger) that hovers above the touch-sensitive surface.
In accordance with some implementations, to increase flexibility, an input system is provided that uses an image capture device to recognize an input gesture made using an input object. As examples, the input object can include a stylus, which can be any item that can be held by a user. For example, the stylus can be a wand, a digital pen, and so forth. As other examples, an input object can include a user's finger(s).
In the ensuing discussion, reference is made to examples where the input object 106 is a stylus. Note that techniques or mechanisms according to some implementations can be applied to other types of input objects.
In accordance with some implementations, the stylus 106 is provided with a retroreflective material 111 provided on an outer surface of the stylus 106. A retroreflective material reflects incident light along a path that is parallel to the path of the incident light. In other examples, the retroreflective material can be a substantially retroreflective material, where light is reflected back along a path that is approximately parallel to the path of the incident light. A path of the reflected light is approximately parallel to the path of the incident light if the path of reflected light is within 20° of being parallel with the path of the incident light.
Incident light can be produced by a light source assembly 108, which can include one or multiple light sources. The light produced by the light source assembly 108 can be in a specified range of wavelengths. For example, the range of wavelengths of light produced by the light source assembly 108 can be 825 millimeters to 875 millimeters. In other examples, the light produced by the light source assembly 108 can be in another wavelength range.
In examples where the input object 106 includes a user's finger, the retroreflective material can be provided as a sleeve (or sleeves) around the users finger.
In the example of
In the example of
In some implementations, the surface structure 110 does not have capacitive touch-sensitive elements. Thus, movement of the stylus 106 is detected based on images of the stylus 106 captured by the image capture device 104.
In some implementations, the stylus 106 can be provided with an element that can interact with the upper surface 112 of the surface structure 110. For example, a tip portion 107 of the stylus 106 can be a moveable portion, which can be in the form of a spring-loaded plunger, for example. When pressed against the upper surface 112 of the surface structure 110, the plunger moves in the stylus 106. The movement of the plunger can be communicated by the stylus 106 to the electronic device 102. As an example, as shown in
In other examples, it is noted that the stylus 106 can omit the moveable tip portion 107.
The stylus 106 can also include a user-activatable element, such as a button or a touch-sensitive region. Actuation of the user-activatable element can be communicated wirelessly from the stylus 106 to the electronic device 102.
User input can be based on images of the stylus 106 captured by the image capture device 104 and actuation of the moveable tip portion 107 and/or actuation of the user-activatable element. In some examples, when the user-activatable element is depressed as the stylus 106 is moved, the stylus 106 can be used to perform spray painting onto a displayed image. More specifically, an indication of activation of the user-activatable element can be received. Based on the received indication, painting of a region of a displayed image with a particular color (or colors) corresponding to a time interval during which the user-activatable element of the input object remains activated is performed.
An image of the stylus 106 captured by the image capture device 104 can be communicated by the camera to an input processing engine 114 in the electronic device 102. The input processing engine 114 along with the image capture device 104, the light source assembly 108, and the stylus 106 can be part of the user input system.
An “engine” as discussed in the present disclosure may include hardware or a combination of hardware and programming to implement the functionalities of the respective engine. Such combinations of hardware and programming may be implemented in a number of different ways. For example, the programming for an engine may include executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the engine may include processor(s) to execute those instructions. In such examples, the machine-readable storage medium may store instructions that, when executed by the processor(s), implement functionalities of the engine. A processor can include a microprocessor, microcontroller, programmable integrated circuit, programmable gate array, or any combination of the foregoing.
The input processing engine 114 can apply image processing to images of the stylus 106 captured by the input capture device 104. The input processing applied by the input processing engine 114 can detect a position of the stylus 106 in three dimensions. The three dimensions can include the x, y, and z axes, where the x and y axes can lie in a horizontal plane, for example, while the z axis extends in a vertical plane, for example. More generally, the x and y axes lie in a first plane, and the z axis is perpendicular to both the x and y axes. The z axis corresponds to a depth of the stylus 106 with respect to the upper surface 112 of the surface structure 110.
In some examples, the image capture device 104 can include a camera that can capture depth information of an object, including the stylus 106. For example, the camera can be an infrared (IR) camera, which includes a depth sensor. In image captured by the IR camera can include both the IR image as well as depth information of an object captured by the IR camera.
In this way, a position of the stylus 106 in the x, y, and z axes can be determined by the input processing engine 114. Based on determined position(s) of the stylus 106, the input processing engine 114 can produce a respective input event(s) 116. The input event(s) 116 can be used by other logic in the electronic device 102, such as machine-readable instructions (e.g. software or firmware), a processor, and so forth.
Note that the input processing engine 114 can determine a position of the stylus 106 in three dimensions even when the stylus 106 hovers over the surface structure 110. This determination can be made without physical interaction between the stylus 106 and the surface structure 110, while the stylus 106 hovers over the surface structure 110.
The system receives (at 202) data captured by the image capture device 104 of an input object (e.g. the stylus 106) that has a retroreflective material on a surface of the stylus 106. As noted above, the retroreflective material on the outer surface of the stylus 106 can include a first retroreflective pattern and a second, different retroreflective pattern. The different patterns can have different shapes, different sizes, or can have any other characteristic that can distinguish one retroreflective pattern from another retroreflective pattern. In some examples, the first retroreflective pattern can be provided at an upper portion of the stylus 106, while the second retroreflective pattern can be provided at a bottom portion of the stylus 106, such as near or on the tip portion 107. The use of different retroreflective patterns allows for a distinction to be made between the top and bottom portions of the stylus 106.
The system determines (at 204) a position of the input object in three dimensions based on the received data. Based on the position of the input object, or on a gesture that can be derived based on multiple positions of the input object as determined by the system, one or multiple input events (e.g. 116 in
In alternative implementations, it is noted that the stylus 106 can also be used in conjunction with a touch-sensitive surface, such as a touchpad or touchscreen display. In such implementations, the determined position of the stylus 106, and more specifically, the determined position of the tip portion of the stylus 106, can be used to perform unintended touch rejection. Unintended touch rejection is used to reject any touch that is not intended to be a touch. For example, a user holding the stylus 106 may inadvertently touch a touch-sensitive surface, such as with the user's palm or knuckle.
In some implementations, based on the determined position of the stylus 106, a region having a spatial relationship with respect to the stylus 106, such as the tip portion of the stylus 106, can be identified. For example, the determined region can be a region around the tip portion of the stylus 106. As other examples, the determined region can be a distance away from the tip portion of the stylus 106. The determined region can be an inactive region, where any touch in the inactive region is to be disregarded. Unintended touch rejection is thus performed with respect to the determined region.
The bottom part of the stylus 106 can be provided with a moveable plunger 308 (which is an example of the tip portion 107 of
Application of pressure on the stylus 106 against the upper surface 112 can cause the plunger 308 to move longitudinally. Different pressures applied by a user can correspond to different movements of the plunger 308, which can be detected by the stylus 106. Different positions of the stylus 308 can be communicated in data transmitted from the stylus 106 to the electronic device 102. As an example, different pressures applied by a user that cause different longitudinal movements of the plunger 308 can correspond to different line widths drawn in a displayed image.
In examples according to
The stylus 106 also includes a light emitting diode (LED) indicator 318.
The stylus 106 can also include an orientation sensor 322, such as an accelerometer, which can detect an orientation of the stylus 106 (e.g. vertical orientation, horizontal orientation, or another orientation between vertical and horizontal).
In addition, the stylus 106 includes a wireless interface 320 that can communicate wirelessly with the wireless interface 118 in the electronic device 102 of
The foregoing refers to an orientation of the stylus 106 where the plunger 308 is at the bottom portion of the stylus. In other examples, if the stylus 106 is to be used with a capacitive-based touch-sensitive surface (instead of or in addition to an image-based input system as discussed above), then a capacitive nib 326 of the stylus 106 can be considered to be at the bottom portion of the stylus 106. The capacitive nib 326 can be detected by a capacitive-based touch-sensitive surface.
It is noted that some elements of the stylus 106 as shown in
The input processing element 114 applies image processing 508 to the input data 502 to identify a position of the stylus 106. The image processing 508 produces a processed image 510 that highlights the stylus 106 while removing the remainder of elements in the raw image 504, including the user's hand and the support structure 110. The depth information 506 is also converted by the image processing 508 to a depth image 512 that highlights the stylus 106.
The image processing 508 to highlight the stylus 106 is made more accurate due to use of the retroreflective material on the outer surface of the stylus 106
Combining the images 510 and 512 produces an output image 514 of the stylus 106 that includes 3D information, which can be used to determine the 3D position of the stylus 106.
The position data 601, which provides a position of the stylus 106 in three dimensions, is received by the aggregation module 602. Other stylus information 606 from the stylus 106 is also received by the aggregation module 602. The other stylus information 606 can include information relating to activation of the plunger 308, information relating to activation of the button 310, and measurement data from the orientation sensor 322 (
The aggregation module 602 aggregates the position data 601 and the other stylus information 606 to produce aggregated data 608, which can be provided to the hardware processing circuit 604. In some examples, the aggregated data 608 can be provided in Universal Serial Bus (USB) format to the hardware processing circuit 604.
In response to the aggregated data 608, the hardware processing circuit 604 produces event data 610 to represent the respective input event(s), such as Human Interface Design (HID) event data. The HID event data 610 is provided to the aggregation module 602, which can then process the input event(s).
The storage medium (or storage media) 704 can store machine-readable instructions 706, which can include input processing engine instructions 708 (instructions of the input processing engine 114).
The storage medium (or storage media) 704 can include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; optical media such as compact disks (CDs) or digital video disks (DVDs); or other types of storage devices. Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components. The storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.
In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/049657 | 8/5/2014 | WO | 00 |