Final Project

PROMPT

Create a physical and interactive object or experience.

SKILLS

This project is a culmination of all of the skillbuilding you’ve done this semester. As such, we expect you to incorporate as much of the things you’ve learned as is possible/feasible/desirable for your project. That being said, don’t shoehorn things in that don’t fit, just to check off boxes.

DATES

Tuesday, April 18th — Final Project Proposals Due
Thursday, April 20th — CMU Holiday, No Class
Thursday, May 4th — Final Project Critique
Tuesday, May 9th — Final Project Documentation Review (In Class Viewing)

DETAILS

Requirements:

  • At least one physical I/O component
    • Sensor or Actuator
  • Computation
    • This project requires some analysis of input data: filtering, deciphering, projecting, predicting, etc.
  • Physical form
    • The physical characteristics of your project must be considered and intentional.
  • Documentation
    • High fidelity video explaining and demonstrating the project
      • Must be shot on a DSLR or better
      • Intentional lighting (outside, near window, in a studio, in a gallery, etc)
      • Tripod. Stability. No shaky cams.
    • At least one high resolution photograph of your project.
    • Brief written description of your project, explaining the purpose and components.

Project 03 — Augmenting Virtual Worlds

PROMPT

Create a virtual world that affects and is affected by the physical one.

DATES

3/21: Kickoff & Three.js Workshop
3/23: Three.js VR Workshop
3/28: Socket.io & Johnny-Five Workshop
3/30: Work Day
4/4: Crit

DETAILS

This project has three main components:
* Create a custom Google Cardboard that fits your personal phone, and potentially incorporates sensors, actuators, an Arduino, and/or a Raspberry Pi.
* Create a Node.js server capable of reading sensors/writing to actuators on an Arduino/Raspberry Pi.
* Create a Three.js Virtual Reality world capable of conversing with the server.

CODE

Github Repo

Node.js Documentation
Express Documentation
Pug Documentation
Socket.io Documentation
Johnny Five Documentation

Project 02 — IoT

PROMPT

Turn an ordinary device into something connected to the Internet of Things.

DETAILS

You will augment a physical device with a Raspberry Pi to connect it to the internet, and allow it to perform a function it couldn’t perform before. You will work on your own to complete the project. As with Project 1, your main focus should be on ideation, but you should also begin to think about how well crafted your project is.

Feel free to use one of the below possibilities, or create your own.

This project hones some of the skills you learned in Project 1 (basic electronics and rapid prototyping), and also introduces some new ideas: embedded computing and networking.

POSSIBILITIES

  • A physical Alarm Clock that syncs with your calendar
  • An Umbrella that lights up when it is going to rain
  • Headphones that mute themselves when someone is trying to get your attention
  • A Water Bowl for a pet that alerts your phone when it is empty
  • A power strip that doesn’t turn on until your To-Do list is cleared

SKILLS

  • IFTTT (Maker Service)
  • API Integration
  • Sending an email

PARTS

  • Raspberry Pi
  • Any additional parts you may have leftover from Project 01

Project 01 — Drawbots

PROMPT

Make a wheeled robot that completes a challenge on a whiteboard table.

CHALLENGES

  • Solve a Maze
    • BONUS: draw the maze first
  • Draw an algorithmic pattern [A + J]
    • BONUS: make a multi-color marker changer
  • Keep the table clean of marks and debris
    • BONUS: do it with CV and an external camera
  • Trace objects placed on the table [E + O]
    • BONUS: color them in when the object is removed
  • Battle Sumo Bots [Y + C]
    • BONUS: make them controllable by a phone/remote control
  • Draw a Clock
    • BONUS: make it a digital clock

DETAILS

You will design and build your own robots by utilizing distributed parts, materials in the classroom, and the IDeATe facilities. You will form teams of two to accomplish one of the above challenges. Some are more difficult than others, so choose carefully. For an extra challenge, try completing the BONUS for your challenge. You only have a couple of weeks, and a lot to learn, so the focus of your time should be on ideation, not perfection.   This project starts to build your skills in rapid prototyping, basic electronics, kinematics, and basic microcontroller programming.

SKILLS

  • How to program an Arduino
  • Basic Electronics
  • Motors

PARTS

DELIVERABLES

  • A robot (or robots) that complete the Challenge
  • Documentation
    • A well-documented Git repo of all your code on GitHub
    • Photos of your process work (take these throughout)
    • Photos of your robots both stationary and in action
    • A 30-second video of your robot completing the challenge

Welcome to Physical Computing Studio!

Welcome to the first day of PhysComp!

First things first, fill out this form for me, so I can gain a better understanding of everyone’s backgrounds, skills and desires.

Next, we’ll go over the Syllabus.

Then, we’ll go around and introduce ourselves (it’s a very small class, after all).

Finally, we’ll do a mini-project about getting our Arduinos up and running:

  • Find a sensor
  • Connect the sensor
  • Graph the output (if you have experience with Processing, do it in Max; if you have experience in Max, do it in Processing; if you have experience in both, do it in something else)