38
Gainer Gainer Funnel Funnel 디자이너 디자이너 / / 아티스트와 엔지니어 사이의 간격을 좁히기 위한 툴 킷과 아티스트와 엔지니어 사이의 간격을 좁히기 위한 툴 킷과 원크숍 디자인 원크숍 디자인 Gainer and Funnel Gainer and Funnel Designing of toolkits and workshop to fill gaps between Designing of toolkits and workshop to fill gaps between artists/designers and engineers artists/designers and engineers Shigeru Kobayashi (IAMAS DSP course) Shigeru Kobayashi (IAMAS DSP course) Lecture and workshop at Soongsil University on April 27th, 2009 Lecture and workshop at Soongsil University on April 27th, 2009

Lecture at Soongsil University

Embed Size (px)

DESCRIPTION

The slides for the lecture at Soongsil University on April 27th, 2009.

Citation preview

Page 1: Lecture at Soongsil University

GainerGainer와와FunnelFunnel디자이너디자이너/ / 아티스트와 엔지니어 사이의 간격을 좁히기 위한 툴 킷과 아티스트와 엔지니어 사이의 간격을 좁히기 위한 툴 킷과 원크숍 디자인원크숍 디자인

Gainer and FunnelGainer and FunnelDesigning of toolkits and workshop to fill gaps between Designing of toolkits and workshop to fill gaps between artists/designers and engineersartists/designers and engineers

Shigeru Kobayashi (IAMAS DSP course)Shigeru Kobayashi (IAMAS DSP course)Lecture and workshop at Soongsil University on April 27th, 2009Lecture and workshop at Soongsil University on April 27th, 2009

Page 2: Lecture at Soongsil University

Designing toolkits/툴킷 디자인● Gainer (2005~)● Funnel (2006~)

Page 3: Lecture at Soongsil University

Motivation/동기(엔지니어 있어서)

● 「하드웨어에 있어서의 스케치 」는 소프트웨어 경우만큼 간단한 것은 아니다.:계발 최종 단계에서 새로운 아이디어를 실제 구현하는 것은 어렵다.

● 과거(예전)경험을 바탕으로「새롭운」아이디어를 평가하는 것은 어렵다

● 디자이너와 엔지니어의 사이에는 공통언어가 없다.

Page 4: Lecture at Soongsil University

Motivation/동기 (IAMAS에서)

● 컨셉주도로 제작을 진행하는 일은 평균적으로 확실한 아이디어를 가지고 있지 않은 학생에게 있어 간단한 일은 아니다.

● 「만들면서 생각한다.」라는 메소드는 생각하는 방법에 있어서 좋지만, 알맞은 기술 없이는 실제론 어렵다.

● 마이콘(microcontroller) 프로그래밍을 C나 어셈블러로 가르치는 것은 어렵다.(쉽게 좌절하는 경향이 있다.)

Page 5: Lecture at Soongsil University

Physical Computing과의 만남

● 2004년에 도서「Physical Computing」을 통해 접하게 됐다.

● 거기에 쓰여진 가르친 방법은 괜찮아 보였다.

● 그 후에 툴 킷을 디자인하고, 워크숍을 열고 기사랑 책을 썼다.

Page 6: Lecture at Soongsil University

Gainer의 배경

● 2005년에 개발을 시작했다(아직 Arduino가 없는 시기)

● 자기자신이 필요로 하는 툴 킷을 개발하자● 가능한 한 심플하게 하기 위해 기능을 I/O모듈로

한정했다

Page 7: Lecture at Soongsil University

Gainer 라는 것은?

● 오픈 소스 하드웨어와 소프트웨어로부터 구성된 툴 킷

● 하드웨어 : USB인터페이스부착 I/O모듈● 소프트웨어 라이브러리

● ActionScript 2/3● Processing● Max/MSP

Page 8: Lecture at Soongsil University

Gainer I/Oモ모듈

Page 9: Lecture at Soongsil University

워크숍 예● Yamaguchi Center for Arts and Media

(야마구치 정보 예술 센타)

● 이틀간 (2007.12.21-22)

● 참가자19명● Gainer I/O + Funnel + Processing

Page 10: Lecture at Soongsil University

Lecture/Lecture/강의강의

Page 11: Lecture at Soongsil University

Practical training/Practical training/실습실습

Page 12: Lecture at Soongsil University

Idea Sketches/Idea Sketches/아이디어 스케치아이디어 스케치

Page 13: Lecture at Soongsil University

Hardware sketching/Hardware sketching/하드웨어 스케치하드웨어 스케치

Page 14: Lecture at Soongsil University

Hardware sketching/Hardware sketching/하드웨어 스케치하드웨어 스케치

Page 15: Lecture at Soongsil University

Presentation/Presentation/프레젠테이션프레젠테이션

Page 16: Lecture at Soongsil University

++GAINER: tutorialGAINER: tutorial

Page 17: Lecture at Soongsil University

+GAINER: Cookbook

Page 18: Lecture at Soongsil University

++GAINER: GAINER: 작품소개작품소개

Page 19: Lecture at Soongsil University

