SlideShare ist ein Scribd-Unternehmen logo
1 von 155
http://67.org/ws/




   Funnel           ActionScript
•   1   13:00 14:30
  –
  – Funnel
  – Funnel Gainer
  – Funnel
•   2   14:45 16:15
  – FIO Funnel I/O
    ∗ Arduino
    ∗ XBee
  – Funnel 009
  –
• 1970
•              1993 2004
  –
  –
  –
• IAMAS 2004
  –
  –
  –
•

•

•
Make            Volume 04
       Sketch
                            2008
Make          Volume 05
Sketch / Prototype
                          2008
Make          Volume 06
Prototyping Lab:
                          2009
GAINER
GainerBook Labo   2007   2008
Making Things Talk
Arduino
Tom Igoe             2008
•                      ITP*1   Tom Igoe

•                                                 1
•

•                          1




    *1   Interactive Telecommunications Program
PC
•        ASCII
•         1
                 bps
Alto (1973)




              http://toastytech.com/guis/
•
•
•
•
•
•
•
•
•



          littleBits coffemaker*2




    *2   http://www.vimeo.com/1389390
•
    –
    –
•
    –
    –
1
•
•
•          ×XBee×Funnel×PC
• Make: Tokyo Meeting 01-02
  IAMAS Gangu Project
2 Jamming Gear
•       ×
•
    –
    –
•          ×FIO×Max/MSP×PC
• Make: Tokyo Meeting 01-02
  IAMAS Gangu Project
HELLO!!
•      2007.12.22-23
•
•        19
•
•      Processing×Funnel×Gainer I/O
PIC AVR
      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 I/O




              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
•
    –2
    –    GND
    –    V
•
    –
    –   A
•
    –
    –   Ω
• 1,000          1kΩ
• 1,000,000            1MΩ
• 1,000
    1
                1mA
•       1
                       50µA
    1,000,000
•
•
+5V   GND
LED
•
•
    –
    –
    –
•
•
•
LED
LED

• LED
        20mA
•
•
•
V =I ×R

•V    V
•I   A
•R    Ω
− LED                          ×R
                  = LED

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
Funnel
Gainer
•        GUI

•
Funnel

•
•
•
Funnel

•
    –
    –
    –
    –
•
Funnel
•
•
•
Bill Moggridge, Designing Interactions (2006)
Funnel   Gainer
• Gainer
  –
  – Gainer I/O 1:1
• Funnel
  –
  – Arduino XBee
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




         Bill Buxton, Sketching User Experiences (2008)
Funnel
• GUI
•
  –                      Convolution
  –                           SetPoint
  –             Scaler
  –            Osc
•        I/O
Funnel
Gainer I/O
        2
•            din 0   1     2
    –
    –
•            ain 0 1     256
    –
    –
din 0
din 0
•
•
    –   rising edge
    –   falling edge
1

var wasPressed:boolean = false; //

gio.onReady = function() {
    gio.beginDigitalInput();

     _root.onEnterFrame = function() {
         var isPressed:boolean = gio.digitalInput[0]; //

          if (!wasPressed && isPressed) {
              //          0    1
          } else if (wasPressed && !isPressed) {
              //          1    0
          }

          wasPressed = isPressed; //
     };
};
Funnel

                         2

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
• GainerSignalScope
•
• ain 1
•
ain 0   CdS
ain 0   CdS
ain 0                 CdS
•
• GainerSignalScope
•
•
Gainer.remap()

                          3 Gainer.remap()

import gainer.*;
var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true);

gio.onReady = function() {
    gio.beginAnalogInput();

     _root.onEnterFrame = function() {
         var val:Number;
         var frames:Number = movieClip._totalframes;

          //ain 0 0-255
          val = Math.round(Gainer.remap(gio.analogInput[0], 0, 255, 1, frames));

          _root.movieClip.gotoAndStop(val);
     };
};
Scaler

                           4 Scaler

gio = new Gainer();

gio.analogInput(0).filters = [new Scaler(0.2, 0.6, 0, 1, Scaler.LINEAR, true)];
•
    –
    –
•
1        2

                          51     2   set point.fla

var threshold:Number = 127; //
var hysteresis:Number = 10; //
var lastState:Number = -1; //

