Conventional keyboards for computers, typewriters, or portable electronics typically place substantially all input keys in a single plane, and within one contiguous rectangular shape. The plane of a conventional keyboard may be flat, or angled towards or away from the operator.
A number of ergonomic keyboards have introduced three-dimensional curves to the keyboard, in order to better fit the natural curves described by flexing and contracting the digits of the human hand, including both fingers and thumbs. Other keyboard makers have separated the keyboard into two or more components to allow the user to choose the hand separation distance and orientation. A few have combined these approaches.
Some keyboards permit adding foot pedals or remote switches. Others allow part of the keyboard to be detached, or allow adding and removing mouse or pointer devices. Many keyboards allow re-programming the input to a host computer that follows a given key being pressed.
Simple computer keyboards are constructed with a single switch array and a microcontroller that translates switch events into a protocol understood by the computing device. More complicated or split keyboards may add Integrated Circuit (IC) Input/Output (I/O) expanders to increase the number of inputs available to the keyboard's microcontroller, or to reduce the number of wires required to interconnect separate parts of the keyboard.
Some keyboards are constructed to allow auditory or haptic feedback, such as a solenoid or speaker click when a key is depressed.
Standard computer keyboards may lead typists to use awkward or non-neutral postures. These can lead to a variety of repetitive strain injuries. Ergonomic keyboards allow the typist to assume a more natural position, and may reduce the risk of injury.
Non-limiting and non-exhaustive embodiments of the invention are described with reference to the following drawings. In the drawings, like reference numerals refer to like parts throughout the various figures, unless otherwise specified, wherein:
The disclosed systems and methods permit construction of sophisticated ergonomic input devices that are customized for an operator. The devices are created from standardized modules, each of which contains an integrated circuit processor, One class of module, an “Interface module”, connects a collection of switches or other operator input sensing devices to a processor. This processor is also connected to a signal bearing medium used to communicate with other modules. The Interface module processor translates the activity of the input sensing devices into communications with other modules.
A second class of module, the “Parent module”, is connected to one or more Interface modules by shared communications media. A processor on the Parent module receives input sensor activity information from Interface modules, and sends signals based on this activity to an attached host computer, smart phone or electronic computing device. Both classes of modules may include sensory output devices such as lights, speakers or haptic actuators for providing feedback to the operator, and which may be activated by the local processor based on input sensor events.
Interface modules are affixed to a framework, mount, or base, and positioned so that the sensors or switches on each module are convenient for a specific range of motion of a specific part of the operator's body, and all modules are placed so as to allow the operator to maintain a comfort-able body position.
This range of possible placements and sensor positioning permits constructing input devices to fit a wide range of body types and debilities.
While ergonomic keyboards reduce health risks, the majority of keyboards sold are traditional models that fit within a rectangular plank shape, with keys in a regularly spaced grid. Some factors limit the adoption of ergonomic keyboards include that ergonomic keyboard present the consumer with a higher market price driven by low production volume and difficult assembly. The most contoured and customized keyboards require manual assembly and cost significantly more, and in some examples up to eighty times more, than mass market alternatives.
Keyboard manufacturers commonly produce only a few models of keyboard, which necessarily target physiometric averages rather than accommodating the extremes. Manufacturers have developed shaped Printed Circuit Boards (PCBs) that permit three-dimensional keyboard shapes, but these PCB shapes cannot be customized to a user, or adjusted subsequent to purchase.
These factors are added to the limitations common to standard, non-ergonomic keyboards: (1) in common matrix keyboards, all switches are polled at an equal priority, where the operator may prefer a faster response from specific key; (2) devices that provide feedback to the user after a keystroke can suffer from latency or indeterminate results when the keyboard processor is busy; (2) conventionally assembled keyboards require disassembly or replacement of a substantial majority of the keyboard in order to repair or alter an input switch; and (4) on a traditional matrix based keyboard, each location for a potential switch addition or modification must be planned in the factory. These keyboards do not allow the operator to remove unwanted switches, or to add switches not foreseen by the original manufacturer.
Without the ability to find and test a rare keyboard, or to alter a keyboard's fit after purchase, typists may avoid experimenting with new keyboard designs.
Although others have created ergonomic keyboards and other keyed input devices, various aspects of the disclosed modular systems and method are superior because they: (1) may be assembled, repaired and customized in the field by a non-specialist; (2) permit a wider range of ergonomic configurations, applicable to a wider range of physiological variations; (3) can readily be extended for use with body surfaces other than finger and/or thumb tips, including the palms, feet, or the chin, (4) decrease latency in detecting and responding to switch actions and sensory feedback; (5) permit sensory feedback localized to a digit, input sensor or region of the human body; (6) permit consolidating multiple types of input sensors into one input source for a computer, phone or other computing device; (7) reduce the need to create new PCBs for different models of keyboard; (8) can be used with multiple existing keyboard construction and assembly techniques, and are inter-operable with existing keyboard components; (9) can be constructed with low power, low-featured or inexpensive integrated circuits; and (10) permit prioritizing specific input sensors.
The disclosed methods and systems use a combination of modules to translate activity on keyboard switches or other input sensors to a computing device. The logical components and processes of this invention are described in
The parent module executes processes on the parent module processor to exchange data with other devices on the shared communications media (20), execute local functions such as mapping input sensor activity to a keystroke to be sent to the computing device (22), activating feedback devices connected to the parent module (24), and communicate with the computing device (26).
As shown in the block diagram of
In the perspective drawing of
For ease of construction, Interface module PCBs may be modular so that unwanted components may be removed. In one embodiment, modules may ship with perforations to allow half of the PCB to be removed. In one embodiment, detached sections of the PCB may be electrically reattached with jumper connections, for example, between the original and detached sections of the Interface module.
An interface module may contain output devices for haptic, visual or auditory feedback. These output devices may be per input device, as illustrated by LEDs (106) underneath switches (100a-c) or per module as illustrated by piezo speaker (110).
In operation, the operator activates switches or other types of input sensor through the motion of the operator's body. The operator's comfort is influenced both by the surface of the body used to actuate a sensor (the Contact Surface), and by the path the body must describe to activate the sensor.
The contact surface may be any outward surface of the operator's body capable of propelling a mechanical interface along an axis, or of activating an electronic sensor. Possible contact surfaces include (but are not limited to), the palm of the hand, the heel of a foot, the top, side or pad of a digit, etc. Where a body part can move on multiple axes (as in the thrusting, opening, and side to side movement of the jaw), one or more modules could be assigned to each independent axial movement, with sensors on each module placed for comfortable interaction with the applicable contact surface of the operator at that point in the operator's range of motion. Contact surfaces need not touch the input sensor, as any observable activity of the contact surface may be used by an input sensor. This includes measurable emission, absorption or reflecting of radiation from the contact surface, changes in sound, heat or displacement of air by the contact surface, changes in humidity, conductivity or texture of the contact surface, and any change in mechanical force transmitted through the contact surface.
Dedicating modules to a contact surface of the operator can be used to improve feedback to the operator. In one embodiment, for a contact surface of the tip of an operator's index finger, the interface module would be aligned under the path the operator's finger follows in front-back extension. Since the specific contact surface, in this case a specific fingertip, can only be in one location at a time, one haptic or audio feedback device on the module PCB is sufficient to provide rapid, distinct and local feedback for all operator actions by that digit within the selected range. Each module may be programmed with a distinctive pattern of feedback, so that in one example, the auditory tone played when an index finger depresses a switch is lower than the tone played when the smallest finger depresses a switch. Fingers are defined as all digits on the human hand, which for sake of clarity includes both fingers and thumbs, and may include portions of digits, such as one or more phalanges in the hand digits. Toes are defined as all digits on the human foot or portions of the phalanges in the human foot.
To accommodate the physiological range of the intended operator(s), one input device may require multiple shapes or conformations of Interface modules.
Object (403) depicts a minimal Parent module with connections to a computing device (412) and a processor to communicate with interface modules (410c). The Parent processor may be built into an interface module, so that in one embodiment, a single PCB hosts input sensors, feedback modules, a connection to the PC or electronic computing device host, and a signal media connection to other modules.
Unlike flat keyboards, or keyboards that use linkages to connect switches to keycaps, using interface modules permits switches to be placed at an angle that allows force to be transmitted from the body surface of the operator directly through the central axis of the switch. A combination of modules may be placed to allow a digit to press switches with different contact surfaces for different angles of force. In
The perspective illustration of
Switches and other keyboard input sensors are generally installed in a grid, which means any translation of one switch will cause neighboring switches to intersect, or that the moved switch may be unable to connect to pre-defined mounting points on a PCB. Adapter modules allow a new non-intersecting three-dimensional matrix to be constructed that is connected back to the two dimensional matrix of the interface module PCBs.
Adapters may also allow the use of switches or sensors that are not compatible with the base PCB. In
The combination of module placement and per-sensor height and angle adapters can be used to better match to the operator's comfortable range of motion. As an example, consider an operator who has had one or more phalanges of the index finger amputated. To overcome the distance in reach between the index and middle finger, the index finger interface module is elevated above that used for the middle finger. The center of the finger's range of motion shifts towards the body, and so the center of the interface module may likewise shift towards the body. The amputation also decreases the radius of the curve described by curling and extending the finger. Adapter modules are chosen to elevate keys in the rows below and above the home row, and may rotate the switches to better face the arc of the index finger. Depending on the amputation and how many of rows of switches are desired, at some point the contact surface for a row changes from the surface used for a downward motion to that used for a poking or inward-curling motion. When a height and rotation adapter cannot place a switch or sensor at the correct location to receive a poking or curling motion, an additional interface module can be added in that location.
Interface modules must communicate information about the activity of attached input sensors to the Parent module processor. This information may either be in the form of sensor state data, which describes the current position or value of a given input sensor, or in the form of a coded value shared between the Interface and Parent modules. Sensor state data depends on the type of sensor. The traditional electromechanical keyboard switch produces binary outputs, such as on-off, Boolean outputs, for example. Other types of mechanical travel, distance, or directional sensors may produce a range of values that correspond to the position of a reference point between determined maximum and minimum values. For example, electronic sensors, such as a temperature sensor, may have no moving component but can still receive input from the operator, such as by breathing on the heat sensor, for example.
Within each mounting structure, all interface modules are electrically connected using one or more signal bearing communications medium.
Interface modules may be configured to uniquely identify input sensors. First, each Interface module may be configured so that the Parent Module processor can uniquely identify it, i.e., the interface module is discrete from the other interface modules. In the example embodiment illustrated in
In one embodiment, the manufacturer may distribute collections of modules with non-overlapping IDs, and human readable indicators of each module's identifier. Alternately, the constructor may modify the module identifier by programming the module processor or setting an address by means of a hardware setting such as a jumper, solder pad, or dip switch. Alternately, the parent processor may calculate unique identifiers for each module, based on electrical or positional properties of the module. In one implementation, these module identifiers may be used by the Parent module to map modules to a list of communications protocols or a map of module switch identifiers to physical locations on the module.
The same communications medium may be extended between multiple, physically separated components of the input device. In
In one implementation, at least one of the communications media may also be used for programming interface modules.
In daily operation, the operator connects the input device to a PC, Tablet or other electronic computing device. Upon power-up, the Parent module of the input device begins communicating with all Interface modules, either by polling or by waiting for updates from the modules. When the operator depresses a key or interacts with a sensor, the processor on the corresponding interface board detects the sensor change. The processor may take local action, such as debouncing the event, and may change the state of local feedback devices such as LEDs or buzzers. If programmed to do so, the processor also sends data to the Parent processor, which in turn communicates with the computing device. The Parent processor may also receive updates from the computing device CPU (e.g. a request to update a caps lock switch state LED), and route them to the relevant interface module, optionally including an instruction to update the state of an output device. The Parent processor may also communicate with interface module processors in order to access storage or processing capacity on their processors or to update module feedback devices. The parent processor may be configured to alter the order in which data may be recovered from Interface modules, so as to prioritize polling certain input sensors. In one implementation, the Parent processor may track the frequency of event data from each module in order to dynamically re-prioritize traffic, if desired.
To create an ergonomic input device, Input modules are affixed to one or more mounting frames, structures or bases that allows the relative position of modules to remain constant. These structures may be designed or selected to permit further ergonomic adjustment by the constructor or the operator of the device. In one embodiment illustrated in
The constructor may start with the ergonomic requirements of the operator and work towards an ergonomic layout. In this case, they may obtain a set of ergonomic measurements or requirements for the device operator (1204), possibly using an automated service or human professional (1228) in some examples. The captured measurements may include, but are not limited to: the desired pronation of the operator's wrist; the desired front-back inclination of the input device; the desired inclinations of the operator's hands and forearms; the desired spacing between the operators hands; the desired spacing between the operator's forearms; the desired relative spacing between the operators limbs, such as the distance between a switch activated by the top of the left knee and a switch operated by the left middle finger; the desired rotation of the operator's finger tips around the middle fingers. The rotation of the operator's finger tips around the middle fingers can be described as the angles between a line described by connecting the operator's shoulders and a line described by connecting the distal phalanges of the index and smallest finger on one hand. In one implementation, the design for the relative placement of input sensors considers the assignment of keys to a specific contact surface of the operator, such as a finger pad, the comfortable path of that contact surface between input sensors, and the desired orientation of each key for most comfortable and ergonomically advantageous access by the operator.
Continuing the example, the constructor selects a base envelope or “blank” and customization technique for this input device (1206). For example, the constructor may start with the idea of a keyboard split into two board shaped sections to be milled out of wood or another material or combination of materials, as needed or desired. The combination of blank and customization technique is chosen to meet primary ergonomic goals, and to permit later modification. The constructor may be connected to a service to design new blanks (1230), or provided a catalog of existing forms (1232).
In our example, the operator selects the input sensors and feedback devices that are used for the device (1208), possibly from a determined catalog of parts (1234) if one is provided. This part selection constrains the possible types of layout and construction although in alternative examples no constraints are included in the part selection.
At this point, the constructor selects a layout (1210), a mechanical design for the placement, number and orientations of the switches, input sensors, and feedback devices used in an input device. They may also start with a common input device layout such as the “enhanced” 101 key IBM® PC/AT keyboard layout, the ANSI-INCITS 154-1988 keyboard layout, for example, or the 4×3 matrix of the telephone keypad. These are frequently modified to new designs, such as the “60%” reduced ANSI keyboard that is found on Apple® notebooks sold in the United States. Device layout need not be limited to a contiguous shape or a single plane. For one embodiment, the constructor could envision a set of 5 units, one for each foot, one for each hand, and one for the head. Each would have a set of sensors, feedback devices and device positioning appropriate for that part of the body. In the example where software is used to facilitate construction, the user may pick from an existing catalog of layouts (1236).
In the example of
Each construction technique introduces limits on how interface modules may be placed. For example, gluing modules in parallel to a planar surface prohibits rotating the modules around the front-back axis. For this reason, one input device is likely to use multiple construction techniques. In the example from
In one embodiment (
Developing the mapping between layout and modules is simplified if the constructor starts by arranging existing Interface modules. In one embodiment, this calculation is done with the aid of computer software, providing a computer aided design tool to pick modules, sensors and feedback devices from a library and place them in desired locations. The software verifies that each sensor and feedback device's location fits within the design requirements of the chosen base envelope and construction technique. After verifying a design, the software may allow the constructor to order required parts.
In one embodiment, constructors may use software to create a desired input device layout selecting input and feedback devices and their locations. They may then use the software to pick interface module shapes drawn from a catalog of available Interface modules shapes, (e.g.
In another embodiment, the constructor creates a desired input device layout using layout software, and then uses automated software to search for a collection of modules that match the constructor's design. Solving criteria may include: price, availability, the ability to connect to all sensors and feedback locations, wiring interconnections and the space needed to route between modules, ease of assembly, electrical considerations such as power and Radio Frequency Interference (RFI), structural concerns such as flexibility or rigidity, etc. Where a match is not possible, the software may suggest alterations. The software may also suggest additional PCB shapes or adapter modules that allow assembly of the constructor's design, and may connect the constructor with an online store or marketplace for purchasing these additional modules.
In another embodiment, the software may start with a model of the operator's physiognomy or a 3 dimensional model of the desired switch locations. The software may then seek the minimum total number of interface modules, such that: (1) all switches or sensors are assigned to an interface module; (2) the number of assigned inputs and outputs for each PCB is within the range provided by that PCB; (3) the front-back and left-right spacing between any two switches are acceptably close to that specified in the device design; (4) no parts of the interface modules intersect; and (5) all modules may be mounted using the chosen base framework.
During the design process, the designer or software considers the following constraints:
1. for input or feedback devices at different elevations to share a module, their up-down spacing must be substantially the same, or within reach of an adapter or connector that can connect the input or feedback device to the PCB.
2. for input or feedback devices at different rotations to share a module, the rotation must be within the range that can be accommodated by the sensor leads or an adapter between the sensor and the interface module PCB.
3. when sensory feedback devices are used, and it is desirable to share feedback for a given contact surface of the operator, all switches activated by the same operator contact surface should use the same module.
If the desired arrangement is not possible with a given set of modules, the software may suggest different parts or adjustment adapters and may allow the constructor to purchase these adapters from an online marketplace (1220). The software may also suggest new PCB shapes for modules that allows assembly of the constructor's design (1218) and connects the constructor to a service for creating new modules (1244).
The constructor then customizes the base envelope of the input device, altering the framework, base or structure so that the interface boards can be held in the necessary orientation and relative positions. In one embodiment, the software provides blueprints, Computer Aided Design, customization steps or 3D printing files to the constructor, as an output of the computer software, or from an online marketplace.
In one embodiment, the software may allow the operator to purchase interface modules from an online store (1246). Part of the ordering process may include selecting unique IDs for each module, so that IDs match the desired assembly pattern. For example, interfaces in a 4 column design would have IDs 1 through 4 programmed in at the factory or retailer and labeled for ease of assembly. This step simplifies mapping the physical layout to the logical, especially if information from the device construction software is passed to the software used to create this mapping.
During assembly (1222), the constructor electrically connects all interface modules to one or more communications media (
Before or after assembly, the constructor programs each interface module with any desired behavior that remains local to the module (1224). This may include patterns of sensory feedback (such as notes, tones, or lighting patterns), or complex local behavior such as actions that depend on the timing of keypresses or combinations of local keys. This programming may be instantiated by using local hardware settings such as dip switches, solder pads or jumpers to choose between pre-programmed behavior, by modifying electronic storage such as flash storage, or other electronic configuration settings on the device, or by re-programming the module processor. In one embodiment, this programming is done at the factory or retailer based on configuration settings from the creator's design software. Local or web based software may make use of a public directory of input device configurations (1250).
Prior to operation, the constructor or operator programs the parent device to map data representing one or more input sensor states for each sensor on each interface module to one or more desired actions. Using the design goal of
In one implementation, the constructor uses a computer program to associate the unique IDs for each installed module with the modules virtually presented in the device layout software. These values may also be pre-populated as part of the purchasing process. The software may connect to the Parent processor and guide the constructor through the process of verifying the location of each module. The software then works with the constructor to map each physical device to a logical location on a specific interface board. In this example, the physical switch in the upper-right-most switch in
Once the mapping of physical modules to logical locations is complete, the computer program allows the operator or constructor to associate specific actions with each switch press or sensor activity. Potential actions may include sending a keystroke or Human Interface Device (HID) event to the host computer, running a task local to the parent MCU (such as switching desired keyboard mappings between those used for Microsoft or Apple computers), or modifying settings in the device. To meet the design of
Any keystroke customization technique available to a standard microcontroller based keyboard is implementable within this design, including function keys and dynamic remapping between layouts such as QWERTY and Dvorak. In the worked example of
The constructor may also specify actions that modify the state of one or more feedback devices on interface modules. Feedback actions may overwrite, modify, or defer to feedback patterns programmed into Interface modules. In one embodiment, pressing the key mapped to Capslock could cause all feedback LEDs across the device to turn red except for switches currently being pressed which would turn white according to a default programming for these Interface modules. With programming complete, the device may be used (1226).
The mapping between activity of an input sensor and the events sent to the computing device may be stored on the Parent processor solely, or within the Interface modules solely, or a combination of storage and processing on the two types of module.
When an Interface module sends information pre-computed on the interface module to a Parent or aggregating module, transmitting unique identifiers for the module or sensor location may be optional. For example, position A on module 1 may cause the letter “A” to be sent to the parent device. Upon receipt, the parent module would translate this into the corresponding USB or Bluetooth HID event required to send the letter “A” to the computing device. Identification of the source switch and module is optional if does not matter which input caused the letter “A” to be sent. Having the interface modules compute the output avoids the need for the parent module to know the physical orientation of input sensors on a module, the type or class of the module, or to store a mapping of input sensors to output for the computing device. The pre-computed coding strategy may be used in combination with addressed communications, so that in one embodiment, module identifiers are used to update programming and feedback devices, but keystroke information is sent from the interface modules without source information.
Interface modules may be built with any combination of input sensors, feedback devices, local processors, and parent processors suitable for communicating with a host computer. Possible connection media between the interface modules include round wire, radio link, ribbon cable, optical connections and flexible circuitry. Both the interface module and connection media may be constructed upon the same flexible circuitry, so that a length of interface modules may be cut from a spool.
Interface modules may be programmed to act exclusively for operator input or output, overriding local hardware. Rather than using separable angle, height or sensor type adapters, these height or angle adjustments may be built into the module's printed circuit board, so that the PCB describes a three-dimensional shape rather than the traditional plane. Interface modules may be constructed of a flexible or deformable material, so that the module can be bent to better match a specific range of motion.
Height, angle or type adapters may include internal circuitry to permit one type of sensor or output device to appear as a different type of sensor or output to the Interface module PCB. In one embodiment, an adapter would alter the output of a laser distance meter to appear as an on/off switch to the local processor. Adapters may be made of perforated or otherwise ablatable material, so that the user can create new shapes by removing material, rather than stacking adapters.
Many traditional mechanical keyboards are assembled by slotting switches into a switch plate: a solid plate pierced with holes that mate with clips or threads molded into the body of the switch. Each switch's electrical leads are allowed to pass through the switch plate to a PCB below. Interface module PCBs are compatible with this technique. Switches may be slotted, screwed or otherwise affixed to a pierced plate, and then the electrical leads connected to an interface module PCB below using solder or solderless connectors.
Interface module PCBs may also be used without a switch plate, allowing the modules to be directly affixed to a structure. Potential construction techniques include attaching the modules to mounting points on: (1) the inner or outer surface of a hollow keyboard shell; (2) a solid shape milled, extruded or otherwise fabricated to hold modules in a desired orientation; (3) the joints, unions or shafts of a skeletal framework by means of clamps, screws or other fasteners (as used in chemistry bench structures and stage lighting rigs); (4) a set of flat cut out shapes that can be stacked, slotted or fastened together to make the desired three-dimensional shape; (5) a plane-based framework with markings or pre-made mounting points that may be used in conjunction with a set of regular shapes that contain matching external or internal mounting points, so that arbitrary configurations may be constructed by affixing regular shapes to each other and the base plane (common to machinist/welding tables and interlocking toy bricks); (6) nodes on series of adjustable screws, jacks or gears that permit changing the elevation and angles of mount point for a module; (7) a textile or non-woven structure that may be altered by stretching or folding, with sewn, woven, glued or inked connections; (8) a shape that can be altered by milling or other extractive machining; and (9) a shape that can be altered through additive machining such as CNC welding or 3d printing.
Other methods for setting per-module identifiers include: using a unique system identifier pre-programmed into the module processor, electrical properties of connection bus, properties of the digital signal path between Parent and Interface modules, a dedicated or wired connection between modules, an identifier chosen by a dynamic election protocol, a calculation performed on each module processor.
This application claims priority and benefit from the U.S. Provisional Patent Application 62/527,716, filed Jun. 30, 2017 and titled, “Modular System for Constructing Electronic Interfaces,” which are incorporated herein by reference in their entirety for all purposes.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US18/38814 | 6/21/2018 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62527716 | Jun 2017 | US |