Category Archives: Stage 3

DAT304 – Logo and Branding

I thought I would start simple, find a nice font then play around with the typography.

I tried the simple typographic logo in a range of different colours.

In 2003 Wired published this, it looks at the colours used in the logos of ‘the top 100 brands’:

Based on this we can see that blue is used very heavily with red also used heavily with yellow, green and pink barely used. So there seems to be psychological and cultural reasons for brands choosing certain colours. A brand must choose to conform to the patterns and benefit from their associated connotations or choose to try and take advantage of the lack of other brands using a certain colour.

The next stage was to make the logo tell people about the product my product can be summarised as an unhappy…

…robot.

This logo is functional, along with the slogan it should be able to convey the nature of the product. I chose orange as it’s a strong appealing colour which looks good against light and dark backgrounds.

DAT304 – Slogan Ideas and Description

The slogan is an important part of a product’s brand, it lets potential customers know what the product is, what it’s for and can make more sense of the product’s name.
I’ve come up with a few options for slogans here:
  • A machine for complaining.
  • A toy that hates everything.
  • An unhappy robot.
  • The Sad Robot
  • The Complaining Robot
I will need to do some market research and try out different ideas for the slogan.
My first attempt at writing the single sentence description was as follows:

Temperamental is a small spherical device that senses its environment and then complains about it.

I thought this was a pretty good start, most of the key details about the product are in there including the humour that is important for the product while avoiding going into more technical details. The crucial thing I feel it lacks is referencing the interactive game-play aspect, without this there is only subtle implication that it is a toy.

Temperamental is a small spherical device that senses its environment and then complains about it, only by changing its surroundings you can make it stop.

I felt this could get across the idea of the product across both concisely and effectively.

DAT304 – Name

I usually have trouble naming things but in this case it was fairly easy to come up with one.

The first thing I did was to check a thesaurus for words that represent the inconsistent and fickle nature of the product’s ‘personality’.

Out of these Temperamental really stood out as it incorporates the concept of something inconsistent and annoying, implies that the product is something playful and contains the words ‘temper’ and ‘mental’ to further reinforce the concept. My doubt with this as a stand alone name is that it doesn’t really convey that it’s a toy but in context and with a brief strap-line there will be no problem explaining what it is in the same way thousands of brands do.

 

DAT304 – Business Idea

My business will produce an electronic toy aimed primarily at the gift market. The toy will take the form of a tactile sphere and feature a small LCD display and a number of sensors. Using the data from these sensors it will display complaints about its environment on the display. It is up to the user to make the device happy.

The idea is based on an earlier project for DAT301 (Realtime) and the feedback received after presenting it. I felt that it could be converted into an interesting product and incorporate new game-play elements, such as making it possible for the device to have a happy state, the challenge being to achieve the correct balance of a number of environmental factors.

If the ball is too hot it complains about the heat on the display, if it’s too cold it also complains using its large array of phrases. The main environmental factors it could sense are temperature, light, proximity and orientation.

For my business I want to focus around this single core product and hopefully in the long term branch off from it with a range of products in the same vein.

DAT301 – Bioresponsive Game

We were demonstrated and introduced to a number of biometric recording devices including a brain wave measuring headset called a MindWave and a biofeedback sensor kit which had  several different sensors. Based on this we had to create an interactive project making use of this technology.

Writing this after the presentation, it’s fair to say that none of the group were happy with the outcome. We felt that the main problem was the lack of a solid and interesting concept and appealing aesthetics that related to it.

We decided for the sake of variety to avoid Arduino and were attracted to the idea of producing a game that was affected by the level of stress experienced by the player. To get an early start I proposed porting over a game I made in flash in the first year (the poorly named Klepto1), into Processing as a base to build of off. I was more concerned with the technical detail of the programming with extensive use of object orientated programming and making it flexible for the group to use. After this we left completing the remainder of the project too late and had to rush, dropping the use of live data and then there was also confusion over what pre-recorded data we were using. We believe we can avoid this happening again.

DAT302 – Technical

The prototype uses of 3 sets of 5 LEDs, each LED is soldered to two 30cm long wires which are soldered into a positive and negative header for the sets. This means that the LED sets can be easily plugged into a bread board or directly into an Arduino. The soldering was fairly time consuming but it allowed for quick assembly.