gio.onReady = function() {
    gio.beginAnalogInput();
1           2

                               61     2

     _root.onEnterFrame = function() {
         var state:Number = lastState;
         var val:Number = gio.analogInput[0];

          if (val < threshold) {
              state = 0;
          } else {
              state = 1;
          }

          if (lastState != state) {
              //
          }

          lastState = state;
     };
};
1           2

                            71      2

     _root.onEnterFrame = function() {
         var state:Number = lastState;
         var val:Number = gio.analogInput[0];

          if (val <   (threshold - hysteresis)) {
              state   = 0;
          } else if   (val > (threshold + hysteresis)) {
              state   = 1;
          }

          if (lastState != state) {
              //
          }

          lastState = state;
     };
};
SetPoint

                            8 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   SoftPot
ain 0   SoftPot
ain 0   SoftPot
•
•
•
ain
ain
•
•
•
• -1     +1
•    sin
•
•
•   LPF
•   HPF
9                        MovingAverageFilter.as

class MovingAverageFilter {
    private var _taps:Number; //
    private var _values:Array; //

   function MovingAverageFilter(taps:Number) {
       _taps = taps;
       _values = new Array(_taps);
   }

   function processSample(sample:Number):Number {
       var acc:Number = 0;
       var i:Number = 0;

       //
       _values[0] = sample;
10

        //
        for (i = 0; i < _taps; i++) {
            acc = acc + _values[i];
        }
        acc = acc / _taps;

        // 1
        //          [A][B][C][D][E] ...
        //          [A][A][B][C][D] ...
        for (i = _taps - 1; i > 0; i--) {
            _values[i] = _values[i - 1];
        }

        return acc;
    }
}
Gainer

                        11 MovingAverageFilter

var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true);

//
var smoothFilter:MovingAverageFilter = new MovingAverageFilter(8);

function loop():Void {
    var val:Number = smoothFilter.processSample(this.analogInput[0]);
    ...
Convolution

                      12 Convolution

gio = new Gainer();

gio.analogInput(0).filters = [new Convolution(Convolution.MOVING_AVERAGE)];
13

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
    –
•                                *3
              aout 0 255   256
    – LED
    –




    *3       PWM
14         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;
}
15        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
16                       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.digitalOutput(0).value = 1;
}

private function mouseReleased(e:MouseEvent):void {
    gio.digitalOutput(0).value = 0;
}
aout 0   LED
aout 0   LED
17         x      LED

public function GainerLED() {
    gio = new Gainer();

    stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoved);
    gio.analogOutput(0).filters = [new Scaler(0, 199, 0, 1, Scaler.LINEAR, true)];
}

private function mouseMoved(e:MouseEvent):void {
    gio.analogOutput(0).value = e.stageX;
}
Osc        LED

                             18 Osc   LED

public function GainerLED() {
    ...
    circle.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
    circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);

    gio.analogOutput(0).filters = [new Osc(Osc.SQUARE, 0.5, 1, 0, 0)];
}

private function mousePressed(e:MouseEvent):void {
    gio.analogOutput(0).filters[0].start();
}

private function mouseReleased(e:MouseEvent):void {
    gio.analogOutput(0).filters[0].stop();
    gio.analogOutput(0).value = 0;
}
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       IDII*4
                 a
  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 vs Arduino
        Gainer      Arduino Duemilanove
        16          20 RX/TX
  A/D   8 8bit      6 10bit
 PWM    8 8bit      6 8bit
  LED   1           0
  LED   1           1 D13
        Yes         Yes
        No          Yes
Arduino
•
•
•
•
Arduino                 LED

                                19 Arduino   LED

int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}
C                   LED

                            20       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

                             21   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

                      Star
  Point to Point




  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 15
• 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
•   FioTest
Funnel 009
• I2 C
  –
  –
  –         LED
• Funnel Server
• XBee       FIO
•
2006
•
    –
    – 3D
    –
    –
•
•
2008
http://67.org/ws/




   Funnel           ActionScript

Weitere ähnliche Inhalte

Was ist angesagt?

TC74VHC244FW PSpice Model (Free SPICE Model)
TC74VHC244FW PSpice Model (Free SPICE Model)TC74VHC244FW PSpice Model (Free SPICE Model)
TC74VHC244FW PSpice Model (Free SPICE Model)
Tsuyoshi Horigome
 
