Ubiquitous Content Symposium 2009

49
Designing toolkits for prototyping funnel Shigeru Kobayashi (IAMAS) Ubiquitous Content Symposium 2009 (February 27th, 2009) Photo credit: ICC

description

Slides for my presentation at Ubiquitous Content Symposium 2009

Transcript of Ubiquitous Content Symposium 2009

Page 1: Ubiquitous Content Symposium 2009

Designing toolkits for prototyping funnel

Shigeru Kobayashi (IAMAS)Ubiquitous Content Symposium 2009 (February 27th, 2009) Photo credit: ICC

Page 2: Ubiquitous Content Symposium 2009

Designing toolkits

• Gainer (2005~)

• Funnel (2007~)

Page 3: Ubiquitous Content Symposium 2009

Motivation (as an engineer)

• “Sketching in hardware” was not so easy as software: Difficult to implement new ideas in the late stages of development

• Difficult to evaluate “new” ideas using past (old) experiences

• Lack of common language between designers and engineers

Page 4: Ubiquitous Content Symposium 2009

Motivation (at IAMAS)

• Concept driven development is not so easy for average students who do not have concrete ideas

• “Build to think” method sounds good, but substantial skills are required

• Difficult to teach programming for micro-controllers in C or assembly (easy to get frustrated)

Page 5: Ubiquitous Content Symposium 2009

Encounters with Physical Computing

• Encountered “Physical Computing” via the book in 2004

• The teaching methods described seemed very good for teaching

• Then designed toolkits, held workshops, and wrote articles and books

Page 6: Ubiquitous Content Symposium 2009
Page 7: Ubiquitous Content Symposium 2009

Background of Gainer

• Started in 2005 (before Arduino era)

• Let’s develop a toolkit that we want, by ourselves

• Keep as simple as possible, so minimized the functions to an I/O module

Page 8: Ubiquitous Content Symposium 2009

What is Gainer?

• A toolkit consisting of open source hardware and software

• Hardware: I/O module with USB I/F

• Software libraries

• ActionScript 2/3

• Processing

• Max/MSP

Page 9: Ubiquitous Content Symposium 2009

Gainer I/O module

Photo: Shunsuke Takawo

Page 10: Ubiquitous Content Symposium 2009

Workshop example

• Yamaguchi Center for Arts and Media

• 2 days (2007.12.21-22)

• 19 participants

• Gainer I/O + Funnel + Processing

Page 11: Ubiquitous Content Symposium 2009

Lecture

Photo credit: YCAM

Page 12: Ubiquitous Content Symposium 2009

Practical training

Photo credit: YCAM

Page 13: Ubiquitous Content Symposium 2009

Idea sketches

Photo credit: YCAM

Page 14: Ubiquitous Content Symposium 2009

Hardware sketching

Photo credit: YCAM

Page 15: Ubiquitous Content Symposium 2009

Hardware sketching

Photo credit: YCAM

Page 16: Ubiquitous Content Symposium 2009

Presentation

Photo credit: YCAM

Page 17: Ubiquitous Content Symposium 2009

Presentation

Photo credit: YCAM

Page 18: Ubiquitous Content Symposium 2009

+GAINER

Page 19: Ubiquitous Content Symposium 2009

+GAINER: Tutorial

Page 20: Ubiquitous Content Symposium 2009

+GAINER: Cookbook

Page 21: Ubiquitous Content Symposium 2009

+GAINER: Works

Page 22: Ubiquitous Content Symposium 2009

Gainer as an O.S. Hardware

• Gainer I/O module v1.0

• Original version

• PSoC based

Page 23: Ubiquitous Content Symposium 2009

Gainer as an O.S. Hardware

• Gainer PSoC development board

• Designed by SparkFun Electronics

• PSoC based

• v1.3, v1.4 and v1.7

Page 24: Ubiquitous Content Symposium 2009

Gainer as an O.S. Hardware

• Ginger/Pepper/Sugar

• Designed by Morecat Lab

• AVR based

Page 25: Ubiquitous Content Symposium 2009

Gainer as an O.S. Hardware

• Gainer mini

• Designed by RT

• PIC based

Page 26: Ubiquitous Content Symposium 2009

Gainer as an O.S. Software

• .NET

• Perl

• Puredata

• Python

• Ruby

• Squeak

• vvvv

Page 27: Ubiquitous Content Symposium 2009

Recent activities at IAMAS

• Adopted tried and tested expression methods of media arts to interaction design

• Will be yet another application for industries in addition to interactive advertisements

• Developing a new design method for physical interaction design: Gangu project

Page 28: Ubiquitous Content Symposium 2009

Processes of designing toys

• Research existing electric toys (many)

• Drawing idea sketches (many)

• Evaluate ideas and pick one for each student

• Dirty prototype

• Hardware sketching

• Making prototypes

• Exhibiting

• Reflection

Page 29: Ubiquitous Content Symposium 2009

Toy example: Mountain Guitar

• Design: Junichi Kanebako

• A toy like musical interface - professional guitar sound

• Gainer I/O (special model) + Max/MSP

Page 30: Ubiquitous Content Symposium 2009

Toy example: Jamming Gear

• Design: So Kanno and Kenichiro Saigo

• A Tangible interface for visualizing digital music

• Sketch: Gainer I/O + Max/MSP

