Schedule

image of progression of media from cunniform to manuscripts to moveable type to digtial to non linear to future

Weekly Topics

  1. Who  — Looking Back From the Machine
  2. Software  — Programming the Arduino, Digital Input
  3. Change —  Variables,  Analog Input
  4. Embodiment  — Analog Output, Motors
  5. Symbols — P5.js
  6. Modularity — Functions, DOM, Callbacks
  7. Telecommunication  — Serial Communication p5.js an Arduino
  8. Scale  — For Loops, Arrays, Objects  (Final Project Research)
  9. Sound and Light  — Computer Vision, p5.js Sound Library
  10. Data  — Text Parsing, APIs (Final Project Research)
  11. Automation — Machine Learning
  12. Pitch —  Final Project Proposal
  13. Feedback  — User Testing
  14. Presentation  — Final Projects

Typical Week

Show/Discussion (First Weekly Meeting)

  • Discussion of Reading
    • Show Student Projects

Study Tech (Between Classes: Midweek)

  • Assignment: Study online technical materials
    • Assignment: Ask questions online
    • Assignment: Do reading

In Class Exercise (Second Weekly Meeting)

  • Review Online Skills
    • In Class: Get “Hello World” working in class.

Weekly Assignment and Blog (End Of Week Between Classes)

  • Assignment: Continue reading.
    • Assignment: Do a more interesting project.
    • Assignment: Write about the reading.

1:  Who

Show/Discussion: 9/4

Lab: 9/6

  • Topic: Review Electric Circuits Skills
    • Tech: Breadboard, Arduino Pins, Power, Resistor, LED, Switch
    • Get a circuit working in class
    • Assignment:
      • Create a circuit with a switch (not for your hands) and make a post in this blog about it.  Maybe try to give voice to some underrepresented part of your body.  Maybe “digitize” an object that ordinarily would not be recorded electronically.
      • Solder Something.  Try to incorporate that soldered component in this week’s assignment
      • Please use the Rest of You category for your post.

2:  Software

Show/Discussion:  9/11

Lab:  9/13

  • Tech:  Arduino application, setup, loop, if statement
    • In Class: Get a switch to change the way an LED blinks
    • SCHEMATIC FROM CLASS
    • Assignment:
      • Conditional Switch:  Make your Arduino earn its keep by having it keep time, count,  perform logic or enforce a sequence or rule . Try to do something fun that involves at least one switch as input and one LED as output.   Maybe make your switch do more than one thing.   Add software to your switch (or make a new one).  Make use of the computer’s ability to know about time (loop, delay, millis).   Maybe use timing and/or color and/or multiplicity to communicate something to the user or the viewer.  Please post to this blog using categoryMaster of Bits and Atoms

3:  Change

Show/Discussion: 9/18

Lab: 9/20

  • Tech: Variables, Variable Resistors, PWM, soldering
    • In-Class: See Analog Readings in Serial Monitor
    • Schematics:
    • Assignment:   
      • Systems and Expression.  Follow some silly, ridiculous notion in demonstrating your mastery of things like digital and analog I/O.  Use your knowledge to code expressivity.
      • Post on the blog using the category “System

4:  Embodiment

Show/Discussion: 9/25

Lab: 9/27

5:  Symbols

Show/Discussion:   10/2

Lab:   10/4

6: Modularity

NOTE NO CLASS 10/9  NYU Mon Classes Run on thisTues

Show/Discussion:   10/11  (THURSDAY)

Lab:  10/12 (SPECIAL FRIDAY 3:30 MAKE UP SESSION )

  • Tech: Anatomy of a Function, Calling Functions, Web UI Elements, Setting Call Backs
    • In Class: Create a button with a callback function.
    • Assignment:
      • Add some DOM elements and have them react to user input. Please use category “Calling the Future

7:  Tele

Show/Discussion:  10/16  

Lab:  10/18:   

Tech:  (only works in Chrome Browser)

  1. Download And Run SerialControl Program which relays messages back and forth from USB port to P5.  Might need to approve in security system prefs.
  2. Simple Read/Write for p5 corresponds with arduino code below.  Duplicating this in editor saves importing serialport.js
  3. Arduino code:
#include <Servo.h>      // include the servo library

int incomingByte = 0;
Servo servoMotor;       // creates an instance of the servo object to control a servo

void setup() {
  Serial.begin(9600);       // initialize serial communications
  servoMotor.attach(2);  // attaches the servo on pin 2 to the servo object
}

void loop()
{
  //OUTPUT FROM ARDUINO TO P5
  int analogValue = analogRead(A0); // read analog input
  Serial.println(analogValue); //send it to p5    
  // println corresponds with readline 
  // or readstringUntil(‘\r\n’) in p5 
  
  //INPUT FROM P5 TO ARDUINO (less commmon)
  incomingByte = Serial.read();
  if (incomingByte != -1){ //-1 Means nothing came from p5
    int servoAngle = map(incomingByte, 0, 255, 0, 179);
    // move the servo using the angle from the sensor:
    servoMotor.write(servoAngle);
  }
}
    • In Class: Get one byte going between your Arduino and P5
    • Assignment: 
      •  Telecommunications:  Use Serial Communication: Make a physical controller for a p5 sketch or use a p5 Sketch to control an Arduino output.  Please use “Stupid Pet Trick” category when posting.

8: Scale

Show/Discussion:   10/23

Lab:  10/25

  • Tech: For Loops, Arrays, Objects
    • In Class: Create a particle system
    • Code from Class:
    • Assignment:
      • Make a project with many thing that have their separtate lives.  Please use category “Many

9:  Sound and Light

Show/Discussion:   10/30

  • Show: Many
    • Discuss: Global Village
    • Assignment:
      • Sketch/Write (Due Next Week)
          • Reading:  Find your own references of people who have done similar projects.   Give a list of other artists, makers, theorist working in the same space as you.  Use the category “Prior Art
      •  Tech Materials for Next Meeting
        • Sound and Light
        • Problem with current version of p5 with load pixels, use previous version of libraries in your html like below:
        • <script src=”https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.min.js”></script>
          <script src=”https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.dom.min.js”></script>
          <script src=”https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.sound.min.js”></script>
      • Ask questions on this blog

Lab: 11/1 

  • Tech:  Pixel Scanning, p5.js sound library
    • In Class: Track A Color, Play a Sound
    • Demo
    • Use Sound or Video as an input or output.  Please use Category “Sound and Light”

10: Data

Show/Discussion:   11/6

Lab:  11/8

11:  Automation

Show/Discussion:   11/13

Lab:   11/15 

  • Tech: ML5 libray
    • In Class: Train your program
    • Assignment:
      • Create a project uses the ML5 library.   Please use the “Automatic If Statement” categories to post. Due After Thanksgiving

12:  Pitch

Show/Discussion:   11/20

  • Present Final Project Proposal  Pitch
    • Find technologies that might help your final project.  Collect links for tutorials and hello world code. Also include a preliminary bill of materials (BOM), listing necessary items and their cost. Use Category Tech Research

Lab: 11/2   NOTE NO CLASS THANKSGIVING

 


Also see Introduction to Physical Computing and ICM syllabi

Leave a Reply