My sample Arduino sketch below starts or stops blinking of the internal LED on the Arduino board depending on two keystrokes. Of course those keystrokes could also trigger more useful camera control tasks.
/* Terminal2Arduino Start OS X terminal.app Find serial device name: ls /dev/tty.* Open terminal session: screen [serial device name] 9600 Close session: ctrl-A ctrl-\ \ = shift-alt-7 on some keyboards */ #define LED 13 byte inbyte = 0; boolean active = false; void setup() { Serial.begin(9600); //open the serial port pinMode(LED, OUTPUT); Serial.println("Type b to start and s to stop blinking of the Arduino LED"); Serial.print(">"); //simulate prompt } void loop() { inbyte = Serial.read(); //Read one byte (one character) from serial port. if (inbyte == 'b') { active = true; Serial.println("b"); //echo the command Serial.print(">"); } if (inbyte == 's') { active = false; Serial.println("s"); //echo the command Serial.print(">"); } if (active) { digitalWrite(LED, HIGH); delay(500); digitalWrite(LED, LOW); delay(500); } else { digitalWrite(LED, LOW); } }
Download the sketch then start the OS X Terminal.app
Find the serial device name of the Arduino with ls /dev/tty.*
Open a terminal session using screen [serial device name] 9600
e.g.: screen /dev/tty.usbserial-A6004byf 9600
Close the screen session and free the serial connection for use with the Arduino development envirement by typing
ctrl-A followed by ctrl-\ followed by y
\ = shift-alt-7 on some keyboards
Tired of typing? Save the AppleScript below as an app to get a double-clickable application to launch a serial Terminal session.
tell application "Terminal" do script with command "screen /dev/tty.usbserial-A6004byf 9600" set number of rows of window 1 to 20 set number of columns of window 1 to 50 set background color of window 1 to "black" set normal text color of window 1 to "green" set custom title of window 1 to "Let's talk to the Arduino" end tell