The Idea
Over the summer after Junior year, I was captivated by the video game 'Star Wars: Jedi Fallen Order.' A particularly charming aspect of the game is BD-1, a small droid that accompanies the player, communicating through beeps. This inspired me to conceptualize my own miniature robot, designed to sit on my desk and interactively respond to various phrases I say.
The Model
I embarked on this project with a plan: first, 3D print a robot model featuring joints controlled by stepper motors, and then focus on the circuitry and coding aspects. Being relatively new to 3D printing at the time, I opted for a straightforward and boxy design style, one that I was confident in successfully printing.
The Robot
The robot's movements are facilitated by four different stepper motors that control its base, arms, and head. Additionally, it features two LED eyes and a beeper to emit robot-like sounds. Undertaking this project marked my early entry into circuit creation and coding with Arduino, which proved to be a significant learning experience. One major challenge I encountered was the power supply limitation, which initially could only support one stepper motor at a time. To overcome this, I wrote code that allowed alternating movements between the motors. Eventually, I enhanced the system by adding an additional power supply.
Voice Recognition
To facilitate speech recognition for the robot, I utilized the Processing programming environment to communicate with the Arduino's serial port. I integrated a speech-to-text library developed by Florian Schulz into Processing to handle the voice recognition. In the program, I implemented a series of 'if' loops that accounted for various iterations and potential misspellings of the same phrases. These loops were designed to interpret different greetings like 'Hi,' 'Hello,' 'Hey,' and even incorrect interpretations such as 'Ha' or 'hell o.' This comprehensive approach ensured the robot could flawlessly react to a wide range of spoken inputs.