Recitation 10 – Media Controller

This recitation asks you to work in pairs in order to create a Processing sketch that controls media elements (images, videos and audio) using a physical controller made with Arduino. Think about how you can incorporate interactivity and computation into this week’s exercise. This will demonstrate your understanding of both platforms.

For the physical controller, consider what physical values you could receive and use. You can use potentiometers or sensors in your kit. You are also welcome to check out and use a sensor from the list below:

For the media you will manipulate, you can choose to either use live video/image/sound or pre-recorded samples. If you choose to use samples you are not the author, make sure you credit the source. Here are a few resources for public domain and creative commons sound and images:

Document your work on your blog. In addition, write a reflection about the ways technology was used in your project to control media. Now that you have made a media controller, think about in what other ways one can use physical computation to create interactive art and manipulate media, and incorporate this into your reflection. You may consider this week’s reading, Computer Vision for Artist and Designers, when answering this question. 

Week 13

Class 24 – Images and Video

Textbook: Learning Processing

  • Learning Processing: Chapter 15 Images
  • Learning Processing: Chapter 16 Video


  • Images, Video and Pixels


Class 25 – Pixel Manipulation


Textbook: Learning Processing

  • Learning Processing: Chapter 15 Images
  • Learning Processing: Chapter 16 Video


  • Pixel Iteration & Manipulation and Computer Vision

Recitation 9 – Serial Communication, Object Oriented Programming, and Soldering

For this week’s recitation, you may choose to attend one of the following three workshops:

  1. Soldering in room 824
  2. Object Oriented Programming in room 825
  3. Serial Communication in room 826

Please attend a workshop that you believe would help you best complete your final project, or otherwise supplement material we have covered so far. Document the work you did during the workshop. Explain how will it help you for your final project.

Recitation 8 – Digital Fabrication

Working in pairs, you will design and build a physical model. Find inspiration in these sources:

Once you have considered how this project will manifest use methods of digital fabrication to realize and construct that model. You can 3D print and/or laser cut with the following constraints:

  • For 3D printing: Use PLA material to print something no bigger than 125cm^3 (i.e.: 5cm x 5cm x 5cm). Create a STL file.
  • For laser cutting: Use 3mm thick MDF material to laser cut and/or engrave nothing larger than 20cm x 10cm. Create a vector file (AI, SVG) following these guidelines.
  • Feel free to use other materials that help you with your piece’s structure: cardboard, thread, wires, etc.
  • You can use tools available in the studio such as paper tape, tape, glue guns or soldering irons to build your piece. If you need more resources, you may check out materials from the ER.

During this recitation, you will prepare the files according to the instructions you learned during the lectures. For laser cut designs, you can use Illustrator, (Web), Inkscape (Windows, Mac, Linux), SVG Edit (Web), DrawPlus (Windows), or other such softwares. To 3D model, you can use Tinkercad. Once you have successfully finished preparing your files, make an appointment to digitally fabricate what you designed.

You are required to post your documentation individually. Include  your designs and the fabrication. Make sure you register the process of using the different machines and tools to create your physical model.

You are asked to also include a reflection on your work. Please use the following guiding questions for your reflection:

  1. Why did you choose your method of digital fabrication to construct your reimagined piece?
  2. Compare the crafting method you have been using so far for the Stupid Pet Tricks and Midterms with the ones used during this recitation. How do you think that these digital fabrication methods can help you for your Final Project?
  3. How does the reading “The Digital Fabrication Revolution” set the context to the work you did?
  4. If you were to imagine an assignment using digital fabrication at IMA in the year 2149, what would be different and what would be similar?

Recitation 7 – Drawing Machines

Disclaimer: Firstly, this recitation requires you to work with higher voltages. If the circuit schematics are not built properly or in accordance with the provided schematics, there is potential to damage your computer. If you don’t you wish  to take this risk, you can check out an IMA computer instead of your own to complete the recitation. If you choose to use your computer for this recitation, you do so at your own risk. Secondly, the components in this recitation (the IC and Stepper Motor) will get hot, so do not touch these components when they are powered. Be mindful of this as you complete the exercises below.

