System for Engine Location Of a Web Train Paul Wimmer and Adam Weintrop Dr. Irwin and Dr. Schertz 2/20/06
Outline Current position on time line Accomplishments of last week Goals for next week
Time Line
Outline Current position on time line Accomplishments of last week Goals for next week
Last Week Recoded all DCC generation software Much more efficient and useful 3 Tier Menu: Select Train (Blue/White) Select Direction (Foreword/Backward) Select Speed (0-9) Problems with White Train Tested the new transformers Organized software program flow
Results The results of the transformer circuit (200 turn sensor and 1 MOhm terminating resistor) -With Train off track ~30 mV -With Train idle on track ~130 mV -With Train running ~upwards of 1 V Could use resistor in engine to increase off / idle voltage range -May not be necessary with 100mV difference
Program Flow 7 Primary modules/functions Main Compare positions Dx Dt Velocity Basic Collision Avoidance? Relay to PC?
Main Change MUX inputs Test each MUX ouptut Determine if the train is on a given section of track Code is written, not done troubleshooting
Compare Compares the new position to the previous position Further action is only taken if the position has changed No relevant info if position is the same
Dx Distance traveled by the train Based on: New track section Old track section Direction (when necessary) Table? Set of loops and if statements?
Dt Determine the time that the train took to cross the last track section Stop a timer upon entrance of a section Extract the values Start up the next timer A certain amount of overflow = idle train
Speed Dx/Dt determined in C in floating point Conversion to an 8 bit integer (char) An averaging algorithm may be implemented (time permitting)
Collision Avoidance If a train is approaching another: Send out an e-stop (if on same processor as the DCC signal) Warn user (if a GUI is setup in Java) Kill the power --> the most practical method
Back to PC Time permitting: Transfer values from EMAC to PC Create a GUI in JAVA
Outline Current position on time line Accomplishments of last week Goals for next week
Problems to Address for Next Week Finish hardware (comparators, multiplexers) Interface with software Test hardware and software I/O Write more independent software functions Divide them up between us Latch or Sample and Hold hardware?