Thursday, March 19, 2009

Project intentions

Final Project “They’re Here”

Artists frequently examine the latest technology when creating new pieces of artwork. Through the use of technology, artists are able to find new and exciting ways to discover relationships between us and our surroundings, and to critique our everyday lives and the technologies we use. New locative media technology such as global positioning systems (GPS) is just one of the new technologies artists have been able to exploit for their own projects. Global positioning system, or GPS, satellites have only been available for civilian use since 1995, when the system went fully operational (Wikipedia). In the short span of fifteen years, GPS receivers have been placed in our cars and handheld devices, and drastically changed the way we navigate and connect with others. Additionally, through the use of GPS technology, we can discover new ways to form relationships with our surroundings.

My initial idea for this project was to create a game that involved two people, a user and a runner. The user would sit at a computer and have a map with a relatively large area marked on it. Using voice commands over a two-way radio, the user could direct the runner into the large area that was marked on the user’s map. Once in the area, the runner would have to rely on a hand held device with a GPS receiver in it to guide him to a preset location within the area marked on the map. The hand held device would vibrate and grow in intensity the closer it got to the target. While this idea was interesting, I was unable to come up with a meaningful purpose to the game, or at the very least, figure out what the final target should be.

My biggest inspiration for this idea was Blast Theory’s “Uncle Roy All Around You”. This project uses GPS receivers as well as wireless Internet technology to create a network of online players and street players working together to find Uncle Roy’s office. The online players are given a virtual representation of the city, and can see actual pictures of the city when they click on context sensitive icons. At the same time, the street players are wandering on the streets with a mobile device with GPS functionality. Through the use of cellular and global positioning satellite technologies, the players are able to communicate with each other to achieve their goal of finding Uncle Roy. Once the players find Uncle Roy, both the online and street players are asked if they will commit to helping a stranger for a 12-month period if they are in a time of need (Blast Theory). The purpose of this game and what makes this game unique, is that it examines the social changes that come about when most people are constantly connected to a network through wireless devices. The art piece “Uncle Roy All Around You” brings strangers together through wireless and GPS technologies, and creates a new social network between the team members.

With this idea gone, I knew that I wanted to accomplish two things, use GPS technology, and create something that was interactive, or driven by the performance of the user. Interactivity has always been an important topic to me, because it allows the viewer to experience the artwork in his or her own way. Also, coming from a video game background, interactivity is something that has always interested me. In order to get inspiration I studied some of the Happenings that Allan Kaprow set up in the 1950’s and 60’s, since they are a good starting point for user interaction performances (New Media Reader, 83). Additionally, I looked at other GPS projects such as Jeremy Wood’s “GPS drawing”, Annina Rust’s “Inside Outside” (Rust) and “34 North 118 West” by Jeff Knowlton, Naomi Spellman, Jeremy Knight, and Brandon Stow (Knowlton).

In both “Inside Outside” and “34 North 118 West”, the artists are using GPS technology to add emotional weight and allow the user to relate differently to specific locations through the use of physical response, and historical information by means of text, photos, and sound (Rust/Knowlton). These were the two projects that really got me to start thinking about what kind of information I want the user to gather when they are using my project.

After a bit of brainstorming and a trip to my grandma’s house, I decided that I wanted to use the GPS receiver to locate the positions where people have passed away. I got the idea while helping my grandma do laundry inside her garage. Back in 1992, my grandfather was murdered in my grandmother’s garage while working in his woodshop. Ever since then going into the garage has been kind of a creepy experience because of the location’s history. With my project I want to attempt to evoke a similar emotion when wandering around campus or other locations.

Death is kind of a taboo subject since most people don’t think about it on a day-to-day basis, and especially when they are walking around campus. Additionally, death brings up the topic of religion, since every religion treats death a little differently. For instance, Christians believe that when you die your soul is judged, and based on your lifestyle you are sent to heaven or hell. Hindus believe in reincarnation, which means your soul flows from one being to another (Death and Religion). The belief that I am trying to evoke with my project is the belief that when someone passes away, their soul remains on Earth to haunt the location where they died. This belief it the one that is shown most in movies and television, so I’m hoping to capitalize on its popularity, no matter what the religion of the user is.

“They’re Here”, takes GPS data of the positions where people passed away and turns it into a heart beat vibration signal. In other words, when someone is wearing the device and they walk into an area where someone passed away, two vibration motors will go off in a heart beat pattern to alert the user that someone passed away in the area. The heart beat pattern is very recognizable and should convey the message to the user that someone passed away but a part of them is still attached to the location. Through this project I hope to evoke the feeling of haunting spirits, and to allow the user to create a new and previously unseen connection to a familiar place.

