Skills: Python | Embedded C
This team project was part of the final exhibition of the Connected Objects course. The theme for this exhibition was "Nostalgic Futures", and this project was aimed to address the dichotomy between our childhood and our present selves.
As children, we were imaginative, joyful, and genuine. As we've aged, often we become more influenced by what others say about us, less imaginative, and overall grumpier. People could tweet at this monster using a special hashtag, he would "understand" if these tweets were good or bad, and he would change his mood accordingly.
He drove around the exhibition in a constrained area which we limited using white tape and an IR sensor in the chassis. When he bumped into someone, he would make a sound that would change depending on his current mood: polite, happy sounds if he was in a good mood; grumpy, impolite sounds if he was in a bad mood.
I was in charge of coding the behavior analysis, sensing the bumps using a microcontroller and accelerometer, and reacting to these events playing the sounds. I also helped with the driving behavior, and the character design of the monster.
In particular, I wrote a Python script that connected to Twitter's API and a sentiment analysis library to decide its mood, and I connected this to a microcontroller that would change the lights in an LED strip in his forehead accordingly. This microcontroller was also connected to an accelerometer that would sense if the robot bumped into something. I wrote another script, which I ran in parallel at the exhibition, that would read this information (both mood and bumps) and play mp3 files in my computer, choosing a random file in a specified folder to reflect the mood of the monster. I connected my computer to a bluetooth speaker inside the robot to create the illusion that the monster was making the sounds.
Find the project's GitHub repo here.