This ATmega644-based project implements a touchpad input system which takes user handwriting input and converts it to a printed character. Currently, the device only recognizes the 26 letters of the alphabet, but it could be easily generalized to include any figure of completely arbitrary shape, including alphanumeric, punctuation, and other symbols using available training system.
A stylus is used to draw the figure/character on the touchpad, and the result is shown on an LCD display. Pushbutton controls allow the user to format the text on the display.
The program is fairly linear and follows a rather logical structure. Steps of operation are as follows.
- User writes a character on the touchpad when the MCU indicates that it is ready.
- The MCU captures the data and cleans it up (see Software section for more details).
- The captured drawing is passed through the neural network. This requires many sequential accesses to flash memory.
- The neural network returns the classified character and it is printed on the LCD display.
- Repeat from Step 1.
At any time during this process, the user can also interact with the three pushbuttons to change the contents of the LCD display.
The crux of the software surrounding this project was the A-Z letter classifier. Many possible methods were discussed and tried in MATLAB before settling on the final design. The classifier needed to be:
- Fast. It is unacceptable if the user has to wait any more than a few seconds after inputting each letter.
- Reliable. It must be relatively sure of its classification decision when it makes one – we do not want small fluctuations in the input to cause incorrect classification.
- Robust. It must be no any reasonable worst-case inputs which cause the classifier to perform poorly.
Touchpad Figure Recognition project is designed by Stephen Wu & Justin Churchill from Cornell University.