More Related Content Similar to Workshop at IAMAS 2008-05-24 Similar to Workshop at IAMAS 2008-05-24(20) More from Shigeru Kobayashi More from Shigeru Kobayashi(20) Workshop at IAMAS 2008-05-242. • 1 10:00-11:15
• 2 11:30-13:30
13:30-14:30
• 2 14:30-16:15
• 3 16:30-17:45
• 4 17:45-18:30 3. Gainer I/O 1
SAD-01 1
SPP-100 5
SKS-140
USB 1
330Ω 2
10kΩ 1
10kΩ B 1
CdS 5mm 1
LED 2
KMX52-1050 1 4. • 1970
• 1993 4 2004 6
–
–
• IAMAS 2004 7
–
– 5. 1 10:00-11:15
•
• Gainer
• Funnel 6. • ITP*1 Tom Igoe
• PC
•
•
*1 Interactive Telecommunications Program 7. ITP Spring Show 2008
• ITP 2
• 5 12 13
• http://itp.nyu.edu/shows/spring2008/ 11. •
Nintendo Wii
•
• Apple
– iPod
– iPhone
– MacBook Air PC 13. •
ActionScript C C++ Java
•
• 15. •
– Processing
– Flash
•
– Gainer
– Arduino
– Phidgets 17. 1
•
• 1
• NTT InterCommunication Center [ICC]
2007.4.19-2008.3.9
41. 3 3
• 11
•
•
•
• IAMAS
2007.8.24-26 42. PIC AVR
program
A
a0]=ain.o;
aout.1 = 255;
B
C
D 43. PC Arduino
program
A
a0]=ain.o;
aout.1 = 255;
B
C
D
PC
program
a0]=ain.o;
aout.1 = 255; 45. I/O PC Gainer Phidgets
A
B
C
D
PC
program
a0]=ain.o;
aout.1 = 255;
60. Funnel
• I/O
– Gainer
– Arduino
– XBee
– Funnel I/O
•
– Processing
– ActionScript 3 Flash Flex
– Ruby 65. • Make
http://jp.makezine.com/
• Instructables
http://www.instructables.com/ 66. • v1.0 SparkFun
• Creative Commons Attribution-Share Alike 77. 2 1 11:30 12:15
•
•
• LED
• LED
84. • 1,000 1kΩ
• 1,000,000 1MΩ
• 1,000
1
1mA
• 1,000,000
1
50µA
97. − LED = LED ×R
R
− LED
R=
LED
5.0V LED 1.8V 10mA
5 − 1.8 3.2
R= = =
0.01 0.01 103. 2 2 12:15 13:30
Funnel
•
– I/O LED
– I/O LED
•
–
– CdS 104. Funnel Gainer I/O
2
• dout 0 1 2
– LED
–
• aout 0 1 256 *2
– LED
–
*2 PWM 105. Funnel
1 I/O LED 01 ControlLEDByMouse
import processing.funnel.*;
Gainer gainer;
void setup()
{
size(200, 200);
frameRate(30);
gainer = new Gainer(this, Gainer.MODE1);
gainer.autoUpdate = true;
}
void draw()
{
background(100);
} 106. Funnel
2 I/O LED 01 ControlLEDByMouse
void mousePressed()
{
gainer.led().value = 1.0;
}
void mouseReleased()
{
gainer.led().value = 0.0;
} 107. Funnel
3 I/O LED 02 ControlLEDByButton
import processing.funnel.*;
Gainer gainer;
void setup()
{
size(200, 200);
frameRate(30);
gainer = new Gainer(this, Gainer.MODE1);
gainer.autoUpdate = true;
}
void draw()
{
background(100);
} 108. Funnel
4 I/O LED 02 ControlLEDByButton
void gainerButtonEvent(boolean pressed)
{
if (pressed) {
gainer.led().value = 1.0;
} else {
gainer.led().value = 0.0;
}
} 111. Funnel
5 aout 0 LED
// _02_ControlLEDByButton
void gainerButtonEvent(boolean pressed)
{
if (pressed) {
gainer.analogOutput(0).value = 1.0;
} else {
gainer.analogOutput(0).value = 0.0;
}
} 112. Funnel LFO
6 aout 0 LED 03 ControlLEDWithLFOByButton
Gainer gainer;
Osc osc;
void setup()
{
size(200, 200);
frameRate(30);
gainer = new Gainer(this, Gainer.MODE1);
gainer.autoUpdate = true;
//
osc = new Osc(this, Osc.SQUARE, 1.0, 0);
osc.serviceInterval = 30;
osc.addEventListener(Osc.UPDATE, quot;oscUpdatedquot;);
} 113. Funnel LFO
7 aout 0 LED 03 ControlLEDWithLFOByButton
//
void oscUpdated(Osc osc)
{
gainer.led().value = osc.value;
}
//
void gainerButtonEvent(boolean pressed)
{
if (pressed) {
osc.reset();
osc.start();
} else {
osc.stop();
}
} 117. Funnel AC
• SSR
AC100V LED
• AC 118. Funnel Gainer I/O
2
• din 0 1 2
–
–
• ain 0 1 256
–
– 123. Funnel ain 0
• 04 SimpleScope
•
• ain 1
• 126. Funnel
• 05 Tree *3
•
• Funnel
• mouseX ain 0
*3 Topics/Fractals and L-Systems/Tree 129. Funnel ain 0
• 05 Tree
• 04 SimpleScope
• Scaler
• 130. Funnel Scaler
8 Scaler 05 Tree
import processing.funnel.*;
Gainer gainer;
void setup()
{
size(400, 400, P3D);
...
gainer = new Gainer(this, Gainer.MODE1);
Filter f[] = {
new Scaler(0.3, 0.9, 0, 1, Scaler.LINEAR, true)
};
gainer.analogInput(0).filters = f;
} 137. 2 3 14:30 16:15
Funnel
•
–
•
–
– 140. Funnel ain
• 04 SimpleScope
• 3
• x, y, z
–
– 145. Funnel Processing
• Libraries Processing 1.0 (BETA)
http://processing.org/reference/libraries
• Minim
http://code.compartmental.net/tools/minim 146. Funnel Processing
9
import ddf.minim.*;
AudioPlayer player;
void setup()
{
size(200, 200);
// Minim
Minim.start(this);
// AudioPlayer 512
player = Minim.loadFile(quot;groove.mp3quot;, 512);
} 147. Funnel Processing
10
//
void keyPressed()
{
// ’p’
if ( key == ’p’ ) player.play();
} 148. 3 16:30 17:45
• 2
•
• OK 149. Bill Buxton 2006
What Sketches (and Prototypes) Are and Are Not.
• Quick
• Timely
• Inexpensive
• Disposable
• Constrained Resolution
• Suggest & explore rather than confirm 150. 4 17:45 18:30
• 3
•
•