Created: March 4th, 2015

0

Problem:

In studio based environment, sometimes, it is hard for a group of brilliant team members to make decisions on their next step direction. Most of the time people use methods like weight matrix, group vote or just endless discussions. But they are not efficient and will take lots of time. Also, people may get influenced by other team member.

Solution:

Votee is a voting system that can help “designers” to gather ideas within studio quickly, efficiently and quantitatively.

What is Votee?

Votee is a collaborative voting system which helps users in group study to make decision and choose ideal proposals. It is easy to vote . It is Votee.

Scenario

0

Working

This system has two connected parts. One is voting boards for users. In the studio based study or group meeting, each student has a voting board with several buttons on it which represent different proposals. The other part is a big display board. It will be placed in the public places in the studio or classroom and shows the voting results. The lightness in each grid represents how many people agree this proposal. By comparing the lightness of each proposal users can make decision easily and quickly.

We further envision the icon elements. Users can use these icons to tell a simple story or describe each proposal. 

0

Components of the System

Materials Required:

1 SparkCore

1 Breadboard

4 1kΩ Resistors

2 39Ω Resistors

2 Infrared Sensors

Wires

0

LED Board Code

0
//Main.ino
//main for the LED core

//Array for LED
int LedPin[9] = {D0, D1, A0, A1, A2, A3, A4, A5, A6};
//number to count how many remoters
int countCore = 0;
//Array to count how many votes for each light
int ledLight[9] = {0,0,0,0,0,0,0,0,0};
int ledId;

int offPin = A7;

void setup()
{
  for(int i = 0; i < 9; i++)
  {
    pinMode(LedPin[i], OUTPUT);
    analogWrite(LedPin[i], 255);
  }

  pinMode(offPin, INPUT_PULLUP);

  Spark.subscribe("getTheCuteButton",handleLEDsetting);
  Spark.variable("1", &ledLight[0], INT);
  Spark.variable("2", &ledLight[1], INT);
  Spark.variable("led", &ledId, INT);
}

void loop()
{
  int read = digitalRead(offPin);
  if(read == LOW)
  {
    analogWrite(LedPin[0], 0);
  }
}

void handleLEDsetting(const char *event, const char *data)
{
  //everytime count 1
  countCore++;
  //get the ID of LED, set the vote++
  ledId = String(data).toInt();
  ledLight[ledId] ++;

  for(int i = 0; i < 9; i++)
  {
    int brightnessLED = 255/countCore*ledLight[ledId];
    analogWrite(LedPin[ledId], ledLight[ledId]);
  }
  //return 1;
}
Click to Expand
0

Controller Code

0
//start

int buttonPin[9] = {D0, D1, A0, A1, A2, A3, A5, A6, A7};
int buttonRead[9] = {};

void setup()
{
  /*****************************/
  for(int i = 0; i < 9; i++)
  {
    pinMode(buttonPin[i], INPUT_PULLUP);
  }
  Spark.variable("state",&buttonRead[0],INT);
}

void loop()
{
  for(int i = 0; i < 9; i++)
  {
    buttonRead[i] = digitalRead( buttonPin[i] );

    if(buttonRead[i] == LOW)
    {
      //analogWrite(ledPin,255);
      //char buttonID = i;
      //String ix=sprintf("%u",i);
      String ix =  String(i);
      Spark.publish( "getTheCuteButton",ix);
      }
}
Click to Expand
0

Video Demo

0
x