TC74VHC244FT PSpice Model (Free SPICE Model)
TC74VHC244FT PSpice Model (Free SPICE Model)TC74VHC244FT PSpice Model (Free SPICE Model)
TC74VHC244FT PSpice Model (Free SPICE Model)
Tsuyoshi Horigome
 
TC74VHC244F PSpice Model (Free SPICE Model)
TC74VHC244F PSpice Model (Free SPICE Model)TC74VHC244F PSpice Model (Free SPICE Model)
TC74VHC244F PSpice Model (Free SPICE Model)
Tsuyoshi Horigome
 
Mdp plus 2.1
Mdp plus 2.1Mdp plus 2.1
Mdp plus 2.1
boedax
 
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollideropenFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
Atsushi Tadokoro
 
Stabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance EvaluationStabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance Evaluation
Emery Berger
 
TC74VCX244FT PSpice Model (Free SPICE Model)
TC74VCX244FT PSpice Model (Free SPICE Model)TC74VCX244FT PSpice Model (Free SPICE Model)
TC74VCX244FT PSpice Model (Free SPICE Model)
Tsuyoshi Horigome
 

Was ist angesagt? (19)

Home Automation with Android Things and the Google Assistant
Home Automation with Android Things and the Google AssistantHome Automation with Android Things and the Google Assistant
Home Automation with Android Things and the Google Assistant
 
Using Android Things to Detect & Exterminate Reptilians
Using Android Things to Detect & Exterminate ReptiliansUsing Android Things to Detect & Exterminate Reptilians
Using Android Things to Detect & Exterminate Reptilians
 
TC74VHC244FW PSpice Model (Free SPICE Model)
TC74VHC244FW PSpice Model (Free SPICE Model)TC74VHC244FW PSpice Model (Free SPICE Model)
TC74VHC244FW PSpice Model (Free SPICE Model)
 
TC74VHC244FT PSpice Model (Free SPICE Model)
TC74VHC244FT PSpice Model (Free SPICE Model)TC74VHC244FT PSpice Model (Free SPICE Model)
TC74VHC244FT PSpice Model (Free SPICE Model)
 
TC74VHC244F PSpice Model (Free SPICE Model)
TC74VHC244F PSpice Model (Free SPICE Model)TC74VHC244F PSpice Model (Free SPICE Model)
TC74VHC244F PSpice Model (Free SPICE Model)
 
Device Modeling of Oscillator using PSpice
Device Modeling of Oscillator using PSpiceDevice Modeling of Oscillator using PSpice
Device Modeling of Oscillator using PSpice
 
Mdp plus 2.1
Mdp plus 2.1Mdp plus 2.1
Mdp plus 2.1
 
Digital system design practical file
Digital system design practical fileDigital system design practical file
Digital system design practical file
 
Vhdl lab manual
Vhdl lab manualVhdl lab manual
Vhdl lab manual
 
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollideropenFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
 
Stabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance EvaluationStabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance Evaluation
 
Arduino code
Arduino codeArduino code
Arduino code
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex models
 
Scala Under the Hood / ScalaSwarm
Scala Under the Hood / ScalaSwarmScala Under the Hood / ScalaSwarm
Scala Under the Hood / ScalaSwarm
 
NSClient++ whats new for 0.3.9 users
NSClient++ whats new for 0.3.9 usersNSClient++ whats new for 0.3.9 users
NSClient++ whats new for 0.3.9 users
 
W8_2: Inside the UoS Educational Processor
W8_2: Inside the UoS Educational ProcessorW8_2: Inside the UoS Educational Processor
W8_2: Inside the UoS Educational Processor
 
TC74VCX244FT PSpice Model (Free SPICE Model)
TC74VCX244FT PSpice Model (Free SPICE Model)TC74VCX244FT PSpice Model (Free SPICE Model)
TC74VCX244FT PSpice Model (Free SPICE Model)
 
Arduino workshop
Arduino workshopArduino workshop
Arduino workshop
 
Ns client++ icinga camp
Ns client++ icinga campNs client++ icinga camp
Ns client++ icinga camp
 

Andere mochten auch (7)

Presentation 2nd campaign ideas
Presentation 2nd campaign ideasPresentation 2nd campaign ideas
Presentation 2nd campaign ideas
 
