ME 333 Suggested Final Projects
Students working on the projects listed below may begin their work right away, upon approval. Students wishing to propose their own project must write a proposal of approximately 3-5 pages, with at least one drawing (hand drawing OK) showing the whole device, a paragraph or two discussing the overall function and goal of the project, as well as discussions of the sensors and actuators you will use, the computation, and the mechanical design. Although you do not have to have worked out all the details, the proposal should show that you've thought about how the whole project will work. It can be a fun whimsical project, or it can solve a practical problem. Your project should creatively use simple sensors and actuation, but your proposal should be beyond simply applying what we do in lab. Previous projects are a good indicator of what's possible. Your proposal must also include milestones to be met during week 8.
Your final project cannot be a robot for DC.
Projects will be judged on functionality (does it do what it's supposed to do? does it serve a useful function?), reliability (does it do it every time?), ambitiousness (is the problem challenging? did you contribute a new capability to the wiki?), and aesthetic appeal (is it packaged nicely? is it pleasing to watch or fun to interact with?).
High-speed Motor Control from Matlab
You will make motor control PICs that make it easy for anyone to do high-speed encoder-based feedback control of brushed DC motors with only a few dollars of hardware and a cable to connect to matlab on your PC. Your project will build on this project, see also this project, and will consist of a "master" PIC that communicates with the PC plus any number of "slave" PICs, one for each motor to be controlled. The job of the master PIC is to take the program written in matlab and communicate it to the slave PICs, and to coordinate the initiation of moves by the slave PICs, which implement PID controllers at rates up to 2 kHz. Your final project will demonstrate high-speed trajectory following by a 2-DOF parallelogram linkage that can throw and catch objects in a vertical plane. Optional: use an EEPROM to perform data logging at each slave PIC, and send this data back to matlab upon request.
Week 8 milestone: Demonstrate controlled moves by the motors following a simple program in matlab, and show a design of the parallelogram linkage.
Furuta Pendulum (Inverted Pendulum)
Build an inverted pendulum system to experiment with balancing control algorithms. This kind of inverted pendulum is called a Furuta pendulum. A motor controls the rotation of a horizontal beam about a stationary vertical pivot axis, and a second beam rotates freely about an axis along the horizontal beam. The goal is to take the second beam from the hanging down configuration to balanced in the up configuration. An encoder measures the angle of the second beam. The motor pumps energy into the beam, then (probably) switches to a stable linearizing controller when the beam is vertical. See this page, for example. This problem is a challenging dynamic task, and is impressive when it works.
Week 8 milestone: Have the mechanical system nearly finalized, with controlled motion of the motor. The swing-up and balancing algorithms do not have to be implemented yet.
- Claude Shannon, known as the "Father of Information Theory," made a bounce juggling machine many years ago, perhaps the first to make a real juggling machine. It uses no sensor feedback. See the video at . Can you build something similar?
- This would make a great demo if you had a dog! See .
- Build a 2-DOF pizza manipulator. See .
The '*' indicates that a proposal is due.