오픈 소스 하드로서 Gainer

● Gainer I/O module v1.0● 오리지날판● PSoC 기반

Page 20: Lecture at Soongsil University

오픈 소스 하드로서 Gainer

● Gainer PSoC development board● SparkFun Electronics에 의한 설계● PSoC기반

Page 21: Lecture at Soongsil University

오픈소스하드로서 Gainer

● Ginger/Pepper/Sugar● Morecat Lab에 의한 설계 ● AVR기반

Page 22: Lecture at Soongsil University

오픈 소스 하드로서의 Gainer

● Gainer mini● RT에 의한 설계● PIC기반

Page 23: Lecture at Soongsil University

오픈 소스 소프트웨어로서 Gainer

● .NET● Perl● Puredata● Python● Ruby● Squeak● vvvv

Page 24: Lecture at Soongsil University

IAMAS에서 최근 활동

● 미디어아트에서 지금까지 해온 표현을 인터렉션 디자인에 응용

● 인터렉티브 광고란 또 다른 응용 예가 될 것이다.

● 피지컬한 인터랙션 디자인을 위해 새로운 디자인 메소드를 개발:Gangu 프로젝트

(Gangu는 일본어로 완구를 말함)

Page 25: Lecture at Soongsil University

완구를 디자인하는 프로세스● 기존의 전자완구를 재조사(많이)● 아이디어 스케치를 그린다(많이)● 아이디어를 평가하고, 학생에게 하나의 아이디어를 선택한

다.

● DirtyPrototype (점토나 발포 스치롤 같은 가까이있는 재료로 단시간에 만드는 타입)

● 하드웨어스케치● 프로토타입 제작● 전시● 다시 한번 생각해 본다

Page 26: Lecture at Soongsil University

완구의예:Mountain Guitar

● 디자인:Junichi Kanebako

● 장난감 같은 악기 인터페이스 프로패셔날한 기타 사운드

● Gainer I/O (무선판) + Max/MSP

Page 27: Lecture at Soongsil University

완구 예:Jamming Gear

● 디자인:So Kanno and Kenichiro Saigo

● 디지털뮤직을 시각화 하기 위해 탄지불 인터페이스

● 스케치:Gainer I/O + Max/MSP

● 프로토타입:FIO + Bluetooth + Max/MSP

Page 28: Lecture at Soongsil University

Funnel개발동기

● 한 종류의I/O모듈로는 일반적으로 용도를 카바하지 못함, 툴 킷을 바꾸는 것은 어렵지 않다.

● 초심자에 있어서, 실세계에서 입력을 다루는 것은 간단하지는 않다.

● 유선으로 접속이「하드웨어에 있어 스케치」단계에서 아이디어를 좁힌다.

Page 29: Lecture at Soongsil University

Funnel개발 배경● 처음은「Gainer v2.0」으로 할 계획이었다.

● 개발시작은 2007년:이미 Arduino이 등장해 넓게 사용되고 있었다.

● 나 자신도 자주 Gainer와 Arduino 둘을 사용하고 있다.

● 「차별화」,「신규성」 만을 위해서 독자적인 것을 만드는 것은 그만둠 : 일반 소비자를 생각하자

● 그러면 툴 킷 사이를 「상호접속」하는 것은 어떨가?

Page 30: Lecture at Soongsil University

Bill Buxton's “design funnel”

● Sketching User Experiences (2007)

Page 31: Lecture at Soongsil University

수업에 있어 대처Sketching Prototyping

Toolkit Gainer Gainer or Arduino

Connection wired Wired, wireless or stand-alone

Programming PC PC and/or microcontroller

Material Cardboard, clay or styrofoam

Wood and/or 3D printing

Wiring breadboard soldering

Page 32: Lecture at Soongsil University

Funnel란 무엇인가?

● 툴 킷을 상호접속하는 툴킷● 스케치에서 프로토타입까지「프로토타입

funnel」을 카바한다.

● 디자이너/아티스트와 엔지니어 사이에 공통언어가 되는 것을 목표로

Page 33: Lecture at Soongsil University

Funnel기능

● 「센서언어」를「GUI언어」에 통역한다.

● 입력을 처리하기 위한 다양한 필터● 스케일링● 범위분할(SetPoint)

● LPF, HPF등● Arduino기반 새로운I/O모듈

Page 34: Lecture at Soongsil University

Funnel을 경유한 상호접속

Page 35: Lecture at Soongsil University

서포트하고 있는 하드웨어● Gainer I/O

● Arduino and compatibles (Firmata v2경유)

● XBee (IEEE 802.15.4/ZigBee)● FIO (Funnel I/O)

Page 36: Lecture at Soongsil University

서포트하고 있는 프로그래밍 언어● ActionScript 3● Processing● Ruby

Page 37: Lecture at Soongsil University

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.analogInpout(0).value < (threshold – hysteresis)) {

state = 0;} else if (io.analogInpout(0).value > (threshold + hysteresis)) {

state = 1;} else {

state = lastState;}

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

}

lastState = state;}

Page 38: Lecture at Soongsil University

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(RISING_EDGE, onRisingEdge);

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

}