User`s manual
• Store the look-up table in a larger memory, e.g ZBT.
• A more scalable approach is to start doing interpolation in the hardware
itself. This will require additional hardware resources and more logic, but
the size of the logic will only grow with the number of data points, as
opposed to the number of bits coming from the sensors.
Within the audio component, there are many avenues for substantial im-
provement. The major unresolved issue was the loss of data samples when
transferring data over USB and recording it to flash memory. The preferred
alternative would be a more modern hardware platform with an updated flash
hardware component, as well as an on-board USB module and reference code
supplied from the manufacturer. This would likely solve whatever bottleneck
stopped us. Another alternative would be to use the serial port instead of the
USB hardware, since the labkit already has a serial port built in. This would
require a moderately complex Verilog module to implement the serial protocol,
although Xilinx may provide some reference code.
Another opportunity for improvement would be variable length tracks. Ev-
ery track was one second long, which resulted in artificial sounding two digit
numbers because some portion of the one second track was silence. A variable
length track would reduce the length of silence and sound overall more natural.
Our implementation barred us from pursing this improvement as it requires an
end-of-track marker for the track. Since we were randomly losing data samples,
we could not reliably determine when the track ended, and so were forced into
the fixed-length option.
Another useful feature which we unfortunately did not have time to imple-
ment is persistent storage of a user’s manual correction settings. After all, no
matter how good the accel lut is, it is extremely likely that with certain extreme
orientations, the settings obtained through the look-up table are unsatisfactory.
One option for dealing with this would be saving manual override settings into
some non-volatile storage such as flash, and using them on the next power cycle.
Given our issues with compact flash in the audio domain, progress on this front
would likely be negligible. Hopefully, with an improved labkit, we would not
run into the flash issues.
9 Conclusion
Our projector tilt compensation system used digital logic to successfully per-
form a perspective transform on an image. This enables fully general manual
correction of distortions of the projected image on the screen. Moreover, we
also created an automatic correction system for correction of distortion result-
ing from 2 axes of tilt via the usage of an accelerometer that would sense the
angle of tilt along these two axes. We also implemented a useful audio features
regarding the percentage of pixels kept by our correction system.
We believe that there were a number of factors that allowed us to succeed
with this project. First and foremost, we started early and tackled potential
28