Class Info
Tuesdays 9:30am
Room: 408
Instructor Email: rios@nyu.edu
Office Hours Calendar link (If times are unavailable or do not work for your schedule please email ! )
Class Blogs
Add your name and blog URL to this spreadsheet
Weekly Resident Workshops
P-comp:
Mondays 1:30p-3:30p
Fridays 2p-3:30p
@ ITP Shop / White Tables Near Shop
Fabrication:
TBD
ICM:
Thursdays 3:30p-5p @room 410
Mondays 12:30p-2p @room 408
Class Notes
Class 10 – Synchronous Serial
Class 09 – Serial continued + Finals and Show
p5 Template (for general 2 way coms)
Prototyping and Planning
Show Info
p5 Example for Arduino Parsing multiple values (controlling 2 arduino outputs with p5 while also controlling p5 with 3 arduino inputs )
Arduino example below:
#include <Servo.h>
Servo motor;
int brightness = 255;
int angle = 0;
int counter = 0;
void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, OUTPUT);
motor.attach(9);
Serial.setTimeout(10);
}
void loop() {
int pot = analogRead(A0);
int light = analogRead(A1);
int button = digitalRead(2);
if (Serial.available() > 0) {
//int reading = Serial.read();
int reading = Serial.parseInt();
if (counter == 0) {
brightness = reading;
counter++;
Serial.print(pot);
Serial.print(",");
} else if (counter == 1) {
angle = reading;
counter++;
Serial.print(light);
Serial.print(",");
} else if (counter >= 2) {
Serial.println(button);
counter = 0;
}
}
analogWrite(3, brightness);
motor.write(angle);
}
Class 08 – Serial
Slides
p5.Webserial Library
David’s p5 template
int pot = 0;
int light = 0;
int button = 0;
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(2, INPUT);
}
void loop() {
pot = analogRead(A0);
light = analogRead(A1);
button = digitalRead(2);
if ( Serial.available() > 0 ) {
int reading = Serial.read();
Serial.print(pot);
Serial.print(",");
Serial.print(light);
Serial.print(",");
Serial.println(button);
}
}
Class 07 – Midterms
Feedback Guidelines
Feedback Document
Class 06 – Motor
Slides:
Motors / Relays
Enclosures
From Projects:
I2S Sound Board Lab
Sensor Change / State Change Lab
OLED Screen Lab
Hayeon Hwang: Expressive Tactile Controls
Neil Mendoza: Spambots
Neil Mendoza: Electric Knife Orchestra
Mozzi Sound Library
Knob Feel
Class 05 – Midterm Check in
Extras:
Soft Button Tutorial
Sensor
Motors
I2S Lab
Class 04 – Analog
Questions Week 04
soldering
Soldering Sparkfun, Adafruit
Wirewrapping
Analog I/O Slides
Sensor
Tone , Servo, 5V?
Motors (maybe next week)
Class o3 – Digital I/O, Analog Input
Questions Doc
Slides? N/A
State Change, counters, Timers?
Soldering?
Code from Class
int button;
int pbutton;
int led1 = 3;
int led2 = 4;
int led3 = 5;
int counter = 0;
void setup() {
Serial.begin(300);
pinMode(2, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pbutton = digitalRead(2);
}
void loop() {
button = digitalRead(2);
if (pbutton != button) {
if (button == 0) {
counter++; //not pressed
} else if (button == 1) {
// pressed but do nothing for now
}
Serial.print("previous button: ");
Serial.println(pbutton);
pbutton = button;
}
if (counter == 0) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
} else if (counter == 1) {
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
} else if (counter == 2) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
} else if (counter == 3) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
if (counter > 3) {
counter = 0;
}
}
Class 02 – Circuits
- Questions about last week
- Discussion interactions
- Circuit Slides
- How to read a schematic
- Resistor Calculator
- Tools, wires, arduino intro
Class 01 – Intro
- Randomizer
- Slides
- Agreements & Goals Doc
- Fantasy Device Ideas
- Device Randomizer
- Add your name and blog URL to this spreadsheet
- More Projects:
- https://www.youtube.com/watch?v=E2evC2xTNWg
- https://mimionuoha.com/classification01
- https://aliciaeggert.com/pages/magic.html
- https://www.kahoabe.net/portfolio/hit-me/
- https://vimeo.com/62378610
- http://aquiet.life/objects
- http://amorphicrobotworks.org/border-crossers
- https://csoooong.com/RElectronics
Tips for using this site:
Tips adopted and amended from Jeff Feddersen:
With the ITP site, we’ve tried to do two things:
- Provide a week-by-week syllabus for the semester that takes you through the physical computing material in a logical progression. Each week has clear tasks, assignments for the following week, and links to labs, write-ups, and videos that support or explain the current material. Follow along here and you’ll be fine. A more concise table view can also be found here
- Provide an organized set of materials covering the core physical computing topics, to serve as a first resource for any questions you may have as you study the subject. These live under the Topics, Videos, Resources, and Labs tabs. These materials are also linked to from the syllabus, but here they’re organized by subject matter, whereas the week-by-week syllabus is chronological. Many of these resources are also not assigned or covered in labs so there are plenty of extras that are intended to help as you need it, or provide a starting point for something you may want to use later.
Doing the labs:
- Please make sure to budget enough time to read through each lab before plugging things in. Read everything first without trying to follow along. Then re-read and follow the appropriate steps with your kit and code in front of you.
- Class is flipped so the idea is to do the labs, write down any questions and bring those questions to class. We will discuss an review in class before moving to new content.
- If you are having a lot of success with the labs and have no questions, try to figure out next steps eg”How can the lab be applied creatively or taken further?”. Apply what you learned to a mini project or question. Questions can be creative or technical.
- Bring your kits to class. We will often do things in class and use parts from the shop
- There are parts in the labs that are not in the kits! These parts are in the Yellow bins in the shop.
- I recommend doing your labs at ITP, we have a lot of resources and things that are hard to find in the outside world.
- Make sure you know what you need for the labs if you are not doing homework at ITP
- Talk to Adrian at the front desk to get a red bin. These are used to store things on the floor Adrian can help you get a red bin and a locker if you want one. You can also email him am13084@nyu.edu
Arduino References
Windows Driver Installation for Arduino
Resources:
Ordering parts and Suppliers
How to read a schematic
Resistor Calculator