• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Phidgets 1
 

Phidgets 1

on

  • 1,242 views

Presentation took over TSI subject at UPF (2009)

Presentation took over TSI subject at UPF (2009)

Statistics

Views

Total Views
1,242
Views on SlideShare
1,241
Embed Views
1

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Lo primero es situarnos en el contexto, para ello será necesaria una breve introducción a interficies para posteriormente entender mejor el papel que juegan los phidgets en la creación de las mismas
  • Nos encontramos en una fase de evolución en la manera de comunicarnos con los ordenadores, la HCI (human computer interaction) se está desarrollando a favor de nuevos paradigmas
  • Así como para las GUI’s estamos ya acostumbrados al paradigma de interacción WIMP (window, icon, menu, pointer device) introducido por Xerox Parc en 1973, y popularizado posteriormente por Mac y Windows
  • Para las TUI sin embargo todavía existen diversos pareceres y líneas de investigación, sin darnos una definición absoluta y concreta de cómo tienen que ser esas interfaces. Simplemente que de algún modo se enlazan elementos físicos, reales, que se pueden tocar (por lo tanto tangibles) con su funcionalidad o elementos virtuales. Ishii hace referencia a los Tangible Bits.
  • Pero nosotros nos vamos a centrar en un aspecto más concreto de esa evolución en el paso de GUI a TUI, y es más bien en como éstas se crean, y como ese modelo de construcción de GUI puede ser aplicado también para interfaces físicas, o como también nosotros denominaremos “extended GUI”
  • Para ello lo primero es entender que es un widget.
  • Pero antes de definir que es un widget, un pequeño break, daros unos segundos para que penseis que és un widget. Alguien sabe lo que es un Widget? Sí? Seguro? Porque hay una pequeña diferencia en lo que actualmente se ha popularizado como widget y no es del todo correcto
  • Supongo que esto es lo que os ha venido a la cabeza…
  • Estos llamados Widgets en realidad son “desktop widgets”
  • Según podemos consultar en la wikipedia un widget (o control) son los bloques sobre los cuales podemos crear interfaces GUI para interactuar con toda una serie de datos.
  • Es decir, los button, radio button, sliders, checkboxs, listas, scrollbars, menubar, menuitem, iconos, etc … Por lo tanto si podemos definir toda una serie de elementos atomicos para crear GUI’s podemos entonces trasladar esa idea a la hora de crear interfaces físicas y crear a su vez elementos que nos ayuden en el diseño de interfaces fisicas
  • Y aquí es donde entramos en qué son los Phidgets…
  • Un phidget es una representacion física y/o la implementación de un widget GUI, es decir bloques componentes electronicos
  • Los objetivos de los phidgets son los mismos que los de los widgets a la hora de crear interfaces, faciles de usar, sin mostrar su implementación y que tengan un API bien definida para poder trabajar con ellos
  • Sin embargo hay unas notables diferencias, entre ellas un Connection manager que se encargará de detectar los phidgets “enganchados” o presentes, un ID unico para cada objeto y un simulador para poder chequear el codigo y debugarlo sin necesidad de usarlo, es decir poder hacer uso del mismo de manera virtual
  • Definidos estos conceptos y las bases de lo que son los phidgets (definicion acuñada por primera vez en 2001) existen toda una variedad de toolkits que implementan estas caracteristicas. Quizas el más famoso sea el originalmente diseñado por la propia universidad de Calgary, Phidgets Inc
  • Phidgets inc -> http://www.phidgets.com
  • Pero existen otros como Arduino (con todas sus variantes), wiring, makingthings, tinker.it. Todos en común tiene un Connection Manager al que enganchar los sensores y el Connection Manager se conecta al PC generalmente mediante USB (Hay variantes por ejemplo de Arduino que tienen bluetooth). Lo que inicialmente era una extensión de widgets a nivel físico ha evolucionado en toda una serie de componentes electrónicos de input (sensores) y output(leds, displays LCD, servo motores…) que en ocasiones no tienen una conexión directa a un widget (ej: RFID)
  • Pasemos ahora a mostrar un par de ejemplos realizables con phidgets
  • Si los tangibles son elementos físicos para manipular información digital podemos intentar agrupar operaciones que son comunes en diferentes aplicaciones utilizando los mismos tangibles. Esa es la idea detrás de “Tangible Menus & Interaction Trays” , crear un sistema de menús tangible y reusable para diferentes aplicaciones y estar creado a partir de bloques de phidgets.
  • El funcionamiento es sencillo y consta de 2 partes. Los tangible menús son una serie de cartas identificables de alguna manera, ya sea por RFID o utilizando sistemas opticos de “barcode”. Por otra parte están los “tangible Trays” que son una paleta de controles capaces de leer identificar el menú que se les asocia. Además cada tray puede disponer de diferentes controles asociados a widgets de una GUI. En el proyecto se diferencian 3 tipos de tray: 1) menu (solo tiene botones/pulsantes), 2) parameter ( 3 knobs), 3) applications (mezcla ambos)
  • No por ello todas las interfaces que podamos imaginar deben estar espacialmente en el mismo lugar, podemos imaginar “distributed physical interfaces” donde los inputs de datos están distribuidos a lo largo de diferentes geoposiciones. Para ello no solo es necesaria un API fácil para trabajar con los Phidgets, sino que además será necesario resolver los problemas inherentes a un sistema distribuido, como descubrir los phidgets disponibles en red, controlar errores de conexión, latencia, etc
  • La arquitectura de Shared Phidgets rapidamente es la siguiente: (a) Usuarios que interactuan con los phidgets (b) estos conectados a su conection manager connectan directamente a un servidro central (d) o bien utilizan un servicio web proporcionado por Phidgets Inc (e). El Shared Dictionary contiene una estructura tipo arbol de cada uno de los phidgets distribuidos, para acceder a ella existen diversos metodos y objetos proporcionados en la Librería .Net de Shared Phidgets (g) Veamos un ejemplo de aplicación distribuida con Phidgets
  • Dos ejemplos concretos usando la arquitectura shared phidgets son Lumitouch, que consiste en dos marcos de foto con sensores touch y leds ubicados en dos lugares diferentes. Al tocas un marco se ilumina el otro. En Sensor maps es una aplicación que muestra sobre un mapa los diferentes tipos de sensores que hay en la red y su estado actual. Como acabamos de ver los phidgets pueden estar distribuidos espacialmente, pero no se prestan a ser reordenados ni reconfigurados por el usuario final ya que dependen siempre de su connection Manager, ya sea Arduino, el controller de Makingthings, etc
  • Sin embargo existe un proyecto llamado VoodooIO dónde el Connection Manager se reinventa y se extiende a toda una superficie
  • VoodooIO introduce el concepto de “Malleable control structure”, es decir una superficie de control personalizable de cualquier tamaño, forma y orientación, que además no es rígido; y otro concepto que veremos más adelante que es el de “softwiring”
  • La superficie de control maleable esta compuesta en un laminado de 2 capas de material conductivo en red separados por silicona y el todo sellado con silicona adhesiva sensible a la presión. Además este tipo de superficie puede conectarse entre ella misma manteniendo las propiedades de conductividad. Los phidgets en este caso disponen de unos pins que se clavan en la superficie, por eso decimos que es soporte fisico, reciben alimentación del soporte y además la superficie actúa como medio transmisor de la información del phidget.
  • Ampliando en detalle la arquitectura VoodooIO, observamos como los controladores estan compuestos de un transductor electromagnético, que puede accionar un I/O analógico o digital, también dispone de una memoria con información como su ID (al igual que phidgets) y tipo y donde también se almacena el estado del transductor. Y por ultimo una interfaz de conexión a la red. Este tipo de controles están basados en un proyecto anterior llamado Pin&Play. Como funciona el todo? El Voodoo Adapter escanea la red para buscar controles añadidos o quitados. Una vez detectado que se ha añadido un nuevo control lee su memoria para determinar de que tipo se trata y poder asi asociarlo a un widget GUI. Cuando un control modifica su valor (ej. Boton es presionado) entra en un estado “alarma” y el Voodoo Adapter se encarga solamente de leer los valores de aquellos elementos que se encuentren en estado “alarma” en lugar de continuamente leer todos y cada uno de los controles. Ademas se ponen a disposición del desarrolador librerias en diferentes lenguajes como C#.Net, Java, Processing o incluso Flash. Es un sistema escalable (utiliza tecnologia 1-Wire para transmitir los datos) Voodoo Adapter ofrece una interfaz de comunicación inicialmente via TCP/IP que es facilmente extendible a otros layers (ej. MIDI)
  • Como hemos visto VoodooIO no es una interfaz en si, si no más bien el medio para crear o dar soporte a la creación de interfaces como en el caso de los phidgets. Además es importante destacar la idea de softwiring, donde se trata de reflejar la idea de bajo acople entre el usuario, el control y la funcionalidad de la aplicacion.
  • Otro ejemplo de aplicación realizada con VoodooIO e una extensión para el clipboard. El copy/paste tradicional es el que observamos a la izquierda del todo, con la limitación de un único objeto virtual en el clipboard, existen algunas extensiones software para ampliar su capacidad y funcionalidades y finalmente podemos imaginar una interfaz tangible en la que se asocian elementos virtuales del clipboard con elementos físicos (botones)
  • Como funciona? Básicamente para copiar se selecciona previamente lo que se quiere copiar/asociar y posteriormente se engancha el pulsante/botón con el que se quiere hacer la asociación de contenido. Una vez asociado se mostrara por pantalla un feedback visual con un thumbnail del contenido en pantalla en la posición relativa del pulsante. Además como ya se ha comentado que el sustrato es sensible a la presión, cada vez que se presione también se mostrara ese feedback como recordatorio. Para pegar simplemente bastará pulsar el botón y se obtendrá una copia. Para vaciar el contenido del botón basta con desengancharlo durante un cierto tiempo (timeout). Remarcar la posibilidad de transportar contenido de un ordenador a otro.
  • Problemas: Cuanto tiempo es necesario para eleminar un contenido? 10 segundos? 20 segundos? 1 hora? No sustituye otros inputs El botón/pulsante no explica por si solo el contenido con el que esta asociado
  • VoodooSketch amplia las funcionalidades de VoodooIO utilizando un boligrafo Anoto. El boli Anoto pracfticamente es capaz de distinguir su posicion (x,y) en una hoja de papel, diferenciar entre diversas hojas y enviar al PC lo que se esta escribiendo mediante bluetooth. La idea detrás de VoodooSketch es simplemente dejar que el usuario “esboze” sus propias paletas de control. El objetivo por tanto es agilizar (“localizar”) elementos y facilitar su aceso. Permitir la colaboración, poder reordenar los elementos a gusto del usuario.
  • Partiendo como prerrequisitos que una cierta aplicación ciertas funcionalidades están definidas con una palabra o tag, se trata de asociar a un elemento de control de VoodooIO esa funcionalidad “on the fly”. Para ello elegimos los elemntos que necesitamos/queremos extender de la GUI y los pinchamos en el sustrato. La asociación no es inmediata sino que para ello es necesario con el boli Anoto escribir (poner label) la “palabra clave” (keyword) al control y entonces automáticamente ese control quedara asociado a la funcionalidad dada por el keyword. Por ejemplo si imaginamos Photoshop y que un keyword es “opacity” podemos asociar un “slider” escribiendo la palabra opacity al lado del control previamente enganchado. Como veis permite esbozar muy rápidamente una interfaz, personalizar paletas de acceso ágil extendiendo la GUI al vuelo.
  • Otro ejemplo de extensión de VoodooIO es VoodooFlash, que trata de hacer el paso inverso a Phidgets. Si La idea inicial de Phidgets es crear un widget fisico para cada widget de la GUI en VoodooFlash se pretende justo lo contrario, para cada control de VoodooIO crear su equivalente componente virtual en el entorno de desarrollo Flash. El entorno de desarrollo Flash se ha convertido ultimamente en una herramienta muy utilizada por diseñadores de interfaces graficas dado su facil manejo y la rapidez con la que se pueden prototipar nuevas ideas
  • Arriba izquierda vemos los componentes en Flash que tendrán su correspondencia en controles VoodooIO, mientras abajo podemos observar una interfaz creada en Flash en la que los controles se mapean con controles voodooIO
  • Finalmente para finalizar esta presentación algunos de las ventajas de los phidgets y su impacto en la realización de interfaces, sobre todo tangibles. Son económicos(algo que parece una obviedad pero importante en la investigación de nuevos modelos de interacción físicos), se pueden fácilmente rehusar al encapsular una funcionalidad muy limitada (recordar como widgets para GUI), son flexibles al ser pequeños bloques es fácil construir estructuras más complejas y quizás una de las más importantes es que permiten prototipar muy rápidamente interfaces y nuevos modos de interacción, sin necesidad de grandes conocimientos en electrónica y en algunos casos si quiera en programación

