Thomas Shea
Design Portfolio
Arduino PC Controller


For this project, a group of four of us were tasked with designing and building a sensing device that would use real-world input to control some type of software. In doing so, we would be able to learn how to use the Arduino UNO platform to acquire and analyze sensor data, how to use an Arduino UNO board to control something in a virtual environment, how to apply ergonomic principles to the design process, and to design parts that would work together after being 3D printed.
​
All we were really instructed to do for this project was to produce a device which would use physical variable measurements to control something virtually, as long as the physical variable was reasonably related to the action taken in the virtual world. Because all of us enjoy playing video games, we thought it would be fun to create a controller for a game online. After looking into games that had simple enough controls, we found a lot of fun racing games, and ended up deciding on Grand Prix Hero, a game on ActionGame.com.
​
After deciding on a game to control, we had to think about how we wanted to do this. Luckily, it came pretty easily what we should use to sense the user's input. Because we allow the user to control the game is if they were turning a steering wheel, the decision to use an accelerometer was pretty easy for us. The Arduino as well as the accelerometer can be seen wired together in the picture at the top of this page. Once we determined that this would be how we sensed user input, we then moved on to figure out how to enclose the device.
​
Again, this decision came to us pretty naturally. We decided to create an enclosure that would basically act as the user's steering wheel. The handles on the sides were designed with ergonometric principles in mind, so we made sure that they were a comfortable width and shape to hold. We just had to make this shape based on the size the enclosure would have to be. This enclosure was designed based on measurements of the Arduino and accelerometer, so that they could be screwed in and firmly attached before we closed the lid.
​
When we first printed our wheel, we did it on the printers in the EMA, which are kind of prone to error. Unfortunately, this is exactly what happened to our product. We left it to print overnight, and the print failed overnight, so we didn't yet have a part. We then left it printing the next night, and it came out well other than the bottom portion, which wasn't supported or connected quite right. Unfortunately, we did not have time to print again before the due date, so this is the product we originally used. This can be seen in the pictures below.


This first design didn't work well, as the printer makes a lot of supports, and the part was so large, that it printed in a way that didn't allow us to drill holes in it, which would allow us to secure the sensing device. We had to tape down the lid and the accelerometer, and the sensing was sometimes a little inaccurate because of this. You can see these supports, as well as the disconnect between the base of the enclosure and the rest of it. So, when we had more time after the deadline, we redesigned and printed it using the 3D printer at EPIC. This came out much better, as can be seen at the top of the page.
​
In the end, we were able to successfully complete the learning objectives, and using python and Arduino code, we were able to program the Arduino to click the left and right arrow keys on the keyboard when a turn of the wheel is sensed. This allows us to have a better time playing a game that originally only would have utilized the keyboard. Our product in action can be seen in the video below, which shows one of our group members, Neil Doshi, placing first in a race on Grand Prix Hero.