This project has been prepared by Kon-Hyong Kim (kk336), Tae Yong “Tim” Chung (tc228), and Kevin Jin-Ho Ham (kh272) for ECE 476 in Spring 2007.
Working as a whole
Our project depends on the usage of several different chips working in harmony. Therefore, it would be critical for the Atmel microcontroller to manage each function without any major difficulty. In this section, we discuss the rationale of the project, then discuss the high-level idea behind the project. Also, we examine possible hardware/software considerations in the project and discuss the relationship of our design with existing standards, patents, copyrights, and trademarks.
Getting the idea from Apple’s chess algorithm, which uses a voice recognition algorithm to run its programming, we felt that we could try to do the same using a significantly less powerful chip. However, considering the amount of memory required for the microcontroller to controller the algorithms required for chess as well as run a digital representation of the board, we would have to limit the number of functions that we could implement. Unlike our original plan, we found that it was impossible with the amount of memory in the Atmel chip to run a one-player, computer AI driven algorithm. As a result, there was no more need to run a voice output system, thus not requiring the need for a voice synthesizer.
In conclusion, we decided to implement an accurate voice synthesizing algorithm and work that with the rules of chess through a two-player game. In order for this to work, we would have to look at three different aspects of the algorithm: the implementation and initialization of the voice chip, the auto-checking of the chess algorithm, and the synchronization of data between the microcontroller and the voice chip.
Figure 1: A Common Chessboard
Two things to notice from the chessboard above are the respective grid locations on the board as well as the checkered coloring on the chessboard. The grid will be used extensively by the user to communicate with the chip. For example, for the white user to move a knight, one may state “knight g1 (to) f3.” This is important since in implementing this code, the chip will have to recognize, even in the event where both grid-points are indicated by numbers, fifteen different commands: six pieces, eight locations, and one back function.
The other point to discuss is that the chessboard is composed with black and white squares. In our usage of the black and white TV, which will be discussed in more detail later, we need to make sure that a white knight appears in a white background as well as a black one. This creates some interesting situations, where we have managed to successfully deal with.
The Big Picture
Figure 2: High Level Schematic
We have devised the following high-level design. The voice will be pre-entered into the voice recognition chip in a pre-defined order, so that the chip may be “accustomed” to the individual user. Using this order of pieces, we will use them as commands, such as “pawn A1 (to) B1,” where the microcontroller will receive a combination of commands. The microcontroller then accesses its board database, where it will check three aspects about the command: does the piece exist, is the move valid, and is the location free (without their own piece). If there three tests pass, the microcontroller will then validate the move, thus displaying it onto the screen. Otherwise, it will output an error, giving the user a chance to move again.
As shown, we can see that the microcontroller is doing much of the data analysis, including a constant image to display. As a result, we have to consider the amount of data the controller is using at any given time in order to insure that the image will not be distorted while using the program. We also have to consider the possibility that the voice recognition chip may not correctly recognize the input; these considerations are discussed in detail in other sections.
Hardware and Software Tradeoffs
One of the major considerations of hardware and software tradeoffs dealt with the way we decided to analyze the voice recognition algorithms. We examined some previous voice recognition related projects, such as the Voice Recognition Robotic Car, the Voice Recognition Security System, and
the Voice Activated Alarm Clock, as well as some informational information given on the ECE 476 course website. Considering the computational power required to run this algorithm along with the display, we found that it would be very improbable that we could run all of these three tasks through the traditional FFT analysis. As a result, we decided to purchase a cheaper voice recognition chip, thus focusing more towards a control focus for the microcontroller rather than an analysis one.
The major trade-off for this was the need to initialize the voice recognition chip (referred as the HM2007 hereafter). Due to the vague datasheet, we decided to program the chip using the programing schematics given.
Figure 3: HM2007 Programming Schematic
Although many of the chips were very clear, it was difficult from the datasheet or the schematics to understand the details of the circuit. Through extensive examinations and testing of the circuit, this has become the basis of the basic programming needs of the chip. Using many of the techniques shown in previous sessions, perhaps we might have not had such a difficult time understanding a new chip; however, considering the limitations we have from the microcontroller, it was the best option available.
Relationship with Standards, Existing Patents, Copyrights, and Trademarks
Although the original idea was motivated from Apple’s chess algorithm, we did not reverse engineer their algorithm. Also, considering the sophistical algorithm Apple employs, it would be simply impossible for use to replicate that using the Atmel microcontroller and the HM2007.
Other than the unlikely collision with Apple’s existing algorithm, we do not foresee any possible conflicts with existing standards, patents, copyrights, and trademarks. Chess is a very old and common game, and it would be unlikely that anyone would have sole ownership over it.