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) Meet
Team 125!
Slide 3
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
Slide 4
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
Slide 5
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
Slide 6
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
Slide 7
Hardware Overview Arduino o Computer(GUI) o Transistor Circuit
o System state LEDS
Slide 8
Hardware Overview Electromagnet o Levitating Object o Bottom
Hall sensor o Top Hall sensor
Slide 9
Hardware Overview Hall Processing Circuit o data to Arduino
Enable switch
Slide 10
Computer/Graphical User Interface Why a GUI? Arduino can
levitate magnet without computer Processing Code o User Interface o
Debug o Data Display
Slide 11
Computer/GUI - Functional vs OOP Why OOP over functional
programming? o Contained variables (avoid conflicts) o Blueprints o
Hierarchy
Slide 12
Computer/GUI Functional vs OOP
Slide 13
Computer/GUI Humble Beginnings Text Fields Buttons
Slide 14
Computer/GUI - Layout Text Fields Text Input/Console Buttons
Graph
Slide 15
Computer/GUI Final Layout
Slide 16
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
Slide 17
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
Slide 18
Challenges - Noise Power Sources o Filter Capacitors Signal
Wires o Grounded Shield Wires o Lead Lengths Power Transistor
Circuit Isolation o Separate, more Robust board
Slide 19
Challenges - Field Calculations The magnetic field of the coil
o Educated guesses Real Time measurements o Second Hall Effect
Sensor o New op amp circuit addition
Slide 20
Conclusion Success! Eyes were bigger than our stomachs A few
setbacks Digital feedback control system o PID o PWM Interesting
and Interactive GUI Success!!!