EE 380Summer, 2010

System Software Projects

Title: Serial plot

Area: Systems Software

Prerequisites: EE 356

Set up a microcontroller to send digitized data from the A to D converter to a PC via a serial port. On the PC use C# to produce a plot of the data. Include scaling information on your plot. Demonstrate that you can send a sinusoid, a square wave, and a triangular wave to the PC for plotting.

Title: WPF Media Player

Area: Systems Software

Prerequisites: EE 354/356

Using C# WPF create a simple four button media player which will allow a user to play, stop, pause, or resume the playing of an MP3 file over the Windows Media Player.

Title: Plotter

Area: Systems software

Prerequisites: EE 356

Write a C# WPF application which will read a file of arbitrary length in the following format:

Title:My graph

xx1, y11, y21, … ,y101

xx2, y12, y22, … ,y102 //Comment

//Comment

xxN, y1N, y2N, … ,y10N

Your program should plot this data taking xx1 to xxN to be the horizontal axis with the y values being the data for up to 10 graphs on the same plot. The format of the data is such that there maybe from 1 to 10 y values per line. Scaling should be automatic and should be set on the horizontal axis between the minimum and maximum x. On the y axis should be scaled to display the minimum of any y and the maximum of any y. The program should ignore all comments while reading in the data. Comments will always begin with a double slash (either forward // or backward \\). The first line may be data or it may be the word Title followed by a colon. If the word Title followed by a colon is present your program should display the following text centered at the bottom of the graph as the title. All values of y should be plotted in different colors. The axis should be labeled and have tick marks appropriate to the data.

Title: Graphics

Area: Systems software

Prerequisites: EE 356

Write a digital/analog clock display in C# WPF. Your clock should capture the time and date from the system and display it in a small form. Also in the form, include an analog clock that has two hands which display the time. Optimize your clock update so that it does not require a lot of computer time to update the clock. (Update your clock each minute and erase and redraw the hands instead of redrawing the whole clock.) Add a background display.