Flea marlet flyer
Flea marlet flyerFlea marlet flyer
Flea marlet flyer
 
Shanghai XY Flea Market - historical moment
Shanghai XY Flea Market - historical momentShanghai XY Flea Market - historical moment
Shanghai XY Flea Market - historical moment
 
Janet Firth's Flea Market Flips
Janet Firth's Flea Market FlipsJanet Firth's Flea Market Flips
Janet Firth's Flea Market Flips
 
130205 epa exc_event_seminar
130205 epa exc_event_seminar130205 epa exc_event_seminar
130205 epa exc_event_seminar
 
Plan it!
Plan it!Plan it!
Plan it!
 
Dream wedding planner
Dream wedding plannerDream wedding planner
Dream wedding planner
 

Ähnlich wie 67WS Seminar Event

Workshop at IAMAS 2008-05-24
Workshop at IAMAS 2008-05-24Workshop at IAMAS 2008-05-24
Workshop at IAMAS 2008-05-24
Shigeru Kobayashi
 
WCAN mini ActionScript Vol.4
WCAN mini ActionScript Vol.4WCAN mini ActionScript Vol.4
WCAN mini ActionScript Vol.4
Shigeru Kobayashi
 
Workshop @ Make: Tokyo Meeting 02
Workshop @ Make: Tokyo Meeting 02Workshop @ Make: Tokyo Meeting 02
Workshop @ Make: Tokyo Meeting 02
Shigeru Kobayashi
 
Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013
Tom Paulus
 
Twin wheeler modified for arduino simplified serial protocol to sabertooth v21
Twin wheeler modified for arduino simplified serial protocol to sabertooth v21Twin wheeler modified for arduino simplified serial protocol to sabertooth v21
Twin wheeler modified for arduino simplified serial protocol to sabertooth v21
josnihmurni2907
 

Ähnlich wie 67WS Seminar Event (20)

Workshop at AXIS Inc.
Workshop at AXIS Inc.Workshop at AXIS Inc.
Workshop at AXIS Inc.
 
Workshop at IAMAS 2008-05-24
Workshop at IAMAS 2008-05-24Workshop at IAMAS 2008-05-24
Workshop at IAMAS 2008-05-24
 
Make: Tokyo Meeting 03
Make: Tokyo Meeting 03Make: Tokyo Meeting 03
Make: Tokyo Meeting 03
 
YCAM Workshop Part 2
YCAM Workshop Part 2YCAM Workshop Part 2
YCAM Workshop Part 2
 
Geidai Open Workshop 2009
Geidai Open Workshop 2009Geidai Open Workshop 2009
Geidai Open Workshop 2009
 
67WS Funnel
67WS Funnel67WS Funnel
67WS Funnel
 
YCAM Workshop Part 1
YCAM Workshop Part 1YCAM Workshop Part 1
YCAM Workshop Part 1
 
67WS Event FIO Primer
67WS Event FIO Primer67WS Event FIO Primer
67WS Event FIO Primer
 
dotFes 2008 TOKYO
dotFes 2008 TOKYOdotFes 2008 TOKYO
dotFes 2008 TOKYO
 
WCAN mini ActionScript Vol.4
WCAN mini ActionScript Vol.4WCAN mini ActionScript Vol.4
WCAN mini ActionScript Vol.4
 
Workshop @ Make: Tokyo Meeting 02
Workshop @ Make: Tokyo Meeting 02Workshop @ Make: Tokyo Meeting 02
Workshop @ Make: Tokyo Meeting 02
 
Programming arduino makeymakey
Programming arduino makeymakeyProgramming arduino makeymakey
Programming arduino makeymakey
 
YCAM Workshop Part 3
YCAM Workshop Part 3YCAM Workshop Part 3
YCAM Workshop Part 3
 
Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013
 
P-Space Arduino/Genuino day 2016
P-Space Arduino/Genuino day 2016P-Space Arduino/Genuino day 2016
P-Space Arduino/Genuino day 2016
 
iOS Bluetooth Low Energy (BLE) Remote Robot Interface
iOS Bluetooth Low Energy (BLE) Remote Robot InterfaceiOS Bluetooth Low Energy (BLE) Remote Robot Interface
iOS Bluetooth Low Energy (BLE) Remote Robot Interface
 
