Please see attached project outline.
GUI Project Sp19 ME 1040 – Engineering Programming with Matlab Spring 2019 Due Date: Saturday May 4th at 5:00 pm (End of Finals Week) The purpose of this project is to combine many of the skills learned in class into one graphical user interface. This interface should be easy to read, organized, and free from errors. Teams of two are permitted for this assignment. Upon starting the app, the user can choose from at least SIX different programs: 1) Vector Decomposition App 2) Curve Fitting Toolbox 3) Target Shooting App** 4) Visual Derivative App* 5) Visual Integral App* 6) Image Manipulation App** 7) Clock App** 8) Forced Response Vibration App* Upon closing any of the above apps, the start screen is automatically displayed again. Each app will be discussed in detail below. “Stars” above indicate difficulty. Vector Decomposition This app should be capable of accepting vector information either manually or from an excel spreadsheet in either rectangular or polar form. Upon receiving the data, all vectors can either be plotted “tip-to-tail” or all originating from the origin. In tip-to-tail mode, the resultant is also plotted. Curve Fitting Toolbox Similar to the built in “Basic Fitting” in Matlab, this app should allow the user to import or define data points and fit a curve of their choice. The app should also display goodness-of-fit metrics and coefficients. It should be possible to fit reduced order polynomials as well. Target Shooting This app will accept an angle and animate a projectile trying to hit a randomly generated target. The target should only stay in the same spot for short amount of time. The app tracks how many successful shots are completed in a timed round. Upon hitting the target, an explosion is seen on the screen and the app can be reset at the end of the round. Difficulty can be adjusted by how long the target stays in one spot. Visual Derivative The visual derivative should depict what happens as “h approaches zero”. The user should be able to plot a function of their choice, choose at which point the slope is desired, and see the estimate that the derivative gives as the real slope is approached. The user should be able to use a knob/slider to change delta h and visually see the slope converging. Visual Integral The visual integral should depict what happens as more simple shapes are used to estimate the area under a curve. Choice of function is up to you, but sin/cos work well. See demo in class. Have the user be able to choose rectangles, trapezoids, or quadratics to estimate the area. Display the actual exact area and also the “current area” using a prescribed number of shapes. Image Manipulation This app should be allow the user to upload an image of their choice and be able to change its visual properties. This would include colors (RGB), contrast, and brightness. Upon applying the “filter” of their choice, these settings are saved to a txt file. This txt file is also able to be imported and applied to new images. Clock This app includes a current ticking clock (analog and digital), a timer function, and a stop watch. You app basically contains all of the capability of a Timex wrist watch. Forced Response Vibration This app allows the user to enter mass, stiffness, and damping coefficients along with the frequency and amplitude of a sinusoidal forcing function. The app would display the response of the system and produce warnings about resonance. Presets could easily show different scenarios. Capability to export the response should be included. Custom If you have an idea for an app, please submit a write up describing the functionality, user inputs, display features, and programming components. Also include a basic sketch of what the app might look like. This needs to be submitted NO LATER than two weeks before the due date for approval. Grading: I will be actively trying to “break” your app. I will click buttons out of order, during loops, and at times that do not make sense. It is your job to test your app and eliminate errors or scenarios that produce errors. Be creative and do not use all the default settings. Choose colors/fonts/sizes that make your app stand out. No two apps should look the same. Each app will be graded out of 15 points: • Functionality (5 points) – Does your app work? Are there bugs? Errors? • User Friendliness (5 points) – Is your app easy to follow? • Aesthetics (5 points) – Are things organized well? Lined up? Easy to read? Colors? Fonts? Finally 10 points will be assigned for “linking” apps together (5 points) and code commenting (5 points). NOTE: Comment your code!! I will take off points for code that is not commented! Reading code is difficult enough, but reading someone else’s is even worse, especially without comments. Turn-In: PUT ALL SEVEN (or more) FILES TOGETHER IN A FOLDER, THEN ZIP, and then upload to the Pilot dropbox.