We were able to match all our expectation for our project. When we started out we wanted to make a game with more complicated graphics and animation of the boxers. We were also going to implement a more complicated form of interaction, involving different combinations of punching and dodging, and perhaps some special combo moves to knock out the opponent. However, we realized that it would be really hard to do with the the 60Hz refresh rate, and we anticipated 2 weeks just designing the animation for the opponent, thus we decided to scale back to a simpler set of graphics. The punch sensing was also tough to implement since we're only using a 2 axis 2g accelerometer. It would be really annoying to have to readjust the gain and the resistance of the potentiometer everytime a different player plays the game. Thus we scaled back to a more conservative gaming scheme, which is really easy to expand on. After a very careful planning of our game, we were able to match all our expectation for the project.
TV display results: We turn off the interrupt on purpose when the player gets hit, to simulate a "shock" from the punch. Other than this, everything is able to be displayed without flickering or artifacts. We have a menu screen where the player can choose the difficulty of the game, player plays, and then goes into score keeping after the game is over. This works perfectly as planned.
Score Keeping result: We are able to use the push buttons and debounce them for the players to scroll through letters for score keeping purposes. We program these values in flash and we are able to display them again after the next reset. This works perfectly as planned.
Accelerometer circuitry result: We built the circuit that saturates rail to rail at plus and minus 2g. The potentiometer was used to calibrate the center of the voltage when no acceleration is experienced (2.5v). The circuit works perfectly as planned.
Packaging result: the packing was pretty good, we were able to hide the accelerometer in a boxing glove and a training belt. The wires coming out of these articles are twisted together to avoid messy wiring. Those who have played the game claim the set up to be "comfortable and aesthetically pleasing"
If we were to do this project again, of course, we would like to implement a much more complicated animation scheme in which we would have to program in assembly language or implement a state machine to divide up the display so it doesn't flicker. We can have multiple stages where the player can advance and become the ultimate champion to give the player a sense of accomplishment. Also, some special combo moves to knock our the opponent or even cheat codes for invincibility. We would also add sound effects to the game, so the opponent would grunt when he gets hit and would cheer and trash talk when it hits the player. Of course, in order to implement these, the code would be optimized by conveterting into assembly, which we would do if we had more time. Also, if we were given more money, we could have gotten the motion sensor that is used by the real arcade machine, which costs about $265 a piece. Given this chip, we might be able to simulate the "real" boxing experience more realistically.
Only one standard applies to our final project: NTSC (National Television System Committee):
By using Professor Land's lab 4 code as a basic structure for our game, we have conformed to the NTSC standard. The designs conforms to the RS-170 standard well enough to display the game on a TV. We are able to draw everything within the refresh rate of the TV. The standard outputs a video signal to any black and white NTSC compatible television. In 476 lab, this signal is in the form of a signal transmitted over a coaxil cable with 60Hz vertical sync and 15.75Hz horizontal sync. Voltage level of 0 for sync, 0.3 voltage for black and 1.0v for white.
Our video generation code was a based on Professor Land's example code in ECE 476 lab exercises. We used the AVR video generation code. (please see reference page for links) We also referred to the score keeping code in Nova Strike Game by Kalim Moghul and Kevin Oh from last year. One of our parts is from Tom Ling and Norbert Huber's stationary helicopter. The virtual boxing idea was inspired from Mocap Boxing, owned by Konami Inc. Only rules and idea was taken from the Konami game, and nothing else. The title "the Contender" is borrowed from NBC's reality show "the Contender" which has nothing to do with our game except that boxing is the main theme in the show. In particular, since this game is only going to be used in ECE 476 lab, played in ECE 476 lab, and used by ECE 476 people, and since that we have made a claim that this would not be for commercial use, there would be little possibility that this will be mistaken for property owned by Konami or NBC. We believe that our design of this game is considered fair use. This project will be for educational use only and will not be distributed, we're also not claiming any credit from the original game, other games that we referred to or projects we borrow parts from. Also, we do not believe that we will be able to patent our game, thus there would not be any confusion or conflict of interest in any stages of development of this game. Also, we did not need to sign any agreement of any sort to get sample parts, analog.com shipped us free samples for our ADXL accelerometers.
Referring to the IEEE code of ethics, we have followed the rules below.
1. to accept responsibility in making engineering decisions consistent with the safety, health and welfare of the public, and to disclose promptly factors that might endanger the public or the environment;
We have been honest to the users of the system about all the potential hazards that could be associated with playing our game. Knowing what the risks are, we tried our hardest to minimize these potential hazards and dangers and inform users about them.2. to avoid real or perceived conflicts of interest whenever possible, and to disclose them to affected parties when they do exist;
We were an independent
group that occasionally ask TA and professor questions. We get in line whenever
we grab TAs or want to use the solder machines. We have also been courteous to
the other groups. Thus there were no conflicts that arises during the design
stage of this project.
3. to be honest and realistic in stating claims or estimates based on available data;
Everything we claim in the report is
4. to reject bribery in all its forms;
There were no bribes offered. Even if
there were, we would have rejected it. The only compensation is the grade
assigned to this final project.
5. to improve the understanding of technology, its appropriate application, and potential consequences;
We have learned a lot about the TV, accelerometer and amplifier technology
through the design stage of this project. We have also learned a lot about what
can be improved to our code, what additional features on the analog circuit we
could have implemented, etc.
6. to maintain and improve our technical competence and to undertake technological tasks for others only if qualified by training or experience, or after full disclosure of pertinent limitations;
The class improved our competence,
through lab exercises we improved our programming and debugging skills, we did
the project as in undertaking technological tasks.
7. to seek, accept, and offer honest criticism of technical work, to acknowledge and correct errors, and to credit properly the contributions of others;
We have always been open to criticisms.
Either from talking to the professor, TAs or fellow classmates. We welcome all
suggestions would adjust our design if necessary.
8. to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or national origin;
We were treated fairly, and we treat
people fairly, as the class is consisted of people from all over the world with
different cultural backgrounds.
9. to avoid injuring others, their property, reputation, or employment by false or malicious action;
No men or women were harmed during the
design of this project.
10. to assist colleagues and co-workers in their professional development and to support them in following this code of ethics.
We would like all the students in ECE 476 to be good students and follow the rules. We would also be glad to help anybody that has a problem with anything.