This week, we will be creating drawing machines by using an H-bridge to control stepper motors attached to mechanical arms. Individually assemble the circuit using the SN75440NE IC and the pre-installed Arduino Stepper Library to control one stepper motor. 

You will need your Arduino kit along with:

  • 1 42STH33-0404AC stepper motor
  • 1 SN75440NE ic chip
  • 1 power jack
  • 12 VDC power supply
  • 1 potentiometer (from your kit)
  • 1 Arduino and USB cable (from your kit)
  • Laser-cut and 3D printed mechanisms
  • Pen that fits the laser-cut mechanisms
  • Paper

Part A

Step 1: Build the following circuit to control the stepper. Use the stepper_oneRevolution example to get your motor to make one revolution. The motor should move smoothly.



Step 2: Use your potentiometer and the MotorKnob example to control your motor. Please note that 42STH33-0404AC stepper motor is a 200 step motor. You can use the function map() in order to match the movement of the knob with the rotation of the motor.


Step 3: Once you have your motor moving, you should collect the parts of the laser-cut and 3D printed mechanisms as the pictured below.


Then, find another person to work with. Combine your parts into a mechanical arm that can hold a marker, as seen in  the picture below. Congratulations, you have just created a drawing machine!

Please note that you may need to tape the paper down so it does not move against the pen. Experiment with changing the speed.

Optional Step: Use Processing in both computers to control the movement of the motors and create piece of generative art.

Part B

Document your work individually. Make sure to include all the steps, materials and processes you followed to build your drawing machine. Add a reflection about the use of actuators, the digital manipulation of art, and the creative process to your blog post. What kind of machines would you be interested in building?

Choose an art installation mentioned in the reading ART + Science NOW, Stephen Wilson (Kinetics chapter). Post your thoughts about it and make a comparison with the work you did during this recitation. How do you think that the artist selected those specific actuators for his project?


Note on how to Identify the front of the IC:

Look for a dimple or semicircle at one end of the IC. This dimple indicates where the front of the IC is. The pin to the left is pin 1, and the diagram below depicts how the other pins are mapped.

Week 9

Class 17 – Objects Oriented Programming



  • Object Oriented Programming

Class 18 – DC and Stepper Motor Control



  • DC Motors

Midterms – User Testing

Part 1: Prepare

Spend some time thinking about how you will set-up your project and about the feedback you received during your presentation. Write a list of things that you want to know when your users interact with your project. Write down any specific questions you have or any other aspects that you would like to consider when your users interact with your project.

Part 2: Testing

A) Testing your project

Make sure you have read and understood  “Making Interactive Art: Set the Stage, Then Shut Up and Listen” by Tom Igoe.

Then, let the users start the program/project, and watch them as they use it. Make them talk out loud about their mental processes and ask them to voice every single question that pops into their minds as they work. Take copious notes, some pictures, and videos. After a few minutes, ask some probing questions; find out issues that are troubling and engaging the user.

B) Being a user

When testing others’ projects, overlook minor glitches.. Identify deeper-level problems with the design and suggest ideas that your peer might not have thought of. Articulate your thoughts and tell your classmate  everything you feel and think about their project. Answer any questions your classmate might ask.


Part 3: Reporting

You should include two reports: one for a project you tested, and one for your own project.

  • For a project you tested: Describe the experience of interacting with the project in detail. Record any questions you might have about the project. Write any suggestions you might have that could improve the project.
  • For your own project: Review the notes you took while other people tested your project. Describe in detail how your users interacted with your project. Consider the users’ comments and concerns. Address each of them while thinking about the reasons behind them. Think of possible improvements you could make to your project in response to the feedback you received.

Recitation 6 – Guest Talk

