The claimed subject matter relates a method of, and system for, configuring a keyboard model. In a preferred embodiment, there is provided a system for creating one or more keyboard models on touch screen technology devices using haptic feedback and sound modeling.
Which computer keyboard to use is an intensely personal choice and many people try various different models and makes before finding one that suits their needs. Even then, choices are often a compromise based on the designs that are currently available on the market. The size, shape and feedback of the keys of a keyboard may not be absolutely perfect for each user and this can be compounded for those users with disabilities or for users of certain specialized applications. For many users, their current keyboard is a compromise over the ideal keyboard that they would like to use. It is also the case that keyboards are notoriously easy to break and owing to their low cost are often too cheap to be worth repairing and are simply replaced. These discarded keyboards thus end up forming a large part of the IT waste that is generally buried in landfill, which is environmentally highly undesirable.
According to a first aspect of the claimed subject matter, there is provided techniques of configuring a keyboard model, the techniques comprising receiving a keyboard model comprising a plurality of key definitions, each key definition defining at least key function, key location and key size, presenting an output generated from the keyboard model, receiving a user input comprising one or more changes to the keyboard model, updating the keyboard model according to the received user input, and saving the updated keyboard model.
Owing to the disclosed technology, it is possible to provide a keyboard model that can be user configured and can be stored for current and future use. Any device that has the capability to accept the keyboard model can then be configured to provide a keyboard that will suit the specific user, as the user has created the keyboard model to suit their personal choices of key location and size etc. The user can modify the keyboard model at any time if they wish to change the current keyboard configuration. For example, the user can arrange the location of the keys within the keyboard model and can change the size of the keys, so that not all keys need, to be the same size or to use the size that is currently conventional on existing keyboards.
Modern tablet computers and smart phones are often provided with touch screens that can then be configured using the keyboard model that the user has created. The keyboard model can define a large number of different characteristics of the keyboard and of the individual keys and the device that is being configured according to the keyboard model will apply the keyboard model as far as it is able. Any characteristics that are included within the keyboard model that cannot be implemented by the user's device will simply be ignored. For example, the keyboard model may define sound outputs as feedback for specific keys, but if the device that is being configured, according to the keyboard model does not have any audio output means then this part of the keyboard model will be simply ignored.
Advantageously, recent developments in haptic feedback can be harnessed using the keyboard model and it is possible to model a keyboard using a tactile haptic feedback enabled touch screen, using a combination of physical, haptic feedback and sound which would feel to the user like using a real physical keyboard. A combination of physical haptic feedback and sound can be used to model different types of keys onto a touch screen featuring tactile haptic feedback. Users can then easily modify their current keyboard without having to change the physical unit.
In one embodiment, the height, resistance and sound of each key on the keyboard can be modeled, and changing the key would simply be a matter of uploading a new model to the touch screen or changing software preferences manually. In addition, in this embodiment, key size, shape, position and virtual spring point can also be changed, allowing complete customization for each user. For example, a screen could, be placed into an edit mode, and by simply dragging and dropping keys to move, or multi-touch gestures to change key sizes could be utilized. A user can therefore modify their keyboard model at any time and can save the new model or replace the existing keyboard model with the new keyboard model.
Users may also then put together keyboard layouts not using the traditional QWERTY or DVORAK methods, which could be especially useful for people with disabilities, for example by providing oversized keys for the visually impaired, or the tactile haptic feedback could be used to generate Braille or other physically raised identification methods on the key surfaces. Other potential uses would be to produce keyboards for specialized applications where a different number of keys or specialized keys are required. For example, users who often need to produce text in a foreign language such as French could have keys assigned to specific characters such the é or the like, since most keyboards have space beyond the standard characters that is used for function keys and so on. The keyboard model contains key function for each key with the keyboard and the key function does not need to be a letter of the alphabet it could be a commonly used function like “save”.
Using a combination of emerging physical haptic feedback technology and sound models, a software model can be produced of a certain type of keyboard which can then be loaded onto a touch screen with the relevant hardware and software support. The physical and audible feedback can be encoded in the keyboard model and can vary on a key by key basis or can be applicable to all of the keys in the keyboard model. Audible feedback can be incorporated to assist users who have eyesight difficulties, for example. This audible feedback might be the name of key outputted to a user after they have pressed a key.
This summary is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features and advantages of the claimed subject matter will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description.
A better understanding of the claimed subject matter can be obtained when the following detailed description of the disclosed embodiments is considered in conjunction with the following figures.
The tablet computer 10 is displaying a keyboard 16, which is a conventional “QWERTY” keyboard, which is a very well-known keyboard layout to European, US and other English speaking users of keyboards, and originates in the design of typewriters from the 19th century. The vast majority of desktop computers are sold with a hardware “QWERTY” keyboard, in this keyboard configuration, the keys 18 are laid out in three rows, with the alphabet keys all the same size and shape and the letters arranged generally according to the frequency of use matching the preferred fingers of a user's hands. Other keyboard layouts are known and used for hardware keyboards that are theoretically improvements on the “QWERTY” keyboard.
The popularity of tablet computers has led to them being widely used in personal and business computing. The keyboard 16 allows the user to compose text on their tablet computer 10, as is conventional on desktop and laptop computers. The user will move their finger 14 to each key 18 of the keyboard 16 in turn and touch the screen 12, to compose their text, for an email message for example. The upper part 20 of the touch screen 12 displays the characters that the user is generating via their presses on the keys 18 of the keyboard 16. To indicate the specific key 18 that has been pressed, the image of that key 18 will be momentarily enlarged.
Although the keyboard 28 will default to the conventional “QWERTY” keyboard when in use, the desktop computer 22 is arranged so that a user can configure the keyboard 28 to any arrangement that they wish to use and this arrangement can be saved and reused on other devices, such as the tablet computer 10 of
The arrangement of the keys on the keyboard 28 is stored in a keyboard model that comprises a plurality of key definitions, each key definition defining at least key function, key location and key size. Key feedback and key shape can also be included in the keyboard model The user is able to configure a keyboard model as they desire the keyboard to look and feel. For example, the force feedback received from the haptic feedback keyboard 28 may be too great and the user can lower this feedback level, which will be stored in the keyboard model. If the keyboard model is applied to a device that cannot adjust the force feedback, such as the tablet computer 10 of
At step S3.3, the file is uploaded to a generic keyboard tablet, such as the tablet computer 10 of
At step S3.5, further configuration of the keyboard model is possible on the current device itself. The user may refine the keyboard model at any time, even when they are actually using a keyboard that has been configured according to their personal keyboard model. This interaction can be directly with the keyboard configuring the keyboard model (as in the
An example of part of a keyboard model 30 and a corresponding output 32 generated from the keyboard model 30 are shown in
The keys 18 in question are in two rows, with a top row of WERTY and a lower row of SDFG as in a standard “QWERTY” keyboard layout. Each row within the keyboard model 30 defines key function, key location, key size and. key spring point. The key location/position can be recorded in absolute x, y terms or can be expressed as a relative measurement relative to the previous key, for example. The key size is expressed as x, y side lengths, assuming that every key is rectangular, although there is no reason that more complicated key shapes cannot be accommodated. The spring point is expressed as co-ordinates relative to the key center.
The user has made two changes to the keyboard layout and these changes are shown in both the model 30b and in the corresponding output 32b. The keys “W” and “G” have been changed by the user. In the case of the “W” key, the user has increased the y dimension by 50% to make this key larger and easier to locate and press. This change is reflected in the size now showing as (1, 1.5) for the V key, which is the first row in the table of the keyboard model 30. In the case of the “G” key, the user has moved, the spring point away from the centre of the key and the final row in the table of the keyboard model 30 has the spring point at (0.3,0.3).
The height and pivot point of each key can be contained within the keyboard model that the user is configuring for their ideal keyboard. The user can adjust these values in just the same way as they can adjust the position and size of the keys 18. If the user is actually working with a haptic feedback keyboard 28 they can experiment with different types and positions of pivot points to see how this would change the actual keyboard they are using and find the values that suit them the best. The height of the individual keys on the haptic feedback keyboard 28 can also be adjusted in the same way.
Feedback from the keys 18 of the keyboard can also be contained within the keyboard model. While this can relate to the physical feedback, such as the location of the spring point and the amount of return pressure provided by the haptic feedback keyboard 28, other aspects of the feedback could also be included within the keyboard model. For example, specific sounds could be attached to specific keys or indeed the actual function of the key could be outputted each time it is pressed, in order to assist users who have eyesight difficulties. This would mean that when the key “W” is pressed, a confirmatory sound of the letter “W” is also outputted.
In response to the user opening the application that allows them to amend the current keyboard model, the user is presented with an output 32 that is generated from the keyboard model. The processor 26, via the keyboard 28, receives user input comprising one or more changes to the keyboard model, updates the keyboard model according to the received user input, and then saves the updated keyboard model The new keyboard model could overwrite the previous keyboard model or could be saved as a new version that is available as an alternative to the original existing keyboard model. A user can create as many different keyboard models as they wish and load and use different keyboard models at different times.
It is also possible for users to make their keyboard models available to other users. For example, In a business environment, a user may have designed a keyboard model that is specific to a particular type of work such as a specific language in translation or software development work. The user can save this keyboard model with a suitable filename and. store the keyboard model in a predetermined place such as a keyboard model directory. This will allow other users to find the keyboard model and use it themselves in their work. Other users can download these keyboard models and amend them further themselves, if they wish to improve or customize the keyboard models.
As will be appreciated by one skilled in the art, aspects of the claimed subject matter may be embodied as a system, method or computer program product. Accordingly, aspects of the claimed subject matter may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the claimed subject matter may take the form of a computer program, product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RP, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the claimed subject matter may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network. (LAN) or a wide area network (WAN), or the connection may be made to an external computer (tor example, through the Internet, using an internet Service Provider).
Aspects of the claimed subject matter are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the claimed subject matter. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium, produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the claimed subject matter. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved, it will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Number | Date | Country | Kind |
---|---|---|---|
1219838.8 | Nov 2012 | GB | national |