Skip to content

Latest commit

 

History

History
738 lines (577 loc) · 24.9 KB

File metadata and controls

738 lines (577 loc) · 24.9 KB

Shortcut to today's assignment
Shortcut to today's lecture
Shortcut to student presentations
Shortcut to student Github repositories

IM Lab and Scene Shop Hours

  • Scene Shop: Ramadan hours: 9am - 2pm M-R, 9am-noon F
  • Scene Shop: non-Ramadan hours: 9am - 5pm
  • Your ID card provides access to the IM lab 8am-9pm weekdays, and 9am-5pm on weekends.
  • IM lab staffed hours (may change towards end of semester):
    • 11am - 10pm Monday - Thursday
    • 2:30 - 6pm on Fridays
    • noon - 6pm on weekends

Useful information

New York University Abu Dhabi

Interactive Media Program

  • Course Information

    • Course Code and Number: IM-UH 2113
    • Course Title: Machine Lab
    • Credit Hours: 4
    • This is a 14 week course consisting of fourteen 75 minute meetings and fourteen 150 minute meetings
    • Instructional time requirements are met by the scheduled meeting times
    • Class location: C3-029 (IM Lab in the Art Center)
    • Prerequisites: IM-UH 1010 or INTM-SHU 101 Interaction Lab or IMNY-UT 101 Creative Computing or DM-UY 1133 Creative Coding
  • This course counts toward the following NYUAD degree requirements:

    • Majors > Interactive Media
    • Majors > Interactive Media > Physical Computing
    • Minors > Interactive Media
  • Faculty Details

    • Professor: Michael Shiloh mshiloh@nyu.edu
    • Office hours: Schedule an appointment here
    • Office phone number: 02-628-5185
  • Session: Spring 2026

  • Meeting times:

    • 8:30 - 11:10 Tuesday
    • 9:55 - 11:10 Thursday
  • Instructional time requirements are met by the scheduled meeting times

Course website: https://github.com/michaelshiloh/MachineLab

  • This is subject to change

Tuesday January 20 2026 Week 1

Plan for today

  • Syllabus
  • About this class
  • What is this class about
  • Making things
  • Making things move
  • Arduino Review
  • Homework

Syllabus

The syllabus is here

Addendum to the syllabus

  1. Cellphone and laptop use, except when part of a class activity, is prohibited
  2. The first inappropriate use of cellphone or laptop will count as arriving late for that day; the second time will count as being absent for that day
  3. You are required to take notes on paper. I will gather your notebooks periodically and they will be graded.
  4. I'm going to change the paper/presentation assignments. I'm not happy with how they have been going. I haven't yet figured out what the new method will be.

About this class

This class is fast-paced, difficult, and time consuming. You will have to learn many skills that are new to you, and you will spend many, many hours working on your assignments.

You are used to estimating how long an assignment or project will take based on your past experiences. Physical computing involves skills which are probably new to most of you: mechanics, electronics, and physical construction. When the assignments require skill with which you have little experience, your time estimates can be very, very, very wrong.

I can almost guarantee that you will spend much more time on this class than you think. Don't take this class if you aren't prepared to work hard and invest the necessary amount of time.

On the other hand, I am here for you. I want to see you succeed. I like seeing your projects succeed. You will find me very accessible and helpful. I am online at all hours and can often solve problem via Discord. I'm also very available in person and spend much time outside of class in the IM lab or in my office. You can approach me at any time, but you must take the initiative and reach out to me, and you must not wait until the last minute. You must try seriously to solve your problems, and if you can't solve them, you must reach out to me while there is still time for me to help you.

In return I have expectations of you: I expect you to come to class on time and to be fully present. I expect you to be fully engaged in the course, and to fully participate in and contribute to class discussion. I expect you to work hard, very hard, to try to solve problems on your own, and to ask me for help when you run into trouble.

I am deeply committed to teaching. I expect you to be fully engaged in this class. If you are not interested in this material and are taking this class strictly to fulfill a requirement, I urge you to drop this class and allow someone who is interested take your place.

I do not tolerate the use of cellphones, earphones, watches, or laptops in class for anything other than what we're actively working on. If you need any exceptions, talk to me.

I understand that there is more going on in your lives than this class. If there is stuff going on that is making it difficult to get your work done, contact me and we'll work something out. Email is appropriate for these discussions.

Logistics

This course requires training on different tools. Training is offered only at certain times, and the training staff does not have the resources to offer training at other times. You must attend the training sessions unless there is some truly exceptional reason not to do so.

