Fundamentals of Physical Computing
Fall 2009 SVA, School of Visual Arts MFA in Interaction Design v1.0 |
Instructor: Rob Faludi rob@faludi.com 212-989-6888 |
Course Description:
This course explores the fundamentals of extending computation beyond the glowing screen and into the physical world. Using a programmed single-chip computer, students will learn how to connect sensors, actuators and indicators to create devices, installations and environments that move computational interaction “outside the box.” Our focus is on people rather than on devices. We will consider how the human mind is affected by physicality in all environments. By making a hands-on exploration of reactive, expressive, interactive and embodied behaviors, students learn to observe users, understand affordances and move seamlessly from digital processes to tangible actions. Course work is done individually in weekly technique labs and in groups for longer creative assignments. Note: No previous programming or electronics experience is required.
Goals:
Students will learn technical skills in electronics, programming and serial communication. They will gain a deeper understanding of how physical interactions and collaboration can enrich information in devices and enhance creativity in people. Assigned projects will explore digital and analog inputs and outputs, sensors, actuators, motors, serial communication and the creation of engaging interactions from the practical to the whimsical.
Class Schedule:
- Introduction: Physical computing, microcontrollers, breadboarding, Arduino, programming, digital input, digital output
Reading: Physical Computing, chapters 2-4, Arduino 1-4
Assignment: Soldering Lab, Digital Input/Output Lab, Imagined Physical Computing Assignment - Electricity and Programming: concepts, Ohm’s Law, circuit diagrams, soldering, switchmaking variables, organization, conditionals, binary
Reading: Physical Computing, chapter 1
Assignment: Understanding Electronics Lab - Analog Input: transduction, transducers, resistors, variable resistors, types of variables, programming review
Reading: Physical Computing, chapters 6 & 11, Arduino chapter 5
Assignment: Analog Input Lab - Programming: loops, for loops, functions, timing, intro to Processing
Reading: Physical Computing, chapter 5
Assignment: Programming Intro Lab - Analog Output: variable output using pwm, using servos and servo libraries
Reading: Physical Computing, chapter 6, Arduino chapter 5
Assignment: Analog Output Lab, Servos Lab - Programming II: drawing with variables, mouse interaction, conditionals (bounce)
Assignment: Programming Continued Lab, Observation for Midterm Project - Motors: DC, high current, steppers, control, relays, transistors, steppers, H-bridge
Reading: Physical Computing, chapter 10
Assignment: Motors Lab, Prototyping for Midterm Project - Serial Communication I: ASCII, serial, moving one variable, graphic output
Reading: Physical Computing, chapter 7
Assignment: Serial Lab, Revisions on Midterm Project - Midterm Presentations
Assignment: Ideas for Final Project - Serial II: protocols, bytes, call/response, enveloping, multiple variable streams
Assignment: Begin Final Projects - Wireless Communications: 802.15.4, modes, addressing, chat, Arduino hookup
Assignment: Wireless Lab - Workshop & Discussion: progress reports and workshopping
- Workshop & Discussion: progress reports and workshopping
- Final Presentations
- Final Presentations
Labs:
- Prototyping
- Digital Out, Digital In
- Understanding Electronics
- Analog Output
- Programming Introduction
- Analog Input
- Programming Continued
- Servos
- Motors
- Serial Communications
- Advanced Serial Communications
- Wireless
Assignments:
Imagining Physical Computing: Think of an interactive system that lives in the real world of physical objects. Mock it up and present it to the class. Clearly and physically show what it is, how it would work and communicate the experience of using it, interacting with it and living in a world where it was real. Focus on a great idea and a great presentation. Please, no scrolling through a web page. Give us the story.
Midterm Project: Design a new solution for an existing problem. Work in groups to observe the situation, create an early prototype, test the prototype and incorporate your findings into a revised solution system.
Final Project: work in groups to create a system or device of your choosing. Your creation should use demonstrate a mastery of the fundamentals of physical computing and high-quality interactions. This is potentially a challenging assignment in a short period of time so consider what you know about collaboration. Keep moving forward.
Documentation:
- Links to documentation of every project must be submitted for credit. Either a web page that includes code and relevant circuit drawings, or a < 3 minute video upload that fully documents the project.
Grading:
Class participation & attendance 30%
Presentations and assignments 20%
Projects and documentation 30%
Final Project 20%
Office Hours
To Be Announced
Making the Most of It:
For best results, come to class early, participate in discussions, ask lots of questions, offer copious and constructive feedback, stretch yourself and have fun.
REQUIRED READINGS
- Physical Computing: Sensing and Controlling the Physical World with Computers, Tom Igoe and Dan O’Sullivan, Course Technology, 2004
- Getting Started with Arduino, Massimo Banzi, Make Books, 2008
- There Will Come Soft Rains – Bradbury: http://rob.faludi.com/classes/sociableobjects/readings/Bradbury_Soft_Rains_1950.pdf
SUGGESTED READINGS
- Getting Started in Electronics, Forrest Mimms, Master Publishing, 2003