H. Conclusions and Recommendations

The Problem Solving Project (PSP) ultimately required knowledge of MATLAB syntax, familiarity with MATLAB itself as well as constituent parts like the debugger, an understanding of while-end loops as well as if-end statements, and significant teamwork skills. The group was able to finish the project with relatively few hiccups and ended up creating a near-perfect design.

Comments are liberally placed within the code itself so that any user might be able to understand it quickly – including detailed explanations of which command does what and how to tweak individual commands to achieve desired results.

Some potential sources of error in the project include incorrect code design, hardware failure, and software overload. In terms of code design, some redundancies exist within the code which check some conditions unnecessarily while there are other statements that do not check enough conditions. This is potentially a cause for the aforementioned software overload, as the Arduino microcontroller could easily be overwhelmed with thousands of checks per second from MATLAB. As a result, in some cases the lights not having enough checks on them can ‘break’ the code inconsistently. Whatever the specific issue, it does not appear to be consistent and must occur from multiple erroneous conditions occurring simultaneously. As far as hardware failure is concerned, Train #1 was the assigned train for the project. Some of the connections in the hardware have gotten loose over the years of use, and as a result some hardware issues may yet interfere with normal operation of code in the future.

Possible solutions to these issues include changing the checks on several if-end statements so that only what is necessary is checked without leaving any ambiguity or redundancy as well as an overall reduction in code size – the code itself is currently so bulky it has some performance issues, especially with Arduino.