High Level Design
The Microcontroller-driven Lego Vehicle (MLV) begins in a 'parking' condition where all of the motors sit idle and the stop lights turn on. It then wait for a user input through a button push. If the Forward button is pushed, the MLV moves forward and the forward headlights turn on. If the Reverse button is pushed, the MLV moves backward and the reverse lights turn on. Note however if the MLV is moving forward and the Reverse button is pushed, nothing will happen. The same goes when the MLV is going in reverse and the Forward button is pushed. This is done as a safety measure to protect the mechanical part of the vehicle. Pushing the left or right steering button makes the front wheel of the vehicle turn in the appropriate direction. Pushing the Raise and Lower button raises and lowers the camera mount. Steer Left or Right and Raise or Lower buttons produce motion when the vehicle is moving forward, backward or in a parking condition.
Figure 1. State Diagram