User:Jstapko/DoorAccess/position control options

Closed loop motor position controller Purpose/goal: To develop a circuit which allows the arduino to pull the door handle to full open, but not past its normal range of motion, stop, and hold it there. The circuit should, after a delay determined by the program, return the door handle to its normal rest position, and in the interim, should automatically correct for the door handle being moved byu external influences.

Possible Solutions:


 * 1)	Electro-mechanical:
 * A)	Mechanical limit switches, such as microswitches activated at the end of travel
 * 1)	Activated by a system of strings, which tighten an pull normally closed switches open (could use modified household switches for this)
 * 2)	Printed circuit board switch built into servo motor (switch contacts are in wrong angular position to use this currently, would have to modify switch)
 * B)	Electrical contacts moved by the motor to correct, as in the Sperry Gyropilot (pictorial representation of system on page 7)


 * Advantages:
 * Simple; few parts, and can be built/ designed with existing knowledge
 * Very cost effective, can be built with off the shelf parts
 * Will perform the task required of it for this project
 * Can be executed very quickly, so the deliverable can be met, yet it can be improved to any extend desired as time and money permit
 * Disadvantages:
 * Low resolution
 * Potential reliability problems
 * Little if any acquisition of new knowledge/skills


 * 2) Partial analog system, such as a wheatstone bridge driving an op amp and D'Arsonval relay (similar to this system) which in turn drives the motor or motor contactor
 * This would use either limit switches or arduino output to control the electrical position of a tap on one side of a resistance bridge, and a motor driven potentiometer on the other. When both taps are at equal points above/below ground, no voltage appears across the tap points, and the motor stays where it is.  When one side is changed electrically, say by a limit switch connecting it to a different point in the bridge arm, or an arduino controlling the voltage fed to one arm/tap, there is a small difference in voltage.  An op amp amplifies this so that the motor is capable of being turned on or off with a very small change in voltage/position.  The motor turns on, and runs in such a direction that it drives the wiper of the motor driven pot in a way that reduces the unbalanced voltage.  This eventually re balances the bridge, reducing op amp output to below the motor power threshold, and turning the motor off. If either the motor shaft is bumped out of place or the control voltage again unbalances the bridge, the motor starts again and corrects the error.
 * Advantages:
 * Better resolution, more positions possible than with limit switches, mostly limited by quality of available components, such as 10 turn pots, high gain op amps, and stable voltage sources
 * More opportunities to learn about relevant technologies, such as op amps, or ditigal to analog conversion for driving a bridge arm with the arduino
 * Still fairly cheap and could probably be implemented fairly quickly, especially if limit switches were used to select taps on bridge for control voltages
 * Disadvantages:
 * Somewhat more complex than solution (1) above, would require such mechanical complications as connecting a potentiometer to a motor and building and properly adjusting a null amplifier (the null amplifier might need to be able to take the full bridge voltage at its input, yet be sufficiently high gain to trigger the motor starting at the slightest mechanical drift)
 * Would probably take considerably more time, perhaps not be finished by the end of the project cycle
 * Still working mostly within framework of prior knowledge, staying in intellectual comfort zone


 * 3) Optical encoder or magnetic hall effect sensor making pulses, which are then sent electronically to a computer and interpreted by the computer to make decisions about what to do with the motor


 * Advantages:
 * Greatest resolution, capable of very precise and fast movements
 * vastly expandable, very versatile, could be upgraded to any level desired with new hardware once software coding and principles are well understood
 * greatest opportunity for new learning, almost entirely new material for me
 * Disadvantages
 * Time - such a system would take much time, I would have to get an encoder, make it send pulses, learn enough about software to get the computer to recognize those pulses, process them, and turn them into motor drive commands – very time intensive, no guarantee of a working product by end of project cycle
 * Money - Certain hardware elements might be expensive
 * Mechanical demands - An encoder will be much more mechanically demanding than a limit switch, strips must be lined up precisely and held very firmly to the project substructure to work well