• Prototype: FIO + Bluetooth + Max/MSP

Page 31: Ubiquitous Content Symposium 2009
Page 32: Ubiquitous Content Symposium 2009

Motivation to Funnel

• An I/O module doesn’t cover all user needs and changing between toolkits is expensive

• For beginners, it is difficult to handle real-world inputs from numerous sensors

• Wired connection narrows ideas during “sketching in hardware” stage

Page 33: Ubiquitous Content Symposium 2009

Background of Funnel

• Initially planned as “Gainer v2.0”

• Started in 2007: Arduino was commonly available and widely used

• We usually used both Gainer and Arduino

• Don’t develop a new toolkit just for differentiation: think about end users!

• How about “interconnecting” existing toolkits?

Page 34: Ubiquitous Content Symposium 2009

Bill Buxton’s “design funnel”

• Sketching User Experiences (2007)

We extended to physical prototypes: “prototyping funnel”

Page 35: Ubiquitous Content Symposium 2009

Efforts in the classroomSketching Prototyping

Toolkit

Connection

Programming

Material

Wiring

Gainer Gainer or Arduino

wired wired, wireless or stand-alone

PC only PC and/or microcontroller

cardboard, clay or styrofoam wood and/or 3D printing

breadboard soldering

Page 36: Ubiquitous Content Symposium 2009

What is Funnel?

• A toolkit to interconnect toolkits

• Covers from sketches to prototypes:the prototyping funnel

• Intended to be a common language between designers/artists and engineers

Page 37: Ubiquitous Content Symposium 2009

Funnel features

• Translates “a sensor language” into “a GUI programming language”

• Various filters to handle inputs

• Scaler

• Divider (SetPoint)

• LPF, HPF etc.

• Oscillator

• A new I/O module based on Arduino

Page 38: Ubiquitous Content Symposium 2009

Interconnections via Funnel

!"#$%#&&'()*+&

,-.)&/012$3(45+&

6/45.)(78.9:$;./<-9-=

!"#$%#&&'()*+&

;5))&+$"&/>&/

6?9.()"?/.@9$A B/(?&CC.)* 3-D13"B&9?EF5GH

6"A$I.G/-/H B/(?&CC.)*$I.G/-/H 2"J$I.G/-/.&CF5GH$I.G/-/H

;5))&+$012 '.*.$0)9&/)-9.()-+%#&&;5))&+$012 '.*.$0)9&/)-9.()-+

%#&&

Page 39: Ubiquitous Content Symposium 2009

Supported hardware

• Gainer I/O

• Arduino and compatibles (via Firmata v2)

• XBee (IEEE 802.15.4 or ZigBee)

• FIO (Funnel I/O)

Page 40: Ubiquitous Content Symposium 2009

Supported languages

• Processing

• ActionScript 3

• Ruby

Page 41: Ubiquitous Content Symposium 2009

Event detection (without Funnel)var threshold:Number = 0.5;var hysteresis:Number = 0.1;var lastState:int = 0;

function loop():void { var state:int = -1; if (io.analogInput(0).value < (threshold - hysteresis)) { state = 0; } else ((io.analogInput(0).value > (threshold + hysteresis))) { state = 1; } else { state = lastState; }

if (lastState == 0 && state == 1) { // on rising edge, do something }

lastState = state;}

Page 42: Ubiquitous Content Symposium 2009

Event detection (with Funnel)var threshold:Number = 0.5;var hysteresis:Number = 0.1;

io.analogInput(0).filters = [new SetPoint([threshold, hysteresis])];io.analogInput(0).addEventListener(PinEvent:RISING_EDGE, onRisingEdge);

function onRisingEdge(e:PinEvent):void { // do something}

Just add a filter

Page 43: Ubiquitous Content Symposium 2009

Using a digital compass (with Funnel)var fio:Fio;var compass:HMC6352;var clockHand:Shape;

function setup():void { fio = new Fio([1], Fio.FIRMATA); compass = new HMC6352(fio.ioModule(1)); ...}

function loop():void { clockHand.rotation = compass.heading;}

Just add a sensor

Page 44: Ubiquitous Content Symposium 2009

FIO as an O. S. Hardware

• FIO v1.0 (July, 2008)

• Original demo design

• 2 AAA rechargeable batteries

Page 45: Ubiquitous Content Symposium 2009

• FIO v1.3 (December, 2008)

• Designed with SparkFun Electronics

• A LiPo rechargeable battery

FIO as an O. S. Hardware

Page 46: Ubiquitous Content Symposium 2009

FIO as an O. S. Hardware

• Funnel IO remixed (January, 2009)

• Designed by Seeed Studio

• Just one month after FIO v1.3!

Page 47: Ubiquitous Content Symposium 2009

FIO as an O. S. Hardware

• Funnel IO remixed (January, 2009)

• Designed by Seeed Studio

• Just one month after FIO v1.3!

Page 48: Ubiquitous Content Symposium 2009

Future plans

• Add features to handle real-world applications, while keeping things simple

• Optimize performance

• Support real embedded platforms

• Beagle Board

• Android

• Collaborate with additional toolkits!

• Write articles and books...

Page 49: Ubiquitous Content Symposium 2009

Designing toolkits for prototyping funnel

Shigeru Kobayashi (IAMAS)Ubiquitous Content Symposium 2009 (February 27th, 2009) Photo credit: ICC