Our DFS algorithm is working as intended: the data structure we are using correctly returns the order of grid traversal, provided that our wall sensing data is correct. At first, we had lots of issues with wall sensing, since our sensors occassionally had false positive and false negative wall detection. We were able to deal with this in software so that the wall reading was much more consistent. The robot exploring the maze is shown in the video.
For this milestone, we needed to integrate many of the parts from the labs as well as add existing functionality. We refined our DFS, as this is an essential part of the competition, and wrote methods to transmit maze and robot data to the FPGA. Meanwhile, on the FPGA we added wall displays such that we could display all the different permutations of walls that the robot may encounter.
Though the treasure detection is still not completely finished. We made much progress for this milestone. As shown in the video, we are able to detect treasures from the moving robot. To do this, we soldered two treasure circuits consisting of a sensor stage, and amplifier stage, and a Schmitt Trigger stage on a perf board which we then fixed to the bottom of the chassis using velcro. The outputs of these circuits were tested, and they function as intended. However, we are considering modifying the circuits to extend detection range even further than with our last modification. Display functionality for treasures was also implemented by simply changing the colors of grid spaces containing treasures. Unfortunately, for this milestone we were not able to fully detect and display the treasures during maze mapping and instead favored getting the rest of the maze to display properly. Treasure detection, then, will be a main focus in the coming week before the competition.
On the FPGA, to show that the maze has been completed, we change the background color of the maze from black to blue. Also we modified our tone generation machine to turn on only when the robot has sent a done signal. Just for fun, we programmed the tone generator to play "Twinkle Twinkle Little Star". In the video above, we chose to solve a very simple maze to show that the display and done signal do indeed work as intended. Our robot travels relatively slow in the video so that we can be sure radio transmissions are received and sensor readings are accurate. This will eat up a lot of time in the final competition, so we plan to do much work on increasing the operating speed of the robot. Part of this also includes doing what we can to fix the jitter issue our robot seems to have. This work will mainly consist of tweaking parameters so that the robot can handle information and correct for error in line following more effectively.