You will participate from a talk from the community centered space XinchejianYou will hear from project creators of this community and they will give you feedback on your project. The speakers are:


  • Andy García, Urban farming from Domosfarm

Write a short reflection on the talk and any feedback you have received about your project idea.

Recitations 5 – Serial Communication

Working individually, send data from Arduino to Processing and vice versa using serial communication. You can find some examples that might help you here. Make sure you have the serial port number set correctly and the baud settings set on both Arduino and Processing.

This is a great opportunity to apply and combine all the things you have been learning during the semester. Document your work on the documentation blog, following similar steps to the ones you have been asked during previous recitations. Give context to your project and use the readings assigned to explain what worked and what did not work in your process.

Step 1

Create a Processing sketch that sends data to Arduino. Receive that data and express it using physical components (ie. servo, led, buzzer).

Step 2

Create a circuit using your Arduino to send data from physical inputs (ie. variable resistors, buttons, tilt switch) to Processing. Receive the data and express it visually in your Processing sketch.

Step 3

Now that you are able to send data back and forth between Arduino and Processing, think through the following questions. Make sure you write a short reflection about why you would use serial communication in your future projects.


  1. What are the possibilities for interaction that you can envision?
  2. What are some of the benefits of controlling physical elements with computational media and of controlling screen-based computational media through physical interaction?
  3. Can you think of real world applications that take advantage of communication between the physical and screen-based computational media?

Week 6

Class 11 – Serial Communication



  • Serial communication between the Arduino and the computer

Class 12 – Mouse and Keyboard Interaction



  • Interaction Design, Mouse & Keyboard Interaction & The Graphical User Interface

Recitation 4 – Animation in Processing

Step 1: Choose an image or a theme that inspires you. Some suggested sources of inspiration are:

Step 2: Considering the image you chose as a starting point or inspiration to create an animation with Processing using any 2D primitive or vertex shapes. Using the functions that were covered in class, create an animation with Processing. Using paper to sketch your idea may help.

Make sure to use some of the following functions:

Incorporate numeric variables:

Incorporate environmental variables:

And the transform functions:

Step 3: Document your work on the blog. Start by uploading the image you chose in Step 1, a description of the experiments you ran in Step 2 and the final result of what you created. Please make sure to post your code with comments and your final sketch.

Step 4: Write a short reflection based on the results you just created and the content discussed in class. Some questions to orient you in this reflection are:

  • What are the differences and similarities between the image you chose in Step 1 and the image you created in Step 2?
  • Do you think that drawing in Processing is different than drawing/painting by hand? How is it different? Why is it different?
  • Is there any value in recreating an existing image/drawing/graphic using computational media? What is it?
  • Do you think that both drawings cause the same feelings in the viewer?
  • If you were to create multiple variations of your drawing, what would these variations be and how would they differ?

Week 5

Class 9 – Intro to Drawing with Processing


  • Getting Started with Processing: Chapter 1 – Hello
  • Getting Started with Processing: Chapter 2 – Starting to Code
  • Getting Started with Processing: Chapter 3 – Draw
  • Learning Processing: Chapter 1 Pixels
  • Learning Processing: Chapter 2 Processing


  • Programming, Processing & Drawing


Class 10 – Animation in Processing


  • Learning Processing: Chapter 4 Variables
  • Getting Started with Processing: Chapter 4 – Variables
  • Learning Processing: Chapter 5 Conditionals
  • Learning Processing: Chapter 6 Loops
  • Learning Processing: Chapter 7 Functions
  • [optional] The art of computer designing, by Osamu Sato


  • Animation, Variables and Loops

Stupid Pet Trick

Working individually, make a simple physically interactive device that uses the skills you’ve learned in class. It must respond to a physical action or series of actions a person takes, and it must be amusing, surprising, or otherwise engaging. It doesn’t have to be practical, or complex, as long it shows that you understand the basics of digital and analog I/O and how to use them.

