Difference between revisions of "ME 333 Suggested Final Projects"

From Mech
Jump to navigationJump to search
Line 10: Line 10:


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 [[I2C Motor Controller|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.
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 [[I2C Motor Controller|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.
'''Week 8 milestone:''' Demonstrate controlled moves by the motors following a simple program in matlab, and show a design of the parallelogram linkage.


Line 15: Line 16:


To allow two PICs, or a PIC and a PC, to communicate wirelessly, we are currently using RS-232 and the xbee 802.15.4 chips. RS-232 is an old technology, and the data rates are relatively low in this solution (250 kbps max for the xbee chips, and typically 115.2 kbps for RS-232). In this project, you will develop a new higher-speed solution based on faster SPI communication and [http://www.sparkfun.com/commerce/product_info.php?products_id=691 this wireless product]. You will demonstrate high-speed wireless communication between a PC and the PIC. You will then demonstrate the high-speed communication by some dynamic task, such as wireless teleoperation of a one-dof robot arm as it juggles a ball or balances an inverted pendulum.
To allow two PICs, or a PIC and a PC, to communicate wirelessly, we are currently using RS-232 and the xbee 802.15.4 chips. RS-232 is an old technology, and the data rates are relatively low in this solution (250 kbps max for the xbee chips, and typically 115.2 kbps for RS-232). In this project, you will develop a new higher-speed solution based on faster SPI communication and [http://www.sparkfun.com/commerce/product_info.php?products_id=691 this wireless product]. You will demonstrate high-speed wireless communication between a PC and the PIC. You will then demonstrate the high-speed communication by some dynamic task, such as wireless teleoperation of a one-dof robot arm as it juggles a ball or balances an inverted pendulum.

'''Week 8 milestone:''' Demonstrate high-speed wireless communication and finalize the mechanical details of the dynamic task.
'''Week 8 milestone:''' Demonstrate high-speed wireless communication and finalize the mechanical details of the dynamic task.


Line 20: Line 22:


The [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/index.htm PPOD] is a 6-degree-of-freedom vibratory platform that manipulates multiple parts simultaneously. See [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/RSS2008video.mp4 this video], for example. You will make a small, portable version (PPOD-Lite) that uses 6 actuators under bang-bang control of programmable amplitude, frequency, and phase (relative to each other). This version will be no larger than 8"x8"x6". It will have a set of knobs or switches that allow the user to set the vibration pattern or choose one from a saved set. Other options: the device could allow the user to save settings into the saved set; it could have a built-in LCD screen; and it could collect data on the actual motion of the plate using accelerometers. Power will come from a wall power brick integrated into the device.
The [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/index.htm PPOD] is a 6-degree-of-freedom vibratory platform that manipulates multiple parts simultaneously. See [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/RSS2008video.mp4 this video], for example. You will make a small, portable version (PPOD-Lite) that uses 6 actuators under bang-bang control of programmable amplitude, frequency, and phase (relative to each other). This version will be no larger than 8"x8"x6". It will have a set of knobs or switches that allow the user to set the vibration pattern or choose one from a saved set. Other options: the device could allow the user to save settings into the saved set; it could have a built-in LCD screen; and it could collect data on the actual motion of the plate using accelerometers. Power will come from a wall power brick integrated into the device.

'''Week 8 milestone:''' Demonstrate bang-bang control of one actuator and complete mechanical design for the 6-DOF device.
'''Week 8 milestone:''' Demonstrate bang-bang control of one actuator and complete mechanical design for the 6-DOF device.


=== Marionette ===
=== Marionette ===


Make a planar puppet actuated by strings pulled by robot arms out of view of the viewer. The robot arms could be actuated by RC servos. See this [http://robotics.mech.northwestern.edu/~murphey/PuppetSimulation_GTandCU_high.mpg video (warning! it's 33 MB)] of another automated marionette system.
Make a planar puppet actuated by strings pulled by robot arms out of view of the viewer. The robot arms could be actuated by RC servos. See this [http://robotics.mech.northwestern.edu/~murphey/PuppetSimulation_GTandCU_high.mpg video (warning! it's 33 MB)] of another automated marionette system.
'''Week 8 milestone:''' Demonstrate controlled 2-DOF motion, e.g., to make the arm of the puppet wave.
'''Week 8 milestone:''' Demonstrate controlled 2-DOF motion, e.g., to make the arm of the puppet wave.


Line 30: Line 34:


(Client: Prof. Malcolm MacIver.) The weakly electric knifefish often prefers to hide in tight spaces rather than to swim in the open. See [http://glacier.me.jhu.edu/Movies/fish_hand1-small.mov this video] of this fish attempting to stay hidden in a tube as it is moved back and forth. Prof. MacIver would like to build a tube that can move under computer control, at different angles (other than purely horizontally), to see what motions of the tube the fish will track. You will build a 1-DOF prismatic device that slides a tube back and forth, and design a mechanism so that the angle of the tube can be changed relative to the linear slide.
(Client: Prof. Malcolm MacIver.) The weakly electric knifefish often prefers to hide in tight spaces rather than to swim in the open. See [http://glacier.me.jhu.edu/Movies/fish_hand1-small.mov this video] of this fish attempting to stay hidden in a tube as it is moved back and forth. Prof. MacIver would like to build a tube that can move under computer control, at different angles (other than purely horizontally), to see what motions of the tube the fish will track. You will build a 1-DOF prismatic device that slides a tube back and forth, and design a mechanism so that the angle of the tube can be changed relative to the linear slide.

'''Week 8 milestone:''' Demonstrate trajectory following of sinusoidal motions by a carriage along a linear rail using either a stepper motor or a motor and encoder.
'''Week 8 milestone:''' Demonstrate trajectory following of sinusoidal motions by a carriage along a linear rail using either a stepper motor or a motor and encoder.


Line 40: Line 45:


You will build a classic experimental apparatus in nonlinear dynamics. The PIC controls the oscillation of a speaker in the vertical direction. A concave lens is attached to the top of the speaker, and a ball bearing bounces on the lens as the speaker moves in the vertical direction. The concavity of the lens keeps the ball centered. For some frequencies and amplitudes, the ball will bounce in a steady cycle, bouncing to approximately the same height after each impact. As you increase the amplitude, however, the ball may go through a period-two phase, where it first flies high, then low, then high, then low, etc. If you continue to increase the amplitude, you may see higher-period behavior, and finally the motion of the ball will be hard to predict or "chaotic." You will create a microphone circuit to listen for the impact between the ball and the lens, and the PIC will calculate the time between impacts and send the data back to a matlab program. The PIC will also monitor the acceleration of the speaker using an accelerometer and send that data back to the matlab program. The matlab program controls the amplitude of the speaker oscillation by communicating with the PIC. The matlab program plots the experimental results, possibly as a "bifurcation diagram." See [http://fizyka.phys.put.poznan.pl/~pieransk/BouncigBall.html this site] for more information on this experiment.
You will build a classic experimental apparatus in nonlinear dynamics. The PIC controls the oscillation of a speaker in the vertical direction. A concave lens is attached to the top of the speaker, and a ball bearing bounces on the lens as the speaker moves in the vertical direction. The concavity of the lens keeps the ball centered. For some frequencies and amplitudes, the ball will bounce in a steady cycle, bouncing to approximately the same height after each impact. As you increase the amplitude, however, the ball may go through a period-two phase, where it first flies high, then low, then high, then low, etc. If you continue to increase the amplitude, you may see higher-period behavior, and finally the motion of the ball will be hard to predict or "chaotic." You will create a microphone circuit to listen for the impact between the ball and the lens, and the PIC will calculate the time between impacts and send the data back to a matlab program. The PIC will also monitor the acceleration of the speaker using an accelerometer and send that data back to the matlab program. The matlab program controls the amplitude of the speaker oscillation by communicating with the PIC. The matlab program plots the experimental results, possibly as a "bifurcation diagram." See [http://fizyka.phys.put.poznan.pl/~pieransk/BouncigBall.html this site] for more information on this experiment.

'''Week 8 milestone:''' Demonstrate successful control of the amplitude of the speaker motion, reading of the accelerometer, and bidirectional communication between the PIC and matlab.
'''Week 8 milestone:''' Demonstrate successful control of the amplitude of the speaker motion, reading of the accelerometer, and bidirectional communication between the PIC and matlab.


Line 45: Line 51:


See videos on youtube of "Chladni Patterns." Now imagine making one actuated by three separate speakers spaced at 120 degrees on a round plate. Signal generator chips, controlled by the PIC, will be used to generate the input signals to the speaker amplifiers. Provide knobs to allow the user to set the vibration patterns, or switch to stored motions on the PIC. See what kinds of patterns you can create.
See videos on youtube of "Chladni Patterns." Now imagine making one actuated by three separate speakers spaced at 120 degrees on a round plate. Signal generator chips, controlled by the PIC, will be used to generate the input signals to the speaker amplifiers. Provide knobs to allow the user to set the vibration patterns, or switch to stored motions on the PIC. See what kinds of patterns you can create.

'''Week 8 milestone:''' Demonstrate control of one speaker using a signal generator chip and analog (knob) inputs to the PIC.
'''Week 8 milestone:''' Demonstrate control of one speaker using a signal generator chip and analog (knob) inputs to the PIC.



Revision as of 22:21, 27 January 2009

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?).

Recommended Projects

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, 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.

High-speed Wireless Communication

To allow two PICs, or a PIC and a PC, to communicate wirelessly, we are currently using RS-232 and the xbee 802.15.4 chips. RS-232 is an old technology, and the data rates are relatively low in this solution (250 kbps max for the xbee chips, and typically 115.2 kbps for RS-232). In this project, you will develop a new higher-speed solution based on faster SPI communication and this wireless product. You will demonstrate high-speed wireless communication between a PC and the PIC. You will then demonstrate the high-speed communication by some dynamic task, such as wireless teleoperation of a one-dof robot arm as it juggles a ball or balances an inverted pendulum.

Week 8 milestone: Demonstrate high-speed wireless communication and finalize the mechanical details of the dynamic task.

Portable 6-DOF Vibratory Platform for Parts Manipulation

The PPOD is a 6-degree-of-freedom vibratory platform that manipulates multiple parts simultaneously. See this video, for example. You will make a small, portable version (PPOD-Lite) that uses 6 actuators under bang-bang control of programmable amplitude, frequency, and phase (relative to each other). This version will be no larger than 8"x8"x6". It will have a set of knobs or switches that allow the user to set the vibration pattern or choose one from a saved set. Other options: the device could allow the user to save settings into the saved set; it could have a built-in LCD screen; and it could collect data on the actual motion of the plate using accelerometers. Power will come from a wall power brick integrated into the device.

Week 8 milestone: Demonstrate bang-bang control of one actuator and complete mechanical design for the 6-DOF device.

Marionette

Make a planar puppet actuated by strings pulled by robot arms out of view of the viewer. The robot arms could be actuated by RC servos. See this video (warning! it's 33 MB) of another automated marionette system.

Week 8 milestone: Demonstrate controlled 2-DOF motion, e.g., to make the arm of the puppet wave.

Moving Fish Refuge

(Client: Prof. Malcolm MacIver.) The weakly electric knifefish often prefers to hide in tight spaces rather than to swim in the open. See this video of this fish attempting to stay hidden in a tube as it is moved back and forth. Prof. MacIver would like to build a tube that can move under computer control, at different angles (other than purely horizontally), to see what motions of the tube the fish will track. You will build a 1-DOF prismatic device that slides a tube back and forth, and design a mechanism so that the angle of the tube can be changed relative to the linear slide.

Week 8 milestone: Demonstrate trajectory following of sinusoidal motions by a carriage along a linear rail using either a stepper motor or a motor and encoder.

Whisker-Based Tactile Profilometer

(Client: Prof. Mitra Hartmann.) Use a whisker-like sensor to measure object shapes in 3D, without use of a laser scanner. A simple length of wire (a "whisker") can be tapped along the contours of an object to extract the object's complete 3D shape. You will build a whisker/follicle combination actuated at the proximal end by a motor. The proximal end of the whisker will also be outfitted with strain gauges to measure bending moments and axial force. By moving the wire over an object and sensing these forces and moments, the object's shape can be reconstructed. Find some cool videos of rat whisking here (scroll down to the eighth paper or so).

Experiment in Nonlinear Dynamics: Ball Bouncing

You will build a classic experimental apparatus in nonlinear dynamics. The PIC controls the oscillation of a speaker in the vertical direction. A concave lens is attached to the top of the speaker, and a ball bearing bounces on the lens as the speaker moves in the vertical direction. The concavity of the lens keeps the ball centered. For some frequencies and amplitudes, the ball will bounce in a steady cycle, bouncing to approximately the same height after each impact. As you increase the amplitude, however, the ball may go through a period-two phase, where it first flies high, then low, then high, then low, etc. If you continue to increase the amplitude, you may see higher-period behavior, and finally the motion of the ball will be hard to predict or "chaotic." You will create a microphone circuit to listen for the impact between the ball and the lens, and the PIC will calculate the time between impacts and send the data back to a matlab program. The PIC will also monitor the acceleration of the speaker using an accelerometer and send that data back to the matlab program. The matlab program controls the amplitude of the speaker oscillation by communicating with the PIC. The matlab program plots the experimental results, possibly as a "bifurcation diagram." See this site for more information on this experiment.

Week 8 milestone: Demonstrate successful control of the amplitude of the speaker motion, reading of the accelerometer, and bidirectional communication between the PIC and matlab.

Three-Speaker Chladni Pattern Generator

See videos on youtube of "Chladni Patterns." Now imagine making one actuated by three separate speakers spaced at 120 degrees on a round plate. Signal generator chips, controlled by the PIC, will be used to generate the input signals to the speaker amplifiers. Provide knobs to allow the user to set the vibration patterns, or switch to stored motions on the PIC. See what kinds of patterns you can create.

Week 8 milestone: Demonstrate control of one speaker using a signal generator chip and analog (knob) inputs to the PIC.

Other Ideas

  • 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-based feedback. See the video at [1]. Can you build something similar?
  • This would make a great demo if you had a dog! See [2].
  • Build a 2-DOF pizza manipulator. See [3].