TRii

Made by Ke Zheng, Vance Jones and Pengyuan Huang

Found in Ambient Affect · UNLISTED (SHOWN IN POOLS)

  • trEI

trEI is an IoT product based on Particle which acts as an ambient notification of what types of news have been published on users' daily news subscriptions. It can timely notify user what type of news has just been published and convey certain emotion to user by using different colors of light and various intensity of rotating.

0

GOAL

We all have some subscriptions from different websites, but do you check your subscriptions every day and will you really read all the popular articles? The answer is quite obvious. To inform users what kind of articles are available timely and let them choose what they want to read is the goal of our team.

PLAN


why trEI? E for emotion, I for information.

To pursue our goal, we decide to use particle to build an IoT ambient device which could provide users basic information (the category of the popular news) visually while also be able to convey certain kinds of emotion as an interaction with users.

Thus we decided to use RGB LED lights to create good light effects and convey different emotional feelings with different light colors. To make it more "lively", we used servo motor to make the statue rotate with different angles and speeds.

RESULT

Vance is a loyal New York Times subscriber. Though he really likes some of the articles sent to his email box, he has never got enough time to go through the list of information in the subscription email. 

In order to efficiently filter the types of articles he would like to read, he put the trIE on his desk and turn it on every morning when he is having breakfast. Even he is not paying all his attention to the trIE, he can always be aware of what kind of popular news pops out timely. Because of the election, Vance has no mood for political news recently, so he noticed that trIE is shining red color and "moving" aggressively, he would prefer not to check his subscriptions today. However, since he is planning a trip for Spring break, if yellow light up more often, he would love to spend some time read the news about travel in order to make a better trip plan.

0
int blue = D0;
int green = D1;
int red = D2;
int xServoPin = D3;
int yServoPin = A4;
Servo shakeitoff;
Servo pullitup;
int angle = 0;   // servo position in degrees
void setup() {
  pinMode(red, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(green, OUTPUT);
  shakeitoff.attach(xServoPin);
  pullitup.attach(yServoPin);
  Particle.subscribe("politics", anger, MY_DEVICES);
  Particle.subscribe("travel", growth, MY_DEVICES);
  Particle.subscribe("food_and_wine", sated, MY_DEVICES);
  Particle.subscribe("technology", pensive, MY_DEVICES);
}
void loop()
{
digitalWrite(blue, HIGH);
digitalWrite(green, HIGH);
digitalWrite(red, HIGH);
}
void anger (const char *event, const char *data)
{
digitalWrite(green, HIGH);
  for (int x= 0; x < 5; x++){
    digitalWrite(red,LOW);
    //delay(300);
    // scan from 0 to 180 degrees
    for(angle = 10; angle < 45; angle++){
      shakeitoff.write(angle);
      delay(3);
    }
    delay(50);
    digitalWrite(red, HIGH);
    //delay(300);
    // now scan back from 180 to 0 degrees
    for(angle = 45; angle > 10; angle--){
      shakeitoff.write(angle);
      delay(3);
    }
    delay(50);
  }
}
void growth(const char *event, const char *data)
{
  for(int angle = 0; angle < 90; angle++)
  {
    pullitup.write(angle);
    delay(15);
  }
  for (int x= 0; x < 5; x++){
    for (int i= 255; i>0; i--)
    {
      analogWrite (green,i);
      delay(5);
    }
    //delay(500);
    for (int i = 0; i<=255; i++)
    {
      analogWrite (green,i);
      delay(5);
    }}
    //delay(500);
  for(int angle = 90; angle > 0; angle--)
  {
    pullitup.write(angle);
    delay(15);
  }
}
void sated(const char *event, const char *data)
{
  for (int x= 0; x<3; x++){
    for(int n = 0; n <255 ; n++){
      analogWrite(green, 255-0.57*n);
      analogWrite(red,255-n);
      delay(5);
      }
    for(int n= 0; n<255; n++){
      analogWrite(green, 108+0.57*n);
      analogWrite(red,n);
      delay(5);
      }
    }
}
    // scan from 0 to 180 degrees
    /*for(angle = 10; angle < 55; angle++)
    {
      shakeitoff.write(angle);
      delay(45);
    }
    delay(300);
    // now scan back from 180 to 0 degrees
    for(angle = 55; angle > 10; angle--)
    {
      shakeitoff.write(angle);
      delay(45);
    }
    delay(300);
  }
}*/
void pensive (const char *event, const char *data)
{
/*  for (int x= 0; x<3; x++){
    //analogWrite(green,108);
    analogWrite(blue,0);
    // scan from 0 to 180 degrees
    for(angle = 10; angle < 55; angle++)
    {
      shakeitoff.write(angle);
      delay(45);
    }
    delay(300);
    // now scan back from 180 to 0 degrees
    for(angle = 55; angle > 10; angle--)
    {
      shakeitoff.write(angle);
      delay(45);
    }
    delay(300);
  }
}
*/
    for (int x= 0; x<3; x++){
      //analogWrite(green,108);
      analogWrite(blue,0);
      // scan from 0 to 180 degrees
      for(angle = 10; angle < 170; angle++)
      {
        shakeitoff.write(angle);
        delay(15);
      }
      //delay(150);
      // now scan back from 180 to 0 degrees
      for(angle = 170; angle > 10; angle--)
      {
        shakeitoff.write(angle);
        delay(15);
      }
      //delay(150);
    }
  }
Add Comment Collapse
Click to Expand
x
Share this Project

This project is only listed in this pool. Be considerate and think twice before sharing.


Courses

49-713 Designing for the Internet of Things

· 26 members

A hands-on introductory course exploring the Internet of Things and connected product experiences.


Focused on
About

trEI is an IoT product based on Particle which acts as an ambient notification of what types of news have been published on users' daily news subscriptions. It can timely notify user what type of news has just been published and convey certain emotion to user by using different colors of light and various intensity of rotating.

Created

February 8th, 2017