PROF. RICARDO MIRANDA | OFFICE: 349 HH | OFFICE HRS: TUE 6 - 8PM, WED by arrangement
E: miranda@tcnj.edu | P: X2939
"...an interface is not an image. it can be a plug, the ringing of a telephone, some push buttons, or the parameters of a program. it is not a one-to-one simulacrum, but a one-to-one-to-another-one transmission of parallel streams, a process of translation between different levels of code." -- Pit Schulz
Class Policy
Attendance is mandatory, role will be taken at the beginning of each class. Do not arrive late or leave early. All reading and projects must be handed in on time.
Course Work
-
The class reading and assignments will be divided into the following topics:
- Theoretical perspectives on human-computer interaction: Read assigned essays
- Introduction to programming skills for computer-based interaction: Maintain an active sketchbook
- Computer interaction in contemporary art and design: Artist presentation and exhibition trip
-
The class will consist of:
- Online Processing and Arduino Sketchbooks, 40% of final grade
Maintain a website for this course to publish all your assignments and source code. You have two choices for posting exercises:
- post all the exercises as you do them, and for the final exercise from each chapter try to do a variation from what the author presents - get creative, use coding as an artistic medium (can be a variation on the author's example)... this is good for novice programmers.
- if you are following the book comfortably and feel secure with the material, you may post one exercise that encompasses the material from the chapter and through which you exercise creative freedom (entirely different from author's example). I expect the single all encompassing exercises to be unique and creative.
- Final Project on line or as installation…30%
- Brief reading responses…5%
For each reading assignment, write a three paragraph reaction, approximately one page (equivalent to 12pt double spaced page or approximately 250 words): first paragraph presents a brief summary of the reading (3-5 sentences); second paragraph presents your analysis of the reading, do you agree with the content; how have things changed; does the content of the reading present a change in how the computer or computer based art has transformed society in general or art making (about 5 sentences); third paragraph presents outside research. Google the topic or subject (person) the essay discusses. What do you find? How might it relate to interactive art, physical computing, or general to the class? How might it relate to the work you are interested in doing? (about 5 sentences). When there are multiple readings, you may choose only one to discuss unless you wish to discuss more than one. post it to your class page - Attend two artist lectures…5%
There will be one artist lectures date to be announced, attendance is mandatory - Artist Presentation…10%
Choose an artist who uses programming in her/his/there work, present and discuss the work by contextualize the work of the artist by describing the themes investigated by the artists and technologies employed. A minimum of three major works by the individual artist must be researched and presented. Students must critique the individual's work and consider how the work has contributed to contemporary culture and expanded notions of creativity by utilizing emerging technologies. You may critique the work (positively or negatively) by considering if the work matters? How so? Does it present new forms of visualization or interactivity? Dates: April 8, 15, 22, 29 - Visit an exhibition and write a review…10%
There will be one class trip. Separately you may make a trip to one of the following institutions: The Museum of the Moving Image, Queens; Open Studio at Eyebeam Atelier; Liberty Science Center; or any other appropriate institution.
-
Sketchbooks and Final Porject will be graded based on:
- Technical Understanding 33.3%
- Aesthetic Value 33.3%
- Content Presented and Originality 33.3%
Books on Library Reserve
- Multimedia: From Wagner to Virtual Reality, Expanded Edition (Paperback)
by Randall Packer (Editor), Ken Jordan (Editor)
- Handmade Electronic Music: The Art of Hardware Hacking (Paperback)
by Nicolas Collins
- Making Things Talk by Tom Igoe
- Physical Computing: Sensing and Controlling the Physical World with Computers by O'Sullivan and Igoe
- Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction by Daniel Shiffman
- Processing: A Programming Handbook for Visual Designers and Artists by Reese
- Information arts : intersections of art, science, and technology by Stephen Wilson N72.S3 W55 2002
- The robot in the garden : telerobotics and telepistemology in the age of the Internet edited by Ken Goldberg TJ211 .R537 2000
- Design and the Elastic Mind by Aldersey-Williams, Hall, Sargent, Antonelli
- Digital by Design: Crafting Technology for Products and Environments by Freyer, Noel, Rucki, Antonelli
Week 1, January 21
Course Introduction
Projects viewed:
Processing: Weird Fishes: Arpeggi from flight404; Pinch by Josh Nimoy; Radiohead, "House of Cards"; Processing code for House of Cards
Physical Computing: Antenna Design; Zone and Jukebots by Robot Lab; Soundstair by Christopher Janney
Due next week:
Download and install processing
CONCEPT - "A Brief History of Programming Languages" by Andrew Ferguson
Read and view Sol Lewitt's installation at MassMOCA
Reas on programming and art
(map of statement)
PRACTICE - Lesson 1: The Beginning, Chapters 1 - 3 from Learning Processing, Shiffman
Week 2, January 27
Processing dynamically ported to JavaScript (no more applet)
Processing.js on iPhone
Due next week: PRACTICE - Lesson 2: Everything You Need to Know, Chapters 4 - 6 from Learning Processing, Shiffman
Week 3, February 4
Trip to Liberty Science Center, meet with Ann Neumann, Director of Design and New Media
Lecture 2 and 3 notes
Processing Examples, based on Chapters 4-8
Artists presented: Camille Utterback; Golan Levin
Due next week:
CONCEPT - J.C.R. Licklider, Man-Computer Symbiosis (1960) (PDF pg.8-25; Print pg.1-15)
PRACTICE - Wikipedia intro to object-oriented programming
Lesson 3: Organization, Chapters 7 - 8 from Learning Processing, Shiffman
Week 4, February 11
Lecture 4 notes
Processing Examples, based on Chapter 9
Artists presented: The Dumpster; by Levin, Nigam, Feinberg
Due next week:
CONCEPT - Douglas Engelbart, Augmenting Human Intellect (1962) (PDF)
PRACTICE - Lesson 4: More of the Same, Chapters 9 from Learning Processing, Shiffman
Chapters 6 and 7 from Handmade Electronic Music: The Art of Hardware Hacking
by Nicolas Collins, on reserve at the library under Miranda, ML1380 .C36 2007
Week 5, February 18
Lecture 5 notes
Lecture Presentation
Art Presented: UnINtended Use Exhibition in Philadelphia;
Wired on Arduino
Due next week:
CONCEPT - Myron W Krueger, Responsive Environments (1977) (PDF). Also on Library Reserve, essay 12 from Multimedia from Wagner to Virtual Reality edited by Randall Packer and Ken Jordan
PRACTICE - Chapters 1 - 4 from Physical Computing, O'Sullivan & Igoe
Chapters 1 - 3 and Appendices A & B from Getting Started with Arduino, Banzi
Circuit Simulations, Directions, Applets
Week 6, February 25
Processing + Video: Processing Examples using video library
QUIZ ON PROCESSING
Lecture 6 notes
Lecture Presentation
Arduino Sketches (from Getting Started): Sketch 1 ; Sketch 2 ; Sketch 3
Due next week:
CONCEPT - Interview of Ken Rinaldo
PRACTICE - Chapters 5 from Physical Computing, O'Sullivan & Igoe
Appendix C and Chapter 4 from Getting Started with Arduino, Banzi
Arduino: First Sketch
Microcontrollers, all sections
Week 7, March 4
Processing Art + Design: Cinema Redux by Brendan Dawes; Flight Patterns by Aaron Koblin
About PWM
Arduino as Art: Accessories for Lonely Men by Noam Toran
Arduino Sketches: Pulse Width Modulation (PWM); Sketch 3 (from last week)
Due next class:
Choose an artist to present in class
CONCEPT - Interview with Tom Igoe
PRACTICE - Chapters 5 from Getting Started with Arduino, Banzi
Programming Techniques: Variables and Functions
Lesson 5: Putting It All Together, Chapters 10 - 12 from Learning Processing, Shiffman
Spring Break
Week 8, March 18
Arduino as digital music instrument: Piezo, PlayMelody example be sure to turn on Serial Monitor.
Copy complete example, piezoExample.pde, into Arduino editor
Analog Sensor: Potentiometer (pot) is a knob that provides variable resistance. It has three pins - the outside pins are for ground and 5V Power, the middle pin is Out to Microcontroller Analog In. Turn clockwise to increase flow of volts upto +5V, anti-clockwise to 0V. Copy code from Arduino page or here (includes Serial.write). Here is an image of pot and LED circuit.
Controlling a Servo motor by calling the Servo library (bundled with Arduino editor). Copy and past potLEDservoExample.pde and here is a photo of the pot and servo Arduino circuit
Use Firmata library to speak with software! Firmata wiki page
Copy and paste potServoFirmataExample.pde into Arduino editor and write to Arduino. Open Processing, copy and paste Processing example that calls Arduino library and animates according to pot.
Due next week:
Interview with Marie Sester
PRACTICE - Chapters 6 - 7 from Getting Started with Arduino, Banzi
Chapter 6 from Physical Computing, O'Sullivan & Igoe
Lesson 4, Ladyada
Week 9, March 25
Arduino sketch to simply move a servo to a specific degree (not using a potentiometer)
Controlling a servo using a pot - potLEDservoExample.pde
Artists and works viewed: "Threatbox.us" by Marie Sester (read her interview), Jean-Pierre Gauthier, Tim Hawkinson
A few simple projects using servo motor:
Single servo walking bot
Servo based dog feeder
Two servo robot
Due next week:
CONCEPT - Golan Levin, Computer Vision in Interactive Art (2004) (PDF)
PRACTICE - Lesson 4, Ladyada
Lesson 5, Ladyada (review)
Analog Input using potentiometer
Week 10, April 1
Serial Communication: A serial port is a serial communication physical interface through which information transfers in or out one bit at a time (digital pulses one after another back and forth) between computers.
KEEP TRACK OF WHICH PROGRAM YOU ARE RUNNING THE FOLLOWING SKETCHES (ARDUINO VS. PROCESSING)
Arduino: Print data from analog sensor (using a potentiometer or other variable resistor)
Circuit examples: Simple flex sensor circuit ; Simple pot circuit
Processing: Processing sketch reading Arduino input
Processing sketch reading Arduino input and represented by graphic element
Processing sketch reading Arduino input and visualizing by movement
back to Arduino: Print data from 2 analog sensors (using a potentiometer or other variable resistor) - Two pot circuit
And back to Processing: Processing sketch reading 2 Arduino inputs visualizing x,y movement (you need both the class and sketch
and Arduino: Print data from multiple sensors (using a potentiometer, digital...) - multiple sensor circuit and Visualize via Processing
Add a physical load (LED, servo) to Arduino: Print data from analog sensors and control LED (using a pot) and open earlier example of Processing controlling Processing sketch reading Arduino input and controlling single graphic element... bumpy
ASCII Table (subset of Unicode)
Jon Kessler
Due next week:
PRACTICE - Chapter 2 from Making Things Talk by Tom Igoe, execute Project I, Monski Pong using potentiometers
Arduino + Processing
Week 11, April 8
Serial Communication II: Arduino board receives data from software. In Arduino set up the input and output pins and open serial port and data rate (Serial.begin). In the loop function check for incoming data (Serial.available) and read that data (Serial.data). Example sketches from Daily Duino:
In Arduino open and write to board - serialReadPin.pde
In Processing open and run - serialReadPin.pde
The library "Firmata" sets up Arduino for serial communication through any of its pins (except 0,1 or RX, TX - used for serial communication). Using arrays, the library runs through the available pins and sets the board up for both in and out communication with software. "Firmata is designed to be all that you would ever need to upload to the Arduino, after which time, you can just send serial commands to the Arduino to change what it is doing for you. Remember that a library is similar to the classes that you have written."
Open "StandardFirmata": File > Sketchbook > Examples > Library-Firmata > StandardFirmata
Read through the library to get a sense of what it does and how it works.
Write StandardFirmata to Arduino
In Processing open and run: arduinoFirmata1.pde, simple Processing sketch to light single LED, same as earlier example, but using Firmata (from Daily Duino)
Set up your board with a series of LEDs with varous degrees of voltage using resistors (10k, 1k, none...). View Image
In Processing open and run: Multiple LED using a version of Allison Senak's sketch and class from Processing quiz.
Arduino and Flash... Flash does not have a serial communication library, so a Serproxy must be used to establish network communication between Flash and an open port. (Serproxy is a multi-threaded proxy program for redirecting network socket connections to/from serial links.) Jonah Model has set up sample files which I've edited down to a single example: Download example files
Student Artist Presentation: Kerrin Paul: Tatsuo Miyajima; Kevin Keane: Josh Nimoy; Dan McCafferty: Jenne-Pierre Gauthier
Due next week:
PRACTICE -
Arduino + Flash on Arduino site (for those interested in interfacing Arduino and Flash)
Arduino + Flash tools by Beltran Berrocal or view Jonah Model's expansion on Beltran Berrocal's work
Arduino + Flash - AS3Glue
Arduino + Flash workflow
Flying Pig on Mechanisms and Movement
Week 12, April 15
Student Artist Presentation: Tom Winnicki presenting Robert Hodgin; James Stevens: Scott Snibbe; Nick Biewer: Char Davies; Andrew Heiss: Fran Yeoh
Work on final project - Write a Project Proposals, include the following:
- Project Summary
- Project Title
- Project abstract (Two-three sentences) briefly describing the final product.
- Project Proposal (Please provide the following information, organized with the same section headings as listed below. Word counts are maximums.)
- Project Description: Describe the proposed project (in greater detail than the abstract). (500 words)
- Site: Where is the ideal location for the project to be installed or presented? (150 words)
- Audience: Who is the audience for your project? How do you plan to engage them? (150 words)
- Interaction: Provide a scenario for how people will access, encounter and/or interact with your project. What are the different modes of interaction (knobs, buttons, switches, web camera)? How many people is the project designed for at a time? Is there an expected duration of interaction? (300 words)
- Participation: How will the presentation of the project invite people to participate? (300 words)
- Technology: List the technical requirements for your project - software and electronics.
- Maintenance: Will you design your and present your project for a lasting display? Will you construct a container for you project, what materials will you use? (150 words)
Week 13, April 22
Trip to Liberty Science Center
Week 14, April 29
Student Artist Presentation: Jeffrey Barnard: Zach Lieberman; Allison Senak: Hiro Yamagata; Britney Pringle: Erwin Redl; Luis Herrera: Jen Lewin; Ed Cabrera: Antenna Design;
Work on final project
++Processing Resources++
Processing.org
Processing Language
Learning Examples
Processing Libraries
ITP Tutorial Workshop
Video Workshop
Koser, code samples
Tom Igoe, code samples
Develop Processing
Technical Reference
Processing for the WWW
More on Processing.js
++Arduino Resources++
Arduino
Ladyada
Igoe course
Freeduino
Paulus Blog
Wiring.org
daily duino
Arduino SMS & email via mobile
++Arduino and Hardware++
Arduino Playground
Library for Nikon Cameras
Arduino + Cameras
++Free Software for Arts++
Pure Data
++Alternative Boards++
Wiring
Freeduino
Seeeduino
Cortino
Teensyduino
Arduino on Breadboard
CREATE USB Interface
Parallax Propeller
++Electronics Resources++
Resistor Color Code
Circuit Simulations
Electricity Misconceptions
++Machine Motion++
Flying Pig - Mechanisms and Movement
Kinematic Models for Design
from Museum of Science Boston
++Prototype to Product++
Printed Circuit Board
DIY Instructions
Fritzing
Ladyada's PCB List
PCB Express
Eagle Software for PCB Design
A-Wit, PCB purchasing
Electronic Design Automation
++The Art of Code++
runme.org
Whitney Exhibition "Codedoc"
We Make Money Not Art
Rhizome.org ArtBase
furtherfield.org
Neural Magazine
Index of Artists' Work
Messa di Voce (Ital., "placing the voice")
++Artists & Designers++
Antenna Design
Josh Nimoy
Daniel Shiffman
Shih Chieh Huang
Jen Lewin
Robert Hodgin
Golan Levin
Jared Tarbell
Scott Snibbe
Meridith Pingree
Ed Osborn
Robot Lab
Tiffany Holmes
Char Davies
Christopher Janney
Zach Lieberman
Eugenio Tisselli
Rhizome.org ArtBase
Neural Magazine
Index of Artists' Work
++Craft of Hacking++
Make Magazine
Instructables
Leah Buechley samples
Low Tech Sensors
Pachube
Hack N Mod
++Shopping++
Spark Fun
Adafruit
NKElectronics
SEEED Studio Depot
Nuelectronics
All Electronics
Digi-Key
Jameco Electronics
MPJA
Parallax
BasicX
Ultra LED Lights
++Courses at Institutions++
Tom Igoe at ITP Graduate Program
ITP Physical Computing
Sensor Workshop
Make: Princeton
NYC Resistor
Pachube - connecting environments
++New Media Centers++
Eyebeam Atalier
ARS Electronica
Whitney Artport
++Student Sites++
Kevin Keane
Britney Pringle
Allison Senak
Tom Winnicki
Jeff Barnard
Luis Mauricio Herrera
Andrew Heiss
James Stevens
Dan McCafferty
Kerrin Paul
Ed Cabrera
Nick Biewer
Pete McGrath