You may require separate training for your particular project (e.g. sewing or welding). You will be responsible for reaching out to the relevant shop to arrange such training.

You are required to use Discord to ask all questions related to class, whether technical, logistic, or otherwise. Reserve email for personal matters.

Cleaning up

We will be building things. We will use lots of tools and materials. It is your responsibility to clean up after yourselves, to return tools and materials to their places, and to put trash and recycling in the appropriate bins.

Some of the tools and materials are for the exclusive use of our class; others are generic tools and materials used by other classes. You must return things to their proper place. If you don't know where something belongs, ask me or one of the other professors or instructors or lab assistants. If none are available put it on my shelf. Never put items in some random place to avoid dealing with them.

In summary:

  • Always clean up after yourselves, and always clean up a little more. Leave the space cleaner than you found it. Failure to do so will result in a lower grade.
  • Return tools and unused materials to their proper places
  • Discard trash and recycling in the proper bins
  • Keep our tools and materials in our space
  • If you see anyone outside of our class using our tools, materials, or space, please get their names and inform me.

How to make me unhappy

Use your cellphone or laptop in class. Sit in the back, don't ask questions, and don't participate in discussions. Don't clean up after yourself. Leave tip-out bins open, and spill out contents. Don't put tools and parts back where they belong. Use jumper wires. Make poor connections. Leave lots of exposed wire for short circuits. Come to class late and return late from breaks.

How to make me happy

Raise your hand in class. Interrupt me. Ask questions. Have a different point of view. Make connections to other projects, artists, things you have read, conversations you have had. Be critical. Cite your sources. Do research. When debugging, don't try things at random: think logically about what should be happening, what is happening, and why there is a difference. Learn how to use test equipment and print statements to understand what is going on. Practice soldering and don't be satisfied with poor soldering. Ask questions. Reach out to me for help. Sit in the front and pay attention. Leave your phone in your bag when you go to the bathroom.

What is this class about

  • Machines: building them, using them
  • Mechanics (statics and dynamics)
  • Design
  • Creativity
  • History and critique of technology

Inspiring examples

Making things

Demo: Working with hot glue and cardboard

  • Braces
  • T profile
  • Box

Arduino Review

  • blink
  • Servo motor

Making things move

Demo: Working with servo motors

In-class exercise: Rotate crane by servo motor

Homework

All homework will be given in the homework file. It is your responsibility to know what's due. I will send a message on Discord and Brightspace whenever I make a change.


Introduction to Arduino

  • Upload the Blink example
  • Change the parameter in delay()
  • Upload again and verify that the LED blinks at the new rate

Discuss

  • What's going on here?
  • What role does Arduino play?
  • LEDs and other actuators
  • What is the opposite of an actuator?
  • Reading from a sensor vs. writing to an actuator

Thursday January 22 2026 Week 1

Plan for today

  • Soldering

Soldering (time permitting)

Tuesday January 27 2026 Week 2

Plan for today

  • Homework
  • Multitasking with Arduino

Homework

Take a look at the soldering homework

Multitasking with Arduino

  • Build and code the multitasking exercise
  • Add a potentiometer to control something (LED blink rate, servo range, whatever)

Thursday January 29 2026 Week 2

Plan for today

  • Announcements
  • Homework
  • Debugging
  • Last year's project
  • Theme

Announcements

Thanks to the wonderful work of the ARC and for funding from the division, we now have peer tutors for IM available in the IM lab. Please find the IM Drop-in schedule here.

For now, students can just walk in, and tutors will record their details. Students' sign-in will be more automated once the NYU Connect setup is completed for IM tutoring.

Homework What did you learn about solving

problems?

Debugging

What are some techniques that you use?

Digital Multimeter (DMM) demonstration

  • Measure voltage at servo motor and LED
  • Measure voltage at 5V, Vin, and 3.3V
  • Measure voltage of potentiometer at its input pin
  • Measure voltage of one of the outputs controlling an LED
  • How can we check if a pin is working as an output?

Theme

Decision made! Theme: video games

Tuesday 3 February 2026 Week 3

Plan for today

  • Last week's homework feedback
  • Assess project
  • Assess modules
  • Project rough drafts
  • Rough plan for rest of semester

Last week's homework feedback

  • schematics
  • organize your github

Assess project

  • For each module, try to identify what's working and what isn't
  • Describe how you might start debugging each non-working issue
  • What is making it harder to debug? What would make it easier?
  • For some features, it might be hard to know whether it's malfunctioning or perhaps working as intended, but is not a good design. Document any of these which you identify.

