Sociable Objects Workshop Summer 2009 NYU, Tisch School of the Arts Interactive Telecommunications Program v1.1 |
Instructor: Rob Faludi rob@faludi.com 212-989-6888 |
Course Description:
Sociable objects are devices that share. They can talk to each other, gain information about their context and react accordingly. Recent advances in wireless mesh networks have created the potential for a massively interconnected world of easy information sharing. Cheap communications, high reliability, unique addressing, small size, standardization, and routing features combine to enable exciting new interactions. Developers of toys, wearables, performance devices, portables, network objects and sensor arrays can take advantage of radio mesh networking to design more interesting, better informed and more complex behaviors for their projects. This course explores devices that connect with and respond to each other. The technical focus will be on ZigBee wireless mesh networks. Interconnections with other platforms and devices will be examined as appropriate. Students will gain an expertise in all functions of the ZigBee system to facilitate smart and novel behaviors in their projects. Through a series of weekly exercises, students will build skills and explore the challenges and delights of mutual connectivity. As a final project, the class will construct dynamic device networks. Prior experience with basic electronics and physical computing is helpful, but not required. Most labs and projects involve group work, so students should be ready to collaborate extensively as they experiment on the cutting edge of device interaction.
Note that this course will be taught as a hands-on workshop, with projects taking place both in and outside of the classroom.
Goals:
Students will learn technical skills in wireless networking, programming and serial communication. They will gain a deeper understanding of how collaboration can enrich information in devices and enhance creativity in people. Assigned projects will explore networking, collaborative efforts and the sharing of data and behaviors between disparate systems.
Class Schedule:
- Intro, overview, basics and background: class introduction, student introductions, overview & syllabus review, about Sociable Objects, about ZigBee, buying an XBee, buying an adaptor, terminal programs, addressing.
Assignments: Imagining Sociable Objects; purchase two XBee ZB Radios (Series 2) and one adaptor - XBee Configuration: assignment presentations, PAN ID assignment, firmware updates, basic configuration, pair exercise, doorbell description
Assignments: pairs exercises, begin doorbell assignments - ZigBee Arduino: exercise review, math for mesh, firmware updates, ZigBee and Arduino, breakout board hookups, doorbell exercises
Assignment: finish doorbell assignments - Input/Output: exercise review, I/O Mode, I/O demo, API mode overview, API basics, I/O asssignment.
Assignment: romantic lighting sensors - Sensor Networks: assignment review, API for I/O mode, API for remote AT commands, types of networks, simple sensor network.
Assignment: Simple Sensor Network - End Devices, Sleep and Actuation: sensor network workshop, collaboration, sleep mode, end devices, direct actuation
Assignment: Sensor / Actuation Proposals - Mesh Networking: sensor shortcuts, data reporting, review project proposals, floor-wide sensor network workshop, organize card assignment
Assignment: Card Assignment 1 - ZigBee Internet Gateway: overview of gateways, basic, Twitter, SMS, voice, email, basic ConnectPort, easy connections to the Internet
Assignment: Sensor/Actuator Network - Advanced ZigBee: multicast, clusters and endpoints, security, profiles. Ranging with RSSI and output strength.
Assignment: Final Project proposals - Lecture Wrap-up: Topics by request, reviewed and covered in more detail. Possibly power management, advanced serial, TCP/IP basics, resources.
Assignment: Final Project
11.Production workshop with technical reviews
12.Final Presentations
Assignments:
Imagining Sociable Objects: Think of a system of things that communicate. Mock it up and present it to the class. Clearly and physically show what it is, how it would work and communicate the experience of using it, interacting with it and living in a world where it was real. Focus on a great idea and a great presentation. Please, no scrolling through a web page. Give us the story.
Doorbell Projects: create a basic doorbell using ZigBee and Arduino, enhance this doorbell with roundtrip feedback so the visitor knows that the buzzer has rung. Next, create a doorbell with a nap mode with a silent alert for regular visitors but an eventual wakeup for insistent visitors. Finally, create an advanced doorbell of your choosing, perhaps one that only responds to a secret code, one with a history feature, one that sends an SMS or Tweets, one that provides a text display, or anything else that builds a better doorbell. Use this assignment as an opportunity to get comfortable with round-trip communications, and to think about enhancing practical interactions.
Simple Sensor Network: Using ZB XBees we will create a mesh network that covers the ITP floor. Everything will be created to be permanent including boards, enclosures, mountings and documentation. We will test for redundancy, stability, extensibility and usability. The end result will be a roust infrastructure that anyone at ITP can understand, use and extend. Each student will take on an area of responsibility to collaborate on making this permanent installation
Card Assignments: one-day projects inspired by a phrase from a deck of inspiration cards. Cards will be chosen at random, with a white elephant process to exchange with classmates. Each project must be completed by the next class,including your documentation, so think small. All projects need a name, public documentation, and have to be demonstrated by the deadline. Scale your ideas to fit the time allotted and you’ll be impressed with what you can accomplish.
Sensor / Actuator Project: Generate an interactive system using the ZB XBee mesh network we created, . One group will create a network of sensors that detect something about the world and use it to generate a data feed. The second group will obtain that data and produce a network of outputs or actuators that respond. The two groups will need to collaborate internally and with each other. Consider choosing work roles. Remember the importance of clear communications protocols in the data handoff. Be careful not to take on more work than can be done in a week, including troubleshooting. Work in stages, getting simple success as early as possible. Help each other as often and much as you can.
Final Project: work in groups to create a system or device of your choosing. Your creation should use multiple nodes to create a sensing network, display network or complex interaction. This is potentially a challenging assignment in a short period of time so consider what you know about collaboration. Keep moving forward.
Documentation:
- Class blog: …?…
Warmups:
Some classes may include a warm-up intended to enhance the collaborative atmosphere.
Grading:
Class participation & attendance 30%
Presentations and assignments 20%
Projects and documentation 30%
Final Project 20%
Office Hours
To Be Announced
Making the Most of It:
For best results, come to class early, participate in discussions, ask lots of questions, offer copious and constructive feedback, stretch yourself and have fun.
SELECTED READINGS
- Economist articles: http://rob.faludi.com/classes/sociableobjects/readings/Economist_Wireless_articles_2007-4-26.pdf
- Weiser, M. The Computer for the 21st Century: http://www.ubiq.com/hypertext/weiser/SciAmDraft3.html
- There Will Come Soft Rains – Bradbury: http://rob.faludi.com/classes/sociableobjects/readings/Bradbury_Soft_Rains_1950.pdf
Math and Communication Protocols:
- Binary: http://www.swansontec.com/sbinary.htm
- Binary in Pink: http://www.mathsisfun.com/binary-digits.html
- Binary Game: http://forums.cisco.com/CertCom/game/binary_game_page.htm
- Hex Headquarters: http://www.intuitor.com/hex/index.html
- Finger Binary: http://en.wikipedia.org/wiki/Finger_binary
- http://www.intuitor.com/counting/
- Levity: http://www.qwantz.com/archive/001038.html
- XBee ZB Manual: http://ftp1.digi.com/support/documentation/90000976_C.pdf
- Demystifying 802.15.4 and ZigBee:
http://www.digi.com/pdf/wp_zigbee.pdf - XBee Antenna Considerations:
http://ftp1.digi.com/support/images/XST-AN019a_XBeeAntennas.pdf - Tom Igoe’s “Making Things Talk”, Chapter 6, pages 192-206: http://rob.faludi.com/classes/sociableobjects/readings/MTT_Chp6_FI_ti04.pdf
- Tom Igoe’s “Making Things Talk”, Chapter 7: http://rob.faludi.com/classes/sociableobjects/readings/MTT_Chp7_F1_ti04.pdf
- The Internet of Things: http://www.faludi.com/classes/networkobjects/readings/Internet_of_Things-SciAmer_2004.pdf
- X-CTU Guide:
http://ftp1.digi.com/support/documentation/90001003_A.pdf - Vehicle Warning System Trialed: http://news.bbc.co.uk/2/hi/technology/6461831.stm
- ‘Smart dust’ to explore planets: http://news.bbc.co.uk/2/low/science/nature/6566317.stm
- Everything, Everywhere: http://rob.faludi.com/classes/sociableobjects/readings/Nature_Everything_Everywhere_2006.pdf
- Cooperative Artifacts: http://rob.faludi.com/classes/sociableobjects/readings/Cooperative_Artefacts_2004.pdf
- “How Management Teams Can Have a Good Fight” from HBR: http://rob.faludi.com/classes/sociableobjects/readings/How_Management_Teams_Can_Have_a_Good_Fight.pdf
- Zigbee: “Wireless Control that Simply Works”: http://rob.faludi.com/classes/sociableobjects/readings/Zigbee_Wireless_That_Works-ZMDAmerica.pdf
- http://en.wikipedia.org/wiki/ZigBee
- http://www.zigbee.org/
- Tinker: A Tool for Designing Data-Centric Sensor Networks, Jeremy Elson, 2006:http://research.microsoft.com/apps/pubs/default.aspx?id=70237
- ConnectPort User’s Guide:
- http://ftp1.digi.com/support/documentation/90000832_a.pdf
- Python Programmer’s Guide (for ConnectPort):
- http://ftp1.digi.com/support/documentation/90000833_b.pdf