Midterm Project: Creating “Simon”

The game “Simon” is a classic toy which tests the working memory of the player. For the midterm project, you will create a small, coin cell-operated Simon game. This will involve PCB design and fairly involved firmware to acheive an enjoyable user experience. In addition, you will be invited to add some sort of interesting feature beyond the Simon game. In the past, this has ranged from simple animations to a mode in which the device becomes a music sequencer.

Here’s a video from Vitor Azevedo Andriotti (Spring 2015) showing a Simon board in action.

Rules for the The ELEC327 version of the Simon game

In our variant of Simon, the point of the game is to learn a sequence of M button presses. Each button corresponds to one of the LEDs and to one frequency of PWM tone. On the nth turn, the device plays the first n elements of the sequence. So one tone/LED on turn one, two on turn two, etc. The pattern of the n-1 elements of the sequence are the same as the previous turn. Each turn, after the sequence is played, the player must push the appropriate buttons to recreate the sequence. If they do it correctly, the game proceeds to the n+1th turn. If they make an error or wait too long (measured by the time since the last button press), they lose. Winning corresponds to playing the full M-element sequence. If the player loses, the device should play a “Game Over - Lost” animation that continues until it is reset. Similarly, if the player wins, the device should play a “Game Over - Won” animation until it is reset (e.g., by power cycling or pressing a button).

Details:

The Simon PCB

The first thing you must turn in is a layout of the Simon PCB. There is a hard upper limit on size of 3 in. x 3 in., but the physical board will be graded on a combination of small size and ergonomics. Parts:

These parts are given in the Simon.sch Eagle CAD schematic in the ELEC327 git repository.

Note that you are not limited to the listed parts. You can add additional parts from the list above or other lab supplies, but if you do, you are expected to demo their utility as part of your project!