M1DC is a strategic acronym, as EEs tend to make, where M is for Maze, and 1DC is 476 in Hex.
We have designed and constructed an electronic version of the common game where one must lead a small ball through a maze by rotating the toy at the appropriate angle. It involves one player and a handheld unit consisting mainly of a LCD, which draws the maze and the ball moving through it. As the user will tilt the LCD, the display of a ball will move on the screen, in accordance with the direction and angle of the tilt. A greater tilt will result in the ball moving at a greater speed (there are three different speeds). To win, the user must successfully get the ball from start position (top left of screen) to finish position (bottom right of screen). The game takes concentration, patience, and perseverance to be a winner (click here to see).
The player can choose from 4 different mazes at the initial menu, by ‘rolling’ the ball to one of the four corners. Each maze is different and varies in difficulty level. At the finish of the game, a time (or “score”) is displayed, as well as the current high score.
We were searching for a project that involved a fair amount of real-time processing and control and for which a microprocessor would be a natural component. Robotics was an attractive option, except that we were wary of our project turning into more of a crash course in mechanics than a design with a microcontroller. The M1DC project fit our criteria. We expected the project to test our grasp of timing issues in terms of sensing and processing constantly-varying inputs from one device and 'instantenuously' effecting an appropriate output on another. The I/O architecture of the M1DC components, favored the use of the AT90S8515 and its 8-bit ports. In all, we felt that our choice of final project was sufficiently challenging and well in the spirit of the course.