Michael Jackson Terror
Names
Our names: Tim O’Connor & Alex Myers
Project name: Michael Jackson Terror
Brief Description of Project
Use PowerPoint or a similar frame-to-frame program, hooked up to a projector, to show an image. Have a laser pointed at a photoresistor on the breadboard. When the laser is broken (photoresistor receives less light), Gobetwino will send a space or enter keystroke to advance to the next frame, a different image. Useful for scaring people as they walk past something that seems innocent (Mr. Dickie’s Halloween idea).
How the Program Works
We have a photoresistor as an analogRead. A laser is pointed at the photoresistor. When the laser is broken, the photoresistor reads less than 900. We set up an if/else command: if the reading is low enough, Gobetwino will send a command to PowerPoint which will advance the slide to the scary picture. If the reading is still high enough (the laser is unbroken), the screen will remain blank.
Pictures
Circuit Diagram
Since most of the work is done by Gobetwino in the computer’s processor, the Arduino setup is minimal. All you need is a photoresistor and a regular resistor to keep it functional.
Arduino Code (It will help to paste this into the Arduino window so the comments appear in a different color)
int thriller = 2; //this should be a photoresistor
int val = 0; //we will need this variable to exist for the void loop. it will be changed later
void setup()
{
pinMode(thriller, INPUT); //sets the photoresistor as an input, so Arduino will read it
delay(7000); //this is just a time cushion to make sure the computer's processor isn't overloaded when you start
Serial.begin(9600); //you need to do this before you start the serial.prints
Serial.print("#S|MJACKSON|["); //part of opening the powerpoint file
Serial.println("]#"); //having this right after the previous line will open the file
delay(3000); //you need a delay if you're using Office 2003. it'll ask you to accept the terms and conditions. you'll have to click "accept" before the time runs out
Serial.println("#S|SENDK|[0&{F5}]#"); //this sends the powerpoint into presentation mode. a the entire screen will be blank.
delay(4000); //again, this is just a time cushion during which the computer can sort out everything it's doing
}
void loop()
{
val = analogRead(thriller); //this reads the photoresistor
if (val <= 900) //the photoresistor reads the laser at a value of around 1000. if it is broken, it will momentarily be zero. this will set off the "if"
{
Serial.println("#S|SENDK|[0&{F5}{DOWN}]#"); //this moves the slide down, putting Michael on the screen. aaaaaaaah!
delay(50); // this will make him flash on and off the screen. that's waaaaaaaaaaaaaaay scarier. plus the program tends to stop working at higher delays.
}
else
{
Serial.println("#S|SENDK|[0&{UP}{F5}]#"); //if the laser is unbroken, the white screen will stay there. it might get flickers of windows stuff, but that just builds dramatic tension, right?
delay(300);
}
}
Description of Problems and How They Were Overcome
Most of our issues centered around PowerPoint itself, since it requires a lot of very specific instructions to make it do stuff like what we wanted it to do. We had to send it into presentation mode repeatedly to keep Windows stuff from taking up space on the screen, but that tends to cause some weird flashing effects on the screen. We had to play around with delays a lot and repeat some commands to keep everything working normally. There’s still a little bit of spastic flashing, but that just makes it look weirder and scarier… right?
What We’d Like to Add
If we added a lot more complex code and we’d had a lot more time to play around, we probably could have eventually made the flash to go away and have PowerPoint stay on the second slide. If this were the case, we could have put a movie or sound file on the slide. This would add a lot of tension and make it scarier and more Halloween-ish.