Friday, April 24, 2009

Final Project!

EDIT: I didn't expect this post to become remotely interesting to anyone else :) So I'm just adding in some details at the bottom before the photos.

Yesterday was presentation day for our final projects for EE316, Computer Engineering Junior Lab. It was an open ended project and my group was Allen, Doug and I. We decided to use the DE2 FPGA board to make a video game console that promotes exercise. This means that they were no controllers. Using an Axis network camera, we track the player by color and feed that information from the processing PC to the board using the JTAG UART. The game, which ended up being Space Invaders instead of the originally planned Breakout, was written to run on the 'GamerII' game engine that I wrote for the system. The system consisted entirely of the Nios II softprocessor, SDRAM for code execution, the GPU (which was written in VHDL by Doug!) and the SRAM the GPU uses as video memory. Allen wrote the game using my API, and he did it pretty fast, so I'm pretty proud of that. The software is all in C++ and the Hardware defined by VHDL, or actually hardware. Meaning we did build stuff, Doug built a nice conditioning circuit to interface an optical oxygenation sensor to a LEGO NXT brick for processing, which determined the heart rate by timing the period between beats, then transmits that over bluetooth to the computer doing the image processing, so the heart rate is included in the packed of data sent to the game. The game can then use the heart rate to vary game speed and difficulty, in concept. We didn't get to implement that feature fully, it simply displays on the screen. But, theoretically it works, the framework is in place, just not the control code. Plus, it turns out Space Invaders is even harder in person!
Other EDIT: I figured those readers from Hack A Day and Engadget might be interested in some more details, so I'm adding some stuff here. For starters, in case I didn't already mention it, I'm a junior Computer Engineer at Clarkson University, up in Potsdam, NY. The entire game system was implemented on a Terasic DE2 development board which is housing an Altera Cyclone II FPGA, the system itself was built with Quartus II, and the SOPC builder, using several University IP cores along with the Nios II soft processor. The VGA hardware was built by Doug and controlled by a SOPC Builder PIO port, several actually. Just some stuff I thought you'd like to know :).
Photo time:

The game running on the projector screen, with the camera below it.

The heart rate monitoring circuit with the NXT controller, and the DE2 visible.

And finally a video of Allen playing the game:



Blogger rik the vik said...

Well done, gentlemen! As someone who's spent a lot of time with those DE2 boards, it's nice to see someone else do something great with them.

April 26, 2009 1:18 PM  
Blogger Matt Krass said...

Thanks for the kind words, they're pretty capable boards, but I wasn't sad to see it go back in it's box after this class ;)

April 26, 2009 2:13 PM  
Blogger Matt Krass said...

I accidentally deleted this comment, wasn't paying attention to where I clicked:
From qbanguy:

"Very cool project, good job. I had a chance to play with the DE2 board in class as well. We haven't get this far yet, looking toward to that."

April 27, 2009 12:02 PM  
Anonymous SJS said...

Looks neat. Good work.

Referred by Joystiq by the way.

April 27, 2009 8:29 PM  
Blogger Exergame Fitness said...

What a fantastic Exergame product! We would love to talk to you guys more about your invention for the commercial market.

Please feel free to call or email me directly!

Tommy Seilheimer
Exergame Fitness USA
"Bringing Exercise and Gaming Together"
877-668-4664 x1103

April 27, 2009 9:21 PM  

Post a Comment

<< Home