Magnetic Manipulator Team 125
Jan 30, 2016
Magnetic Manipulator
Team 125
Chad Perkins (Spring Team Lead)John Olennikov(Web Master)
Ben YounceMarley Rutkowski(Fall Team Lead)
Professor Robert J. Albright (Faculty Advisor)Andy McConnell (Industry Advisor)
Meet Team 125!
What We Did...
• Magnetic Levitation!o Has been implemented with
control interface that allows a user to raise and lower a neodymium magnet suspended below a solenoid
o The magnet can be suspended indefinitely
How We Did It...
• Electromagnet controlled by a microcomputer
• 2 Hall sensors sense magnetic fields
• Adjust electromagnetic strengtho Pulse width modulation (PWM)
defines strengtho Power transistor turn power on/off
at high frequency
• PID algorithm for control
State Machine (Arduino code)• This runs on the Arduino
• Start at System Initialize
• Calibrate Mode gets necessary values
• Idle Mode means the solenoid is waiting for a magnet to come within range of the Hall sensors
State Machine (Arduino code)• PID Control Mode means
that the system is executing algorithm to levitate object in range
• Off Mode means that the magnet is too close and the solenoid shuts off
• The lights on the top of the Mag-Lev tell us what state it is in
Hardware Overview
• Arduinoo Computer(GUI
)o Transistor
Circuito System state
LEDS
Hardware Overview
• Electromagneto Levitating
Objecto Bottom Hall
sensoro Top Hall
sensor
Hardware Overview
• Hall Processing Circuit o data to
Arduino
• Enable switch
Computer/Graphical User Interface
• Why a GUI?
• Arduino can levitate magnet without computer
• Processing Codeo User Interfaceo Debugo Data Display
Computer/GUI - Functional vs OOP
• Why OOP over functional programming?o Contained
variables (avoid conflicts)
o Blueprintso Hierarchy
Computer/GUI – Functional vs OOP
Computer/GUI – Humble Beginnings
• Text Fields
• Buttons
Computer/GUI - Layout
• Text Fields
• Text Input/Console
• Buttons
• Graph
Computer/GUI – Final Layout
Software Challenges
• Analog to Digital Converter (ADC)o Problems
Unstable values analogRead() not fast enough
o Solution; average over space & time Moving Mean 8 timer triggered synchronous ADCs
• No support for Arduino Due, required reading CPU manual
Software Challenges
• Pulse Width Modulation (PWM)o Problems
analogWrite()• uncustomizable low frequency• not precise (only 256 values)
Software interrupt PWM• too much CPU load
o Solution Utilize Atmel PWM module
Challenges - Noise
• Power Sourceso Filter Capacitors
• Signal Wireso Grounded Shield Wireso Lead Lengths
• Power Transistor Circuit Isolationo Separate, more Robust board
Challenges - Field Calculations
• The magnetic field of the coilo Educated “guesses”
• Real Time measurementso Second Hall Effect Sensoro New op amp circuit addition
Conclusion
Success!
• “Eyes were bigger than our stomachs”
• A few setbacks
• Digital feedback control systemo PIDo PWM
• Interesting and Interactive GUI
Success!!!
That’s All, Folks!
Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions?Questions? Questions? Questions?