Twin wheeler modified for arduino simplified serial protocol to sabertooth v21
Twin wheeler modified for arduino simplified serial protocol to sabertooth v21Twin wheeler modified for arduino simplified serial protocol to sabertooth v21
Twin wheeler modified for arduino simplified serial protocol to sabertooth v21
 
Arduino for Beginners
Arduino for BeginnersArduino for Beginners
Arduino for Beginners
 
Game Development using SDL and the PDK
Game Development using SDL and the PDK Game Development using SDL and the PDK
Game Development using SDL and the PDK
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in action
 

Mehr von Shigeru Kobayashi

情報学基礎:エレクトロニクス
情報学基礎:エレクトロニクス情報学基礎:エレクトロニクス
情報学基礎:エレクトロニクス
Shigeru Kobayashi
 
Engadget電子工作部:インテルGalileoでガジェットを作ろう!
Engadget電子工作部:インテルGalileoでガジェットを作ろう!Engadget電子工作部:インテルGalileoでガジェットを作ろう!
Engadget電子工作部:インテルGalileoでガジェットを作ろう!
Shigeru Kobayashi
 

Mehr von Shigeru Kobayashi (20)

Maker Faireを持続可能にするには?
Maker Faireを持続可能にするには?Maker Faireを持続可能にするには?
Maker Faireを持続可能にするには?
 
Maker Faire Tokyo 2018
Maker Faire Tokyo 2018Maker Faire Tokyo 2018
Maker Faire Tokyo 2018
 
IoT Workshop in Macao
IoT Workshop in MacaoIoT Workshop in Macao
IoT Workshop in Macao
 
au未来研究所ハッカソン
au未来研究所ハッカソンau未来研究所ハッカソン
au未来研究所ハッカソン
 
Maker Faire Tokyo 2015
Maker Faire Tokyo 2015Maker Faire Tokyo 2015
Maker Faire Tokyo 2015
 
Gesture Workshop
Gesture WorkshopGesture Workshop
Gesture Workshop
 
Telematics Hackathon
Telematics HackathonTelematics Hackathon
Telematics Hackathon
 
テレマティクスハッカソン参加同意書
テレマティクスハッカソン参加同意書テレマティクスハッカソン参加同意書
テレマティクスハッカソン参加同意書
 
monoFab Ideathon Meeting
monoFab Ideathon MeetingmonoFab Ideathon Meeting
monoFab Ideathon Meeting
 
monoFabアイデアソンミーティング参加同意書
monoFabアイデアソンミーティング参加同意書monoFabアイデアソンミーティング参加同意書
monoFabアイデアソンミーティング参加同意書
 
CEATEC JAPAN 2014
CEATEC JAPAN 2014CEATEC JAPAN 2014
CEATEC JAPAN 2014
 
BLE Boot Camp
BLE Boot CampBLE Boot Camp
BLE Boot Camp
 
Fab MeetUp Vol.5
Fab MeetUp Vol.5Fab MeetUp Vol.5
Fab MeetUp Vol.5
 
SK creator planet 2014
SK creator planet 2014SK creator planet 2014
SK creator planet 2014
 
Solid 2014 kobayashi
Solid 2014 kobayashiSolid 2014 kobayashi
Solid 2014 kobayashi
 
情報学基礎:エレクトロニクス
情報学基礎:エレクトロニクス情報学基礎:エレクトロニクス
情報学基礎:エレクトロニクス
 
Rebuilding the world, from the 'periphery'
Rebuilding the world, from the 'periphery'Rebuilding the world, from the 'periphery'
Rebuilding the world, from the 'periphery'
 
Engadget電子工作部:インテルGalileoでガジェットを作ろう!
Engadget電子工作部:インテルGalileoでガジェットを作ろう!Engadget電子工作部:インテルGalileoでガジェットを作ろう!
Engadget電子工作部:インテルGalileoでガジェットを作ろう!
 
第2回iBeaconハッカソン
第2回iBeaconハッカソン第2回iBeaconハッカソン
第2回iBeaconハッカソン
 
イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房
イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房
イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房
 

Kürzlich hochgeladen

Minimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptxMinimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptx
balqisyamutia
 
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
HyderabadDolls
 
How to Build a Simple Shopify Website
How to Build a Simple Shopify WebsiteHow to Build a Simple Shopify Website
How to Build a Simple Shopify Website
mark11275
 
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
gajnagarg
 