Assess modules

  • Is everything working the way it should?
  • How might you debug?
  • How might you make it easier?
  • Sketch each mechanism
  • Sketch the schematic
  • Note construction methods

Project rough drafts

  • Coalesce
  • Teams
  • Design a mechanism
  • Share and critique
  • Start building working prototype

Rough plan for rest of semester

  • Week 1: Introduction, Arduino review, construction
  • Week 2: Soldering, multitasking, debugging
  • Week 3: Assess last year's project, motors, start first component prototype
  • Week 4: Tool training, platform, refine prototype
  • Week 5: NeoPixels, finish first component
  • Week 6: Music Maker Shield, prototype second component
  • Week 7: Midterm: finish two components with lights and sound
  • Week 8: Remaining components prototyped
  • Week 9: First integration test; finish all components
  • Week 10: Fusion 360 for laser cutting and 3D printing
  • Week 11: Decorations
  • Week 13: Paint frame
  • Week 12: Additional features, final cleanup
  • Week 14: Showcase

Thursday 5 February 2026 Week 3

Plan for today

  • Hours
  • Dustin 10-10:20
  • Motors
  • Prototype your first mechanism

Dustin

Motors

L298 Motor Driver with external power supply and large motor

To control a large motor, we need an intermediate device called a motor driver. Our particular motor driver is based on the L298. To find out how we use it, we simply Google "L298 Arduino". Here is the first thing that showed up for me. The point here is that many of the components we use are quite generic and there is a lot of information on using components with Arduino, but we can not follow the instructions blindly. We do need to understand how it works.

Warning there is an error in the schematic under Arduino and L298N Motor Driver. Can you spot the problem? Hint: Look at the schematic under Arduino Robot Car Control using L298N Motor Driver and see if you can find the added connection that was missing.

Code

Before you look at the code here, think about the circuit.

  • EN needs to be HIGH in order to turn on the motor driver
  • IN1 and IN2 need to be opposite (if one is HIGH then the other should be LOW) in order to make the motor turn
  • Can you think of how to do this? (Hint: you can do this with 4 lines of code in setup() function and an empty loop() function)

Sample code, assuming you used these pins:

void setup() {
  // Pins 2 and 3 are connected to In1 and In2 respectively
  // of the L298 motor driver
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
}

void loop() {
  // make the motor turn in one direction
  digitalWrite(2, LOW);
  digitalWrite(3, HIGH);
  delay(5000); // let it turn for 5 seconds

  // now reverse direction
  digitalWrite(2, HIGH);
  digitalWrite(3, LOW);
  delay(5000);
}

Tuesday 10 February 2026 Week 4

Plan for today

Tool training!

Thursday 12 February 2026 Week 4

Plan for today

  • Administration
  • Homework feedback
  • Review sketches and mechanisms
  • Groups

Administration

  1. I have made the following rule change in the syllabus for this class:
    1. You will be considered late if you arrive in class more than five minutes after the scheduled class start time
  2. Each team will create a poster which will be attached to the large frame, which will describe your project, your intentions, and most importantly, your process. It will include pictures and words. We will talk more about this later in the semester, but I wanted to tell you now so that you can prepare for that by documenting your process well, meaning good photographs and good descriptions in your journal.

Homework feedback

  • Wires into screw terminal

Review sketches and mechanisms

  • What did you think would be difficult but turned out to be simple?
  • What did you think would be simple but turned out to be difficult?
  • Can we come up with some general principles?

Groups

Team Flappy Bird

  • Ahmad
  • Ziya
  • Flevin

Team Need for Speed

  • Ali
  • Mustafa
  • Ghadir

Team Cyberpunk 2077

  • Yumi
  • Kamalika
  • David

Team Minecraft

  • Sara
  • Rashed
  • Stefania

Tuesday 17 February 2026 Week 5

Plan for today

  • Share homework from the 4 team
  • Different motor types
  • Mechanism examples
  • Sensors
  • Using stepper motors
  • Midterm project
  • Schedule

Share homework from the 4 team

Different motor types

  • Brackets for motors

Mechanism examples

Cabaret Mechanical Theatre

Sensors

Light based

Other sensors

Using stepper motors

Midterm project

  • Due 2 March which is two weeks away but Ramadan

Thursday 19 February 2026 Week 5

Plan for today

  • Ramadan
  • Homework
  • Drill Press
  • Tour of Scene Shop, pointing out available tools and materials
  • Scene Shop hours during Ramadan

Tuesday 24 February 2026 Week 6

Plan for today

  • Working with Aluminium part 1
  • Intentional Design and visit from Erin Collins

