Wireless controllers often must be paired with a host device, such as a computer, in order to communicate properly. Typically, wireless controllers have buttons and joysticks that enable a user to play games on a video system.
A wireless controller is described herein that is configured to communicate with a host device, such as a tablet computer. The wireless controller may operate in multiple modes. For example, the wireless device may operate in a game mode in which it may transmit one or more game commands to the host device. The game commands may be transmitted in response to an actuation of a controller input, such as a button, a joystick, or a combination thereof. The wireless controller may be switched from the game mode to another mode, such as a keyboard mode. For example, when the controller is in a keyboard mode, the controller may translate the controller inputs into alpha-numeric characters that are transmitted to the host device as if transmitted by a keyboard.
Pairing of the wireless controller with a host device may be accomplished via the Bluetooth protocol, but in a manner that does not require entry of a pairing code.
The ensuing detailed description provides exemplary embodiments only and is not intended to limit the scope of the appended claims. Various changes may be made in the function and arrangement of elements and steps without departing from the spirit and scope of the claimed subject matter.
Referring to
The wireless controller 100 may provide multiple modes of interaction, each of which may control how the wireless controller 100 interacts with a device. In one embodiment, the wireless controller is configured to operate in at least two modes, one mode comprising a keyboard mode and another mode comprising a game mode. For example, the keyboard mode may allow the wireless controller 100 to communicate with a keyboard interface of a computer device, such as a human interface device (HID) keyboard interface. The keyboard mode may enable users of the wireless controller 100 to assign values and/or commands to controller inputs according to their preferences. Controller inputs (e.g., keypad 102, joysticks 112 and 114, buttons 104-110 and 116-130) may refer to any actuator that can be pressed on the controller or any actuator that can be toggled on the controller, or any combination thereof. For example, a user may operate the wireless controller 100 in the keyboard mode to provide keyboard equivalent inputs to a computer in response to an actuation of a button and/or joystick on the controller.
Table 1 represents an example of possible translations between controller inputs (e.g., buttons, keypads, joysticks) and keyboard-equivalent outputs when the controller 100 is in a keyboard mode. For example, the row and column combinations that are shown may result from a specific actuation of a particular button or joystick actuator on the controller 100. For a given row and column combination, a particular keyboard equivalent may be transmitted to the tablet by the controller.
In one embodiment, a user may alternate between different modes by selecting a predefined combination of inputs. For example, a predetermined keypad combination, joystick toggle algorithm, or a combination thereof, may alternate the change the mode of the controller 100 from the keypad mode to the game mode, and visa-versa. The game mode may allow users to control a variety of applications, such as a computer game. For example, a user may operate the controller in the game mode to provide commands (e.g., via controller inputs such as buttons, keypads and joysticks) to a computer that is running a game. In the game mode, the controller inputs may be translated into equivalent industry-standard game inputs.
Table 2 illustrates how controller inputs may be translated into game commands in accordance with one embodiment of the game mode. The “Control input key” and “Gamepad Key” columns represent the actual buttons, keypads and joysticks on the controller 100. For example, the “controller input key” column corresponds to the labels shown in
In one embodiment, the wireless controller 100 may pair the controller 100 to a receiving device without entering a security code. Pairing may refer to a device establishing a connection with another device. In an example configuration, the wireless controller does not request authentication, such as by requesting a pass key code, while in the keyboard mode. In such a configuration, the wireless controller 100 may synchronize to a remote device while the wireless controller 100 is in the keyboard mode. For example, referring to
In operation, CPU 610 fetches, decodes, and executes instructions, and transfers information to and from other resources via the computer's main data-transfer path, system bus 605. Such a system bus connects the components in computing system 600 and defines the medium for data exchange. System bus 605 typically includes data lines for sending data, address lines for sending addresses, and control lines for sending interrupts and for operating the system bus. An example of such a system bus 605 is the PCI (Peripheral Component Interconnect) bus.
Memory devices coupled to system bus 605 include random access memory (RAM) 625 and read only memory (ROM) 630. Such memories include circuitry that allows information to be stored and retrieved. ROMs 630 generally contain stored data that cannot easily be modified. Data stored in RAM 625 can be read or changed by CPU 610 or other hardware devices. Access to RAM 625 and/or ROM 630 may be controlled by memory controller 620. Memory controller 620 may provide an address translation function that translates virtual addresses into physical addresses as instructions are executed. Memory controller 620 may also provide a memory protection function that isolates processes within the system and isolates system processes from user processes. Thus, a program running in a first mode can access only memory mapped by its own process virtual address space; it cannot access memory within another process's virtual address space unless memory sharing between the processes has been set up.
In addition, computing system 600 may contain peripherals controller 635 responsible for communicating instructions from CPU 610 to peripherals, such as, printer 660, keyboard 645, mouse 650, and disk drive 655.
Display 665, which is controlled by display controller 663, is used to display visual output generated by computing system 600. Such visual output may include text, graphics, animated graphics, and video. Display 665 may be implemented with a CRT-based video display, an LCD-based flat-panel display, gas plasma-based flat-panel display, or a touch-panel. Display controller 663 includes electronic components required to generate a video signal that is sent to display 665.
Further, computing system 600 may contain network adaptor 670 that may be used to connect computing system 600 to an external communications network 660. Communications network 660 may provide computer users with means of communicating and transferring information electronically. Communications network 660 also may include but is not necessarily limited to fixed-wire local area networks (LANs), wireless LANs, fixed wire wide-area-networks (WANs), wireless WANs, fixed wire extranets, wireless extranets, fixed-wire intranets, wireless intranets, fixed wire and wireless peer-to-peer networks, fixed wire and wireless virtual private networks, the Internet, and the wireless Internet. Additionally, communications network 660 may provide distributed processing, which involves several computers and the sharing of workloads or cooperative efforts in performing a task. It will be appreciated that the network connections shown are exemplary and that other means of establishing a communications link between the computers may be used.
Any or all of the systems, methods and processes of the controller or host device described herein may be embodied in the form of computer executable instructions (e.g., program code) stored on a computer-readable storage medium which instructions, when executed by a machine, such as a computer, perform and/or implement the systems, methods and processes described herein. Computer readable storage media include both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information. Computer readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer. A computer-readable storage medium, as described herein is an article of manufacture, and thus, not to be construed as a transient signal.
Changes may be made to the above-described embodiments of the invention without departing from the broad inventive concepts thereof. This invention is not limited to the particular embodiments disclosed but is intended to cover all modifications which are in the spirit and scope of the invention as defined by the appended claims.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/549,828, filed Oct. 21, 2011 and International Application No. PCT/US12/61234 filed Oct. 21, 2012, the contents of which are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
61549828 | Oct 2011 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US12/61234 | Oct 2012 | US |
Child | 13657278 | US |