We realised that the Arduino would not be able to provide enough power for the LEDs on it’s own so we decided to make use of the ULN2003 chips I used in Weather Transplant, the 470 Ohm resistors supplied with the LEDs  and an adjustable transformer to get the correct voltage.

To control the wall we needed to create a touch interface, the easiest way to do this and to make it multi-platform was to create a web application. The web application updated a MySQL database via PHP and displayed the data on a different page. This page is then read by a processing sketch (VoteBridge) that sends the data via the serial port to the Arduino.

And as usual, here is the code:

Processing

import processing.serial.*;

Serial myPort;
String votes;
Timer timer = new Timer(500);

void setup()
{
  size(200, 200);
  String portName = Serial.list()[0];
  myPort = new Serial(this, portName, 9600);
}

void fetchData(){
  String[] data = loadStrings("http://pluxel.co.uk/thevision/feed.php");
  votes = data[0];
}

void draw() {
  timer.update();
  if(timer.active()){
    fetchData();
    myPort.write(votes);
    println("Sent: "+votes);
  }

}

Arduino

int redPins[] = {22, 24, 26, 28, 30};
int bluePins[] = {32, 34, 36, 38, 40};
int whitePins[] = {42, 44, 46, 48, 50};

int redVotes = 0;
int blueVotes = 0;
int whiteVotes = 0;

unsigned long scrollLastMillis = 0;

boolean cycleCheck(unsigned long *lastMillis, unsigned int cycle)
{
  unsigned long currentMillis = millis();
  if(currentMillis - *lastMillis >= cycle){
    *lastMillis = currentMillis;
    return true;
  }else{
    return false;
  }
}

String txtMsg = "";
char s;

void setup() {
  Serial.begin(9600);
  Serial.flush();
  // initialize the digital pin as an output.
  pinModes(redPins);
  pinModes(bluePins);
  pinModes(whitePins);
}

void pinModes(int pins[]){
  for(int i = 0; i < 5; i++){
    pinMode(pins[i], OUTPUT);
  }
}

void reset(int pins[]){
  for(int i = 0; i < 5; i++){
    digitalWrite(pins[i], LOW);
  }
}

void loop() {
  if(cycleCheck(&scrollLastMillis, 1000)){
       while (Serial.available() > 0) {
        s=(char)Serial.read();
        if(s == 'n' || s == 'r') {
            txtMsg = "";
        }else{
            txtMsg +=s;
        }
    }
    if(txtMsg != "") updateVotes(txtMsg);
    txtMsg = "";
  }

  if(redVotes > 5 || blueVotes > 5 || whiteVotes > 5 ){
    boolean victory = false;
    // Voting has finished
    if(redVotes > 5){
      cycle(redPins, 100);
      victory = true;
    }
    if(blueVotes > 5){
      cycle(bluePins, 100);
      victory = true;
    }
    if(whiteVotes > 5){
      cycle(whitePins, 100);
      victory = true;
    }
  }else{
    displayVotes(redPins, redVotes);
    displayVotes(bluePins, blueVotes);
    displayVotes(whitePins, whiteVotes);
  }
}

void updateVotes(String txt){
  Serial.println("Reading: "+txt);
  redVotes = txt.substring(0,3).toInt();
  blueVotes = txt.substring(4,7).toInt();
  whiteVotes = txt.substring(8,11).toInt();
  reset(redPins);
  reset(bluePins);
  reset(whitePins);
}

void displayVotes(int pins[], int votes){
  for(int i = 0; i < votes; i++){
    digitalWrite(pins[i], HIGH);
  }
}

void cycle(int pins[], int period) {
  digitalWrite(pins[0], HIGH);
  delay(period);
  digitalWrite(pins[0], LOW);
  digitalWrite(pins[1], HIGH);
  delay(period);
  digitalWrite(pins[1], LOW);
  digitalWrite(pins[2], HIGH);
  delay(period);
  digitalWrite(pins[2], LOW);
  digitalWrite(pins[3], HIGH);
  delay(period);
  digitalWrite(pins[3], LOW);
  digitalWrite(pins[4], HIGH);
  delay(period);
  digitalWrite(pins[4], LOW);
}