The most current syllabus and assignment list for this class is on my teaching site. Students should refer to that during the course of the semester to be sure they have the latest information.
The most current syllabus and assignment list for this class is on my teaching site. Students should refer to that during the course of the semester to be sure they have the latest information.
There are three short production project assignments and one final project in this class. You'll be expected to do all of them. For the first one you'll work alone. For the second, the whole class will work on the same project, but each of you may work alone or in groups on your part of it. For the third, you'll work in pairs. For the final, you may work alone or in groups. Larger groups are fine, as long as everyone participates equally.
If you have a project in mind for the final that overlaps with another class, talk to me about it. There are many good applications of networking and physical interaction design that overlap other classes, and I'm open to consideration.
This project is a quick one for me to get to know what your physical computing skills are. Pick at least one item from each of these three lists, and combine them into a responsive object. Whatever you build should be no larger than a 40-centimeter cube. Your object has to respond to a person's action. It should communicate serially with a screen-based display, and provide the user a way to interact with the display. The interaction must be repeatable, and clear to the person in question. It doesn't have to be meaningful, but it does have to be engaging in some way.
Work alone on this. You have one week to complete it. Don't over-think it.
|
Actions
|
Things
|
Responses
|
For this project, the whole class will play a giant game of networked Pong together. You'll be given the address of a server on which the Pong game will run, and the details of the protocol for each Pong paddle client. Your assignment is to make a physical input device that logs into the server and plays the game.
Your work will be evaluated based on the following criteria:
You may work alone or in groups for this assignment. For the presentation, you will not present sequentially as is usual for class presentations. Instead, every client project will be expected to log in to the server simultaneously with at least three other clients and play competitively in a game of pong. A pong server will be set up the week the assignment is given, and will be accessible for the entire week over the network.
Greetings agent double-zero-X. You are about to become a vital link in a complex chain of secret information protecting the world against zombie infiltration. Your mission is as follows:
The end result of this communique will be a complete message that the last agent in the chain can decode and read. Your handler (aka “the instructor”) will provide you with an agent number, two communications technologies and your part of the secret message. Locate the agent with the number prior to yours. Work with him or her to create a reliable communications protocol so that you can receive a message of arbitrary length and then add your part to it. Work with the next agent to reliably send the assembled message to them. Remember, everyone is essential to getting the full message through. One slip-up and the zombies win.
You will need to coordinate with two other people for this assignment. Trading network technologies is permitted, in fact we might use a White Elephant procedure to assign them. Helpful code and plentiful encouragement will be provided.
The final project is a practical application of networking and physical interaction design. It can use any of the technologies we discuss, or other ones, as needed. The main aim of this project is to present a workable prototype of a networked application.
Design and build a networked system that facilitates communication between humans (or other animals) over a network through means other than the standard keyboard-mouse-screen interaction model. Design and build both the physical input and output devices. What happens across the network should be clear to all parties using the system, so that the whole experience serves their needs or interests.
Your system should involve two-way communication between at least two physical devices over one or more networks. There may be one or multiple servers involved as well, as you need.
You may expand on either of the earlier projects for your final, or you may begin a new project. Your project may overlap with work from another class, as long as you discuss it with me in advance. You can work alone or in groups. Given the scope of the assignment, I recommend working in groups, as it's very difficult for one person to finish all of this alone in the time given.
You should start by asking what the intended participants are to do, and how and where they are to do it, and what their goals are in doing it. Consider all the factors affecting their participation: physical, social, economic, environmental, and other constraints. Think about the actions they'll take and the objects and surfaces that they manipulate. Consider also the connectivity between the elements of your system, and plan the network transactions thoroughly.
There are a number of milestones in your final project which you'll be expected to document and present in class. They are as follows:
System Diagram and interaction scheme - this is a general layout of the components of your system, including the devices and protocols involved. In the early stages it will be fairly general, but at the end, it should specify every major component and the protocols linking the components. The interaction scheme should be either a state diagram describing what happens, or a narrative description of the interaction, or both. Do this early on, and use it as a roadmap for the prohect.
Interface Mock-up - this is a physical mockup of what the devices will look and feel like. You can use fome-core, cardboard, or other simple materials, and the mockups don't have to be functional, but they should give us a clear idea of the physical relationship between our bodies and the system. For large-scale systems, use scale models.
Technical Research report - This is a "how-to" report, particularly on those components of your system that have not been covered in class, or in other classes. For example if you use a sensor or actuator that no one in class has used, or develop a technique that is new to ITP but beneficial to others, and document it. This probably won't be presented in class, but it should be thoroughly documented online.
Final Summary - what worked, what didn't, what surprised you, what you'd do differently in the next iteration.
Note: depending on how many final project groups there are, it's possible that every group may not present every milestone. You are expected to reach and document the milestones, regardless.
There are two assigned books for this course:
You should also browse some of the projects that have come before in this area. A few projects you should know about:
Other recommended books and articles can be found on the bibliography page.
Showing up on time, engaging in the class discussion, and offering advice and critique on other projects in the class are a major part of your grade. Please be present and prompt. Late attendance affects your grade adversely. If you're going to be late or absent, please email me in advance. If you have an emergency, please let me know as soon as possible after the fact.
Please turn in assignments on time as well. Assignments turned in late will affect your grade adversely.
You will be expected to keep an online journal of your work in this class. Think of it as a letter to the next group to take this class: the tricks you found that work, the pitfalls you hit, ways around them, sources for materials, reference material, etc.
Your journal can be no-frills HTML, no need for complex sites. Blogs and wikis are fine. Please don't use flash, shockwave, or other formats that are not text-searchable. Ideally, this will give you a head start on documenting your projects for future portfolio reference, and those who come after you a place to look for reference material.
A journal entry is part of the assignment for each project you do, at the least. Feel free to do more entries as you see fit.
Work on this as you go, don't put it off until the end.
You should document your projects thoroughly. Plan in advance, and perhaps as a group, to have what you need to document at least your midterms and finals. Photos, video, drawings, schematics, and notes are all valuable forms of documentation.
Laptop use is fine if you are using your laptop to present in class, or if we're in the middle of an exercise that makes use of it. Otherwise, however, please keep your laptop closed. The quality of the class depends in large part on the quality of your attention and active participation. In particular, give your fellow students the respect you deserve in return, and close your laptop and give them your full attention when they are presenting work.
Please put them on vibrate before you come to class unless they are part of your project.
All people using the shop must attend a safety seminar once a year and take the safety quiz in order to use the shop. This is required by law. Sign up on the shop site, as each seminar is limited to 10 people at a time.
All shop users are expected to work two cleanup days per semester, and to help clean the shop when they use it. Details on shop policies can be found on the shop site. Please read them and ask us any questions you have.
The most current parts list for this class is on my teaching site. Students should refer to that during the course of the semester to be sure they have the latest information.
For the first half of the class, we’ll be working with an embedded net co-processor from Lantronix called the XPort Direct. We’ll also look at the regular XPort, WiPort and MatchPort from the same company. There are a number of options for hooking these up, many of which are covered in Making Things Talk. If you are comfortable working independently you’ll have the option to work with one of the new WIZnet modules from the company of the same name. There is basic support for these in Arduino, but they are not covered at all in the book.
Lantronix Part Numbers: ) XD1001000-01 (Xport Direct) or XP1001001-03R (Xport) or MP100200SG-01 (Matchport)

I think the simplest option for Arduino users is to get the Adafruit Ethernet (XPort) shield for Arduino kit and an Xport Direct module. Adafruit's located in NYC, but you'll still need to mail-order it.

For the Xport, you'll need a breakout board to mount it to a breadboard. Sparkfun carries one, part number BOB-00716.
You'll also need a microcontroller, and the basic parts for physical computing projects, depending on what you decide to build. I'll be giving examples using the Arduino module.
In addition, we’ll look at various wireless modules including the XBee 802.15.4 and perhaps the XBee ZB and Telit GM862 embedded GSM box. Although they are not really network modules we may demo an RFID module and/or GPS module as well. You’ll also be responsible for researching and learning to use any part you need for your own projects that we do not cover in class.
You may use other net processors, microcontrollers and wireless devices if you prefer, as long as you can meet the requirements of the assignments. All of my examples will be shown on the XPort Direct, with some shown on the WIZnet module as time allows. Check with me in advance if you plan to use another platform.