Aidan’s Status Report for Feb. 11, 2023

At the beginning of this week, I worked with Neha and Jason to complete our proposal. The two most time consuming parts of this were creating our schedule and finalizing our requirements. To finish our requirements, we had to do a lot of research on fire codes and industry standards for fire alarm systems. However, now that we have completed these, I feel that the schedule and requirements will really help us to structure our project. Unfortunately, I tested positive for COVID this week and was unable to attend class, but Neha and Jason were able to Facetime me into class so that I could still watch the presentations.

Later this week, I began by researching PCB design software, and I decided that Eagle would be the best option for us, as Neha and I have both used it before in 18-349 and it is available to us through CMU. Additionally, I found an Eagle tutorial that I could follow to learn how to design PCBs from scratch. This involved creating a PCB with an LED, a jumper, and a resistor. Through, this I learned how to lay out the boards, download components online, and go see the process from start to finish. This was the completed schematic and board:

Additionally, I set out to create a platform where we can test our pathfinding algorithm. I wanted this platform to be able to simulate our distributed nodes, but in a simple way so that we can focus on the algorithm and not get hung up on implementation details. After some research, I found a github repository, Distributed_System_Simulator-DSS_py, that provides a framework to allow multiple python processes to talk with one another. To begin, I wrote an introductory program that involved 10 different processes that talked with one another. This will serve as a basis for once we want to have our nodes communicate with each other for our pathfinding algorithm.

After this, I began to set up a test suite for our pathfinding. I know that testing will be incredibly important as we begin to develop our software. I decided to use pytest for this and currently have created a test file containing some basic tests. As we continue to work on our algorithm, we can easily define more tests and run them by running “pytest”. This will provide an easy to read output for us as we progress. This code has been pushed to our github:

https://github.com/jtledon/18-500_Capstone_FireEscape/blob/path_finding/Pathfinding/distPathfinding.py

https://github.com/jtledon/18-500_Capstone_FireEscape/blob/path_finding/Pathfinding/functions.py

https://github.com/jtledon/18-500_Capstone_FireEscape/blob/path_finding/Pathfinding/test_pathfinding.py

Currently, my Eagle research is on target, as the hope was to have it up and running and used by now. Our Eagle research will be put on hold for now, as we will want to figure out our design through breadboarding. We will have a better idea of our schedule for breadboarding once we order our parts and see when they will arrive. Jason has path finding running on a laptop, which was our goal for this week, and I feel that the work that I have put toward testing this in a distributed simulation, will allow us to reach next week’s goal of having the path-finding running on  Arduinos on time. This will require Jason and me to combine the work that we have been doing and ensure test that the algorithm we choose is running correctly on a laptop. Then we will transfer this code to the Arduino’s.