|
intro high level design hardware software results conclusions media work distribution appendix |
  |
While we were able to implement the majority of our design as planned, a number of problems arose during the process. Additionally, we opted to leave out the IR-based obstacle avoidance due to lack of time. First and foremost, while the sensors proved to be fairly directional, there was a fairly large amount of crosstalk, especially for sensors facing in opposite directions. This would often cause the wheels to turn in the wrong direction, or occasionally oscillate back and forth. Adding hysterysis helped this, but did not entirely eliminate the problem. Additionally, the sensors did not have the range we had originally envisioned which, coupled with the tethering of our beacon to the function generator, greatly limited the scope of our cars honing ability. Interference between the motor and sensors was an extremely difficult problem to solve. Getting the motor control FET to switch in response to the control PWM, while not preventing the sensors functioning required a number of revisions to both our circuit and our software. While the phototransistor solution discussed on the hardware page would have been useful for complete isolation of the power lines, we ultimately opted for a hybrid software/hardware solution, using only a common ground line with a great deal of capacitance between power and ground, and switching the motor off in software prior to reading the sensors. The need to switch the motor off and on around sensors readings forced us to change our control loop, moving from a conversion completion based interrupt to a purely time based interrupt which simply blocked while the conversion ran. While this did not prove to be a problem for our design, in a more processing intesive situation, it would have resulted in a large amount of wasted processor time. Finally, calibration of the motor PWM proved to be extremely difficult as the variable battery charge produced different results as each battery drained. This caused us to have recalibrate many times, with each iteration further draining the battery. |