Introduction: Run AppleScripts With the Wave of a Hand

Use an Arduino to control your Mac. In this Instructable I use a photoresistor to detect a shadow falling over it, then tell my Mac to run an AppleScript to play the next track on iTunes. This can be easily modified to run any AppleScript. It is a relatively easy, beginner level project for an Arduino Mac user.

Step 1: Gather Materials

You will need:
a Mac computer
AppleScript Proxy from Tinker It! get it here: http://tinker.it/now/2007/04/26/control-your-mac-from-arduino-the-easy-way/
Arduino. I used a Duemilanove
USB cable for Arduino
A photoresistor. Available from any electronics parts store. I got mine at RadioShack. Should cost about $3 for 5.
a 10k resistor. Color code: Brown Black Orange
some wire
breadboard
LED if you don't have on on your Arduino. Though it's optional then, too.

Gather the above materials and install the AppleScript Proxy.

Step 2: Build the Circuit

Wire the 5V connection from the Arduino to one leg of the photoresistor. Connect the other leg to Analog input pin 0, and also to one leg of the 10k resistor. Now connect the other leg of the 10k resistor to the Arduino ground pin.

Step 3: Write an AppleScript.

Write the applescript you want to execute in the AppleScript Proxy program. I used:


tell application "iTunes" to play (next track)
end


and assigned it to character "A".

Step 4: Program the Arduino

Connect the Arduino to the computer and upload the program:

void setup(){
Serial.begin(9600);
pinMode(13,OUTPUT); //I'm using the built in LED on pin 13 to light up whenever the shadow conidtion is met.
//This is optional. If you have an older Arduino, you may attach your own LED to pin 13.

}
void loop()
{
int lightlevel=analogRead(0); //reads the light level from the photoresistor and assigns it to the variable called lightlevel
delay(1000); //wait one second.
if (analogRead(0)<lightlevel-20) //if the light level changes by more than 20, it activates the shadow condition.
{
digitalWrite(13,HIGH); //turn LED on
Serial.print("A");//send signal to Mac, which interprets the A as a applescript command.

}
else{
digitalWrite(13,LOW); //turns LED off.

}
}

/***Note: you have to stop the AppleScript program before uploading to the Arduino.

Step 5: Test It Out

Stop AppleScript before uploading the program to the Arduino. Upload the program, then start the AppleScript proxy. You may have to press the reset button on the Arduino to get them both working simultaneously.
It should work now!
Now hack it and see what else you can do!