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

rules for project development
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

  • ptional 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.

slide-2
SLIDE 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
  • ther 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

  • scilloscopes) 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.

slide-3
SLIDE 3
  • 23. Mini-Moog. Simulate an additive synthesizer that sums three waveforms (sine, triangle and

square). The frequency of the waveforms is decided by the user by pressing a key corresponding to a specific note. Each waveform passes through a dedicated band-pass filter (with adjustable parameters), the outputs of which are summed with an adjustable scale factor (volume).

  • 24. Piano. Simulate a MIDI piano keyboard that generates MIDI notes when pressing specific keys
  • n the PC keyboard. The piano keyboard must have controls that allows the player to select the

volume, the instrument, and other MIDI commands (e.g., Pitch Bend).

  • 25. Image2sound. Create a program that reads a picture from a file and converts it into sound.

Consider to process different features of the image by concurrent tasks each playing a different instrument.

  • 26. Sound2image. Create a program that reads an audio file and converts it into a dynamic image.

Consider to process different aspects of the audio stream by concurrent tasks, each drawing a different part (or layer) of the image.

  • 27. Multi-vision. Simulate a multi-vision system that, in order to reduce the noise, integrates (by

taking the average) the images produced by N mobile cameras pointing on the same scene. Each image is generated by a different periodic task, which reads the pixels of the same area of the screen and adds some random noise. The cameras also are moved to point to the centroid of the (noisy) acquired image.

  • 28. Invaders. Simulate the Space Invaders game.
  • 29. Fishing. Simulate a game in which you can fish in a lake with different types of fishes eat

different type of food floating in the water. Each fish has a short range vision and can recognize food based on color.

  • 30. Shooting. Simulate a clay pigeon shooting.
  • 31. Fountain. Simulate a fountains of little balls that have to be caught by a basket controlled by the

player.

  • 32. Car race. Simulate a car race with N cars on a circuit that can be drawn using a mouse and

saved in a file. N-1 cars are autonomous and one is controlled by the player.

  • 33. Mix. Divide the graphic screen in 9 areas (3x3 windows) and simulate a set of periodic and

aperiodic thread (activated by pressing a key), each animating a different portion of the screen.

Projects under Android

  • 34. Walking. Using a single 9-axis inertial sensor (provided by the RETIS Lab) mounted on heap,

develop an application that reconstructs the steps performed by the user and displays them on the screen using 3D graphics.

  • 35. Virtual drums. Using two 9-axis inertial sensors (provided by the RETIS Lab) handled on the

hands, develop an application that allows playing virtual drums visualizing the drums on the screen and generating MIDI messages.

  • 36. Arm tracking. Using two 9-axis inertial sensors (provided by the RETIS Lab) mounted on an

arm, develop an application that reconstructs the movements of the arm and represent them on the screen using 3D graphics.

  • 37. Head tracking. Using a 9-axis inertial sensor (provided by the RETIS Lab) mounted on the head,

develop an application that reconstructs the rotations of the head and represent them on the screen using 3D graphics.

slide-4
SLIDE 4

Kernel related projects

  • 38. Schedule. Visualize the schedule of a task set (with D ≤ T). Each task displays its execution.

Time scale must be variable by the user. The execution of the main function has to be also visualized as idle time. Also visualize periodic activation times and absolute deadlines as longer vertical bars with different colors. Visualize critical sections protected by different semaphores using different colors. Build a task set in such a way a priority inversion occurs. Then run the same example using Priority Inheritance and Priority Ceiling to show that priority inversion

  • disappears. Also visualize the instantaneous workload as a function of time.
  • 39. TBS. Implement a Total Bandwidth Server and build a test case to graphically visualize its

behavior on a set of aperiodic tasks activated by pressing a key on the keyboard.

  • 40. Elastic. Implement a test case to graphically visualize the behavior of the Elastic Task Manager.
  • 41. CAB. Implement a test case to graphically visualize the behavior of Cyclic Asynchronous Buffers.
  • 42. RT-tracer. Develop a library for the Erika Enterprise kernel for tracing the execution of real-time

tasks on a microcontroller provided by the RETIS Lab, making use of the microcontroller digital

  • utputs. Each function of the library detects a specific event through proper hooks provided by

the kernel. The generated trace is visualized by a logic analyzer provided by the RETIS Lab.

  • 43. Porting. Port a version of the Erika Enterprise kernel, called HR (Hierarchical Reservation), on a

STM32 architecture, already supported by Erika for the low-level functions.

  • 44. Buzzer. Develop a driver under the Erika Enterprise kernel for using the buzzer of an inertial

sensor (based on a 32-bit Cortex M0 CPU) and a demo application that produces a proper sound as a function of the detected accelerations and rotations.

  • 45. SD card. Develop a driver under the Erika Enterprise kernel for using an SD memory card on an

embedded platform based on a 32-bit Cortex M0 CPU provided by the RETIS Lab.

  • 46. RT-Arduino. Develop a concurrent application on the Arduino platform using a real-time interface

provided by the RETIS Lab for periodic task management, based on the Erika Enterprise kernel. Then make a performance evaluation.

  • 47. VxWorks. Implement a real-time application on VxWorks, on an embedded platform. Both the

kernel and the platforms will be provided by the RETIS Lab.

Projects based on Leap Motion (provided by the RETIS Lab)

  • 48. Leap robot. Control a robot arm (virtual or real) by gesture.
  • 49. Leap pointer. Control a laser pointer or a camera moving on a pan-tilt rotational device.
  • 50. Leap rover. Control a rover in a real or simulated environment (if signal is lost or for weird inputs

just go in loiter mode). See: https://www.youtube.com/watch?v=ssDeozuLhHA

  • 51. Leap music. Control music generation by hand gestures.

See: https://www.youtube.com/watch?v=sX1VG9KNyDA

  • 52. Leap piano. Develop a program to play a virtual piano.

See: https://www.youtube.com/watch?v=hJf4c17ngK4

  • 53. Leap drums. Develop a program to play virtual drums.

See: https://www.youtube.com/watch?v=fU4ZWAPwvcM See: https://www.youtube.com/watch?v=xdm_2FO44ug