Category Archives: Stage 3

DAT302 – St. Blazey

Our second project collaborating with the architects focused on the small Cornish town of St Blazey near St Austell and the Eden Project. Once a hub for mining, historically copper and tin but later china clay, this industry has mostly disappeared from the town.

The brief sought to create a community archive or museum with the design incorporating some interactive element. The architects worked on the design for the building as we developed the prototype. We came up with a wavy LED wall concept that would be built into one of the walls of the building. The wall would be used for democratic visualisations, with a question about the redevelopment of the town displayed on a screen and a touch screen voting interface. The display could also be used to visualise other elections and votes of interest around the world as well as other information all year round.

DAT302 – RFID

The RFID reader uses a serial connection with the Arduino to pass data to it. The easiest way to do this is to use the pins that are also used for the USB serial connection; the disadvantage of this is that the USB connection cannot be used and that there is only one. The SoftwareSerial library allows us to create serial connections with other pins.

We had a problem with our code for the RFID reader where it would freeze the Arduino unless it was able to read an RFID tag. It turned out that we were using an old version of Arduino and since Arduino 1.0 SoftwareSerial has been based on NewSoftwareSerial which fixed the freezing problem. Another problem we had was that we were using pins on the Arduino Mega 2560 that do not support a feature necessary for SoftwareSerial. Both of these problems would have been solved by actually reading the reference.

We made use of the LCD display used in Fickleduino to display the RFID tags owners’ names.

DAT302 – The Wall

This was our first project collaborating with architecture students at the university.

The group was made up of:

Alex Glover
Craig Norman
Lizzie Seymour
Oliver Pullan
Rheanna Woodman
Panayiota Christodoulou
Simon Batty
Myself

The project involved the large wall in Devonport that is currently being demolished which separated a residential area with the dockyard. Since the the area is no longer dockyard and is being redeveloped as a residential area the wall is being taken down.

We were group 3A and were tasked with coming up with a structure/installation that was inspired by the wall in some way and incorporated material from the wall. The structure/installation would be built in Devonport High School for Boys and serve as a outdoor learning environment.

We worked on a number of ideas but we favored the idea of building a row of climbing walls making use of RFID readers and tags to track progress and achievement. RFID readers would be behind some of the hand holds and the users would have an RFID tagged wrist band. The climbing walls could slide out at the bottom and down at the top using rails allowing for the incline and therefore difficulty to be adjusted. It could be set to angles between fully vertical to fully horizontal on the ground. The climbing walls would be placed on the side of the gym.

DAT301 – Timer

Here is the simple Timer class that I mentioned in the previous post.

// Timer
// author Jo Redwood jred.co.uk

class Timer{
  int period; // milliseconds
  int time;
  int lastTime = 1;
  int timer;
  boolean active = false;
  boolean running = true;

  Timer(int newPeriod){
    period = newPeriod;
  }

  void update(){
    if(running){
      time = millis();
      if(time - lastTime >= period){
        lastTime = time;
        active = true;
        timer = 0;
      }else{
        active = false;
      }
    }
  }

  void setPeriod(int newPeriod){
    period = newPeriod;
  }

  // Resumes the timer
  void start(){
    running = true;
  }

  // Pauses the timer
  void stop(){
    running = false;
  }

  boolean active(){
    return active;
  }
}

Usage:

Timer timer;
void setup(){
  timer = new Timer(500);
}
void draw(){
  timer.update();
  if(timer.active()){
    // Do stuff
  }
}

DAT301 – QuakeCam

For this project we were given the brief to use an RSS feed to manipulate a piece of video and/or audio media.

The group once again comprised of Simon BattyRachael Dalton and myself.

We experimented with a number of effects for manipulating images, we really liked the idea of giving video a 3D based on the brightness of each pixel, bringing them close the brighter they are. We decided to use a webcam as the source of video, our reason for this is that we wanted it to be interactive.

The distorted effect led us to choose our source of data which was earthquake data for the last 24 hours with a magnitude of over 1.

My main focus during this project was to work on a robust and reusable ‘RSS Player’ that could play through a RSS feed and continuously update in the background without freezing the sketch which was of particular importance as it was displaying video. To do this I used threading to create a separate thread in which data could be fetched from the internet.

I created a RSSFetch class that extended SimpleThread which in turn extends the Thread class. This object could then be created with the url and time interval to update in the constructor. The object would then in it’s separate thread continuously fetch the data for the feed. When new data becomes available it sets its available property to true, the RSS class detects this and retrieves the new data from RSSFetch’s xml property and uses its setUsed() method to mark the data as old.

The RSS class then uses a timer to cycle through the data provided by RSSFetch setting its ‘current’ property which is an XML object. I made a timer class that allows you to avoid using delay() and freezing the entire sketch. The RSS class has methods that use the Timer’s methods to pause, play and alter the speed.

DAT301 – Fickleduino Conceptual

Our concept was that of a complaining device that could never be happy; that through a simple text display could provoke humans into vain attempts to please it and eventually become annoyed by it.

Everything the Fickleduino is aware of, it will complain about. If a user is too close they are invading it’s personal space, if they are too far it complains of loneliness. There is no happy middle ground, if the value is above or below or equal to a set point it will complain.

It would be possible for many senses could be added (Hot – Cold, Light – Dark, Wet – Dry, Fast – Slow, Near- Far, Loud – Quiet).

The purpose of Fickleduino is to see how people interact with inanimate objects that display awareness and personality via text.