
I do quite a bit of public speaking, and one of things you never really know when youโre up in front of an audience is: โDo they like what Iโm saying?โ There are all kinds of experiments going on where students can hold wireless devices and anonymously send their โfeelingsโ about lectures to a professor โ this is very similar, but more public. What if I could put a device in front of the room, so everybody could see what the general audience feeling is and alter my speech based on the views?

My โday jobโ is to create an infrastructure for our various business units to be able to perform an analysis of social media content, looking for threads of conversation that may affect some of their business decisions. One of the metrics that most people talk about right away is the general โfeelingโ of people (sentiment) around a given topic. While its interesting to see that 70% of population view a topic as โpositiveโ, I thought a more visual representation of that sentiment would be interesting to create โ a โThumbs upโ or โThumbs downโ view of a topic.
Since Twitter is a real time conversation and there are readily available tools to analyze a twitter stream and produce a result relatively instantaneously I thought it might be interesting to mount a โthumbโ on an axle and spin it up for more positive tweets (and down for the more negative ones). Thus, โThingโ was born.
So one of the first tasks I had to deal with was how to make the arm spin. It was easy enough to find a posable hand โ but I had to make it spin. Turns out a simple servo works really well. There isnโt too much friction on the arm shaft, so spinning the arm was pretty easy. I simply attached a rubber โOโ ring around the arm and around the shaft of the servo and BINGO โ spinning arm. One issue that came up was that the โOโ ring would slip and the arm positive/negative would get out of sync. In hindsight, a โnotchedโ track would be much better since it could more easily grip the arm. As a poor manโs solution, I wrapped double sided tape around the arm so the surface was a bit more โtackyโ and the โOโ ring was able to grip the arm a bit better.
Another issue is that the servo only moves from 0 to 180 degrees. That works for an โupโ / โdownโ motion, but a full 360 degrees might make for a better visual of the sentiment.
Today, I watch twitter in real time and send a sentiment score to an Arduino to determine how many degrees positive or negative to spin the arm. Thereโs still some work to do to โserializeโ the results (some get dropped in the time it takes to rotate the arm, depending on how active the topic is). As a result, the next rev of this needs to include some queueing of results so they are all captured.
The first pass at this project simply counted the number of tweets that were made about a topic โ the more tweets, the more positive (thumbs up) it would spin. That had some complications with having to โage outโ sentiment (so if there was no activity around a topic, the thumb would start to point down, if activity picked up, the thumb would start to spin upwards. As time passes, if conversation goes quiet, the thumb slowly moves to โthumbs downโ over time. I think the realtime sentiment gives a better visualization in the end.
In the end this project probably took about 2-3 hours to put together. The hardest part is measuring the holes in the braces that hold up the arm to be sure they were drilled at the same height (hey, if thatโs the hardest part of this project, it MUST be a breeze). If youโre not familiar with Arduinoโs the Wi-Fi could be a little challenging โ but itโs not bad. If you look at my blog, I used an ESP8266 as a Wi-Fi device for the Arduino โ using a shield may make your life a little easier and help with the queueing in the future (since all of the network and processing of the tweets will be in one compute node).
ADVERTISEMENT