Phidgets 1 Phidgets 1 Presentation Transcript

  • Phidgets Ignasi Delgado Rafael Abadal Josep Mª Garcia
  • 1 CONTEXT
  • from GUI to TUI
  • GUI
    • WIMP
    • W indow
    • I con
    • M enu
    • P ointer
  • TUI
    • “ Physical objects that can be used as interfaces between people and digital information ” (Ishii and Ulmer)
    • “ Interaction with a product relies on the understanding gained through the exploration of form and function of the product ”(Djajadiningrat)
  • from GUI to TUI
    • From widgets to phidgets ?
    • “ extended/embedded GUI’s”
  • from GUI to TUI
    • What is a WIDGET ?
  •  
  •  
  • from GUI to TUI
    • Desktop widget not same as gui widget !
    The term widget engine is not to be confused with that of a  widget toolkit
  • from GUI to TUI
    • “ In computer programming, a  widget  (or  control ) is an element of a graphical user interface (GUI) that displays an information arrangement changeable by the user, such as a window or a text box. The defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given kind of data. Widgets are basic visual building blocks which, combined in an application, hold all the data processed by the application and the available interactions on this data.”
    http://en.wikipedia.org/wiki/GUI_widget
  •  
  • 2 PHIDGETS
    • A  phidget  is a physical representation and/or implementation of a  GUI widget
    http://en.wikipedia.org/wiki/Phidget
  • Phidgets 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: Incorporating Physical Devices into the Interface Saul Greenberg and Chester Fitchett
  • 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: Incorporating Physical Devices into the Interface Saul Greenberg and Chester Fitchett
  •  
  •  
  •  
  • 3 EXAMPLES
  • Tangible Menus and Interaction Trays
    • Tangible : manipulable physical elements serve as control for digital information
    • Core tangibles : support operations comon to diverse applications employing tangibles
  •  
  • Shared Phidgets
    • Distributed Physical Interfaces
    • Program,comunicate with and control low-level hardware devices
    • Assume additional programing problems from distributed systems
  • Shared Phidgets
  • Shared Phidgets examples
    • Lumitouch
    • Sensor Maps
  • 4 VOODOOIO
  • VoodooIO
    • Malleable control structure
    • Softwiring
  • Malleable control structure
    • Physical support
    • Power supply
    • Network medium
    Substrate Material Properties:
  • Architecture overview
  • Softwiring
    • VoodooIO does not constitute an application interface itself, only becomes concrete as an interface component in the context of a particular application
    • Softwiring : practice of designing an interface exploting the benefits of malleability
  • Some video examples
  • More examples: Clipboard extension
  •  
  • Clipboard extension drawbacks
    • Timeout deleting
    • Standard input (mouse) still needed for use
    • Object itself doesn’t give feedback of content
  • More Examples: VoodooSketch
    • VoodooSkecth is a system which extends an enviroinment of interactive surfaces with customizable interface paletes
    • Interface localization
    • Collaboration
    • Different Perspectives
    • Adaptability
  • VoodooSketch how it works
    • Giving physical controls an explicit Flash representation
    • Stepbackward from Phidgets initial idea
    • Rapid Flash prototyping for interfaces
    More Examples: VoodooFlash
  • VoodooFlash
  • 5 FINAL THOUGHS
  • Phidgets values
    • Low cost
    • Reusable
    • Versatile
    • Rapid prototyping for physical interfaces
  • QUESTIONS?
  • THANKS
  • 6 REFERENCES
    • • Nicolai Marquardt, Saul Greenberg. Distributed physical interfaces with shared phidgets. Proceedings of the 1st international conference on Tangible and embedded interaction 2007, pp. 13-20.
    • • Nicolas Villar, Hans Gellersen. A malleable control structure for softwired user interfaces. Proceedings of the 1st international conference on Tangible and embedded interaction 2007, pp. 49-56.
    • • Wolfgang Spiessl, Nicolas Villar, Hans Gellersen, Albrecht Schmidt. VoodooFlash: authoring across physical and digital form. Proceedings of the 1st international conference on Tangible and embedded interaction 2007, pp. 97-100.
    • • Larisa Sitorus, Shan Shan Cao, Jacob Buur. Tangible user interfaces for configuration practices. Proceedings of the 1st international conference on Tangible and embedded interaction 2007, pp. 223-230.
    • • Florian Block, Michael Haller, Hans Gellersen, Carl Gutwin, Mark Billinghurst. VoodooSketch: extending interactive surfaces with adaptable interface palettes. Proceedings of the 2nd international conference on Tangible and embedded interaction 2008, pp. 55-58.
    • • Florian Block, Nicolas Villar, Hans Gellersen. A malleable physical interface for copying, pasting, and organizing digital clips. Proceedings of the 2nd international conference on Tangible and embedded interaction 2008, pp. 117-120.
    • • Brygg Ullmer, Rajesh Sankaran, Srikanth Jandhyala, Blake Tregre, Cornelius Toole, Karun Kallakuri, Christopher Laan, Matthew Hess, Farid Harhad, Urban Wiggins, Shining Sun. Tangible menus and interaction trays: core tangibles for common physical/digital activities. Proceedings of the 2nd international conference on Tangible and embedded interaction 2008, pp. 209-212.
    • • Greenberg, S. and Fitchett, C. Phidgets: Easy development of physical interfaces though physical widgets. Proc ACM UIST, 2001, 209-218