The present invention generally relates to the portable computing devices, and more particularly, to portable computing device keyboards.
Portable computing devices (PCDs) are ubiquitous. These devices may include cellular telephones, portable digital assistants (PDAs), portable game consoles, palmtop computers, and other portable electronic devices. Many portable computing devices include a keyboard, either a mechanical keyboard, a virtual keyboard, or a combination thereof. Virtual keyboards may be presented via a touch screen display and may be used to input text, numbers, and other characters to the portable computing device. Oftentimes, these keyboards may be difficult to use. Further, the virtual keyboards may occupy too much screen and may detract from the user experience when using a portable computing device.
Accordingly, what is needed is an improved keyboard for a PCD.
A keyboard for a portable computing device (PCD) is disclosed and may include a first quadrantal portion disposed on a left side of a central axis, wherein the first quadrantal portion spans approximately zero degrees to approximately ninety degrees and wherein the first quadrantal portion comprises a first plurality of keyboard buttons and a second quadrantal portion disposed on a right side of a central axis, wherein the second quadrantal portion spans approximately ninety degrees to one hundred eighty degrees and wherein the second quadrantal portion comprises a second plurality of keyboard buttons.
In a particular aspect, the first plurality of keyboard buttons within the first quadrantal portion may be arranged in a first plurality of arced button rows and the second plurality of keyboard buttons within the second quadrantal portion may be arranged in a second plurality of arced button rows. Further, the first plurality of arced button rows may be concentric around a vertex of the first quadrantal portion and the second plurality of arced button rows may be concentric around a vertex of the second quadrantal portion.
The first plurality of arced button rows may include a first arced button row, a second arced button row, a third arced button row, a fourth arced button row, a fifth arced button, a sixth arced button row, or a combination thereof. The first arced button row may include a first button labeled “ENTER”. The second arced button row may include a first button labeled “!@*” and a second button labeled “SHIFT”. The third arced button row may include a first button labeled “Z”, a second button labeled “X”, a third button labeled “C”, and a fourth button labeled “V”. The fourth arced button row may include a first button labeled “A”, a second button labeled “S”, a third button labeled “D”, a fourth button labeled “F”, and a fifth button labeled “G”. The fifth arced button row may include a first button labeled “Q”, a second button labeled “W”, a third button labeled “E”, a fourth button labeled “R”, and a fifth button labeled “T”. Further, the sixth arced button row may include a first button labeled “1”, a second button labeled “2”, a third button labeled “3”, a fourth button labeled “4” and a fifth button labeled “5”; or any combination thereof. In this aspect, the first quadrantal portion may include a first space button.
The second plurality of arced button rows may include a first arced button row, a second arced button row, a third arced button row, a fourth arced button row, a fifth arced button, a sixth arced button row, or a combination thereof. The first arced button row may include a first button labeled “ENTER”. The second arced button row may include a first button labeled “SHIFT” and a second button labeled “FUNC”. The third arced button row may include a first button labeled “B”, a second button labeled “N”, a third button labeled “M”, and a fourth button labeled “RETURN”. The fourth arced button row may include a first button labeled “H”, a second button labeled “J”, a third button labeled “K”, a fourth button labeled “L”, and a fifth button labeled “CLEAR”. The fifth arced button row may include a first button labeled “Y”, a second button labeled “U”, a third button labeled “I”, a fourth button labeled “O”, and a fifth button labeled “P”. Moreover, the sixth arced button row may include a first button labeled “6”, a second button labeled “7”, a third button labeled “8”, a fourth button labeled “9” and a fifth button labeled “0”; or any combination thereof. In this aspect, the second quadrantal portion may include a second space button.
In a particular aspect, the keyboard may be a virtual keyboard and the first plurality of keyboard buttons may include a first plurality of soft buttons and the second plurality of keyboard buttons may include a second plurality of soft buttons. Further, in this aspect, the keyboard may be movable between a maximized configuration in which all soft buttons are displayed and a minimized configuration in which a portion of soft buttons are displayed.
In another aspect, the keyboard may be a mechanical keyboard and the first plurality of keyboard buttons may include a first plurality of mechanical buttons and wherein the second plurality of keyboard buttons may include a second plurality of mechanical buttons. In this aspect, the keyboard may also include a space button between the first quadrantal portion and the second quadrantal portion. Additionally, the keyboard may include a mouse pad between the first quadrantal portion and the second quadrantal portion.
In another aspect, a method for managing a virtual keyboard is disclosed and may include detecting whether a button is pressed and determining a contact patch size associated with a user digit pressing the button. The method may also include determining a button size associated with the button, determining whether the button size satisfies an optimized condition, querying a user to re-size the button when the button size does not satisfy the optimized condition, and automatically re-sizing the button so the button size satisfies the optimized condition. Further, the method may include querying a user to re-size all buttons and automatically re-sizing all buttons based on an optimized button size.
In a particular aspect, the method may include comparing the contact patch size to the button size in order to determine whether the button size satisfies the optimized condition. The button size may be optimized when the button size is at least same as the contact patch size. Further, the button size may be optimized when the button size is no greater than one and one-half times the contact patch size.
In yet another aspect, a portable computing device is disclosed and may include means for detecting whether a button is pressed and means for determining a contact patch size associated with a user digit pressing the button. The portable computing device may also include means for determining a button size associated with the button, means for determining whether the button size satisfies an optimized condition, means for querying a user to re-size the button when the button size does not satisfy the optimized condition, and means for automatically re-sizing the button so the button size satisfies the optimized condition. Further, the portable computing device may include means for querying a user to re-size all buttons and means for automatically re-sizing all buttons based on an optimized button size.
In a particular aspect, the portable computing device may include means for comparing the contact patch size to the button size in order to determine whether the button size satisfies the optimized condition. The button size may be optimized when the button size is at least same as the contact patch size. Further, the button size may be optimized when the button size is no greater than one and one-half times the contact patch size.
In still another aspect, a portable computing device is disclosed and may include a processor that may be operable to detect whether a button is pressed and determine a contact patch size associated with a user digit pressing the button. The processor may be further operable to determine a button size associated with the button, determine whether the button size satisfies an optimized condition, query a user to re-size the button when the button size does not satisfy the optimized condition, and automatically re-size the button so the button size satisfies the optimized condition. Further, the processor may be operable to query a user to re-size all buttons and automatically re- size all buttons based on an optimized button size.
In a particular aspect, the processor may be operable to compare the contact patch size to the button size in order to determine whether the button size satisfies the optimized condition. The button size may be optimized when the button size is at least same as the contact patch size. Further, the button size may be optimized when the button size is no greater than one and one-half times the contact patch size.
In yet another aspect, a computer program product is disclosed and may include a computer-readable medium. The computer-readable medium may include at least one instruction for detecting whether a button is pressed and at least one instruction for determining a contact patch size associated with a user digit pressing the button. The computer-readable medium may also include at least one instruction for determining a button size associated with the button, at least one instruction for determining whether the button size satisfies an optimized condition, at least one instruction for querying a user to re-size the button when the button size does not satisfy the optimized condition, and at least one instruction for automatically re-sizing the button so the button size satisfies the optimized condition. Further, the computer-readable medium may include at least one instruction for querying a user to re-size all buttons and at least one instruction for automatically re-sizing all buttons based on an optimized button size.
In a particular aspect, the computer-readable medium may include at least one instruction for comparing the contact patch size to the button size in order to determine whether the button size satisfies the optimized condition. The button size may be optimized when the button size is at least same as the contact patch size. Further, the button size may be optimized when the button size is no greater than one and one-half times the contact patch size.
In the figures, like reference numerals refer to like parts throughout the various views unless otherwise indicated.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
In this description, the term “application” may also include files having executable content, such as: object code, scripts, byte code, markup language files, and patches. In addition, an “application” referred to herein, may also include files that are not executable in nature, such as documents that may need to be opened or other data files that need to be accessed.
The term “content” may also include files having executable content, such as: object code, scripts, byte code, markup language files, and patches. In addition, “content” referred to herein, may also include files that are not executable in nature, such as documents that may need to be opened or other data files that need to be accessed.
As used in this description, the terms “component,” “database,” “module,” “system,” and the like are intended to refer to a computer-related entity, either hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a computing device and the computing device may be a component. One or more components may reside within a process and/or thread of execution, and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components may execute from various computer readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal).
Referring initially to
In a particular aspect, as depicted in
Referring now to
As shown in
As shown, the vertex 310 of the first quadrantal portion 302 may be substantially aligned with a lower left corner of the display 108 on the PCD 100. Further, the first straight side 312 of the first quadrantal portion 302 may extend partially along a bottom edge of the display 108 of the PCD 100. Also, the second straight side 314 of the first quadrantal portion 302 may extend partially along a left edge of the display 108 of the PCD 100.
In a particular aspect, each of the plurality of buttons may be labeled with a number, a character, a symbol, or a combination thereof. For example, the first arced button row 318 may include a first button labeled “ENTER”. The second arced button row 320 may include a first button labeled “!@*” and a second button labeled “SHIFT”. The third arced button row 322 may include a first button labeled “Z”, a second button labeled “X”, a third button labeled “C”, and a fourth button labeled “V”. The fourth arced button row 324 may include a first button labeled “A”, a second button labeled “S”, a third button labeled “D”, a fourth button labeled “F”, and a fifth button labeled “G”. The fifth arced button row 326 may include a first button labeled “Q”, a second button labeled “W”, a third button labeled “E”, a fourth button labeled “R”, and a fifth button labeled “T”. Also, the sixth arced button row 328 may include a first button labeled “1”, a second button labeled “2”, a third button labeled “3”, a fourth button labeled “4” and a fifth button labeled “5”. As shown, the first quadrantal portion 302 of the virtual keyboard 300 may also include a first space button 330.
As illustrated in
As shown, the vertex 340 of the second quadrantal portion 304 may be substantially aligned with a lower right corner of the display 108 on the PCD 100. Further, the first straight side 342 of the second quadrantal portion 304 may extend partially along a bottom edge of the display 108 of the PCD 100. Also, the second straight side 344 of the second quadrantal portion 304 may extend partially along a right edge of the display 108 of the PCD 100.
In a particular aspect, each of the plurality of buttons may be labeled with a number, a character, a symbol, or a combination thereof. For example, the first arced button row 348 may include a first button labeled “ENTER”. The second arced button row 350 may include a first button labeled “SHIFT” and a second button labeled “FUNC”. The third arced button row 352 may include a first button labeled “B”, a second button labeled “N”, a third button labeled “M”, and a fourth button labeled “RETURN”. The fourth arced button row 354 may include a first button labeled “H”, a second button labeled “J”, a third button labeled “K”, a fourth button labeled “L”, and a fifth button labeled “CLEAR”. The fifth arced button row 356 may include a first button labeled “Y”, a second button labeled “U”, a third button labeled “I”, a fourth button labeled “O”, and a fifth button labeled “P”. Also, the sixth arced button row 358 may include a first button labeled “6”, a second button labeled “7”, a third button labeled “8”, a fourth button labeled “9” and a fifth button labeled “0”. As shown, the second quadrantal portion 304 of the virtual keyboard 300 may also include a second space button 360.
In a particular aspect, when each button is pressed, the text, number, or character corresponding to the respective button may be presented on the display 108. The case of any letter may be altered by pressing a shift button before pressing a selected button. Further, in a particular aspect, the virtual keyboard 300 may be moved between a maximized configuration shown in
In a particular aspect, as described herein, button sizes may be automatically optimized based on a size of a user's digit (finger or thumb), i.e., a size of a contact patch of the user's digit with the touch screen display 108. Alternatively, button sizes may be manually changed. A user may select a button and then, select a button size associated with the button. Each button may have several sizes, e.g., small, medium, large, etc. Alternatively, each button may have an infinite number of sizes between a smallest sized and a largest size. A button size may be altered by selecting a button and then, dragging a corner of a button or by dragging a slider associated with a button. All button sizes may be changed simultaneously by changing a size of a quadrantal portion 302, 304 of the virtual keyboard 300.
In another aspect, the location of the first quadrantal portion 302 or the location of the second quadrantal portion 304 within the touch screen display 108 may be altered by dragging either the first quadrantal portion 302 or the second quadrantal portion 304 within the touch screen display 108. Further, by dragging the first quadrantal portion 302 onto the second quadrantal portion 304, or by dragging the second quadrantal portion 304 onto the first quadrantal portion 302, the virtual keyboard 300 may revert to a one-piece, generally rectangular QWERTY keyboard.
As shown in
As shown, the vertex 510 of the first quadrantal portion 502 may be substantially aligned with a lower left corner of the display 108 on the PCD 100. Further, the first straight side 512 of the first quadrantal portion 502 may extend partially along a bottom edge of the display 108 of the PCD 100. Also, the second straight side 514 of the first quadrantal portion 502 may extend partially along a left edge of the display 108 of the PCD 100.
In a particular aspect, each of the plurality of buttons may be labeled with a number, a character, a symbol, or a combination thereof. For example, the first arced button row 518 may include a first button labeled “ENTER”. The second arced button row 520 may include a first button labeled “!@*” and a second button labeled “SHIFT”. The third arced button row 522 may include a first button labeled “Z”, a second button labeled “X”, a third button labeled “C”, and a fourth button labeled “V”. The fourth arced button row 524 may include a first button labeled “A”, a second button labeled “S”, a third button labeled “D”, a fourth button labeled “F”, and a fifth button labeled “G”. The fifth arced button row 526 may include a first button labeled “Q”, a second button labeled “W”, a third button labeled “E”, a fourth button labeled “R”, and a fifth button labeled “T”. Also, the sixth arced button row 528 may include a first button labeled “1”, a second button labeled “2”, a third button labeled “3”, a fourth button labeled “4” and a fifth button labeled “5”.
As illustrated in
As shown, the vertex 540 of the second quadrantal portion 504 may be substantially aligned with a lower right corner of the display 108 on the PCD 100. Further, the first straight side 542 of the second quadrantal portion 504 may extend partially along a bottom edge of the display 108 of the PCD 100. Also, the second straight side 544 of the second quadrantal portion 504 may extend partially along a right edge of the display 108 of the PCD 100.
In a particular aspect, each of the plurality of buttons may be labeled with a number, a character, a symbol, or a combination thereof. For example, the first arced button row 548 may include a first button labeled “ENTER”. The second arced button row 550 may include a first button labeled “SHIFT” and a second button labeled “FUNC”. The third arced button row 552 may include a first button labeled “B”, a second button labeled “N”, a third button labeled “M”, and a fourth button labeled “RETURN”. The fourth arced button row 554 may include a first button labeled “H”, a second button labeled “J”, a third button labeled “K”, a fourth button labeled “L”, and a fifth button labeled “CLEAR”. The fifth arced button row 556 may include a first button labeled “Y”, a second button labeled “U”, a third button labeled “I”, a fourth button labeled “O”, and a fifth button labeled “P”. Also, the sixth arced button row 558 may include a first button labeled “6”, a second button labeled “7”, a third button labeled “8”, a fourth button labeled “9” and a fifth button labeled “0”.
As illustrated in
In a particular aspect, the virtual keyboard 500 may be moved between a maximized configuration shown in
In a particular aspect, as described herein, button sizes may be automatically optimized based on a size of a user's finger, i.e., a size of a contact patch of the user's finger with the touch screen display 108. Alternatively, button sizes may be manually changed. A user may select a button and then, select a button size associated with the button. Each button may have several sizes, e.g., small, medium, large, etc. Alternatively, each button may have an infinite number of sizes between a smallest sized and a largest size. A button size may be altered by selecting a button and then, dragging a corner of a button or by dragging a slider associated with a button. All button sizes may be changed simultaneously by changing a size of a quadrantal portion 502, 504 of the virtual keyboard 500.
In another aspect, the location of the first quadrantal portion 502 or the location of the second quadrantal portion 504 within the touch screen display 108 may be altered by dragging either the first quadrantal portion 502 or the second quadrantal portion 504 within the touch screen display 108. Further, by dragging the first quadrantal portion 502 onto the second quadrantal portion 504, or by dragging the second quadrantal portion 504 onto the first quadrantal portion 502, the virtual keyboard 500 may revert to a one-piece, generally rectangular QWERTY keyboard.
In a particular aspect, the upper housing portion 704 is movable relative to the lower housing portion 706. Specifically, the upper housing portion 704 may be slidable relative to the lower housing portion 706. As shown in
As illustrated, the multi-button keyboard 720 may include a first quadrantal portion 722 and a second quadrantal portion 724. The first quadrantal portion 722 may be configured similar to the first quadrantal portion 302 described in conjunction with
As shown in
Referring now to
In a particular aspect, the upper housing portion 804 is movable relative to the lower housing portion 806. Specifically, the upper housing portion 804 may be slidable relative to the lower housing portion 806. As shown in
As illustrated, the multi-button keyboard 820 may include a first quadrantal portion 822 and a second quadrantal portion 824. The first quadrantal portion 822 may be configured similar to the first quadrantal portion 302 described in conjunction with
As shown in
Referring to
As illustrated in
As further illustrated in
As depicted in
In a particular aspect, one or more of the method steps described herein may be stored in the memory 944 as computer program instructions. These instructions may be executed by a processor 924, 926 in order to perform the methods described herein. Further, the processors 924, 926, the memory 944, the keyboard management module 982, the display controller 928, the touch screen controller 930, or a combination thereof may serve as a means for executing one or more of the method steps described herein in order to control a virtual keyboard displayed at the display/touch screen 932.
Referring now to
From block 1006 or block 1008, the method 1000 may proceed to decision 1010 and the keyboard management module may detect whether a button has been pressed. If so, the method 1000 may continue to block 1012 and the keyboard management module may determine a contact patch size associated with the user's finger tip. In another aspect, the contact patch size may be associated with the tip of a stylus. The contact patch size may be determined by determining which portion of the touch screen display is activated when the user touches the touch screen with his or her finger, or stylus, and determining the area of that portion of the touch screen that is activated when touched by the user.
Moving to block 1014, the keyboard management module may determine a size of the button pressed by the user. At decision 1016, the keyboard management module may determine whether the button size is equal to an optimized condition. The keyboard management module may determine whether the button size is equal to the optimized condition by comparing the contact patch size with the button size. The button size may be considered optimized if the button size is at least same as the contact patch size, but no greater than one and one-half times the size of the contact patch size.
The optimization of the button sizes may vary depending on the type of button and the presence of other buttons near a particular button. For example, a button such as a space button may have a much larger size, e.g., two times, three times, etc., of the contact patch of the user finger. Other buttons that are less frequently used, e.g., number buttons may be optimized when they are in a range of seventy-five percent (75%) and one hundred twenty-five percent (125%) of the contact patch size. When greater room exists between adjacent buttons, the optimization may be in a range of one hundred percent (100%) and two hundred percent (200%) of the contact patch size.
If the button size is not equal to an optimized condition, the method 1000 may move to block 1018 and keyboard management module may query the user to re-size the button. At decision 1020, the keyboard management module may determine whether the user wishes to re-size the button, e.g., based on the query. If so, the method 1000 may proceed to block 1022 and the button may be re-sized so that the button size satisfies the optimized condition described above. Thereafter, the method 1000 may proceed to block 1024 of
Returning to decision step 1010, if a button is not pressed, the method 1000 may move directly to decision 1030 of
At block 1024 of
At decision 1030, the keyboard management module may determine whether a button is manually selected, e.g., by double tapping the button. If a button is selected, the method 1000 may proceed to decision 1032 and the keyboard management module may determine whether a size of the button has been changed, e.g., manually. A user may manually change the size of a button by dragging a corner of a button, dragging a slider, inputting a size, or a combination thereof.
If the size of the selected button is changed, the method 1000 may proceed to lock 1034 and the new size of the button may be locked by the keyboard management module. Then, the method 1000 may proceed to decision 1036. Returning to decision 1032, if the size is not changed, the method 1000 may move directly to decision 1036.
At decision 1036, the keyboard management module may determine a position of the selected button is changed. The position may be changed by dragging to the selected button to a new location on the virtual keyboard. If the position is changed, the method 1000 may proceed to block 1038 and the keyboard management module may lock the new position of the selected button. Returning to decision 1036, if the position is not changed, the method 1000 may proceed directly to decision 1040 of
At decision 1040, the keyboard management module may determine whether the user has selected a delete button option. If so, the method 1000 may continue to block 1042 and the keyboard management module may receive a button selection. Thereafter, the keyboard management module may delete the selected button at block 1044. The method 1000 may then continue to decision 1046. Returning to decision 1040, if the user has not selected a delete button option, the method 1000 may move directly to decision 1046.
At decision 1046, the keyboard management module may determine whether the user has selected an add button option. If so, the method 1000 may continue to block 1048 and the keyboard management module may display a button menu. Thereafter, at block 1050, the keyboard management module may receive a button selection. At block 1052, the keyboard management module may add the selected button. The method 1000 may then continue to decision 1054. Returning to decision 1046, if the user has not selected an add button option, the method 1000 may move directly to decision 1054.
At decision 1054, the keyboard management module may determine whether the user has selected a reset option. If so, the method 1000 may continue to block 1056 and the keyboard management module may reset the size of each button to a factory size or a provisioned size. Next, at block 1058, the keyboard management module may reset the location of each button to a factory location or a provisioned location. The method 1000 may then end. Returning to decision 1054, if the user does not select a reset option, the method 1000 may end.
It is to be understood that the method steps described herein need not necessarily be performed in the order as described. Further, words such as “thereafter,” “then,” “next,” etc. are not intended to limit the order of the steps. These words are simply used to guide the reader through the description of the method steps.
With the configuration described herein, the keyboards disclosed herein provide a more ergonomic keyboard than traditional linear QWERTY keyboards. The arced shape of each quadrantal portion allows a user to move his or her thumbs in a natural angular motion, provided by the carpometacarpal (CMC) joints of the thumb, when utilizing the keyboard. Further, by optimizing the size of the virtual buttons of the keyboard based on the contact patch size of the user's thumb (or finger), the ease of using the keyboard is substantially increased. Moreover, the shape of the keyboard disclosed herein minimizes the amount of display screen used by the keyboard when presented as a virtual keyboard on a touch screen display. Additionally, the locations of buttons, or the layout of the buttons, may be customized to meet individual needs.
In one or more exemplary aspects, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to carry or store desired program code in the form of instructions or data structures and that may be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
Although selected aspects have been illustrated and described in detail, it will be understood that various substitutions and alterations may be made therein without departing from the spirit and scope of the present invention, as defined by the following claims.