Creative Programming and Beyond
(c) 2012 Jun Hu (胡军) @ School of Arts and Design, Tsinghua University
Please notice that the planning and the content of the course is subject to frequent change. Please do check back often.
- Please bring a laptop with you to the class. PC (Windows) is preferred.
- Please bring with you the power adapter for your laptop.
- Before you come to the first lecture, please install the following software packages to your laptop:
Download the Processing programming environment. Or go to the Processing website, download the latest stable release from there. Do not download the version "without java" or the beta versions.
download and install Arduino software: http://arduino.cc/en/Main/Software. It would be convenient if Arduino is installed at the same place you installed Processing.
Bring your Arduino starter kit to the class. Here is an example of the starter kit. You can also bring your own starter kit, but your kit shall include at least the following:
- Arduino board
- USB cable
- two push buttons
- a bread board
- a 10K ohm resistor
- a light sensor (LDR or Light Dependent Resistor)
- a few color leds
- a few jumper wires
Contents
1. Day 1: Serial Communication between Processing and Arduino
- Methods
Using the Serial library
Using Firmata
Introduction: CreativeProgrammingAndBeyond.pdf
Serial Communication: SerialCommunication.pdf
- Exercises:
Try to implement the examples from Arduino meets processing from K3, malmoe to create graphics from digital and analog sensor input.
2. Day 2: Networking: Client/Server
Presentation: Network.pdf
Examples: ClientServerExamples.zip
- Exercises:
- Continue the exercises from Day 1. This time try to get the digital and analog sensor input from the arduino connected to one computer, and create the graphics on another computer.
3. Day 3: Internet of Things
Download and install EEML library in Processing.
Presentation: IoT.pdf
Examples: PachubeExamples.zip
- Continue the exercises from Day 2. This time try to get the digital and analog sensor input from arduino, push it to Pachube(COSM). On the same computer, create graphics by pulling data from Pachube(COSM).
4. Day 4: Computer Vision with Processing
- Computer vision (movement detection) using Myron
Library: JMyron (WebCamXtra), or JMyron.zip
If the camera image is mirrored and you can not adjust it from the settings of the camera, you might need ManyCam Virtual Webcam.
- Invited Speaker: Sam Nemeth
- Sam Nemeth studied Film and Television at University of Amsterdam. He worked as a video maker for video collective Staats-TV Rabotnik, for the educational department of the Stedelijk Museum in Amsterdam and Dutch national tv. He was editor of the Dutch AV magazine Skrien. Sam held several functions at medialab Waag Society in Amsterdam and specializes in arts and technology and game development. Aside from this he works as a free-lance documentary maker and writing journalist. Sam Nemeth is currently lecturer/coach at Eindhoven University of Technology. He lives in Amsterdam.
- His talk will be about "Arts and Complexity".
- Exercises:
- Try to create graphics on a computer based on the computer vision input from another computer, either using a Client/Server structure, or over Pachube(COSM).
5. Day 5: Neural Networks with Processing and Arduino
Install Neuroph, a lightweight Java neural network framework.
6. References
- Books
Getting Started with Processing, by Casey Reas and Ben Fry. Published June 2010, O'Reilly Media. 208 pages. Paperback. GSProcessing.pdf
Getting Started with Arduino, by Massimo Banzi, Publisher: O'Reilly Media / Make, Released: December 2008 GSArduino.pdf
Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction, by Daniel Shiffman. Published August 2008, Morgan Kaufmann. 450 pages. Paperback. LearningProcessing.pdf
Making Things Talk: Practical Methods for Connecting Physical Objects, by Tom Igoe, Publisher: O'Reilly Media / Make, Released: September 2007. MakingThingsTalk.pdf
Pattern Recognition by Jun Hu, 2007. PatternRecognition.pdf