Wednesday, March 18, 2009


Here is the schematic for my project.



Here are some Pictures of the project. Unfortunately, I didn't get any pictures before I returned the GPS receiver to my professor.


Tuesday, March 17, 2009

Well sewing the pouch for the project took much longer than I anticipated. I ended up arriving to the final about a half hour late, but luckily for me they hadn't started presenting yet. On the way to class I tested out my project just to make sure everything was in working order still. There were a lot of interesting projects, and it was cool to see how they all turned out.
It took a little time to transfer the project from the bread board to the especially since I messed up the first time, and had to buy another multipurpose PC board. Also, I realized that I didn't have enough standoffs to use for the GPS connections, since I need to return the GPS receiver to my professor (which would be harder to do if it was soldered to the board). Therefore, I had to buy an IC socket and cut it into pieces since Radio Shack didn't carry anything else that would work for me. Now that my project is soldered and in working order, I'm gonna get some sleep and start sewing the pouch first thing in the morning.

Sunday, March 15, 2009

Here is the Modified Code with the changes I made in red.

/*
* SoftwareSerial Library provides Arduino an additional
* "Software" Serial Port
*/
#include

// SoftwareSerial TX & RX Pins
#define SoftrxPin 3
#define SofttxPin 2

int ledPin = 4;

//variables for parsing

char *parseptr;
char buffidx;
uint8_t hour, minute, second, year, month, date;
uint32_t latitude, longitude;
uint8_t groundspeed, trackangle;
char latdir, longdir;
char status;


/* Declare and Initialise SoftwareSerial Object
* - Setup the Software Serial Port
*/
SoftwareSerial mySerial = SoftwareSerial(SoftrxPin, SofttxPin);

// GPRMC byte variable from the GPS
byte GPRMC = 0;

// MessageLine - The Entire GPS Message Received
char messageLine[128];

void setup()
{
// Set the computer baud rate
Serial.begin(9600);

// Set the GPS BAUD RATE
mySerial.begin(4800);

// Receive GPS Serial Data on Digital Pin 2
pinMode(SoftrxPin, INPUT);
}

void loop()
{
uint32_t tmp;

GPRMC = mySerial.read();

if(GPRMC == '$')
{
// Clear out the previous GPS Message
for(int i =0; i< index =" 2;" gprmc =" mySerial.read();" parseptr =" messageLine+9;" tmp =" parsedecimal(parseptr);" parseptr =" strchr(parseptr," status =" parseptr[0];" latitude =" parsedecimal(parseptr);" parseptr =" strchr(parseptr," parseptr =" strchr(parseptr," latdir =" parseptr[0];" parseptr =" strchr(parseptr," longitude =" parsedecimal(parseptr);" parseptr =" strchr(parseptr," parseptr =" strchr(parseptr," longdir =" parseptr[0];" latdir ="=" latdir ="=" longdir ="=" longdir ="=" class="Apple-style-span" color="#FF0000">
Serial.println("ok, the real values the computer sees are:"); Serial.println(latitude); Serial.println(longitude);
if(latitude <= 32528210 && latitude >= 32528170){
Serial.println("latitude");
}
if(longitude <= 117143267 && longitude >= 117143227){
Serial.println("longitude");
Serial.println("it triggered!!!!");
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
delay(100);
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
delay(150);

}

//if (latitude != 0) {
// latitude *= 10000;
// parseptr = strchr(parseptr, '.')+1;
// latitude += parsedecimal(parseptr);
//}

}

for(int i = 0; i < d =" 0;"> '9') || (str[0] < '0')) return d; d *= 10; d += str[0] - '0'; str++; } return d; }
My initial tests with the GPS code gave me an area that was different than I anticipated. After a little bit of research, I realized that GPS data comes in degrees, arc-minutes, and arc-seconds. When I went back and looked at the code I noticed that the arc-seconds were being converted to get the correct data. Basically, the last four digits of the code needed to be converted to arc-seconds from the raw data the GPS receiver was collecting.

For instance, the software would tell me I was standing at...

+32° 52' 49.14", -117° 14' 19.48"

But the actual data that the program was using was...

32 52 8190, 117 14 3247

In order to fix this I needed to multiply the last 4 digits by .006 in order to get the correct position that the GPS was receiving. Later I added some code that would tell me the raw data the receiver was collecting along with the true GPS coordinates. This made it much easier to create the data I needed for my if statement to create the area that would set off the motor.