Many computer or communication devices rely on a keyboard or a keypad to provide part of a user interface. However, using the keyboard or keypad is often cumbersome and/or inconvenient. In addition, other devices that use touch screens to emulate a keyboard or a keypad may not provide significant improvements over devices that use a keyboard or a keypad.
According to one aspect, a method may include receiving a signal from a sensor coupled to a first device, determining whether the first device is tapped against a second device based on the signal, sending a message to the second device when the first device is tapped against the second device, determining if the taps are valid user input based on a response from the second device, and performing an application specific action when the taps are valid user input.
Additionally, receiving a signal may include receiving the signal from an accelerometer.
Additionally, determining whether the first device is tapped against the second device may include determining if samples of the signal match a predetermined acceleration pattern.
Additionally, sending a message may include obtaining parameters regarding taps that are detected based on the signal, and sending the parameters to the second device.
Additionally, obtaining parameters may include obtaining locations of the taps on a surface of the first device, determining time between consecutive taps, determining time of occurrence of at least one of the taps.
Additionally, determining if the taps are valid user input may include receiving the response, the response indicating if the sent parameters match parameters that are obtained from taps on the second device.
Additionally, determining if the taps are valid user input may include receiving parameters about taps on the second device in response to the message, determining if the received parameters match parameters that are extracted from the signal when the first device is tapped against the second device, and determining whether the taps are valid by comparing the received parameters to the extracted parameters.
Additionally, performing an application specific action may include coordinating at least one of an audio task or a-visual task with the second device.
Additionally, performing an application specific action may include one of sending an audio signal to the second device for output by a speaker, or sending a video signal to the second device for display.
Additionally, performing an application specific action may include at least one of receiving personal contact information from the second device, conducting a commercial transaction with the second device, or receiving a video clip, audio clip, image, or text from the second device.
Additionally, performing an application specific action may include at least one of terminating a communication session that has been established based on taps between the first device and the second device, or causing the first device to terminate a communication session that has been established prior to taps between the first device and a third device.
According to another aspect, a device may include a sensor and a processor. The processor may be configured to receive a signal from the sensor, detect taps based on the signal, extract parameters that are associated with the detected taps, send a request to a second device to verify if the extracted parameters match parameters that are obtained from taps by the second device, determine if the detected taps are valid user input based on a response from the second device, and interact with the second device over a communication channel when the taps are valid user input.
Additionally, the parameters may include at least one of time between consecutive taps, or time of occurrence of a tap.
Additionally, the sensor may include at least one of an accelerometer or an electric field sensor.
Additionally, the second device may include at least one of a cell phone with a display or a speaker, a headset, or a laptop.
Additionally, the device may include a cell phone.
Additionally, the communication channel may include a Bluetooth communication channel.
Additionally, the request may include the extracted parameters and the response includes information that indicates whether the extracted parameters match the parameters that are obtained from taps by the second device.
Additionally, the response may include parameters that are obtained from taps by the second device.
Additionally, the processor may be further configured to cause the second device to terminate a communication session that has been established prior to detected taps between the second device and a third device, or terminate a communication session that has been established based on detected taps between the first device and the second device.
According to yet another aspect, a method may include receiving a signal from a sensor coupled to a first device, determining whether the first device is tapped against a second device based on the signal, receiving a message from the second device when the first device is tapped against the second device, determining whether the taps are valid user input based on the message from the second device, and terminating a communication link between the second device and the first device when the taps are valid user input.
Additionally, the method may further include determining whether the first device is tapped against a third device, receiving a message from the third device when the first device is tapped against the third device, determining whether the taps are valid user input based on the message from the third device, and establishing a communication link between the third device and the first device when the taps are valid user input.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments described herein and, together with the description, explain the embodiments. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. The terms “tap,” “knock,” and “touch” are interchangeably used herein and they may refer to an impact or a contact an object makes against another object. The impact may cause sufficient change in momentum in the body to allow a sensor, such as an accelerometer, to detect the change. Alternatively, the touch may cause a sensor, such as an electric field sensor, a surface conduction sensor, a pressure/force sensor, etc., to detect a surface contact against another surface.
In implementations described herein, a device (e.g., a portable phone) may establish a communication link with another device after a user taps the device against the other device. When a user taps the device against the other device, the device may detect the taps and obtain a pattern from the taps. Depending on the pattern, the device and the other device may interact with one another over a communication link. Having devices that communicate/interact with other devices based on taps may be convenient, safe, and/or economical (e.g., no need to navigate through a menu system to communicate/interact with another device, no need to expend energy on having a communication link until taps are detected, or expose the link to spam, virus, and/or other unwanted network data, etc.).
When a user taps device 102-2 into device 102-1 (or vice versa), both devices 102-1 and 102-2 may sense the taps and compare the taps to a particular pattern.
As further shown in
Device 102-1 may include any of the following devices that have the ability to or are adapted to communicate and interact with another device in close range, such as a radio telephone or a mobile telephone with ultra wide band (UWB) communication capability or Bluetooth capability; a game console or device; a global positioning system (GPS) receiver; a personal communications system (PCS) terminal that may combine a cellular radiotelephone with, data processing, facsimile, and/or data communications capabilities; a wearable computing devices (e.g., calculator-watch); an electronic notepad, a laptop, and/or a personal computer that communicate with wireless peripherals (e.g., a wireless keyboard, speakers, mouse, etc.); a personal digital assistant (PDA) that can include a telephone; or another type of computational or communication device.
Each of devices 202-1 through 202-4 may include one or more devices that are capable of communicating and/or interacting wirelessly with device 102-1 via, for example, Bluetooth, Wireless Fidelity (Wi-Fi), etc. More specifically, headset 202-1 may receive audio information from device 102-1 and output sound (e.g., songs). Cell-phone 202-2 may perform various functions for device 102-1, such as providing an audio output device, display, microphone, etc. In one implementation, cell-phone 202-2 may be similarly or identically constructed as device 102-1. Display 202-3 may show images that are received by device 102-1 and/or may send information that is inputted via a touch-sensitive screen to device 102-1. Keyboard 202-4 may permit a user to conveniently input alphanumeric and special characters to device 102-1.
WAP 204 may include a device for accessing network 206, such as a router that is able to receive and transmit wireless and/or wired signals, or any other device that provides access to a network. WAP 204 may communicate with device 102-1 using a wireless communication protocol.
Network 206 may include the Internet, an ad hoc network, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a cellular network, a public switched telephone network (PSTN), an intranet, any other network, or a combination of networks.
Memory 402 may include static memory, such as read only memory (ROM), and/or dynamic memory, such as random access memory (RAM), or onboard cache, for storing data and machine-readable instructions. Memory 402 may also include storage devices, such as a floppy disk, CD ROM, CD read/write (R/W) disc, and/or flash memory, as well as other types of storage devices. Processing unit 404 may include a processor, a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), and/or other processing logic capable of controlling device 102-1.
Display 406 may include a component that can display signals generated by device 102-1 as images on a screen and/or that can accept inputs in the form of taps or touches on the screen. For example, display 406 may provide a graphical user interface through which user can interface with device 102-1 to display images or to play music. Examples of display 406 include a liquid crystal display (LCD), organic light-emitting diode (OLED) display, bistable display, and/or a touch screen.
Network interface 408 may include any transceiver-like mechanism that enables device 102-1 to communicate with other devices and/or systems. For example, network interface 408 may include mechanisms for communicating via a network, such as the Internet, a terrestrial wireless network (e.g., wireless local area network (WLAN)), a satellite-based network, a WPAN, etc. Additionally or alternatively, network interface 408 may include a modem, an Ethernet interface to a local area network (LAN), and/or an interface/connection for connecting device 102-1 to other devices (e.g., a Bluetooth interface). Further, network interface 408 may include one or more receivers, such as a Global Positioning System (GPS) or Beidou Navigation System (BNS) receiver for determining its own geographical location. Input/output components 410 may include a keypad (e.g., keypad 308 of
Sensor 412 may include an accelerometer and/or a contact-sensitive sensor (e.g., an electric field sensor, a surface conduction sensor, a pressure/force sensor, etc.). The accelerometer may include hardware and/or software for determining acceleration of device 102-1. An example of accelerometer may include a micro electro mechanical system (MEMS) accelerometer or a piezoelectric accelerometer that is coupled to the device housing for measuring device acceleration in one, two, or three axes. In one implementation, when the accelerometer detects acceleration, the accelerometer may output its measurement as three separate values, each of which represents the magnitude of an acceleration component that is parallel to one of coordinate axis. In one implementation, the outputs of the accelerometer may be used to determine taps on the surface of housing 316 of device 102-1. Sensor 412 may include other accelerometer or motion sensitive devices.
The contact-sensitive sensor may include hardware and/or software for determining contacts, such as an electric field sensor, a surface conduction sensor, a pressure/force sensor, etc. In one implementation, an electric field sensor or a surface conduction sensor may determine the location of a nearby object or a touching object having a conductive surface. The electric field/surface conduction sensor may generate an electric field or a current at the surface of housing 316, and may detect changes in its capacitance, electric field, and/or impedance of current paths when the object is close to or is in contact with device 102-1. In a different implementation, instead of covering most of the surface of housing 316 (e.g., a top corner portion of device 102-1), the electric field/surface conduction sensor may cover only a small portion of housing 316 that may physically contact or touch another device. In still other implementations, different types of contact-sensitive sensors, such as a vibration sensitive sensor based on piezoelectric material may be used to detect taps, a pressure/force sensor to detect force corresponding to taps, etc.
Communication path 412 may provide an interface through which components of device 102-1 can communicate with one another.
Support logic 502 may be included in processing unit 404 and/or memory 402, and may include hardware and/or software for performing various support functions for other components in
Database 504 may be included in memory 402 (
In some implementations, a user may associate a specific tap pattern (e.g., a tap pattern that has 3 taps) with an application and store the association in database 504. For example, 3 taps may be associated with an application for sharing music between different devices, 2 taps may be associated with sharing a picture, etc.
Tap detector 506 may include a component for detecting a particular tap pattern based on inputs from sensor 412. For example, tap detector 506 may determine acceleration of device 102-1 as a function of time based on outputs of sensor 412, and may obtain a pattern of taps from the acceleration. Tap detector 506 may compare the obtained pattern against stored patterns in database 504. If tap detector 506 finds a match, tap detector 506 may convey that device 102-1 has detected valid user input to another component in device 102-1, such as tap-enabled application 508. In a different implementation, when tap detector 506 obtains a pattern of taps, tap detector 506 may notify a nearby device about the pattern. The nearby device may compare the pattern against a pattern that the nearby device has detected, and if there is a match, may convey that the valid user input has been detected to tap-enabled application 508 on device 102-1.
In some implementation, when tap-detector 506 determines that the valid user input is detected, tap-detector 506 may convey the detected pattern to a specific tap-enabled application 508. For example, if 3 taps are detected, tap-detector 506 may start a music sharing application and convey the information to the music sharing tap-enabled application 508; if 2 taps are detected, tap detector 506 may start an image sharing tap-enabled application 508, etc. As explained above with respect to database 504, a user may configure which pattern is associated with which application.
Tap-enabled application 508 may include a component for receiving an output from tap detector 506 (e.g., an indication that valid input is detected). In addition, tap-enabled application 508 may initiate or terminate communication with another device with which device 102-1 has been tapped, and may interact with the other device. For instance, in the example illustrated in
Examples of different types of tap-enabled application 508 may include: an application for transferring a piece of information (e.g., an electronic payment, coupon, contact information, image, piece of music, text, etc.) between two devices that have been tapped against one another; an application for sharing a task between the devices (e.g., outputting stereo audio signal to different speakers on different devices); an application for selecting a particular device that has been tapped as an input/output device (e.g., a wireless display, a keyboard, a computer, or a television for displaying images/video and/or playing audio output), etc. If a tap-enabled application 508 is implemented to share a file with another application in a different device, tap-enabled application 508 may determine how to layout a picture, video, text, web document, and/or other media content across multiple screens.
In some implementations, the functionalities of tap detector 506 may be incorporated in tap/enabled application 508.
It may be determined whether samples of outputs of sensor 412 indicate a presence of taps (block 604). In one implementation, database 504 may store reference output patterns of sensor 412 of device 102-1 when device 102-1 is tapped. The patterns may be compared against the samples, and if the samples match one or more of the patterns, tap detector 506 may determine that device 102-1 is tapped. In another implementation, tap detector 506 may perform a test on the samples (e.g., determine if one or more peaks are greater than a threshold) to determine the presence of one or more taps. In a different implementation, a tap may be detected by sensor 412 (e.g., changes in acceleration), and subsequently, device 102-1 may monitor sensor 412 for another tap within a particular amount of time (e.g., 2 seconds). If no tap is detected, device 102-1 may enter into an idle mode; otherwise process 600 may proceed to block 606.
When taps are determined as being present, parameters that are associated with the taps may be obtained (block 606). The parameters may include the number of taps, time between consecutive taps, physical locations of the taps on housing 316 of device 102-1, time at which each tap occurs, the orientation of device 102-1, etc. If sensor 412 includes an accelerometer, the locations of the taps may be determined based on the direction of acceleration of device 102-1 during the taps. Alternatively, if sensor 412 is implemented as an electric field sensor, sensor 412 may determine and output the locations of the taps. In another implementation, specific portions of housing 316 may be coupled to a contact-sensor, and each portion may be associated with a physical location on the surface of housing 316. In such an implementation, detecting taps on one of the portions may indicate the locations of the taps. In some implementations, a gyroscope/magnetometer may be included to obtain the orientation of device 102-1 as one of the parameters.
Whether the taps are a valid input may be determined based on the parameters (block 608). When the taps correspond to a valid input, another device that is used together with the device to produce the taps may be identified (block 608). Depending on the implementation, block 608 may be performed in a number of ways. For example, in one implementation, tap detector 506 may communicate with all nearby devices to determine which device has been recently tapped. Consequently, each of the nearby devices may determine whether it has been tapped in a similar manner to that described above with respect to device 102-1. If a nearby device has been tapped, the nearby device may transmit parameters (e.g., time between two consecutive taps) that characterize its own taps to device 102-1. Tap detector 506 in device 102-1 may compare the received parameters to the parameters that are obtained at block 606. If they match, tap detector 506 may conclude that the taps represent valid user input and identify the nearby device as the other device that has been used to produce the taps.
In a different implementation, device 102-1 may broadcast the parameters and/or tap patterns to nearby tap-enabled devices. Each of the nearby tap-enabled devices may attempt to match the received parameters and/or the tap patterns to its own parameters and/or tap patterns. If there is a match, the nearby device may communicate with device 102-1 to identify itself and to indicate that the taps are valid user input. For example, the nearby device may signal device 102-1 with one or more beeps (e.g., two beeps) indicating a pairing of the two devices.
In different implementations, either device 102-1 or the nearby device may initiate the determination whether the taps are valid input and/or identify itself to the other device.
In one implementation, matching the parameters may involve matching the physical locations of the taps on device 102-1 and on other devices. For example, assume that device 102-1 is tapped simultaneously by two or three nearby devices. In such an implementation, a user may indicate which of the nearby devices may receive what information from device 102-1 by tapping device 102-1 with each of the nearby devices on predetermined locations of housing 316. For example, the user may tap device 102-1 with a device that is to operate as a right speaker on the right side of housing 316 of device 102-1.
In the above implementations, validating the taps as user input may involve establishing a communication between device 102-1 and other devices via a wireless network (e.g., piconet). In one implementation, when the taps are detected, device 102-1 and another device may connect via Bluetooth or WiFi, search for a temporary, unique network identifier (e.g., a name configured using an encryption algorithm in both devices), and use one of the parameters (e.g., time between two consecutive taps) as a unique password/key to establish a connection with one another. Once a communication is established, device 102-1 and the other device may retake or use their original device names or network identifiers. In a different implementation, validating the taps may involve causing a nearby device that is already in communication with device 102-1 to respond with one or more of the parameters or to validate the taps in any number of different ways.
Interaction with the other device may be performed (block 610). After device 102-1 determines that the taps are valid user input and identifies the other device used to produce the taps, tap-enabled application 508 in either device 102-1 or the other device may establish or terminate communication with one another. The interaction between the devices may depend on specifics of tap-enabled application 508 on device 102-1 and/or the other device, as illustrated in the examples described below. For example, if device 102-1 already has established a communication link with the other device, device 102-1 and the other device may terminate the communication link, interpreting taps as a cue or signal to decouple device 102-1 and the other device.
In some implementations, a process for establishing communication between and interacting with different devices based on taps may involve more than two devices. For example, in one implementation, devices 102-1 and 102-2 may be used in conjunction with a laptop. Tapping each of two devices 102-1 and 102-2 to different sides of the laptop may enable devices 102-1 and 102-2 to operate as a right-hand speaker and a left-hand speaker for the laptop.
In the example, instead of selecting a particular peripheral based on a menu system, the user may select headset 202-1 to use with device 102-1 by simply tapping headset 202-1 to device 102-1.
As illustrated in
In a different implementation, when headset 202-1 is tapped against device 102-2 (or vice versa), headset 202-1 and device 102-2 terminate the communication between headset 202-1 and device 102-2. When a user taps headset 202-1 against 101-1, headset 202-1 and device 101-1 start a new communication session with one another.
Switching between different peripherals and/or I/O devices in the manner described above may be convenient and easy for users. Furthermore, such switching may avoid multi-point connections that require significantly more power to maintain.
As shown in
As shown in
When device 902-2 is tapped against device 902-1, device 902-1 confirms that the taps are valid user input and identifies device 902-2 as the device that has been used to produce the taps. Subsequently, when the user touches a thumbnail image 1102 with finger 1002 as shown in
The above example shows that causing a device to communicate with another device and/or interact with the other device based on taps may be convenient (e.g., there is no need for a user to navigate through a menu system on display 304), safe, (e.g., a communication link between the devices is not exposed to computer virus, spam, and/or other unwanted network data/messages until the taps are detected), and/or economical (e.g., no need to expend energy on maintaining a communication link until taps are detected).
The foregoing description of implementations provides illustration, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the teachings.
For example, while a series of blocks has been described with regard to an exemplary process illustrated in
In yet another example, tap-enabled application 508 may send different types of information to tapped devices, such as information related to transferring electronic payment/cash, coupons, contact information, images, pieces of music (e.g., songs), text, etc. In some implementations, specific location of the taps may determine what information is transferred. For example, if device 102-1 is tapped on a side, device 102-1 may send a picture, and if device 102-1 is tapped on the top near speaker 302, device 102-1 may share a song with another device.
It will be apparent that aspects described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects does not limit the invention. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the aspects based on the description herein.
It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components, or groups thereof.
Further, certain portions of the implementations have been described as “logic” that performs one or more functions. This logic may include hardware, such as a processor, an application specific integrated circuit, or a field programmable gate array, software, or a combination of hardware and software.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification.
No element, act, or instruction used in the present application should be construed as critical or essential to the implementations described herein unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Number | Date | Country | Kind |
---|---|---|---|
11972712 | Jan 2008 | US | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB08/51132 | 3/26/2008 | WO | 00 | 1/28/2011 |
Number | Date | Country | |
---|---|---|---|
61013180 | Dec 2007 | US |