lecture at soongsil university
DESCRIPTION
The slides for the lecture at Soongsil University on April 27th, 2009.TRANSCRIPT
![Page 1: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/2.jpg)
Designing toolkits/툴킷 디자인● Gainer (2005~)● Funnel (2006~)
![Page 3: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/3.jpg)
Motivation/동기(엔지니어 있어서)
● 「하드웨어에 있어서의 스케치 」는 소프트웨어 경우만큼 간단한 것은 아니다.:계발 최종 단계에서 새로운 아이디어를 실제 구현하는 것은 어렵다.
● 과거(예전)경험을 바탕으로「새롭운」아이디어를 평가하는 것은 어렵다
● 디자이너와 엔지니어의 사이에는 공통언어가 없다.
![Page 4: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/4.jpg)
Motivation/동기 (IAMAS에서)
● 컨셉주도로 제작을 진행하는 일은 평균적으로 확실한 아이디어를 가지고 있지 않은 학생에게 있어 간단한 일은 아니다.
● 「만들면서 생각한다.」라는 메소드는 생각하는 방법에 있어서 좋지만, 알맞은 기술 없이는 실제론 어렵다.
● 마이콘(microcontroller) 프로그래밍을 C나 어셈블러로 가르치는 것은 어렵다.(쉽게 좌절하는 경향이 있다.)
![Page 5: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/5.jpg)
Physical Computing과의 만남
● 2004년에 도서「Physical Computing」을 통해 접하게 됐다.
● 거기에 쓰여진 가르친 방법은 괜찮아 보였다.
● 그 후에 툴 킷을 디자인하고, 워크숍을 열고 기사랑 책을 썼다.
![Page 6: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/6.jpg)
Gainer의 배경
● 2005년에 개발을 시작했다(아직 Arduino가 없는 시기)
● 자기자신이 필요로 하는 툴 킷을 개발하자● 가능한 한 심플하게 하기 위해 기능을 I/O모듈로
한정했다
![Page 7: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/7.jpg)
Gainer 라는 것은?
● 오픈 소스 하드웨어와 소프트웨어로부터 구성된 툴 킷
● 하드웨어 : USB인터페이스부착 I/O모듈● 소프트웨어 라이브러리
● ActionScript 2/3● Processing● Max/MSP
![Page 8: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/8.jpg)
Gainer I/Oモ모듈
![Page 9: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/9.jpg)
워크숍 예● Yamaguchi Center for Arts and Media
(야마구치 정보 예술 센타)
● 이틀간 (2007.12.21-22)
● 참가자19명● Gainer I/O + Funnel + Processing
![Page 10: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/10.jpg)
Lecture/Lecture/강의강의
![Page 11: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/11.jpg)
Practical training/Practical training/실습실습
![Page 12: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/12.jpg)
Idea Sketches/Idea Sketches/아이디어 스케치아이디어 스케치
![Page 13: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/13.jpg)
Hardware sketching/Hardware sketching/하드웨어 스케치하드웨어 스케치
![Page 14: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/14.jpg)
Hardware sketching/Hardware sketching/하드웨어 스케치하드웨어 스케치
![Page 15: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/15.jpg)
Presentation/Presentation/프레젠테이션프레젠테이션
![Page 16: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/16.jpg)
++GAINER: tutorialGAINER: tutorial
![Page 17: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/17.jpg)
+GAINER: Cookbook
![Page 18: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/18.jpg)
++GAINER: GAINER: 작품소개작품소개
![Page 19: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/19.jpg)
오픈 소스 하드로서 Gainer
● Gainer I/O module v1.0● 오리지날판● PSoC 기반
![Page 20: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/20.jpg)
오픈 소스 하드로서 Gainer
● Gainer PSoC development board● SparkFun Electronics에 의한 설계● PSoC기반
![Page 21: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/21.jpg)
오픈소스하드로서 Gainer
● Ginger/Pepper/Sugar● Morecat Lab에 의한 설계 ● AVR기반
![Page 22: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/22.jpg)
오픈 소스 하드로서의 Gainer
● Gainer mini● RT에 의한 설계● PIC기반
![Page 23: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/23.jpg)
오픈 소스 소프트웨어로서 Gainer
● .NET● Perl● Puredata● Python● Ruby● Squeak● vvvv
![Page 24: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/24.jpg)
IAMAS에서 최근 활동
● 미디어아트에서 지금까지 해온 표현을 인터렉션 디자인에 응용
● 인터렉티브 광고란 또 다른 응용 예가 될 것이다.
● 피지컬한 인터랙션 디자인을 위해 새로운 디자인 메소드를 개발:Gangu 프로젝트
(Gangu는 일본어로 완구를 말함)
![Page 25: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/25.jpg)
완구를 디자인하는 프로세스● 기존의 전자완구를 재조사(많이)● 아이디어 스케치를 그린다(많이)● 아이디어를 평가하고, 학생에게 하나의 아이디어를 선택한
다.
● DirtyPrototype (점토나 발포 스치롤 같은 가까이있는 재료로 단시간에 만드는 타입)
● 하드웨어스케치● 프로토타입 제작● 전시● 다시 한번 생각해 본다
![Page 26: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/26.jpg)
완구의예:Mountain Guitar
● 디자인:Junichi Kanebako
● 장난감 같은 악기 인터페이스 프로패셔날한 기타 사운드
● Gainer I/O (무선판) + Max/MSP
![Page 27: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/27.jpg)
완구 예:Jamming Gear
● 디자인:So Kanno and Kenichiro Saigo
● 디지털뮤직을 시각화 하기 위해 탄지불 인터페이스
● 스케치:Gainer I/O + Max/MSP
● 프로토타입:FIO + Bluetooth + Max/MSP
![Page 28: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/28.jpg)
Funnel개발동기
● 한 종류의I/O모듈로는 일반적으로 용도를 카바하지 못함, 툴 킷을 바꾸는 것은 어렵지 않다.
● 초심자에 있어서, 실세계에서 입력을 다루는 것은 간단하지는 않다.
● 유선으로 접속이「하드웨어에 있어 스케치」단계에서 아이디어를 좁힌다.
![Page 29: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/29.jpg)
Funnel개발 배경● 처음은「Gainer v2.0」으로 할 계획이었다.
● 개발시작은 2007년:이미 Arduino이 등장해 넓게 사용되고 있었다.
● 나 자신도 자주 Gainer와 Arduino 둘을 사용하고 있다.
● 「차별화」,「신규성」 만을 위해서 독자적인 것을 만드는 것은 그만둠 : 일반 소비자를 생각하자
● 그러면 툴 킷 사이를 「상호접속」하는 것은 어떨가?
![Page 30: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/30.jpg)
Bill Buxton's “design funnel”
● Sketching User Experiences (2007)
![Page 31: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/31.jpg)
수업에 있어 대처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](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/32.jpg)
Funnel란 무엇인가?
● 툴 킷을 상호접속하는 툴킷● 스케치에서 프로토타입까지「프로토타입
funnel」을 카바한다.
● 디자이너/아티스트와 엔지니어 사이에 공통언어가 되는 것을 목표로
![Page 33: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/33.jpg)
Funnel기능
● 「센서언어」를「GUI언어」에 통역한다.
● 입력을 처리하기 위한 다양한 필터● 스케일링● 범위분할(SetPoint)
● LPF, HPF등● Arduino기반 새로운I/O모듈
![Page 34: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/34.jpg)
Funnel을 경유한 상호접속
![Page 35: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/35.jpg)
서포트하고 있는 하드웨어● Gainer I/O
● Arduino and compatibles (Firmata v2경유)
● XBee (IEEE 802.15.4/ZigBee)● FIO (Funnel I/O)
![Page 36: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/36.jpg)
서포트하고 있는 프로그래밍 언어● ActionScript 3● Processing● Ruby
![Page 37: Lecture at Soongsil University](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052413/559b1ca61a28ab33128b47dc/html5/thumbnails/38.jpg)
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
}