Traffic Lights Project - Learning Steps
To use the Traffic Lights Project as a learning aid, you should follow a planned series of steps or stages to go from the pile of parts to a fully functioning simulation of a road intersection. Here is an example of such a set of steps. Beginners should start at the first step. Intermediates can combine some of the early steps according to their skill and confidence. Of couse, you can adapt these steps to your own learning needs.
(You can use the menu on the left hand side to go back to the Traffic Lights Project introduction.)
Step 1 - Design and Assemble LEDs and Driver Circuits
Learn: using LEDs; using transistors as switches; ohm's law; resistor color code; soldering; verifying circuit operation ... more about this step.
Step 2 - Control State of LEDs from Microcontroller
Learn: compiling, loading and running programs; setting direction of general purpose ports; setting output state of ports; stepping in the debugger.
Step 3 - Operate LEDs in Realistic Traffic Lights Sequence
Learn: translate real-world requirements into software; implementing software time delays; the "forever" loop.
Step 4 - Design and Assemble Traffic Sensor Push-Buttons
Learn: using switches; not damaging expensive parts under software fault conditions; more soldering
Step 5 - Respond to Arival of Traffic
Learn: setting direction of individual bits of general purpose ports; reading input state of ports; doing more than one thing at once; polling; planning an implementation before coding.
Step 6 - Provide Telemetry Stream to an External Console
Learn: setting up the UART of your microcontroller; sending text via the UART; using a terminal emulator on your PC; serial ports; formatting information for display.
Step 7 - Add a Night-Time Operating Mode
Learn: setting up and using hardware timers; tracking time of day; planning and implementing systems with multiple major operating modes; revisit software time delays.
Step 8 - Allow Operation to be Controlled from the Console
Learn: receiving text from the UART; parsing commands; designing operator command systems; dealing with multiple things happening at once revisited.
Step 9 - Adapt to Traffic Volume
Learn: simple "learning"; switch bounce; software debounce of switches; polling revisited.
Step 10 - Design and Assemble Pedestrian and Emergency Vehicle Sensors
Learn: using general purpose ports for both output and input.
Step 11 - Respond to Pedestrians and Emergency Vehicles
Learn: turning output ports around to read inputs; major operating modes revisited.
Step 12 - Implement a Console Menu System
Learn: providing for un-trained or infrequent operators; designing user interfaces; sending large amounts of text via a serial ports; dealing with even more things happening at once.
Step 13 - Double-Check for Dangerous Conditions
Learn: design to avoid dangerous malfunctions (for example, green lights in both directions); redundant design; system recovery in the event of malfunction.
Step 14 - Review Overall System Design
Learn: engineering design as a continual learning process; throwing it all out and starting again; designing for enhancement and maintainability.
Step 15 - Re-Design Using a Real-Time Operating System
Learn: types of real-time operating system; choosing the right RTOS for the job; creating and activating tasks; using RTOS services.
(Use the menu on the left hand side to go back to the Traffic Lights Project introduction.)