Thursday, April 29, 2010

Week Four - Finalization, Presentation and Demo!

This week was the week we completed work on the final project. This is also the week we decided to rename our project from Rollerball! to Speed Demon! Thus the redone website :).

Final Demo Video:
http://www.youtube.com/watch?v=-Ol-wyocSt8

This week we finished designing the game. We added a few things:
1) Different speed settings with a potentiometer
2) wheel /accelerometer for direction
3) multifunctional button for game start, input
4) radio to play different songs
5) high score list and play again options

Accelerometer without wheel attached

Drive Shaft connected to potentiometer for speed control


Final List of Project Features:

Random wall (track) movements
-Accomplished by Zener diode from ground to ADC

Accelerometer-based steering and interaction
-Sensor + ADC

Intro screen
-Scrolls title, credits (our names)

Multifunctional button
-Debouncing has been included so unwanted actions will not occur
-Button-start gameplay
-No need for keyboard-terminal interaction

Hi Score list
-keeps track of top 5 player's scores, initials
-displays on terminal
-Letter select is done by steering the wheel through the alphabet, then selecting with the button (I think this is an awesome feature)
-Initials display on LED board and terminal as they are selected

Radio
-through buzzer via PWM
-3 songs can play during driving: Yankee Doodle, Camptown Races, When the Saints Go Marching In
-switch stations by pressing the button
-plays faster when driving faster, slower when driving slower

Death
-X comes on screen
-buzzer goes off
-if its a hi score, goes to the select screen for initials
-displays hi score list
-goes to intro screen


Screen shot of the Terminal. Shows High score list.

Board displays the maker's names before game start

Inner Workings - Decoder, Zener Diode, Debouncing circuit and lots of tape!

Week Three - Software

This week, after deciding on using one color on the LED board, we began the work on writing the software for the project. Our goal and design was to write a wall that is generated randomly at the top of the board and travels down.

The random number generator was created bu connecting a Zener diode to ground and reading from an ADC pin. A little more logic was added to ensure at least 4 spaces are available later in the week. The code for the ball, and scoring was also written during this time.

Ball and wall, initial testing

The 'X' after the vehicle / ball dies


Check out the video for the working wall!
http://www.youtube.com/watch?v=pzAx9Wap1XU

Week Two - Struggles with SPI, and the LED Driver

In order to gain maximum utilization of the tri color LED board, we experimented with the SPI functionality of the HCS12 Microcontroller and get multiple colors working in the game. Unfortunately, how the exact functionality could be obtained was very unclear and we could not implement the system in a way to yield the desirable effects.


4:16 Decoders, LED Driver, and Op Amps (from left to right)


LED Driver


After several days of experimenting with the SPI and LED drivers, we decided it was the best route to conserve our time and produce a project with tangible results. We decided that we will use Ports A, B, and T along with decoders in order to drive the LED board in a single color.

Wednesday, April 21, 2010

Week One - Main Idea

Hello Everyone!

John Stuckey and Ritwik Lodhiya present to you... Speed Demon!

We are both Electrical Engineering students at the University of Pennsylvania and currently taking a class in Embedded Systems and Microcontrollers (ESE 350). This blog is about our final project, a game designed to be played on a LED board. So what is Speed Demon you may ask?

Here is the *original* idea, Rollerball:

This picture is a rough idea of what our project idea is. Using a tri-color LED board, we will create a game which has a rolling ball going through a maze that is lit up by the LEDs. A remote node with an attached accelerometer will determine how fast the ball will roll down. The player's objective is to roll down without running into the walls or obstacles, and higher scores will result from faster and longer traveling!

The challenges of the project were:
- Configure a 16x16 tri-color LED board
- drive LEDs in separate modes (ball, obstacles, wall, etc)
- remote control
- software for controlling wall, speeds, etc.
- add other optional features such as display names, high score memory, play again options etc.


So what is Speed Demon now?

The subsequent blog posts will explore the evolution of the game. The game in its current state has an accelerometer connected to a steering wheel and a improvised drive shaft from a potentiometer to control speed. There are no obstacles / power ups and the game is only in one color.