Physical Computing @ Goldsmiths
Autumn 2009, Thursdays 9:00 - 13:00pm
Daniel Hirschmann

 Please check back here regularly to view updates to the weekly schedule

01/10/2009

Class 1: Introduction

Physical Computing is an approach to design and making that positions the human at the center of the interaction. By focusing the learning on introductory electronics, sensors, and the Arduino platform, we will create an awareness of the tools available to build within this genre.

In this class we will cover the following:

  • Introduction to the syllabus and expectations
  • Presentation on physical computing and sensors (download)
  • Journals: How we expect you to use these for documentation and sketching
  • Basics of electronics (please look at Tom Igoe's introduction page)
  • Using a multimeter (WATCH: Make video introduction)
  • Introduction to the Arduino  ( intro code )   and  (arduino tutorial on sketches)
  • What is a breadboard (Rob Faludi's lab on analog input demonstrates the initial steps to wiring a breadboard)
  • Make 2 LED's BLINK (twoLeds.pde)

  • Tasks:

  • Make sure that you can make an LED blink on and off. This is the first exercise in the Arduino booklet.
  • Design a system to make two LEDs blink, one after the other
  • Experiment with different patterns and more LEDs using the breadboard
  • Have a look at the Arduino References. Use at least one function from the reference in your own code. An example would be to look at the randomize function and understand how to add it to your code. Any code you write, please add comments to describe what you expect it to do. Even if you are unsuccessful it will help us to understand your intentions and how to help you improve.
  • Start noticing any sensors in the real world. If you notice them - add them to your logbook.
  • 15/10/2009

    Class 2: Living in an Analog and Serial World

    In this class we will look at the various approaches for reading analog values from sensors, and how to create a PWM (Pulse width modulation) output from the Arduino. Understanding PWM will form a basis for motor control, LED dimming, and even allow us to play sound directly from the Arduino. We will also take this opportunity to introduce you to the wonders of Serial Communication. By being able to communicate from the Arduino to the Computer via a Serial connection, we will be able to debug our system and understand the values that the Arduino is reading from the sensors.

    In this class we will cover the following:

  • A few artist: Jim Campbell,Graffiti Research Lab, and Jonah Brucker-Cohen
  • Discuss any issues around the tasks set out for the last class
  • Introduction to Serial. Please read Lady Ada's outstanding tutorial on Serial Communication
  • REMINDER: The Multimeter is one of the most important tools when working with electronics!
  • How to read a sensor (potentiometer and Light Dependant Resister)
  • How to wire and use a pushbutton switch
  • Introduction to Ohms Law

  • Tasks:
    Make sure you send Daniel an email so he can sign you up to the mailing list.

    You are required to do either the pushbutton exercises OR the analog reading exercises. However, you are encouraged to do them all if you can!

    PUSHBUTTON
    Attach the LEDs to pins 6,9,10,11, arranging them in a line, with the appropriate resistors. Attach the push switch to pin 7 and the tilt switch to pin 8 with the appropriate resistors.

  • 2.1 Start with the left-most LED lit. Using the push switch, each press of the switch should light up the next LED to the right, extinguishing the current one, so that only one LED is lit up at any time. When the end of the row is reached the direction should reverse so the LEDs are lit up from right to left on further switch presses.
  • 2.2 For this task, the four LEDs should show the number of times the switch has been pressed. Attach the tilt switch. Each time the tilt switch is tipped the LED count is reset to zero.
  • 2.3 Think of something else that could be made using LEDs, a tilt switch and a push button, and make it.


  • ANALOG
  • 2.4 Go over the examples for reading a sensor. Test with your own potentiometer.
  • 2.5 Use a sensor to create a disco light controller
  • 2.6 Have a look at the Arduino References. Use at least TWO functions from the reference in your own code.
  • 2.7 (BONUS) Look at Tom Igoe's Tone Out example and write a music track for your Arduino to play back!


  • FINAL PROJECT
  • Begin thinking about a final project. Initial ideas to be sketched out in your journals.
  • 22/10/2009

    Class 3: Introduction to Motors

    In this class we will cover the following:

  • A few artist: Rafael Lozano-Hemmer, Sachiko Kodama & Minako Takeno, and Martin Frey
  • Discuss any issues around the tasks set out for the last class
  • Introduction to the Light Dependent Resistor (LDR) or Photoresistor
  • Demo the LDR using the multimeter. Compare it to a Photo Voltaic
  • Introduction to the Servo Motor. Arduino has a Servo Library! Take a look at the example

  • Tasks:

    Remember: If you are interested challenging yourself with something more advanced than the below tasks, you may replace one of them with a self initiated task - but it must be documented fully.

  • 3.1 Attach the Light Dependent Resister (LDR) to an analog input pin. Wire it up with a voltage divider circuit that results in a good range of analog readings. (ie: not a range of 0 to 10). Use Serial to assess the resulting readings. (Look at LadyAda's example)
  • 3.2 Add an LED to a PWM pin on the Arduino and change the PWM duty of that LED using the LDR (The closer your hand gets to the LDR, the brighter the LED and vice versa)
  • 3.3 Attach a SERVO motor to your breadboard. Rotate the servo in one direction and then the other.
  • 3.4 Use a sensor of some kind (LDR or POTENTIOMETER) to control the position of the SERVO. Write a short description (1 paragraph) explaining how you might use this in a project.
  • 3.5 Continue thinking and sketching ideas for the final project.
  • 29/10/2009

    Class 4: Motors continued: DC Motors

    In this class we will cover the following:

  • A few artist: Tim Lewis (1,2), Tim Hawkinson (profile,1,2, 3), Mateusz Herczka
  • Discuss any issues around the tasks set out for the last class
  • Introduction to Serial Input
  • How to use the Arduino to enable higher loads. In other words: How to control a DC motor.
  • Take a look at Tom Igoes page on activating a higher load with a microcontroller.
  • What are transisters? Intro to the BC107 (NPN Transister) and the TIP120 (Darlington Pair)
  • and Relays?
  • Introduction to the L293. Reading the datasheet
  • How to change the direction (polarity) of the motor. (ITP's notes on the L293, and Todd Holoubek's tutorial for setting it up)

  • Tasks:

    Remember: If you are interested challenging yourself with something more advanced than the below tasks, you may replace one of them with a self initiated task - but it must be documented fully.

  • 4.1 Do some internet research around artists and makers producing physical computing projects that relate to your final project interests.
  • 4.2 Email me ( daniel at plankman dot com ) two paragraphs about: 1. a rough outline for your final projects ideas. 2. information about the artist/artists that you found in 4.1
  • 4.3 Wire up a motor control circuit using a TIP120 (look at Todd Holoubek's tutorial).
  • 4.4 Use the above circuit along with an analog sensor to increase and decrease the speed of your motor
  • 4.5 (BONUS) Use Serial INPUT to change the speed of the motor.
  • 4.6 (BONUS) Wire up the H-Bridge (L293) and use a switch to change the direction of your motor. (look at Todd's tutorial)
  • 05/11/2009

    Class 5: Reading Week

  • Most of the class will be dedicated to supporting the tasks from previous classes.

  • Tasks:

    You will be handing in your log books next week, so please get your work done!

    12/11/2009

    Class 6: Personal Projects Begin

    In this class we will cover the following:

  • A few artists / design studios: Jamie Elliott, Art + Com , Troika
  • We will spend most of todays class on hearing everyone's project ideas.
  • You are expected to hand in your log books today.
  • Introduction to Row Column Scanning. Code from class: 1, 2, 3, 4

  • Tasks:

    WORK ON PERSONAL PROJECTS

    19/11/2009

    Class 7: Personal Projects Continued

    In this class we will cover the following:

  • A few student projects: Adam Harvey's Anti Paparazzi Fashion, Younghyun Chung's Digital Wheel Art, Julius von Bismarck's Image Fulgurator
  • We will spend most of todays class focusing on personal project development.
  • Introduction to the Shift Register. Arduino playground implementation can be found here. Datasheet for the 74HC595 Shift Register
  • Introduction to the Infrared Ranger. Datasheet for the GP2T0A21YK Sharp ranger.

  • Tasks:

    WORK ON PERSONAL PROJECTS

    26/11/2009

    Class 8: Personal Projects Continued

    In this class we will cover the following:

  • Introduction to Processing and Arduino. Code from class

  • Tasks:

    WORK ON PERSONAL PROJECTS

    03/12/2009

    Class 9: Personal Projects Continued

    In this class we will cover the following:

  • Expectations for final projects:
  • 1. Everyone will submit a wiki entry on this wiki: http://learn.plankman.com/w
  • 2. All the wiki entries will be completed by MONDAY 11 JANUARY 2010
  • 3. All projects will be demonstrated to us in the first week of term - date to be confirmed.
  • 4. Follow the structure of the EXAMPLE which can be found here - but feel free to rearrange / redesign as much as you want. The important thing is that there is at the very least, good documentation covering these headings: Aim; Research; User Scenario(s); Development Process; Final Outcome.
  • 5. You must submit your code, images and or videos of your project whether it works or not.
  • 6. To see a good example of final project documentation - look here.
  • 7. For help with marking up (formatting) your wiki entry go here. You should also ask the physcomp mailing list for help if you get stuck!

  • Here are some VERY brief instructions to get started on the wiki:
  • 1. Go to http://learn.plankman.com/w
  • 2. Click on "Goldsmiths, Autumn 2009"
  • 3. If you do not see your name, please create it by clicking the EDIT tab on the top of the screen.
  • 4. Figure out how to add your name by looking at the way everything else is added. (You'll need to add it like this [[My name here]])
  • 5. Click Save Page
  • 6. You'll see your name has been added as a red link. Click on it and begin editing!
  • 7. The easiest way to start is to go to the EXAMPLE link, click EDIT, and copy and paste all the text into your page.
  • 8. I advise you to create a login & password for yourselves... That way you'll be able to upload images to the wiki yourself. You can do this by clicking the login / create account link in the top right of the page.

  • Log Books
  • It is required that you hand in your log books to us until the end of the academic year. You have 3 choices:
  • 1. Hand in your log book and collect it at the end of the academic year.
  • 2. Scan your log book in, and email the pdf to Tim and I.
  • 3. Photocopy your log book and hand the copy in instead.
  • This will be handed in at the same time as your demonstration!
  • Tasks:

    WORK ON PERSONAL PROJECTS and START WORKING ON YOUR WIKI ENTRY

    10/12/2009

    Class 10: Final Class

  • Final opportunity to ask questions etc

  • Tasks:

    WORK ON PERSONAL PROJECTS AND WIKI ENTRY

    art  |  projects  |  contact   | thanks to Tom Igoe, and ITP for the incredible resources