Trump Vision

Made by Roisin Pearson and Evan Adkins

Trump vision provides an ambient way of discovering when Donald Trump is tweeting obtrusive tweets. The shades react by narrowing the user's vision and creating an "in your face" sensation

Created: February 19th, 2017



The Trump shades are meant to be worn during times of political intensity. They look for aggressive, upfront tweets from @realDonaldTrump and respond by flipping down the exclamation mark shades to showcase to the user Trump’s obtrusive tweet and narrow-minded view. While analyzing Donald Trump’s tweets we realized that he has a very set punctuation and style about his tweets. For Example

“The Democrats had to come up with a story as to why they lost the election, and so badly (306), so they made up a story - RUSSIA. Fake news!”

We therefore decided to get data from these aggressive sounding tweets and display this information to the user in the form of sunglasses. We decided on checking if the tweet displayed a ‘!’ as this symbol evokes strong feelings and a certain loudness. The glasses were chosen as a symbol to represent this as when they drop down they are in your face and impertinent, narrowing your view (just like Trump).



We wanted to create a project that represented the comical and absurd way that Trump uses twitter. By showcasing this style of tweeting in a physical object people could view and experience the irony and hilarity of Trump's twitter. Donald Trump is a figure that is always appearing the media, which is why we chose him and his controversies as a topic to explore since everyone knows about Trump and his twitter. 



Our project began with the idea of analyzing Trump's punctuation in his tweets. This was a hot topic in terms of Trump's one-word endings usually expressed with an exclamation mark to wrap up the tweet (e.g. Lies!, Fake News!) The part that was more difficult was when it came to deciding on a way to represent this information in an ambient style. We decided on the use of motors as it was a component we felt confident in implementing for this project. The sketches below show our thinking of what kind of ambient device we could do to represent this information from Donald Trump. 

We wanted to do a wearable from the start but found out early on that the hardware would be very tricky to implement. Therefore, we went about ways of creating something that the user could experience on themselves that wasn't necessarily an arm bracelet or item of clothing. By thinking of what words an exclamation mark conveyed we could come up with a device that evoked the same feelings. This eventually lead us to sunglasses that were loud, aggressive and in your face. 

Figuring out how the parts will go together


Components & Software:

-Servo Motor x2



-Acrylic putty

-Elastic headband

-Screws x2

-6v battery pack


-Twitter REST API

-IFTTT Maker Channel

The drafting process began with sketching out how the sunglasses would work with the motorized second lens. We came up with the idea of having two motors attached to each side, with two lenses that would swing down at the same time. This solved the problem of the motor not being able to support one large acrylic frame.We began the fabrication by taking all necessary measurements to draft the housing and attachment mechanics for the laser-cut shades and circuit. We then laser cut the parts and attached them to the shades using screws and acrylic putty. The circuit and battery pack were encased in a red case that sat on the back of the user's head. This was held in place with an elastic headband which was also attached to the glasses. Ideally, we would have liked to have had a smaller encasing but the battery pack took up a lot of the room. Once wired correctly we flashed the firmware and used a local python script to control the tweet collection.

The embedded .ino script controlled the operation of two servos using and input of preferred angle variation and a cloud function to enable movement. If the cloud function ‘twitterMessage()’ received a ‘1’, it would call the ‘servoControl()’, passing pre-set angles for the left and right motors.

We used IFTTT to connect the cloud function to an endpoint on the Maker Channel that is requested when our python script is called. This script uses the Twitter REST API to monitor a specified user’s wall for new tweets containing an ‘!’. When it sees one it send a single command to the board. 

Showing the two motors on each side
Img 8001 %281%29.thumb
Python script checking for new tweets
Trump Vision in action
Particle Code
Servo rightServo;
Servo leftServo;
int right = D0;
int left = D1;
int servoRPos = 0;
int servoLPos = 0;

void setup() {
  // attaches the servo on the D0 pin to the servo object
  // Keep a cloud variable for the current position
  Particle.variable("servoPos", &servoRPos, INT);
  Particle.variable("servoPos", &servoLPos, INT);
  // Expose function to the cloud to be called by Maker IFTTT
  Particle.function("tweet", twitterMessage);
  servoControl(10, 170);

// Moves servo on input of angle from 0-180
int servoControl(int rightPos, int leftPos)
   servoRPos = constrain(rightPos, 0, 180);
   servoLPos = constrain(leftPos, 0, 180);
   // Set the servo
   return 1;

int twitterMessage(String command)
  int cmd = command.toInt();
  if (cmd == 1){
    servoControl(90, 90);
    servoControl(10, 170);
  return 1;
Click to Expand
Twitter API code
import tweepy
from tweepy import OAuthHandler
from tweepy import Stream
import requests

consumer_key =     '***'
consumer_secret = ***'

access_token =       '***'

access_secret =      ‘***'
last_tweet = ''
#twitter_user = 'realDonaldTrump'

twitter_user = 'EvanAdkins88'

#Monitor specified user's twitter posts

while (True):

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)
    api = tweepy.API(auth)

    #Colect most recent post on user's wall

    tweets = api.user_timeline(screen_name = twitter_user, count = 1)

    #Check if most recent tweet contains an '!' 

    if (tweets[0] != last_tweet):
        last_tweet = tweets[0]
        if ('!' in tweets[0].text):
            print ('SAW !')
        print ('SAME TWEET')
Click to Expand


We were quite skeptical at first that this project would actually be able to work. As shown by our sketches it took quite a lot of effort to figure out how the parts would all be connected as we didn’t know if the glasses would be able to support the servo motor. After wearing them for some time, it definitely is startling when a tweet is received, momentarily blinding you to your surroundings. It evokes a sense of mayhem and disarray, similar to the emotions that follow exclamatory remarks... and is quite the head turner.

Overall it was a fun project that worked well and delivered the desired effect on the user. It was good for both of us to explore new territories in the code and manufacturing aspects that were involved in creating this project. It’s unfortunate that Twitter’s API has rate limits on the amount of tweets it can collect in a timeframe as this prevented how often it would be able to work. Further work may be to conceal or reduce the size of the servo mechanics on the sunglasses as well as reduce the size of the housing if a smaller power source was obtained. If we had more time on this project we would have eliminated the need for a breadboard and soldered our circuit onto perf board, this also would have brought down the size of the housing. 

Sadly while we were living with our device over the hour or so while we filmed it produced no action as Donald Trump was not tweeting. However, even though the tweets were not coming in it was still frustrating when the glasses would just flip down all of a sudden and the person wearing them would get a fright. We then can imagine how frustrating these would be to live with on a daily basis, which pretty much matches up with the fact that Donald Trump is a pretty frustrating politician...

Share this Project


Trump vision provides an ambient way of discovering when Donald Trump is tweeting obtrusive tweets. The shades react by narrowing the user's vision and creating an "in your face" sensation