If you’re unfamiliar with the term “stupid pet trick,” Googling the term may provide you inspiration for the tone of this project.

Document your work on the documentation blog, including all the components you used for your project, the code you used and the process you followed. Make sure to write a conclusion about your project, whether you achieved your goal or still extra work should be done. During Friday’s recitation, you will be presenting your work to the class.

Week 4 – Project Planning and Stupid Pet Trick

Class 7 – Project Planning



  • Project Production and Prototyping

Class 8 – Workshop


  • Work on your stupid pet trick.

Recitation 3 – Sensors


For Part A, please find a partner and work in pairs.

Step 1: Choose one of the the following sensors—not provided in your Arduino kit— and read about it. Information about the individual sensors and how to use them can be found in the Information on Sensors and Resources section at the bottom of the post.

Once you have picked a sensor, attach it to your Arduino and use the data from your sensor to turn an output (Servo-motor, LEDs, Buzzer, etc.) on and off.

Step 2: Document the work you have done to the blog. Make sure to document your work individually, and that your documentation responds to the following questions:

  • What did you intend to assemble? Why did you choose that specific sensor and output?
  • Which materials did you use? Which circuit(s) did you use as a reference for them?
  • What sources did you use in order to program them? Did you have to modify them?
  • Which different steps you went through to make it work? Did it work as expected?
  • What conclusions can you draw over the work you did?
  • Can you relate your experience building this circuit to any device you interact in your daily life?
  • If you were to continue experimenting, what would your next steps be?



For this part, you should work individually focusing in the work you have done in Part A. You should post a reflection that addresses the following questions:

  • How is writing code similar to making dumplings?
  • As Manovich describes in the Language of New Media, the influence of computers on new media is clear. In what ways do you believe the computer influences our human behaviors?

Additional Information on Sensors

Moisture Sensor:
The Moisture Sensor can be used as if you were doing simple Analog Read (like the potentiometer from Recitation 2) with any analog device. This is to say, connect the sensors’ power and ground pins to the Arduino’s power and ground, respectively. The signal pin from these sensors can be connected to an Analog Input pin.
Infrared Distance Sensor (IR Proximity Sensor):
Similar to the Moisture Sensor, the Infrared Distance Sensor can by used by implementing the connections and code from a simple Analog Read Sketch. In the case of Infrared Distance Sensors, using the “map()” function can be helpful. This function maps the analog readings from the sensor to the distance between the sensor and the object it is sensing. For the Sharp Infrared Distance Sensor you can also follow the sample code available here.
Vibration Sensor:
To create a Vibration Sensor you will need a piezo disk and a 1M resistor. You can use the Knock example on your Arduino IDE — under Examples —> 0.6Sensors. Otherwise, the Vibration Sensor can be used like a simple Analog input.
Ultrasonic Ranger:
The Ultrasonic Ranger (AKA Ultrasonic Sensor OR HC-SR04) can be used to detect distance. To program Arduino to work with this sensor, you can use the Ping example on your Arduino IDE — under Examples —> 0.6Sensors.
Note: In order for the HC-SR04 to work with the Ping code, you must connect both Trig and Echo to the same Digital Pin in your Arduino.
3-Axis Analog Accelerometer:
For the Grove 3-Axis Accelerometer (3-Axis Analog Accelerometer) you can use the ADXL3xx example on your Arduino IDE — under Examples —> 0.6Sensors.

Recitation 2 – Arduino Basics


  • 1 * Arduino Kit and its contents, including:
  • 1 * Breadboard
  • 1 * Arduino Uno
  • 1 * Buzzer
  • 1 * Push-Button Switch
  • 1 * LDR
  • 220 ohm Resistors
  • LEDs
  • 10K ohm Variable Resistors (Potentiometers)
  • 1 * USB A to B Cable
  • Jumper Cables (Hook-up Wires)

Exercise 1

