420 likes | 493 Views
Toolkits for Physical Objects (TUIs). Jack Li Advanced User Interface Software November 30 Fall 2004. Outline. Motivation for TUIs Input Technologies TUI Toolkits. MOTIVATION FOR TUIS. Current Limitations of UIs. Desktops and laptops suck in our entire attention
E N D
Toolkits for Physical Objects (TUIs) Jack Li Advanced User Interface Software November 30 Fall 2004
Outline • Motivation for TUIs • Input Technologies • TUI Toolkits
MOTIVATION FOR TUIS Current Limitations of UIs • Desktops and laptops suck in our entire attention • As a result we live in two worlds: the real physical world and the virtual cyber world • Constantly “wired” in order to be in both worlds • Loss of rich interactions found in everyday things (particularly haptic)
MOTIVATION FOR TUIS Motivation • Driven by ubiquitous computing • Both people and technology moving away from the desktop into the environment • Input: different ways of interacting • Output: different ways of displaying
MOTIVATION FOR TUIS Tangible User Interfaces • TUIs augment the physical world by integrating digital information with everyday physical objects • Goal: to bridge the gap between bits and atoms • 1. Interactive surfaces • 2. Coupling information with physical objects • 3. Ambient media for background awareness
Outline • Motivation for TUIs • Input Technologies • TUI Toolkits
INPUT TECHNOLOGIES Physical Objects as Input • Pretty much anything … walls, papers, utensils, clothes hangers! • Inspiration • sci-fi novels, own imagination • everyday life, current practices
INPUT TECHNOLOGIES Devices • Cameras • Electronic tags (RFID technology) • Sensors • Light • Motion • Heat • Force • Motors • Orbs
INPUT TECHNOLOGIES Framework for the GUI (a)model-view-controller
INPUT TECHNOLOGIES Framework for the TUI (b)MCRpd: model-control-representation(physical and digital)
Outline • Motivation for TUIs • Input Technologies • TUI Toolkits • Phidgets (2001) • Calder (2004) • Papier-Mâché (2004)
Toolkit Goals • Same as when GUIs were built • Make easy for non-specialized experts to create (should not need a vision or hardware guru on the team) • Hide dirty implementation details • Abstract proper functionality with well-defined API
PHIDGETS Overview • First toolkit for physical objects • Reusable physical devices with proper abstraction for creating a wide variety of applications • An API that had the right amount of abstraction
PHIDGETS GUI Differences • Connection manager • Way of detecting when devices go on/off • Identification • Every physical object should have a virtual counterpart • Simulation • A way to test code even if phidget not present
PHIDGETS Architecture
PHIDGETS The Physical Device • Primitive device components • Sensors • Motors • Switches • Circuit board • CY7C63000 USB micro-controller • Communications layer • USB communication standard
PHIDGETS Wire Protocol • Low-level software in Windows and microcontroller for communication that’s hidden from end programmers • Commands from phidgets • Unique Id numbers • Device type (servo, powerbar) • Specific events (tag for RFID reader) • Commands from Windows • Set device state (output like servo)
PHIDGETS Computer Software • PhidgetManager • Connection manager • Event onAttach() • Event onDetach() • Int count • Enum item • Phidget-specific devices • All have: • String deviceType • Boolean isAttached • Long serialNumber • RFID • onTag() • Servo • onPositionChanged(), motorPosition(index)
PHIDGETS Simple Application • Phidget Manager • Phidget Servo
Outline • Motivation for TUIs • Input Technologies • TUI Toolkits • Phidgets (2001) • Calder (2004) • Papier-Mâché (2004)
CALDER Main goals • Primarily geared towards interaction/product designers • Support for more refined products • Support on the hardware side
CALDER Supported Devices Small size is big win!
CALDER Fluid prototyping Objects easily embedded!
CALDER Communication • Wired • PIC16C745 C with USB interface engine • Same as Phidgets (and iStuff) • Wireless • Tradeoff between size and power (perhaps Moore’s law will remedy) • Small batteries, antenna, and pulse-width modulation
CALDER Software • Surrogates (GUI widgets) to manipulate physical object output
Outline • Motivation for TUIs • Input Technologies • TUI Toolkits • Phidgets (2001) • Calder (2004) • Papier-Mâché (2004)
PAPIER-MACHE Overview • Emphasis on software side side • Input model that provides common programming abstractions • Focus on objects being lightweight
PAPIER-MACHE Software Abstractions • Phob—encapsulates information related to this physical object • All—source producer, time • RFIDPhob—tag • VisionPhob—mean color, bounding box, rotations • PhobListener—listens for Phobs produced • phobAdded(), phobUpdated(), phobRemoved() • PhobProducer—actual devices that generates events • PhobManager—maintains PhobProducers
PAPIER-MACHE A Common Event Model • PhobListener is the interface among all devices • Methods are the same • phobAdded(), phobUpdated(), phobRemoved() • Vision • phobAdded() when new object detected, phobUpdated() when old object changed (size, color), phobRemoved() when old object disappears • RFID (different from what the paper says) • phobAdded() when tag detected, no phobUpdated(), phobRemoved() when tag disappears • Facilitates easier retargetting and substitutions (allows for more exploration and faster, prototyping)
PAPIER-MACHE Marble Answering Example • 1. Get the manager that keeps track of all input devices (PhobProducers) RFIDManager manager = RFIDManager.getManager(); • 2. Set up a map associating all objects with an audio clip AssociationFactory factory = new AudioClipFactory(); AssociationTreeTable assocMap = new AssociationTreeTable(factory); • 3. Attach this map so new objects are assigned new clips and old ones get played manager.addPhobListenerForAllProducers(assocMap);
PAPIER-MACHE A Behavior: Associations • A common behavior we noticed • New objects get stored/assigned, old objects get retrieved a database of sorts • An extension of PhobListener
PAPIER-MACHE A Behavior: Associations • AssociationTreeTable • addClassifierFactoryPair(Classifier, Factory) • ObjectClassifier • isMemberOfClass(Phob phobToCompare) • AssociationFactory • createAssociationEltForPhob(Phob phob)
PAPIER-MACHE Monitoring Window
PAPIER-MACHE Device state—connection mgr
PAPIER-MACHE Camera Feedback
PAPIER-MACHE Association Map
PAPIER-MACHE Extras
Major Toolkit differences • Phidgets • Complete, balanced, varied assortment of physical objects easy to program with • Calder • Small size allows for more fluid prototyping at the PHYSICAL level • Papier-Mâché • Unified event model allows easier development and retargetting at the SOFTWARE level
Conclusion • TUIs seek to augment the physical world with digital information • Toolkit support allows non-experts to develop TUI application, like GUI toolkits • Successful toolkits must manage physical connections, gather/alter relevant physical state information, and provide good feedback for these added complexities
Future work • Input adaptation • M to N mapping of input devices • Input models • What other kinds of behaviors can be abstracted • Will be more clear with the development of more applications
References • Hiroshi Ishii , Brygg Ullmer, Tangible bits: towards seamless interfaces between people, bits and atoms, Proceedings of the SIGCHI conference on Human factors in computing systems, p.234-241, March 22-27, 1997, Atlanta, Georgia, United States • Ullmer, B. and H. Ishii, Emerging Frameworks for Tangible User Interfaces, in Human-Computer Interaction in the New Millennium, Addison-Wesley. pp. 579 -- 601, 2001. • Saul Greenberg, Chester Fitchett. "Phidgets: easy development of physical interfaces through physical widgets," Proceedings of the 14th annual ACM symposium on User interface software and technology, November 11-14, 2001, Orlando, Florida • Scott R. Klemmer, Jack Li, James Lin, James A. Landay. "Papier-Mache: toolkit support for tangible input," Proceedings of the 2004 conference on Human factors in computing systems, p.399-406, April 24-29, 2004, Vienna, Austria • Lee, J.C.; Avrahami, D.; Hudson, S.E.; Forlizzi, J.; Dietz, P.H.; Leigh, D.L., "The Calder Toolkit: Wired and Wireless Components for Rapidly Prototyping Interactive Devices", Designing Interactive Systems (DIS), ISBN: 1-58113-787-7, pp. 167-175, August 2004