From doing this project, I learned many ways to troubleshoot why a part isn’t working. Since many of my microcontrollers and other parts stopped working, I learned that there are many different tools to figure out which part of the project is going wrong. If a physical part stopped functioning I learned to use a benchtop power supply to test if power was the issue and a multimeter to test where the problem was in a circuit. If my code wasn’t doing what I wanted it to, I used the serial moniter in arduino to test where the code was having problems by using serial.println to see how far through the microcontroller got.
From doing this project, I also learned about the types of engineering I enjoy. Before this project, I had only worked with prototyping and building parts, but through creating this robot I also learned about electrical engineering and computer science. The electrical engineering part of this project was not something I really enjoyed; however, I did enjoy programming. In the future, I will probably stick with mechanical engineering and some computer science as well.
Here is the final code.
One challenge I encountered when working with neopixels was that I wanted to use two separate strands. I originally thought I would have to control the neopixels using separate code by connecting the two strands to different pins of the microcontroller. However, I figured out that if I made the strands the same length, I could run them off the same pin and code. If I were using strips with a different number of pixels, they would need separate code because much the code I used relies on the number of pixels.
Here is a link to the final code which includes the neopixels.
I encountered many challenges when trying to get this part of my project to work. My first problem was that the microcontroller I used for my first milestone was a proMicro which doesn’t have a wifi chip, meaning it can’t communicate with the app. I transitioned to using a feather huzzah in my second milestone, but was having trouble with it communicating with the app. I then switched to using a nodeMCU, but was unable to spin the motors using that. I finally switched back to the feather huzzah and was able to make it work.
I also encountered some trouble using MIT app inventor. I used a template created by someone who had done a voice control robot, and then enhanced parts such as the background, buttons, etc. Once I had created the app, I then tried to download it to my tablet. But, the app to download from MIT app inventor didn’t work for me. I was able to use the usb feature instead of connecting using wifi and get my app, but every time I exited the app or turned off my device, I would need to redownload it. I finally resolved this problem by using the complete download function where the app downloads as a seperate app on your tablet, therefore letting you exit the app without having to redownload.