These challenges will require you to build a circuit, write and Arduino sketch (code), and upload that sketch to your Arduino Uno. You may build your circuits based on the provided schematics and cheat sheet below. For both Part A and B, as you build your circuits, take pictures and write about your process . You can use the documentation lighting stations to take pictures or film the the finished circuit working. Record notes about the building process for each circuit, such as problems that you encountered, and how you fixed them. Reflect on the final outcome: Did the circuit work at the end? If not, why didn’t it? What needs to be altered for the circuit to work?


PART A (individual):

Step 1: Using a Pushbutton

Build a circuit based on the diagram below. When you have finished building this circuit, write a sketch that blinks an LED when the pushbutton is pressed. You may reference Arduino> File> Examples> Digital> Button for help writing the sketch. Remember that to make your sketch consistent with your circuit, you need to double check the pin numbers.

Step 2- Blinking an LED using a Pushbutton

Using the circuit you just assembled, write a sketch that blinks an LED when the pushbutton is pressed. You may reference to  Arduino> File> Examples> Digital> Button and Arduino> File> Examples> 0.1Basics> Blink for help writing the sketch.


Step 3: Fading an LED with a Pushbutton

Using the same circuit as the previous step, modify your Arduino sketch so that the LED fades when the pushbutton is pressed. You may reference Arduino> File> Examples> Basics> Fade for help writing the sketch.


Step 4: Make your own Circuit!

Build a circuit that can power at least 3 LEDs. Then write a sketch that blinks and/or fades these LEDs in a unique way. How the LEDs blink or fade is entirely up to you, but they should do so in an original sequence. Upload this sketch to your Arduino and record the results.

When you have completed this circuit, draw a schematic representation of what you made and take a picture. Upload your schematic along with the other documentation for this exercise.


PART B (in pairs):

Step 1: Fading an LED with a Potentiometer

Build a circuit based on the diagram below. When you have finished building this circuit, write a sketch that fades the LED in relation to the Analog values from the potentiometer. You may reference Arduino> File> Examples> Analog> AnalogInOutSerial for help writing the sketch.


Step 2: Multiple Outputs with Multiple Inputs

Now that you know how to create a project with multiple inputs and outputs, build a circuit that has at least three LEDs (buzzers optional) and three potentiometers. Write a sketch that has each of your inputs control an output (Outputs can be digital, analog, or some combination).

When you have completed this task, draw a schematic of the circuit your built and upload it to the blog along with the other documentation.


Exercise 2


Working individually, answer the following questions and post them to the documentation blog along with your work from Exercise 1.

  1. During the assembly of the circuits, we used many electronic components as inputs and outputs. Which components do you recognize in the city?
  2. If you have 100000 LEDs of any brightness and color at your disposal, what would you make and where would you put it?
  3. Which reflections about the nature of interaction can you make about the Figure I.1 in the Physical Computing reading?


Personal Assessment

(Not to be posted to the blog, only for your own reference)

Note: To answer these questions, you may refer to this weeks readings about, microcontrollers, digital input and output, analog input, and analog output, as well as Getting Started with Arduino. You can also take a look at the Arduino Reference page for further understanding.

Arduino Hardware

  • What is a development board? Why is the Arduino Uno a development board?
  • What is a microcontroller? What does a microcontroller do?
  • How many Digital Input/Output Pins does the Arduino Uno have? Which pins are they? What do they do?
  • How many Pulse Width Modulation (PWM) pins does the Arduino Uno have? Which pins are they? What do they do?
  • How many Analog Input Pins does the Arduino Uno have? Which pins are they? What do they do?

Arduino Software

  • What does “IDE” stand for? What software is used to write Arduino code and upload sketches to the Arduino?
  • What is the “setup()” function? What does the code within the setup() function do (i.e. What happens to code written within the setup() function?) ?
  • What is the “loop()” function? What does the loop() function do?
  • How do you “comment” within the Arduino IDE? Why is it good to comment within your code?
  • What does the “pinMode()” function do?
  • What does the  “digitalRead()”  function do? What does the “analogRead()” function do? How are they different?
  • What does the  “digitalWrite()”  function do? What does the  “analogWrite()” function do? How are they different?
  • What does the “delay()” function do?

