Contenu connexe
Similaire à Make: Tokyo Meeting 03 (20)
Plus de Shigeru Kobayashi (20)
Make: Tokyo Meeting 03
- 2. Pepper 1
EIC-801 1
150mm 3
330Ω 2
10kΩ B 1
LED 1
GP1A53HRJ00F 2
1
20mm×20mm 8
- 3. Make Volume 04
Sketch
2008
- 4. Make Volume 05
Sketch / Prototype
2008
- 5. Make Volume 06
Prototyping Lab:
2009
- 6. Make Volume 07
Prototyping Lab: Jamming Gear
2009
• Jamming Gear
•
• Jamming Gear
- 10. •
• 1 Processing
• 2
• 3
• 4 Jamming Gear
- 11. • ITP*1 Tom Igoe
•
1
•
• 1
*1 Interactive Telecommunications Program
- 15. •
Nintendo Wii
•
• iPhone
•
- 17. •
ActionScript C C++ Java
•
•
- 19. •
– Flash
– Processing
– Max/MSP
•
– Gainer
– Arduino
– Phidgets
- 21. PIC AVR
program
A
a0]=ain.o;
aout.1 = 255;
B
C
D
- 22. PC Arduino Wiring
program
A
a0]=ain.o;
aout.1 = 255;
B
C
D
PC
program
a0]=ain.o;
aout.1 = 255;
- 24. I/O PC Gainer Phidgets
A
B
C
D
PC
program
a0]=ain.o;
aout.1 = 255;
- 34. Gainer I/O Arduino
Gainer I/O Arduino Duemilanove
16 20
A/D 8 8bit 6 10bit
PWM 8 8bit 6 8bit
1 0
LED 1 1 D13
Yes Yes
No Yes
- 35. Gainer I/O
• SparkFun Electronics PSoC
– Gainer PSoC Development Board
• Morecat Lab. AVR
– Pepper
– Ginger
– Sugar
• RT PIC
– Gainer mini
- 36. Gainer I/O Pepper
Gainer I/O Pepper
16 4
A/D 8 3
PWM 8 2
1 0
LED 1 0
Yes Yes
PSoC AVR
USB FTDI FT232RL V-USB
28mm×75mm 11mm×31mm
- 37. HELLO!!
• 2007.12.22-23
•
• 19
•
• Processing×Funnel×Gainer I/O
- 38. Jamming Gear
• ×
•
–
–
• ×FIO×Max/MSP×PC
• Make: Tokyo Meeting 01-02
IAMAS Gangu Project
- 47. Funnel Gainer
• Gainer
–
– Gainer I/O 1:1
–
• Funnel
–
– Arduino XBee
–
- 49. Funnel
Bill Buxton, Sketching User Experiences (2008)
- 50. Funnel
•
•
– Convolution
– SetPoint
– Scaler
– Osc
• I/O
- 64. Processing 1
1 Hello World!
println(quot;Hello World!quot;);
- 65. Processing 2
2
// 1
void setup() {
// Display Window
size(200, 200);
}
//
void draw() {
//
background(255, 255, 255);
}
- 66. Processing 3
3
void setup() {
size(200, 200);
}
void draw() {
background(0);
stroke(255);
line(0, 0, 199, 199);
}
- 67. Processing 4
4
int brightness = 0; //
void setup() {
...
void draw() {
background(brightness); // brightness
}
void mousePressed() {
brightness = 255; // 255
}
void mouseReleased() {
brightness = 0; // 0
}
- 75. • 1,000 1kΩ
• 1,000,000 1MΩ
• 1,000
1
1mA
• 1,000,000
1
50µA
- 88. − LED = LED ×R
R
− LED
R=
LED
5.0V LED 1.8V 10mA
5 − 1.8 3.2
R= = =
0.01 0.01
- 91. Gainer I/O
2
• dout 0 1 2
– LED
–
• aout 0 1 256 *2
– LED
–
*2 PWM
- 94. 1
5 LED 01 ControlLEDByMouse
import processing.funnel.*;
Gainer gainer;
void setup() {
size(200, 200);
gainer = new Gainer(this, Gainer.MODE1);
}
void draw() {
background(100);
}
- 95. 1
6 LED 01 ControlLEDByMouse
void mousePressed() {
gainer.analogOutput(0).value = 1.0;
}
void mouseReleased() {
gainer.analogOutput(0).value = 0.0;
}
- 96. 2
7 LED 02 ControlLEDByMouseX
import processing.funnel.*;
Gainer gainer;
void setup() {
size(200, 200);
gainer = new Gainer(this, Gainer.MODE1);
}
void draw() {
float val = (float)mouseX / (width - 1);
background(255 * val);
gainer.analogOutput(0).value = val;
}
- 97. Gainer I/O
2
• din 0 1 2
–
–
• ain 0 1 256
–
–
- 103. • 04 Tree *3
• Funnel import
• mouseX ain 0
*3 Topics/Fractals and L-Systems/Tree
- 104. 8 SetPoint 0 1 05 SetPoint
import processing.funnel.*;
Gainer gainer;
int brightness = 0;
void setup() {
size(200, 200);
gainer = new Gainer(this, Gainer.MODE1);
// 0 SetPoint
gainer.analogInput(0).addFilter(new SetPoint(0.5, 0.1));
}
void draw() {
background(brightness);
}
- 105. 9 SetPoint 0 1 05 SetPoint
// 0 0
void risingEdge(PinEvent event) {
//
if (event.target.number == gainer.analogInput[0]) {
//
brightness = 255;
}
}
// 0 0
void fallingEdge(PinEvent event) {
//
if (event.target.number == gainer.analogInput[0]) {
//
brightness = 0;
}
}
- 112. Jamming Gear
10 1 06 RotaryEncoder1
import processing.funnel.*;
Gainer pepper;
int count = 0;
void setup() {
...
pepper = new Gainer(this, Gainer.MODE1);
pepper.analogInput(0).addFilter(new SetPoint(0.5, 0.1));
}
void fallingEdge(PinEvent event) {
if (event.target.number == pepper.analogInput[0]) {
count++;
}
}
- 115. Jamming Gear
11 2 07 RotaryEncoder2
void setup() {
...
pepper = new Gainer(this, Gainer.MODE1);
pepper.analogInput(0).addFilter(new SetPoint(0.5, 0.1));
pepper.analogInput(1).addFilter(new SetPoint(0.5, 0.1));
}
void fallingEdge(PinEvent event) {
if (event.target.number == pepper.analogInput[0]) {
if (pepper.analogInput(1).value == 1) {
count--;
} else {
count++;
}
}
}
- 116. Jamming Gear
12 2 08 RotaryEncoder3
// ain 0 ain 1
//
void ridingEdge(PinEvent event) {
if (event.target.number == pepper.analogInput[0]) {
if (pepper.analogInput(1).value == 0) {
count--;
} else {
count++;
}
}
}
- 117. •
–
–
– USB
• Pepper
• 2000
• mtm03@funnel.cc