rules for project development
play

Rules for project development A project can be assigned to one or - PDF document

Rules for project development A project can be assigned to one or two students and must be developed in C language under the Linux operating system, using the gcc compiler, the pthread library for tasks management, and the Allegro library for


  1. Rules for project development A project can be assigned to one or two students and must be developed in C language under the Linux operating system, using the gcc compiler, the pthread library for tasks management, and the Allegro library for graphics. Project assignment: To request a project, please send an email to Giorgio Buttazzo, specifying your full name, student ID number (matricola), email, and project title (among those available listed on the course website). If there is no conflict with other similar requests, you will receive a confirmation email and you can start working on the project. Project discussion: When the program is working, it must be discussed in person at least three weeks before the exam. Working demos have to be executed on your own laptop. After the discussion, possible changes or additions may be requested to complete the project. Please send an Email to the professor to fix the date of the first discussion. The final discussion has to be agreed with the professor before the exam. Project report: A report must be produced (8-10 pages) to explain the project details. In particular, the title page must contain the name of the course under which the project has been done, the project title, an optional picture related to the project, the delivery date, and the author(s) name(s) with contact information (student ID number and Email). The report must include a general description of the project, the design choices, the user interface, the shared data structures, the tasks involved, their timing constraints (and how they were defined), and experimental results, if required. The report must include a diagram illustrating the interactions between tasks and resources. Figures and screen shots are welcome. Task code must not be included in the report. Project delivery: The final project must be delivered via Email before the exam. It must be sent as a single compressed file (.zip o .rar) containing the report in pdf and a folder with the source code. Please name the compressed file and the internal folder with your last name followed with a short project name (for example: Rossi_birds.zip). List of projects Further details and clarifications for specific projects are to be discussed directly with the professor. 1. Lights . Simulate the control of N rotating spotlights (each having 2 degrees of freedom) for a concert stage setting. Each spotlight reads its trajectory from a file (described through the DMX language) and executes it by interpolating the various points. 2. Asteroids . Simulate a set of asteroids (also dynamically created) that are attracted by a black hole in the center of the screen. Also simulate a spaceship with rotation and power engines controllable by the keyboard. 3. Harbor . Simulate a harbor with a number of ships that enter and exit the harbor and need be driven by the operator (you) in predefined locations. A radar must track the position of the ships and represent their position on a display. 4. Elevators . Simulate N elevators in a building with M floors. People using the elevators are randomly generated. Elevators must allow clients to book the requests and stop to floors in the desired sequence. 5. DC Motors . Simulate N dc motors controlled in position or velocity by a PID regulator. Design a simple user interface to provide set points and PID gains during the simulation run. The simulation must display the motor rotation and the controlled variable (angle or speed) as a function of time. Also consider the possibility of introducing finite delays in the control loop.

  2. 6. Ball-Beam . Simulate N ball-and-beam devices. For each device, a ball moves on a linear guide that can be rotated on the center by a dc motor. Then build a controller that, based on the position and velocity of the ball on the guide, is able to maintain the position of the ball at the center of the guide by actuating the motor. Create different tasks for sensory acquisition, motor simulation, control, and display. 7. Segway . Simulate a number of segways (implemented as concurrent tasks) with the possibility of changing the control parameters of a specific segway selected with the mouse on a control panel. 8. Goalkeeper . Simulate a robot goalkeeper consisting of a cart moving on a guide. Position and speed of the incoming ball must be read by a periodic task that samples the visual field at a given rate. Visual sensing, motor simulation, control, and display must be implemented as different tasks. 9. Crane . Simulate a crane able to grasp, move and release loads in a workspace. 10. Waves . Simulate a square matrix (x,y) of elastic elements where each element oscillates along the z-axis influencing its neighbors with a given fixed delay. Representing each element through a pixel with color proportional to its position on the z-axis, simulate the generation of waves in a lake. 11. City . Simulate an urban area with a number of streets where randomly generated cars enter and exit the area. Each car is implemented as a periodic task and follows its local rules. Moreover, manage at least a set of 4 traffic lights controlling the traffic on a single cross. 12. Patriot . Simulate a set of Patriot defense missiles that identify enemy targets, predict their trajectories and are launched to catch them. 13. Tracking . Simulate a pan-tilt mobile camera controlled to track moving objects on the screen. Motor simulation, camera acquisition, control, and graphics must be implemented as different periodic tasks. Consider the possibility of tracking the target in a moving windows of variable size, enlarged when the object is lost. 14. Levitron . Simulate a set of N Levitrons. 15. Space battle . Simulate a space battle with two spaceships, one of them autonomous and the other controlled by the keyboard. 16. LEM . Simulate and control a LEM during a lunar landing. 17. Pool . Simulate the Pool game, where each ball is a periodic task. 18. Pinball . Simulate the Pinball game. 19. Cannon . Simulate a cannon controlled by the used that must shots a ball to catch a target that moves slowly on the ground. 20. Filters . Simulate N filters of different types (e.g., low-pass, high-pass, and band-pass) selectable by the user. All filters receive the same input signal and produce different outputs. The input signal is generated by a periodic task and is also selectable from a given set (e.g., sinusoidal, square, sawtooth, step, square, and triangular). 21. Sinusoids . Simulate N sinusoidal generators, whose frequency and amplitude must be selectable by the mouse and the keyboard. The produced waves are summed to produce a resulting output signal. All signals are visualized as a function of time in small windows (like oscilloscopes) in which is possible to select the scale for amplitude and time. 22. FFT . Visualize the waveform and the FFT of an input signal taken from the microphone or, alternatively, from file. The program must allow the user to modify the spectrum (e.g., cutting some parts or modifying their amplitude) and listed the result on the speaker.

Recommend


More recommend