Lunar Lander Controller

For this assignment, we were tasked with building a gaming controller that is compatible with Lunar Lander, a notoriously difficult arcade game (for the record, I crash land every time. Chino, an ITP resident, landed perfectly on his second try). My physical computing skills are (how should I word this?) still in development, so I wanted to keep my approach as simple as possible. What started out as an attempt to include a joystick, quickly devolved into an unsettling amount of buttons, if anything to simplify my code.

Check out all those joysticks!


The criteria are as follows:

  • Send up, down, left, right keypresses as a keyboard alternative
  • Send mouse clicks
  • Control the mouse and click
  • Player should be focusing on the screen and not the controls

In a perfect world, my 4 x and y buttons, and my 1 click button would not only control the game, but also the mouse. But since my understanding of coding logic has limits, I have two separate sets of buttons. The top, or main interface, will be for the game. The front interface will be to control the mouse in the beginning.

I’m using an Arduino MKRZero which is my first foray into the territory beyond the Arduino Uno. With some resident help, I found it much easier to use than expected, and I appreciated the space it saved by connecting directly to the breadboard.

System Diagram


Circuit Diagram


A schematic that looked good in Fritzing as a circuit diagram and a little funky in this format. Is it just me?

Links to both Illustrator files: Top | Front

The resident Aaron helped me get started with the code logic by referencing the same project he did last spring. He used a joystick so I simplified the code a bit, but it was helpful in getting going.

Here’s what the enclosure looked like a few hours ago:

And here’s what it looks like when you call Blick 3 minutes before it closes, as you’re running down the street holding your laptop, begging them to let you buy one more recipe box:

And here’s the controller in action, starring David:


Leave a Reply

Your email address will not be published. Required fields are marked *