Magnetic Manipulator Team 125 Meet Team 125! Chad Perkins (Spring Team Lead) John Olennikov(Web Master) Ben Younce Marley Rutkowski(Fall Team Lead) Professor Robert J. Albright (Faculty Advisor) Andy McConnell (Industry Advisor) What We Did... • Magnetic Levitation! o o Has been implemented with control interface that allows a user to raise and lower a neodymium magnet suspended below a solenoid The magnet can be suspended indefinitely How We Did It... • • • • Electromagnet controlled by a microcomputer 2 Hall sensors sense magnetic fields Adjust electromagnetic strength o Pulse width modulation (PWM) defines strength o 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 • Arduino o o o Computer(GUI) Transistor Circuit System state LEDS Hardware Overview • Electromagnet o o o Levitating Object Bottom Hall sensor 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 Code o o o User Interface Debug Data Display Computer/GUI - Functional vs OOP • Why OOP over functional programming? Contained variables (avoid conflicts) o Blueprints o Hierarchy o 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 o Problems Unstable values analogRead() not fast enough 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() • • Software interrupt PWM • o uncustomizable low frequency not precise (only 256 values) too much CPU load Solution Utilize Atmel PWM module Challenges - Noise • • Power Sources o Signal Wires o • Filter Capacitors o Grounded Shield Wires Lead Lengths Power Transistor Circuit Isolation o Separate, more Robust board Challenges - Field Calculations • • The magnetic field of the coil o Educated “guesses” Real Time measurements o o Second Hall Effect Sensor New op amp circuit addition Conclusion • • • • Success! “Eyes were bigger than our stomachs” A few setbacks Digital feedback control system o PID o PWM Interesting and Interactive GUI Success!!! That’s All, Folks! Questions?Questions?Questions?Que stions?Questions?Questions?Questio ns?Questions?Questions?Questions? Questions?Questions?Questions?Qu estions?Questions?Questions?Questi ons?Questions?Questions?Questions ?Questions? Questions? Questions?