Fulfilling the Capstone requirement for my Robotics Engineering degree, this smart toy is the result of a year long project by a team of students. The project demonstrates the application of the skills and knowledge that the team had earned, and was still acquiring as the project progressed.
The team formed from a large group of students with a wide rage of majors, including; Computer, Robotics, and Electronic Engineering, Bioengineering, and Computer Science. After all the students had made presentations for their proposed projects I was lucky enough to have a team form around my idea.
(left to right) Jacques Villaflor, Ameer Khan, Jordan Cox, Naina Sharma, Tolu Familoni.
Having fellow students choose my idea as their capstone project, a critical requirement for their degrees, I felt a great deal of responsibility in ensuring that we were successful. To this end I took an early leadership role during our preliminary tasks, and was rewarded with their trust when it was official decided that I would be Team Lead, among other responsibilities. I feel that I did a good job as the team lead; I strove to maintain a unified vision of our project while allowing broad ranging discussion on how to achieve this, provided motivation by highlighting when team members made breakthroughs or completed tasks (and always kept chocolates available), spent time with each team member, helping as much as possible or at least understanding what they were doing, and trying to lead by example by always attending the scheduled team work periods and putting in extra time when a task was harder than anticipated (i.e. trying to lead by example).
I was also in charge of integrating the sensors we used and was heavily involved in making the NeoPixel LEDs work.
The sensors we used were six simple momentary push buttons and a 9 degree of freedom inertial measurement unit (IMU). Several of the team members, including myself, took a sensors class which culminated in the fusion of inertial, rotational and magnetic data from an IMU to generate attitude measurements in an Attitude Heading Reference System. The IMU from our other class was very cheap and was hard to get consistent result from, so we decided to use a better reviewed IMU, which I then needed to write a new library for so that we could get the readings we needed. The requirements for this project were simpler, only really needing relative rotational measurements to be taken. I did spend some time expanding the library after ensuring our min-specs were met, in order to apply the axis-alignment and fusion techniques I had learned to generate objective readings. This was a fun exercise and produced decent results, but further integration into our project would have required more work that the team members either didn't have time for or they hadn't taken the sensor fusion class.
We chose to use NeoPixels as they are RGB LEDs that require only one serial output pin to control the colour of many LEDs and we would have needed 18 pulse width modulation pins to control 6 traditional RGB LEDs, which the Uno32 does not have. The Neopixels use a specific waveform which they interpret as binary one’s and zero’s. We used the SPI protocol to emulate this with one byte of SPI data being translate by the NeoPixels as a single bit. A team mate wrote the library for this and then we both spent a lot of time with an oscilloscope refining the timing and tweaking the code to get the NeoPixels working perfectly. Later in the project, when the Bluetooth module was integrated, the Neopixels stopped working. So my team mate and I had to return to the oscilloscope to figure out what was going on. It turned out the Bluetooth module used a timer interrupt which would interrupt the SPI signal to the NeoPixels. The experience with the Neopixels was particularly fun as it wasn't like anything we had ever done in a class or lab (obviously we use a lot of what we learned in those settings), requiring a lot of research and problem solving.
At the end of each quarter every team was required to make a presentation about their project. The slideshows below are what my team used for these presentations, they show; our initial plan for the Smart Toy, particularly the minimum specifications, a mid-project report on what we had accomplished, challenges overcome and what was needed to complete the project, and the final presentation which detailed all of the components of the project and demonstrated that we had met the minimum specifications.