Sociable Objects Workshop
NYU, Tisch School of the Arts
Interactive Telecommunications Program
Instructor: Rob Faludi
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.
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.
- 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
- Imagining Sociable Objects Presentations: presentation of assignments with experimental 360º critique exercise
- XBee Configuration: PAN ID assignment, firmware updates, basic configuration, pair exercise
Assignments: pairs exercises
- ZigBee Arduino: exercise review, math for mesh, firmware updates, ZigBee and Arduino, breakout board hookups, doorbell exercises
Assignment: 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/Actuator Proposals
- Mesh Networking: sensor shortcuts, data reporting, review project proposals, floor-wide sensor network workshop, organize observation assignment
Assignment: Observation Assignment
- 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 ideas
- Lecture Wrap-up: Topics by request, reviewed and covered in more detail. Possibly power management, advanced serial, TCP/IP basics, resources.
Assignment: Final Project proposals
- Production workshop with technical reviews
Assignment: Final Project
- Final Presentations
- Final Presentations
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: Working in pairs, 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 mesh networks that cover large areas including the boards, enclosures, mountings and documentation. The end result will be a robust infrastructure that anyone could understand, use and extend. Each student will take on an area of responsibility to collaborate on making this network.
Observation Assignment: A one-week project chosen from a deck of project cards. Cards will be selected at random, with a white elephant process to exchange with classmates. Each project must be completed by the next class, including your documentation. The goal will be to notice something new about the world, and to begin preparing you for your final project ideation and iterations.
Sensor / Actuator Project: Generate an interactive system using the on-floor ZB XBee mesh network. 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.
- links to documentation for each completed assignment must be provided for posting in the student work area
- documentation is due within one week after completing each assignment
Class participation & attendance 30%
Presentations and assignments 20%
Projects and documentation 30%
Final Project 20%
To Be Announced
Can be open during lectures but should be closed when your fellow students are speaking or presenting.
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.
- 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
- 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:
- XBee Antenna Considerations:
- 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: https://www.faludi.com/classes/networkobjects/readings/Internet_of_Things-SciAmer_2004.pdf
- X-CTU Guide:
- 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
- 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:
- Python Programmer’s Guide (for ConnectPort):