- When I first joined this research group I started working with the RoCo team helping them with documentation and improving file formatting. I then started working on a side project: a paper bot powered by a phone that could be designed using RoCo. At the beginning I mainly focused on how to allow communication between the phone and the paper bot. Once I was able to achieve bilateral serial communication I started working on exploring different ways to exploit the phone's functionalities.
- An obvious one was that it was now possible for the user to communicate to the microcontroller actions to be executed while freed by the burden of carrying around a computer. Furthermore, a paper bot with wheels would easily be able to carry around a smartphone while it definitely cannot carry a computer. Serial communication through a wire is also advantageous because the phone can also work as the bots power source. A wired connection is more reliable than wireless ones such as bluetooth, which has to go through tedious pairing processes, and wi-fi, whichs force the phone to connect to the microcontroller's hotspot and overall is harder to set up.
- Once serial communication was established, it was then relatively simple to write code for the microcontroller to recognize the received string and then perform certain actions based on the request. After that was done, the next challenge was to allow the user to provide input to the robot even when the robot is moving. If we were to put the robot on wheels it would be impossible for the user to input commands by typing so I began to look into voice control. After some research I found that it was possible to use the voice-to-text functionality on the phone to convert voice commands to text that can then be sent to the microcontroller. I was then successful in connecting a phone to a wheeled bot and using voice commands to make it move and stop.
- During the research process I was also able to use the phone's accelerometer and gyroscope to obtain the phone's orientation.
- Finally I continued the project by creating code components for the arduino code that could be implemented in RoCo. By doing this I learned more about the internal mechanisms of the Robot Compiler and made my first contributions to the compiler's available components and ports.
- The next steps in the project would be to actually use the sensors on the phone to create a control system for the paper bot and then finish creating a chassis for the paper bot that can also accomodate a phone holder.