One of the things I really like about the CS program I’m in is that it gives me the opportunity to revisit this project and modify it based on what I’m learning about in school. This quarter, for example, I’m taking an Analysis and Design class, where we are learning about domain models, use case diagrams, and design patterns. One of the other things I really like is that the program focuses on developing new products from scratch with a team of other students. After ensuring that none of my teammates had any ideas about what to build, I talked my team into working on this.
Over the next (last?) month, we’ve developed almost 30 pages of documentation and I’ve completely overhauled the code being used to monitor the sensors. Instead of one script of ~90 lines of Python, I decomposed and expanded the scope of what the software is responsible for. I now have a messaging class (for the upcoming mobile app), a sensor array class with both the BerryIMU and GPS unit having their own classes beneath the sensor array, a Bluetooth interface arrangement for the app, and most importantly: the satellite communications code is done! Mostly because I downloaded the pyRockBlock library from GitHub and added it as its own branch.
The Driver class is now running an infinite loop of updating sensors, listening for messages from the Satellite, and listening for incoming data from the Bluetooth interface. I know this sounds dry and boring, but it’s hard to make this stuff interesting.
Now that the documentation is done, it’s time to pony up and buy the satellite communicator. After a week or two of deciding which unit to buy, I landed on the RockBLOCK 9603 Iridium Satellite Modem with SMA adapter for an external antenna. Then I bought it.
In 48 hours I’ll have everything necessary to finish this part of the project. By the end of this week I will have a fully functional prototype. All that remains is designing and 3D printing a case for all of the components. I’ve put in a couple hundred hours of “two steps forward, one step back” on this project. It’s been both tremendously frustrating and exhilerating. I’m not ready to be finished yet.
So I’m not going to stop working on it. Instead, I’ll be developing a mobile app so I can send/receive messages through the satellite array with my phone, building or leasing an email server, setting up that server to take in formatted data and then send out a more complete message based on that formatted data, and then setting up a database within the server to log messages and store contact information.
GitHub repository, now complete with documentation: https://github.com/CodeBlue04/CrashDetector