Check out a Game Controller that uses Bluetooth to connect to smart phones, tablets & Computers.
When powering on the controller it can be set to connect as a Gamepad, Joystick or Keyboard.
Arduino Firmware is used and all designs, documentation and code will be released Open Source.
http://www.kickstarter.com/projects/evolutioncontrollers/smart-controllers