Recitation 1 – Electronics & Documentation


Please carefully read the directions for each of the two exercises for this recitation. At the beginning of the recitation, per instructions from your recitation leaders, you may take materials necessary to build your circuits. When you have completed Exercise 1, upload all documentation for Exercise 1 and your answers for Exercise 2 to the IMA Documentation Blog.


    • 1 * Breadboard
    • 1 * LM7805 Voltage Regulator
    • 1 * Buzzer
    • 1 * Push-Button Switch
    • 1 * 220 ohm Resistor
    • 1 * LED
    • 1 * 100 nF (0.1uF) Capacitor
    • 1 * 10K ohm Variable Resistor (Potentiometer)
    • 1 * 12 volt Power Supply 
    • 1 * Barrel Jack
    • Jumper Cables (Hook-up Wires)

Exercise 1

Step 1: Build your circuit

Directions: Working in pairs, create three simple circuits on a breadboard based on the circuit diagrams below. As you build your circuits, take pictures and write about your process. When you’ve finished a circuit, take pictures or film the the finished circuit working. Record notes about the building process for each circuit, such as problems that you encountered, and how you fixed them.


To help you read the schematics for the circuits, you may look at the components and their symbols at the bottom of this document, or refer to the diagrams in this reading.

Circuit 1

Circuit 2

Circuit 3

Step 2: Document your work

For your blog post, please upload your pictures and add the following information for each individual circuit:

    • Write down the list of components used. Record what these components are, what they do, and why they are included in this circuit.
    • Describe the process of building the circuit, and note what worked and what didn’t.
    • Write down how one interacts with the circuit. (i.e. What one must do to make the circuit work, or how one’s interaction changes the circuit’s output)
    • Reflect on the final outcome: Did the circuit work at the end? If not, why didn’t it? What needs to be altered for the circuit to work?


Exercise 2

Once you have finished your circuits, take time to reflect on this week’s readings and Exercise 1. Post your answers to the following questions to the blog along with your documentation for Exercise 1.

Question 1

After reading The Art of Interactive Design, do you think that the circuits you built today include interactivity? Please explain your answer.


Question 2

Based off of Electricity: the Basics, identify which components used today were sensors, and which components were actuators.


Question 3

How can Interaction Design and Physical Computing be used to create Interactive Art? You can reference Introduction to Arduino and Zack Lieberman’s video.


Components and Diagrams


Image from









Image from Tweaking4All












Image from









Voltage Regulator:

Image from Electronics4u









Variable Resistor / Potentiometer:

Image from








Push Button (Switch):

Image from Razzpisample




Image from












Week 3 – Physical Interaction

Class 5 – Conditionals and Variables



  • If statements and variables with the Arduino

Class 6 – Physical Interaction, Sensors and Actuators



  • Physical Interaction, Sensors and Actuators

Week 2 – Microcontrollers, Digital and Analog

Class 3 – Intro to Microcontrollers

Download Arduino IDE

Textbook: Getting Started with Arduino

  • Chapter 3 – The Arduino Platform



  • Microcontrollers & Arduino

Class 4 – Digital, Analog, Arduino and You!


Textbook: Getting Started with Arduino

  • Chapter 4 – Really Getting Started with Arduino
  • Chapter 5 – Advanced Input and Output


  • Digital & Analog Inputs & Outputs

Week 1 – Introduction, Electricity and Electronics

Class 1 – Introduction

Class 2 – Electricity

Textbook: Getting Started with Arduino

  • Chapter 1 – Introduction
  • Chapter 2 – The Arduino Way



  • Electricity, Electrical Components & Circuits