cholilithiasis, cholecystitis,gall bladdder .pdf
cholilithiasis, cholecystitis,gall bladdder .pdfcholilithiasis, cholecystitis,gall bladdder .pdf
cholilithiasis, cholecystitis,gall bladdder .pdf
RawalRafiqLeghari
 
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
eeanqy
 
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Nitya salvi
 
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
nirzagarg
 
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 

Kürzlich hochgeladen (20)

Minimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptxMinimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptx
 
Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...
 
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call GirlsDahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
 
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
 
Kondapur ] High Profile Call Girls in Hyderabad (Adult Only) 9352988975 Escor...
Kondapur ] High Profile Call Girls in Hyderabad (Adult Only) 9352988975 Escor...Kondapur ] High Profile Call Girls in Hyderabad (Adult Only) 9352988975 Escor...
Kondapur ] High Profile Call Girls in Hyderabad (Adult Only) 9352988975 Escor...
 
How to Build a Simple Shopify Website
How to Build a Simple Shopify WebsiteHow to Build a Simple Shopify Website
How to Build a Simple Shopify Website
 
❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...
❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...
❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...
 
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
 
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
 
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdfJordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
 
cholilithiasis, cholecystitis,gall bladdder .pdf
cholilithiasis, cholecystitis,gall bladdder .pdfcholilithiasis, cholecystitis,gall bladdder .pdf
cholilithiasis, cholecystitis,gall bladdder .pdf
 
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
 
Pondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime Pondicherry
Pondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime PondicherryPondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime Pondicherry
Pondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime Pondicherry
 
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
 
Branding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdfBranding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdf
 
Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...
Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...
Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...
 
The hottest UI and UX Design Trends 2024
The hottest UI and UX Design Trends 2024The hottest UI and UX Design Trends 2024
The hottest UI and UX Design Trends 2024
 
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
 
Essential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive GuideEssential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive Guide
 
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
 

