Jerry Brown, a California-based aerospace engineer, designed and built (both the hardware and software) an MCU-based computer display component (CDC) for a traffic-monitoring system. The system with the CDC is intended for monitoring and recording the accumulative count, direction of travel, speed, and time of day for vehicles that pass by.
In his November 2014 Circuit Cellar article, “MCU-Based Control Display Component,” Brown explained:
For the past five years, I have been working on an embedded project that you might find interesting. As part of a traffic-monitoring system (TMS) developed by a colleague (a retired aerospace/aeronautical engineer), whereby traffic flow on city streets and boulevards is monitored, I designed and built (both the hardware and software) a dual Microchip Technology PIC18F4520 microcontroller-based control display component (CDC, see Photo 1). My motivation to develop the CDC came about as a result of my chance meeting with my colleague when we were both judges at the local county-wide science fair. He explained the concept of the TMS to me and his motivation for developing it and said he needed an electrical engineer to design and build the CDC. Would I be interested? You bet I was.
Brown went on to describe system.
The TMS comprises a dual laser beam transmitter, a dual sensor receiver, and the CDC (see Figure 1). It is intended for unmanned use on city streets, boulevards, and roadways to monitor and record the cumulative count, direction of travel, speed, and time of day for vehicles that pass by a specific location during a set time period (e.g., 12 to 24 hours).
The transmitter, which is placed on one side of the roadway at the selected measurement-monitoring location, has two laser diodes (in the red color spectrum about 640-to-650-nm wavelength) spaced 12″ apart. The receiver has two photo transistor detectors also spaced 12″ apart. The transmitter is positioned directly across the roadway from the receiver as nearly orthogonal as possible. In operation, the two laser diodes in the transmitter continually emit a pair of parallel beams a small distance above the road surface, and the beams are aligned so that they impinge on the two photo sensor arrays in the receiver across the road. When a vehicle passes through the monitoring location, one beam is interrupted and, a short time later, the second beam is interrupted. The CDC electronics and software accurately measures the time differential between the sequential beam interruptions to determine vehicle speed and, depending on which beam is interrupted first, determines the direction of travel. The CDC—which counts the passing vehicles accumulatively and calculates and displays vehicle speed, direction of travel, and time of event on an LCD—is electrically connected to the receiver. All traffic-monitoring data including the time of each interruption event is recorded on a Compact Flash Memory (CFM) card within the CDC for later review and analysis in an Excel spreadsheet or other data analysis program. In addition, the CDC has an alphanumeric keypad whereby the set-up technician can enter four initial parameters (Date, Location, Map Book Page, and Map Book Coordinates), which are downloaded to the CFM card as the “Header File.”
The TMS system-level requirements established by my colleague drove the CDC level requirements which I documented. Specifically, the CDC had to be of a size and weight so that it could be easily hand carried. Inexpensive off-the-shelf components were to be utilized to the maximum extent possible in the design and fabrication of the CDC. Power consumption needed to be kept to a minimum. Functionally, the CDC had to be capable calculating speed to within ±1 mph of all vehicles passing through (i.e., “interrupting”) the laser beam pair. In addition, the CDC had to be able to determine the direction of travel, the time the valid interruption occurred, and the cumulative count for all vehicles interrupting the laser beam pair during a manned or unmanned test session. A real-time GUI (i.e., the LCD) and a keypad were also required, as was nonvolatile memory (CFM card) to store all the traffic pattern data obtained during a traffic-monitoring session.
Figure 2 shows the CDC’s functional elements.
The functions of the main co-processor are to display on the LCD input from the User Interface, to drive the status LEDs and to calculate and display traffic pattern data which is sent to the CFM microcontroller. The CFM microcontroller formats the traffic pattern data in a File Allocation Table (FAT) file and writes that file to the CFM card. Both microcontrollers are clocked by a 40-MHz crystal controlled oscillator and both have an in-circuit serial programming port (ICSP), which allows for programming and reprogramming the microcontrollers at the CDC level. During the software development phase of the project, the ICSP ports were definitely utilized. A power on reset (POR) circuit initializes both microcontrollers at system power-up.
Based on the FBD and the established CDC functional requirements, I designed the CDC motherboard circuit using a schematic capture program. Where necessary, I simulated elements of the circuit using a circuit simulation program. I used an online PCB prototype fabrication service and had to re-enter the schematic using their software. I then laid out and routed the two-sided board using the software package provided by the online vendor. After I submitted the file, it only took a few days to receive the two prototype PCBs I ordered. I “populated” one of the boards with components I had purchased and kept the second board as a spare. Preliminary board-level testing of the assembled PCB revealed two layout errors which were easily corrected by an X-ACTO Knife trace cut and by the addition of a jumper wire.
Figure 3 depicts the CDC main microcontroller circuit on the motherboard. Photo 3 shows the inside of the CDC with the front panel removed.
As indicated above, I designed and assembled the motherboard circuit card. The LCD module, the keyboard module, the RTC module, and the CFM card module were all purchased assemblies. Once all the parts were installed in the case, I completed the interface wiring.
The complete article appears in Circuit Cellar 292 (November 2014). Additional files are available on the CC FTP site.