This week I made considerable progress on the project. First, I finished my app. I made the Bluetooth connection work from my app to the mat, so now when I click on a specific song on the app, the mat microcontroller receives the corresponding song number. It works reliably well when the correct procedure is followed. Tomorrow I am going to work on testing this connection, to 1) check that the correct procedure always works, and 2) to find and fix edge cases where the connection might not work. I also made the app better looking by adding a font and splash screen, and removing an unnecessary page menu. In addition, I continued working on the other mat code. The mat should be completed soon, so then I can debug this code on the mat. Lastly, I started working on the connection between the mat and the lock Arduino. I am going to complete these in the next few days, so that I have time to perform all of the testing that I want to by the end of the week.
I am on time with my work, because I can get everything done that I need to this week (I don’t have anything else to do, so I have a lot of time).
As you’ve designed, implemented and debugged your project, what new tools or new knowledge did you find it necessary to learn to be able to accomplish these tasks? What learning strategies did you use to acquire this new knowledge?
I’ve learned a lot of new things while working on this project. First, I had never made any sort of web or mobile app before. My only experience with them was when we hacked into websites for Intro to Computer Security, which gave me a very limited understanding of JavaScript and web apps. So, I had to learn about JavaScript, React Native, Expo, and Android development tools mostly from scratch. In addition, I’ve never worked with Bluetooth before. I didn’t know what it was besides a convenient, magical connection between two devices. I had to learn about how the protocol works (scanning, advertising, services, characteristics, etc.) and how it is implemented in apps and different microcontroller and module architectures. I wouldn’t have been able to understand any of this new information without my experience from my other classes. First of all, a lot of the new information is similar to or draws on previous information that I’ve learned. For example, I need to use AT commands for the Bluetooth module in the lock. I was confused with what these were, because the documentation was really bad and didn’t explain anything, but then I realized that we had created AT commands for a lab in Embedded Systems. The method of using UART is different on the Arduino versus the stm32 I had used previously, but my foundation in the area has allowed me to learn this new protocol. I have learned most of the new information by finding documentation online and by reading forums where people asked questions similar to the ones I had. There is so much that I have learned by needing to debug errors and finding information online related to the errors. I have realized that I am a very hands-on learner, which has been tough when dealing with code for the mat and the lock, because Brooke and Jada need their microcontrollers for their work too, so I don’t always have access to them.