67WS Seminar Event

  • 1. http://67.org/ws/ Funnel ActionScript
  • 2. 1 13:00 14:30 – – Funnel – Funnel Gainer – Funnel • 2 14:45 16:15 – FIO Funnel I/O ∗ Arduino ∗ XBee – Funnel 009 –
  • 3. • 1970 • 1993 2004 – – – • IAMAS 2004 – – –
  • 5. Make Volume 04 Sketch 2008
  • 6. Make Volume 05 Sketch / Prototype 2008
  • 7. Make Volume 06 Prototyping Lab: 2009
  • 10. ITP*1 Tom Igoe • 1 • • 1 *1 Interactive Telecommunications Program
  • 11. PC • ASCII • 1 bps
  • 12. Alto (1973) http://toastytech.com/guis/
  • 14. • • • littleBits coffemaker*2 *2 http://www.vimeo.com/1389390
  • 15. – – • – –
  • 16. 1 • • • ×XBee×Funnel×PC • Make: Tokyo Meeting 01-02 IAMAS Gangu Project
  • 17. 2 Jamming Gear • × • – – • ×FIO×Max/MSP×PC • Make: Tokyo Meeting 01-02 IAMAS Gangu Project
  • 18. HELLO!! • 2007.12.22-23 • • 19 • • Processing×Funnel×Gainer I/O
  • 19. PIC AVR program A a0]=ain.o; aout.1 = 255; B C D
  • 20. PC Arduino Wiring program A a0]=ain.o; aout.1 = 255; B C D PC program a0]=ain.o; aout.1 = 255;
  • 21. Arduino I/O SparkFun Electronics
  • 22. I/O PC Gainer Phidgets A B C D PC program a0]=ain.o; aout.1 = 255;
  • 24. Gainer • I/O • – ActionScript 2/3 – Processing – Max/MSP
  • 26. I/O
  • 27.
  • 28. I/O
  • 29.
  • 30. LED
  • 31. –2 – GND – V
  • 32.
  • 33. – – A
  • 34.
  • 35. – – Ω
  • 36.
  • 37. • 1,000 1kΩ • 1,000,000 1MΩ • 1,000 1 1mA • 1 50µA 1,000,000
  • 38.
  • 40. +5V GND
  • 41.
  • 42.
  • 43.
  • 44. LED
  • 45. • • – – –
  • 47. LED
  • 48. LED • LED 20mA • • •
  • 49. V =I ×R •V V •I A •R Ω
  • 50. − LED ×R = LED R − LED R= LED 5.0V LED 1.8V 10mA 5 − 1.8 3.2 R= = = 0.01 0.01
  • 51. LED
  • 52. +5V • GND •
  • 53. LED NG
  • 54. LED
  • 55. LED 7
  • 56. Funnel Gainer • GUI •
  • 58. Funnel • – – – – •
  • 60. Bill Moggridge, Designing Interactions (2006)
  • 61. Funnel Gainer • Gainer – – Gainer I/O 1:1 • Funnel – – Arduino XBee
  • 62. Funnel Sketching User Experiences Getting the Design Right and the Right Design Bill Buxton Morgan Kaufmann Pub 2007
  • 63. Funnel Bill Buxton, Sketching User Experiences (2008)
  • 64. Funnel Bill Buxton, Sketching User Experiences (2008)
  • 65. Funnel • GUI • – Convolution – SetPoint – Scaler – Osc • I/O
  • 67. Gainer I/O 2 • din 0 1 2 – – • ain 0 1 256 – –
  • 68. din 0
  • 69. din 0
  • 70. • • – rising edge – falling edge
  • 71. 1 var wasPressed:boolean = false; // gio.onReady = function() { gio.beginDigitalInput(); _root.onEnterFrame = function() { var isPressed:boolean = gio.digitalInput[0]; // if (!wasPressed && isPressed) { // 0 1 } else if (wasPressed && !isPressed) { // 1 0 } wasPressed = isPressed; // }; };
  • 72. Funnel 2 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 });
  • 73. ain 0
  • 74. ain 0
  • 76.
  • 77.
  • 78. ain 0 CdS
  • 79. ain 0 CdS
  • 80. ain 0 CdS • • GainerSignalScope • •
  • 81. Gainer.remap() 3 Gainer.remap() import gainer.*; var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); gio.onReady = function() { gio.beginAnalogInput(); _root.onEnterFrame = function() { var val:Number; var frames:Number = movieClip._totalframes; //ain 0 0-255 val = Math.round(Gainer.remap(gio.analogInput[0], 0, 255, 1, frames)); _root.movieClip.gotoAndStop(val); }; };
  • 82. Scaler 4 Scaler gio = new Gainer(); gio.analogInput(0).filters = [new Scaler(0.2, 0.6, 0, 1, Scaler.LINEAR, true)];
  • 83. – – •
  • 84. 1 2 51 2 set point.fla var threshold:Number = 127; // var hysteresis:Number = 10; // var lastState:Number = -1; // gio.onReady = function() { gio.beginAnalogInput();
  • 85. 1 2 61 2 _root.onEnterFrame = function() { var state:Number = lastState; var val:Number = gio.analogInput[0]; if (val < threshold) { state = 0; } else { state = 1; } if (lastState != state) { // } lastState = state; }; };
  • 86. 1 2 71 2 _root.onEnterFrame = function() { var state:Number = lastState; var val:Number = gio.analogInput[0]; if (val < (threshold - hysteresis)) { state = 0; } else if (val > (threshold + hysteresis)) { state = 1; } if (lastState != state) { // } lastState = state; }; };
  • 87. SetPoint 8 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);
  • 88. ain 0
  • 89. ain 0
  • 90. ain 0 SoftPot
  • 91. ain 0 SoftPot
  • 92. ain 0 SoftPot • • •
  • 93. ain
  • 94. ain
  • 96.
  • 97. • • -1 +1 • sin •
  • 98. • • LPF • HPF
  • 99. 9 MovingAverageFilter.as class MovingAverageFilter { private var _taps:Number; // private var _values:Array; // function MovingAverageFilter(taps:Number) { _taps = taps; _values = new Array(_taps); } function processSample(sample:Number):Number { var acc:Number = 0; var i:Number = 0; // _values[0] = sample;
  • 100. 10 // for (i = 0; i < _taps; i++) { acc = acc + _values[i]; } acc = acc / _taps; // 1 // [A][B][C][D][E] ... // [A][A][B][C][D] ... for (i = _taps - 1; i > 0; i--) { _values[i] = _values[i - 1]; } return acc; } }
  • 101. Gainer 11 MovingAverageFilter var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); // var smoothFilter:MovingAverageFilter = new MovingAverageFilter(8); function loop():Void { var val:Number = smoothFilter.processSample(this.analogInput[0]); ...
  • 102. Convolution 12 Convolution gio = new Gainer(); gio.analogInput(0).filters = [new Convolution(Convolution.MOVING_AVERAGE)];
  • 103. 13 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; }
  • 104. Gainer I/O 2 • dout 0 1 2 – LED – • *3 aout 0 255 256 – LED – *3 PWM
  • 105. 14 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; }
  • 106. 15 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; }
  • 107. dout 0 LED
  • 108. dout 0 LED
  • 109. 16 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.digitalOutput(0).value = 1; } private function mouseReleased(e:MouseEvent):void { gio.digitalOutput(0).value = 0; }
  • 110. aout 0 LED
  • 111. aout 0 LED
  • 112. 17 x LED public function GainerLED() { gio = new Gainer(); stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoved); gio.analogOutput(0).filters = [new Scaler(0, 199, 0, 1, Scaler.LINEAR, true)]; } private function mouseMoved(e:MouseEvent):void { gio.analogOutput(0).value = e.stageX; }
  • 113. Osc LED 18 Osc LED public function GainerLED() { ... circle.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed); circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); gio.analogOutput(0).filters = [new Osc(Osc.SQUARE, 0.5, 1, 0, 0)]; } private function mousePressed(e:MouseEvent):void { gio.analogOutput(0).filters[0].start(); } private function mouseReleased(e:MouseEvent):void { gio.analogOutput(0).filters[0].stop(); gio.analogOutput(0).value = 0; }
  • 114. FIO (Funnel I/O) • LilyPad Arduino v1.6 • • XBee
  • 117. FIO (Funnel I/O) v1.3 - +
  • 119. FIO v1.3 vs Funnel IO Remixed
  • 120. Arduino • Hernando Barrag´n IDII*4 a Wiring • • IDE Arduino I/O *4 Interaction Design Institute Ivrea
  • 121. Wiring SparkFun Electronics
  • 122. Arduino Duemilanove SparkFun Electronics
  • 124. – – •
  • 125. LilyPad Arduino SparkFun Electronics
  • 126. Arduino Pro Mini SparkFun Electronics
  • 127. Arduino ProtoShield SparkFun Electronics
  • 128. Arduino XBee Shield SparkFun Electronics
  • 129. Arduino GND +5V GND
  • 130. Gainer vs Arduino Gainer Arduino Duemilanove 16 20 RX/TX A/D 8 8bit 6 10bit PWM 8 8bit 6 8bit LED 1 0 LED 1 1 D13 Yes Yes No Yes
  • 132. Arduino LED 19 Arduino LED int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); }
  • 133. C LED 20 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; }
  • 134. C LED 21 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; }
  • 136. Arduino PC • – – USB – Ethernet • – Bluetooth – IEEE 802.15.4 / ZigBee
  • 138. Firmata PC • Pd (aka Pure Data) • Processing • Funnel • Linux C++ • C++/openFrameworks
  • 139. 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
  • 140. 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
  • 142. IEEE 802.15.4 Star Point to Point Point to Multi 802.15.4 Coordinator 802.15.4 End Device
  • 143. ZigBee • 1 • •
  • 144. ZigBee Mesh Coordinator Router End Device
  • 145. XBee • IEEE 802.15.4 ZigBee 2 *5 – XBee 802.15.4 – XBee ZB ZigBee PRO • 3500 • • *5
  • 146. XBee • 5V • UDP • 100kbps
  • 147. XBee XBee • hardware/fio/tool/XBeeConfigTool • • PAN ID • • MY ID • Configure
  • 148. FIO • XBee Explorer USB PC • Arduino 15 • Tools Board Arduino Pro/ Pro Mini (8MHz) • Tools Serial Port • Open Examples Digital Blink • Upload to I/O Board
  • 150. FIO • FIO • XBee Explorer USB PC • Funnel Server • FioTest
  • 151. Funnel 009 • I2 C – – – LED • Funnel Server • XBee FIO •
  • 152. 2006
  • 153. – – 3D – – • •
  • 154. 2008
  • 155. http://67.org/ws/ Funnel ActionScript