Geidai Open Workshop 2009
Upcoming SlideShare
Loading in...5
×
 

Geidai Open Workshop 2009

on

  • 1,767 views

Slides for the workshop at Tokyo Geidai in 2009

Slides for the workshop at Tokyo Geidai in 2009

Statistics

Views

Total Views
1,767
Views on SlideShare
1,598
Embed Views
169

Actions

Likes
0
Downloads
19
Comments
0

1 Embed 169

http://funnel.cc 169

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Geidai Open Workshop 2009 Geidai Open Workshop 2009 Presentation Transcript

    • 21 2009 8 8 9 1 2 3 3 1 2 3
    • 1 • 10:00 11:00 • 11:00 12:00 • Funnel 13:00 14:30 • FIO 15:00 16:30 • 16:30 17:00 • 17:30 18:00 • 18:00 19:00
    • 2 • 10:00 12:00 • 13:00 16:00 • 16:30 18:00 • 18:00 19:00
    • 1/2 Gainer I/O 1 USB A-B A-miniB 1 SAD-01 1 SPP-100 SKS-140 330Ω 1 150Ω 2 10kΩ 1 10kΩ B 1 CdS 5mm 1 LED 1
    • 2/2 KMX52-1050 1 LED OSTA71A1D-A 1 GP2Y0A21 1 RBSCGP 1 6mm 1
    • • 1970 • 1993 2004 – – – • IAMAS 2004 – –
    • GAINER GainerBook Labo 2007 2008
    • Making Things Talk Arduino Tom Igoe 2008
    • Make Volume 04 Sketch 2008
    • Make Volume 05 Sketch / Prototype 2008
    • Make Volume 06 Prototyping Lab: 2009
    • Make Volume 07 Prototyping Lab: Jamming Gear 2009
    • • • •
    • • ITP*1 Tom Igoe • 1 • • 1 *1 Interactive Telecommunications Program
    • • • LED • I/O PC
    • 1 Mountain Guitar • • – – • I/O PC • IAMAS • CG
    • 1 Mountain Guitar • Ars Electronica 2007 campus2.0 • IAMAS • 2007 • 11
    • 2 Jamming Gear • × • – – • ×FIO×Max/MSP×PC • Ars Electronica 2009 Digital Music Honorary Mention
    • 3 • • • ×XBee×Funnel×PC • Make: Tokyo Meeting 01-02 IAMAS Gangu Project
    • • • • • • •
    • • • • littleBits coffemaker*2 *2 http://www.vimeo.com/1389390
    • • – – • – –
    • PC • ASCII • 1 bps
    • Alto (1973) http://toastytech.com/guis/
    • • ActionScript C C++ Java • •
    • • •
    • • – Flash – Processing – Max/MSP • – Gainer – Arduino – Phidgets
    • Arduino Wiring PIC program A a0]=ain.o; aout.1 = 255; B C D
    • PC Arduino Wiring program A a0]=ain.o; aout.1 = 255; B C D PC program a0]=ain.o; aout.1 = 255;
    • Arduino SparkFun Electronics
    • I/O PC Gainer Phidgets A B C D PC program a0]=ain.o; aout.1 = 255;
    • Phidgets
    • Gainer • I/O • – ActionScript 2/3 – Processing – Max/MSP
    • Gainer I/O
    • I/O
    • I/O
    • LED
    • • 2008 8 130 • – – –
    • • • • • • • • 2 3
    • HELLO!! • 2007.12.22-23 • • 19 • • Processing×Funnel×Gainer I/O
    • • • • • OK
    • 2008
    • • – 2 – GND – V
    • • – – A
    • • – – Ω
    • • 1,000 1kΩ • 1,000,000 1MΩ • 1,000 1 1mA • 1,000,000 1 50µA
    • • •
    • +5V GND
    • LED
    • • • – – –
    • • • •
    • LED
    • LED • LED 20mA • • •
    • V =I ×R • V V • I A • R Ω
    • − LED = LED ×R R − LED R= LED 5.0V LED 1.8V 10mA 5 − 1.8 3.2 R= = = 0.01 0.01
    • LED
    • • +5V • GND •
    • LED NG
    • LED
    • LED 7
    • physical × wonderfl • •
    • wonderfl http://wonderfl.net • • Flash – – fork • 2008 12 9,000 28,000 AS3
    • physical × wonderfl http://physical.wonderfl.net • IAMAS • wonderfl – Funnel – – GUI • 2009 7 24
    • • wonderfl – – • IAMAS wxp – – hoonida-kim –
    • physical × wonderfl • • •
    • • • • •
    • • • •
    • physical × wonderfl • http://tinyurl.com/nbspoe • http://tinyurl.com/nho2rx
    • Funnel Gainer • Gainer • • •
    • Funnel • • •
    • Funnel • – – – – •
    • Funnel • • •
    • Funnel Sketching User Experiences Getting the Design Right and the Right Design Bill Buxton Morgan Kaufmann Pub 2007
    • Funnel Bill Buxton, Sketching User Experiences (2008)
    • Funnel • – Convolution – SetPoint – Scaler – Osc • I/O
    • Funnel
    • ActionScritpt 3 Processing • ActionScript 3 – – – • Processing – – – Java
    • • • •
    • Gainer 1 var lastState = -1; // var t = 127; // var h = 20; // var gio = new Gainer(); function loop():void { var state = lastState; var val = gio.analogInput[0]; // 0 if (val < (t - h)) // state = 0; // 0 else if (val > (t + h)) // state = 1; // 1 if (lastState == 0 && state == 1) // 0 1 sound.start(); // lastState = state; // }
    • Funnel 2 var gio = new Gainer(); // gio.addFilter(new SetPoint(0.5, 0.1)); // gio.addEventListener(RISING_EDGE, onButtonPress); // function onButtonPress(e:Event):void { sound.start(); // }
    • UI • • • • LED • LED • H
    • UI 3 LED var gio:Gainer = new Gainer(); // gio.button.addEventListener(PRESS, function(e:Event):void { gio.led.blink(200, 1); // LED 200ms 1 }); // gio.button.addEventListener(LONG_PRESS, function(e:Event):void { gio.led.blink(200, 3); // LED 200ms 3 });
    • Gainer I/O 2 • din 0 1 2 – – • ain 0 1 256 – –
    • din 0
    • din 0
    • • • – rising edge – falling edge
    • Funnel http://tinyurl.com/no7bvt 4 var gio:Gainer = new Gainer(); gio.digitalInput(0).addEventListener(RISING_EDGE, function(e:Event):void { // 0 1 }); gio.digitalInput(0).addEventListener(FALLING_EDGE, function(e:Event):void { // 1 0 });
    • ain 0
    • ain 0
    • ain 0 • SignalScope http://tinyurl.com/kovuvl • • ain 1 •
    • ain 0 CdS
    • ain 0 CdS
    • ain 0 CdS http://tinyurl.com/mbh74x • • SignalScope • •
    • Scaler http://tinyurl.com/ktt7w8 5 Scaler gio = new Gainer(); gio.analogInput(0).filters = [new Scaler(0.2, 0.6, 0, 1, Scaler.LINEAR, true)];
    • • – – •
    • SetPoint http://tinyurl.com/mku948 6 SetPoint gio = new Gainer(); gio.analogInput(0).filters = [new SetPoint([0.5, 0.1])]; gio.analogInput(0).addEventListener(RISING_EDGE, onRisingEdge); gio.analogInput(0).addEventListener(FALLING_EDGE, onFallingEdge);
    • ain 0
    • ain 0
    • ain 0
    • ain 0 • PSD •
    • ain 0
    • ain 0
    • ain 0 SoftPot
    • ain 0 SoftPot
    • ain 0 SoftPot • • •
    • ain
    • ain
    • • •
    • http://tinyurl.com/l2ojfc • • -1 +1 • sin •
    • • • LPF • HPF
    • Convolution http://tinyurl.com/nb6xto 7 Convolution gio = new Gainer(); gio.analogInput(0).filters = [new Convolution(Convolution.MOVING_AVERAGE)];
    • 8 public function GainerAccelerometer() { gio = new Gainer(); board = new Shape(); ... this.addChild(board); var smoother:Convolution = new Convolution(Convolution.MOVING_AVERAGE); var scaler:Scaler = new Scaler(0.30, 0.70, -1, 1, Scaler.LINEAR, true); gio.analogInput(1).filters = [smoother, scaler]; addEventListener(Event.ENTER_FRAME, loop); } private function loop(event:Event):void { board.rotation = Math.asin(gio.analogInput(1).value) / Math.PI * 180; }
    • Gainer I/O 2 • dout 0 1 2 – LED – • aout 0 255 256 *3 – LED – *3 PWM
    • 9 I/O LED public function GainerLED() { ... var circle:Sprite = new Sprite(); ... this.addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed); circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); } private function mousePressed(e:MouseEvent):void { gio.led.value = 1; } private function mouseReleased(e:MouseEvent):void { gio.led.value = 0; }
    • 10 I/O LED LED button.fla public function GainerLED() { gio = new Gainer(); gio.button.addEventListener(PinEvent.RISING_EDGE, buttonPressed); gio.button.addEventListener(PinEvent.FALLING_EDGE, buttonReleased); } private function buttonPressed(e:PinEvent):void { gio.led.value = 1; } private function buttonReleased(e:PinEvent):void { gio.led.value = 0; }
    • dout 0 LED
    • dout 0 LED
    • http://tinyurl.com/mtrq6f
    • aout 0 LED
    • aout 0 LED
    • http://tinyurl.com/nbspoe
    • Osc LED http://tinyurl.com/nh4287
    • Flash IDE • wonderfl • wonderfl • • fla •
    • FIO 1 EIC-801 1 1 1 XBee 2 XBee Explorer USB 1
    • FIO (Funnel I/O) • LilyPad Arduino v1.6 • • XBee
    • FIO (Funnel I/O) v1.3
    • FIO (Funnel I/O) v1.3
    • FIO (Funnel I/O) v1.3 - +
    • FIO (Funnel I/O) v1.3
    • FIO v1.3 vs Funnel IO Remixed
    • Arduino • Hernando Barrag´n a IDII*4 Wiring • • IDE Arduino I/O *4 Interaction Design Institute Ivrea
    • Wiring SparkFun Electronics
    • Arduino Duemilanove SparkFun Electronics
    • Arduino IDE
    • • – – •
    • LilyPad Arduino SparkFun Electronics
    • Arduino Pro Mini SparkFun Electronics
    • Arduino ProtoShield SparkFun Electronics
    • Arduino XBee Shield SparkFun Electronics
    • Arduino GND +5V GND
    • 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
    • Arduino • • • •
    • Arduino LED 11 Arduino LED int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); }
    • C LED 12 C LED #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/delay.h> #define CLK_CALIB_DATA (FLASHEND - 3) void init() { uint8_t osccal_data = pgm_read_byte(CLK_CALIB_DATA); if (osccal_data != 0xff) OSCCAL = osccal_data; DDRB = 0xff; DDRD = 0xff; return; }
    • C LED 13 C LED void delay_ms(uint16_t t) { while (t--) _delay_ms(1); } int main(void) { init(); for (; ;) { PORTB = 0xff; delay_ms(500); PORTB = 0x00; delay_ms(500); } return 0; }
    • Arduino • C/C++ • •
    • Arduino PC • – – USB – Ethernet • – Bluetooth – IEEE 802.15.4 / ZigBee
    • Firmata http://firmata.org/ • Hans-Christoph Steiner • MIDI • Arduino 0012
    • Firmata PC • Pd (aka Pure Data) • Processing • Funnel • Linux C++ • C++/openFrameworks
    • 10G IEEE 802.11n 100M IEEE 802.11a/g 10M IEEE 802.11b Bluetooth 1M ANT 100k ZigBee/IEEE 802.15.4 10k 1k 0.1m 1m 10m 100m 1km BAN PAN LAN MAN
    • Wi-Fi Bluetooth 802.15.4/ZigBee IEEE 802.11a/b/g/n 802.15.1 802.15.4 2.4GHz/5GHz 2.4GHz 866MHz/915MHz/2.4GHz 100m 100m 100m 2.4GHz 300Mbps 3Mbps 250kbps 2.4GHz 32 7 65535 LAN 1
    • IEEE 802.15.4 • 1 •
    • IEEE 802.15.4 Point to Point Star Point to Multi 802.15.4 Coordinator 802.15.4 End Device
    • ZigBee • 1 • •
    • ZigBee Mesh Coordinator Router End Device
    • XBee • IEEE 802.15.4 ZigBee 2 *5 – XBee 802.15.4 – XBee ZB ZigBee PRO • 3500 • • *5
    • XBee • 5V • UDP • 100kbps
    • XBee XBee • hardware/fio/tool/XBeeConfigTool • • PAN ID • • MY ID • Configure
    • FIO • XBee Explorer USB PC • Arduino 16 • Tools Board Arduino Pro/ Pro Mini (8MHz) • Tools Serial Port • Open Examples Digital Blink • Upload to I/O Board
    • FIO • hardware/fio/firmware/FioStandardFirmata • Upload to I/O Board
    • FIO • FIO • XBee Explorer USB PC • Funnel Server • – http://tinyurl.com/n4c7a5 – http://tinyurl.com/kp7jqs
    • FIO LED
    • FIO
    • 21 2009 8 8 9 1 2 3 3 1 2 3