Esplora Gaming Possibilities

Hello All,
I want to begin by stressing how absolutely AWESOME THE ESPLORA IS AS A GAME CONTROLLER!!! +1 to Arduino for coming up with this idea! Now I understand the idea was to introduce microcontrollers to beginners by appealing to the gamers of the world, but I wonder how many out there share my own experience. Which was that the Esplora ended up introducing me to the gaming world rather than the other way around!
Thus far, I've been able to use the EsploraKart configuration not only for SuperTuxKart as it was intended, but also for a wide variety of classic games on Ubuntu Linux, Android and even the Raspberry Pi! All this at a time when many are calling 2012 "the year of open source gaming" with the Raspberry Pi introducing its own App Store through Indie Game marketplace, IndieCity, the Steam platform offering a growing selection of Linux games and the "Indie Gamer" scene coming into its own as a whole. This leads me to wonder how many other opportunities there might be to use other features on the board beyond the joystick and buttons to truly make it a "universal controller". As I mentioned, the gamepad already works great for simple games like on the original NES or arcade classics like "Frogger". But once you get into more sophisticated gaming systems like the SNES or PS 1-3 gameplay requires more inputs than are available with the Joystick and 4 buttons.

Some specific questions-

  1. Is it possible to add the Linear Pot to the input array on EsploraKart? This would be useful for first person shooter games requiring controls to "Look Right and Left" without moving in that direction. Thus far the Linear Pot examples output analog values to serial, which would not be possible on most games which allow usage of the controller because they think its a keyboard.

  2. Might it be possible to create new Tinkerkit modules specifically designed to add plug n play capabilities the board (AKA additional Joystick, buttons etc...) without compromising the controller form factor?

  3. Instead of depending on Arduino or Tinkerkit to manufacture new versions, what possibilities exist for the creation of an "Esplora from Scratch" kit using other ATmega32u4 boards such as the Leonardo and Micro with multiple joysticks, buttons pots, accelerometers etc... on a controller base template? Would the Esplora Libraries be compatible? If so, what possibilities might exist to mod existing game pads (XBox, PS3, generic versions) with an 32u4 chip or Arduino Micro as a hacked Esplora?

  4. Who's gonna be the first to create an Esplora Case?

The Esplora uses a multiplexer (mux) to read several of the inputs like buttons and joystick. If one got another 32u4 based Arduino one could probably emulate the Esplora but the extra chip, sensors (if you want them) would be a bit difficult but not impossible. The Tinkerkit outputs map to PWM digital pins so they are easy to interface to, the inputs are tough as they are on the mux chip. My blog has some of the projects and documentation I've done on hacking the Esplora http://21stdigitalhome.blogspot.com/

If you've interfaced the Esplora to systems, have you code and have you posted it? That would help folks.

On the linear slider, you could write a sketch that if it's moved, the value (0-1023) are translated to keyboard characters. For example: read the value (forget the exact call), then:
if(value-oldvalue > 0)
Serial.print("R");
else if(value-oldvalue < 0)
Serial.print("L");
oldvalue=value;

Keep up the great work.

Thank you for the snippet. :slight_smile:

Concerning the games/platforms I've managed to interface the Esplora with, I didn't change anything from the EsploraKart example, but I can list what I managed to get to work-

On Ubuntu
SuperTuxKart, SuperTux, various PyGame+Processing builds including versions of Frogger, Pacman and Space Invaders, a couple Flight Simulator Games from the Ubuntu Software Center, Even some Linux games available from Steam worked with the Esplora (though the button mappings fell short which is why I asked about the Slider)

On Raspberry Pi-
SuperTux works perfectly! However, I couldn't get STK to load properly, even though its available in the Repo. There aren't too many games available via the PiStore as of yet, but that will change with time.

On Nexus 7-
SuperTux again! But like the RPi there was no STK for the Nexus that I could find... Thus far Android Gamepad support is somewhat tricky but by no means impossible. Several games (like Grand Theft Auto and Modern Combat) advertise native USB gamepad support through the Jelly Bean API but thus far I have had no luck. Seem entirely workable though.

I'm still working on mapping out that SPI header to my Seeed Studio XBee Shield so as to try out your fantastic XBee hacks BTW. Serial Communication is still something I'm slowly digesting, so it might take a little longer...

Keep up YOUR great work!

P.S- You may have noticed a similar post I added to the Adafruit forums-USB Gamepad 3.0 - adafruit industries Though so far it hasn't gotten any bites...

I've gotten the Xbee working through display header pins and the TinkerKit outputs. I have not tried to use two of the SPI pins for XBee but I would think it possible, one of the pins (receive I think) has to be interrupt controllable, other than that SoftwareSerial library works well with Xbees as long as you get the pins and Esplora is not too easy to get at pins like the Uno.

Keep up the STK work!!