Working with Aluminium Part 1

  • Changing your design to use available materials
  • Measuring and marking
    • Machinist's square
    • Scribe
    • Center punch
  • Cutting and drilling

Thursday 26 February 2026 Week 6

Plan for today

  • Working with Aluminium part 2
  • Administration
  • Working with Rotating Parts
  • Using the Servo Shield
  • Rules for Working with Electronics

Working with Aluminium part 2

  • Nuts and bolts
    • Nyloc nuts
  • Metal servo hubs
  • Transferring holes that have to line up
    • Fine pen
    • One hole at a time
    • Drilling oversize and wide washer

Administration

  • Eating and drinking in the lab
  • Arriving late
  • Changing your design to use available materials
  • Homework
    • do it
    • document it
    • use due date of the assignment

Working With Rotating Parts

- Shafts
- Hubs
- Coupling to motors
- Addressing misalignment

Using the Servo Shield

  • What is a shield
  • Power
  • Feed through headers
  • Servo motor extension wires

Rules for Working with Electronics

  • Always use the correct color wire
  • Never use jumper wires. They are too thin and will tear easily
  • Never use solid core wire except going from point to point on the same board.
  • Don't solder wires directly to the Arduino or any shield. Instead, solder header pins to a Prototyping Shield, and solder a header socket to your wires (which are stranded, right?) which can then be plugged onto the header pins on the prototyping shield.
  • Always use stacking headers in all your shields
  • Use enough heat shrink tubing to completely cover any joints. If it shrinks and leaves a gap, put another piece over that. Heat shrink tubing is cheap, fixing a short circuit is not.
  • I warned you at the beginning of the semester that this class will require a lot of work and that you would have to put in a lot of time outside of class time.

Tuesday 03 March 2026 Week 7

Plan for today

  • Checkin
  • Project Status
  • What is Machine Art?

Checkin

Project Status

What is Machine Art?

Machine Art lecture from Understanding Interactive Media

Thursday 05 March 2026 Week 7

Plan for today

  • Checkin
  • Plans
  • Machine Resources

Checkin

Plans

  • Rest of semester online
  • Who is on campus? Who plans to leave?
  • What we will do

Tuesday 24 March 2026 Week 8

Plan for today

  • Plan
  • Demo
  • Machine Resources

Plan

Concept

As a creative technologist, whether artist or engineer, you will always work with some limitations whether due to cost, availability, or skills. Your success will depend on your ability to design a project that can achieve your goals within these limitations.

This ability is developed by practice. As you work with different technologies and materials, you develop a better intuition about how difficult they are to use and how easily they can be modified to fit a particular need.

When limitations seem insurmountable, it is wise to modify your design to avoid this particular limitation.

It may not be a surprise to you that this is an iterative process:

  • Assess your resources: For physical tools and materials consider what you already have, what you can borrow from family or friends, what you can buy locally, what you can order
  • Design your project so that can be built with these parts and tools and capabilities
  • Acquire the necessary tools and materials, and try to create your project
  • When you run into problems, think about how to work around them, either by changing the materials or the design of the project
  • Acquire the new tools or materials, if necessary
  • Try again
  • Repeat as necessary

The important thing to note here is that your project will take multiple iterations! This is not to be avoided because this is where the learning happens! You will not develop this skill if you don't run into problems, figure out a way around the problem, and they try again. Minimizing iterations gives you fewer chances to learn this important problem solving skill.

Success is measured not by how few iterations you make, but by how your skills develop as you identify problems, come up with solutions, modify your design, and make progress.

Discussion

What do you think you can do to increase your successes?

What are factors outside of your control?

What are factors you can control?

What experiences have you had that are similar to this process?

Methodology

You will build a number of machines of increasing complexity using an Intro to IM kit along and common household objects.

In class, I will demonstrate a variety of techniques. My resources are limited as well, and you will see me run into problems. You will then see me try to figure out how to work around those problems, either by using different materials or techniques, or by changing the design.

The first machine will be a simple hand crank automata using cams, which you will then automate with a motor. This will be a warm up exercise.

You are encouraged to use whatever materials you find around you. These can be things you buy or things you find. You can use broken toys, cardboard boxes, bis of wood, etc.

You are encourage to be whimsical and imaginative.

Demo

  • Hand crank automata

  • Elevator

Machine Resources

todays-lecture

Thursday 26 March 2026 Week 8

Plan for today

  • Funding update
  • Machine Art

Machine Art

  • What is it
  • Examples
  • Definition
    • Breakout rooms