SlideShare uma empresa Scribd logo
1 de 185
IAMAS Gainer/Funnel
2009   3   15 16
1
•       10:00 10:30
•           10:30 11:30
•               11:30 12:00
•   1   13:00 14:45
•   2   15:00 16:45
•                 17:00 18:00
2
•   10:00 14:45
•                15:00 16:30
•        Funnel        16:30 17:30
•              17:30 18:00
•
•
•
• 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
1/2


Gainer I/O                  1
USB                         1
               SAD-01       1
               SPP-100
               470Ω         1
               10kΩ         1
               10kΩ B       1
CdS            5mm          1
LED                         1
               KMX52-1050   1
               6mm          1
2/2


              AMN11112     1
              GP2Y0A21YK   1
                           1
SoftPot       100mm        1
FSR           FSR #402     1
SoftPot/FSR                1
•                          ITP*1    Tom Igoe

•
             1
•

•                               1


    *1   Interactive Telecommunications Program
ITP
ITP Winter Show 2008
• ITP                              2
• 12 17          18
• http://itp.nyu.edu/shows/winter2008/
PC
•        ASCII
•         1
Alto (1973)




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

    –
    – PC
•

           Flash
•
           Nintendo Wii
•
• iPhone
•
•

•
    LED
•
          I/O   PC
•
    ActionScript C C++ Java
•

•
•
•
•
    – Flash
    – Processing
    – Max/MSP
•
    – Gainer
    – Arduino
    – Phidgets
•
•

    –
    –
    –
    –
•
•       UNDO
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
HELLO!!
•     2007.12.22-23
•
•         19
•
•     Processing×Funnel×Gainer I/O
1 Haohao table


•
•
•            3
• NTT InterCommunication Center [ICC]
         2006.6.6-2008.3.11
1 Haohao table




             ICC
1 Haohao table
1 Haohao table
1 Haohao table
2


•
•            1
• NTT InterCommunication Center [ICC]
         2007.4.19-2008.3.9
•                     2008
2
2
2
2
2
2
2




    ICC
2




    ICC
2




    ICC
3              3
•                 11
•
•
•
• IAMAS
   2007.8.24-26
4 Mountain Guitar
•
•
    –
    –
•            I/O            PC
• IAMAS
•    CG
•
•
•
•
•
•
•
•
•


            littleBits coffemaker*2




    *2   http://www.vimeo.com/1389390
•
    –
    –
•
    –
    –
5 Jamming Gear
•       ×
•
    –
    –
•            I/O              PC
• Make: Tokyo Meeting 01-02
  IAMAS Gangu Project
6            ephemeral melody
•          ×          ×        ×
•
• Gainer I/O              3   Max    PC
•     CG


http://www.youtube.com/watch?v=usou5Xs4IQ0
1
•
•
•
    –
    –
•
    –
    –
•
    –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                          ×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
Gainer I/O

            2
•                     dout 0   1   2
    – LED
    –
•                                        *3
                      aout 0 255   256
    – LED
    –

    *3          PWM
1            I/O         LED        LED.fla

import gainer.*;

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

//IO
gio.onReady = function() {
    //               LED
    sqr.onPress = function() {
        gio.turnOnLED();
    }

    //               LED
    sqr.onRelease = function() {
        gio.turnOffLED();
    }
}
2        I/O           LED        LED button.fla

import gainer.*;

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

//IO
gio.onReady = function() {
    //I/O
    gio.onPressed = function() {
        gio.turnOnLED();
    };

     //I/O
     gio.onReleased = function() {
         gio.turnOffLED();
     };
};
dout 0   LED
dout 0   LED
3                       LED               LED dout mouse.fla

import gainer.*;

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

gio.onReady = function() {
    _root.onEnterFrame = function() {
        //               LED
        sqr.onPress = function() {
            gio.setHigh(0);
        };

          //               LED
          sqr.onRelease = function() {
              gio.setLow(0);
          };
     };
};
aout 0   LED
aout 0   LED
4      x      LED              LED aout mouse.fla

import gainer.*;

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

gio.onReady = function() {
    _root.onEnterFrame = function() {
        //        x                         0    255
        var brightness:Number = Math.round(255 * (_root._xmouse/Stage.width));
        trace(brightness);

        // aout 0 brightness
        gio.analogOutput(0, brightness);
    }
}
Gainer I/O

        2
•            din 0   1   2
    –
    –
•            ain 0 255   256
    –
    –
din 0
din 0
ain 0
ain 0
ain 0
• SignalScopeApp
•
• ain 1
•
5             0                            pot movie.fla

//
import gainer.*;

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

// I/O
gio.onReady = function() {
    //
    gio.beginAnalogInput();

     //
     _root.onEnterFrame = function() {
         //
         _root.movieClip.gotoAndStop(gio.analogInput[0] + 1);
     };
};
6           0                         pot sound.fla

//
import gainer.*;

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

// I/O
gio.onReady = function() {
    //
    gio.beginAnalogInput();

     //
     _root.onEnterFrame = function() {
         //
         _root.soundClip.setVolume(gio.analogInput[0] / 255 * 100);
     };
};
2
•
•
    –
    –
    –
ain 0
ain 0
ain 0
•
• SignalScopeApp
•
•
Gainer.remap()

                7 Gainer.remap()                       pot movie remap.fla

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);
     };
};
ain 0
ain 0
ain 0   SoftPot
ain 0   SoftPot
ain 0   SoftPot
•
•
•
ain 0
ain 0
ain 0
• PSD
•

•       PSD movie sound.fla
din 0
• SignalScopeApp
•
•       true   false
•
    –
    –
8                                    NaPiOn movie.fla

var scheduledTime:Number = 0; //
var wasActive:Boolean = false; //
var isPlaying:Boolean = false; //

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

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

   //
   _root.onEnterFrame = function() {
       //
       var now:Number = getTimer();

       //
       var isActive:Boolean = gio.digitalInput[0];
9

          if (!wasActive && isActive && !isPlaying) {
              //        true
              _root.movieClip.gotoAndPlay(1);
              isPlaying = true;
          } else if (wasActive && !isActive) {
              //        true    false           3
              scheduledTime = now + 3000;
          }

          if (isPlaying && (now >= scheduledTime)) {
              //                                        false
              _root.movieClip.stop();
              isPlaying = false;
          }
          wasActive = isActive;
     };
};
ain
ain
ain
• SignalScopeApp
• x, y, z
  –
  –
•
•
•
• SignalScopeApp
• -1     +1
• sin
10                                  acceleration basic.fla

var xMin:Number = 70; // X
var xMax:Number = 180; // X

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

    // gio           loop()
    _root.onEnterFrame = mx.utils.Delegate.create(this, loop);
}

function loop():Void {
    //      -1    1
    var xSinTheta:Number = Gainer.remap(this.analogInput[0], xMin, xMax, -1, 1);

    //
    var xInDegree:Number = Math.asin(xSinTheta) / Math.PI * 180;
}
•
•   LPF
•   HPF
11                        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;
12

        //
        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;
    }
}
•
    –   rising edge
    –   falling edge
•
13

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; //
     };
};
•
    –
    –

•
1        2

                          14 1   2   set point.fla

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

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

                               15 1   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

                           16 1     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;
     };
};
17 2                               two switches.fla

if (gio.digitalInput[0] && !gio.digitalInput[1]) {
    //        0             1
} else if (!gio.digitalInput[0] && gio.digitalInput[1]) {
    //        0             1
} else if (gio.digitalInput[0] && gio.digitalInput[1]) {
    //        01
} else {
    //        01
}
18 2

var val0:Number = gio.analogInput[0];
var val1:Number = gio.analogInput[1];
Gainer I/O

                           19 8

//             8
//
// din 0 ain 4
// din 1 ain 5
// din 2 ain 6
// din 3 ain 7
var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE2, true);

//                    ain 7
var val:Number = gio.analogInput[7];
20 3

//
// Sound()                MovieClip
var mc0 = _root.createEmptyMovieClip(quot;sound_mc0quot;,0);
var mc1 = _root.createEmptyMovieClip(quot;sound_mc1quot;,1);
var mc2 = _root.createEmptyMovieClip(quot;sound_mc2quot;,2);

var soundClip0 = new Sound(mc0);
var soundClip1 = new Sound(mc1);
var soundClip2 = new Sound(mc2);

soundClip0.setVolume(100);
soundClip1.setVolume(50);
soundClip2.setVolume(0);
Funnel
Gainer
•        GUI

•
Funnel


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


•
    –
    –
    –
    –
•
Funnel
•
•
•
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
• GUI
•
  –                      Convolution
  –                            SetPoint
  –             Scaler
  –            Osc
•        I/O
Funnel
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
XIO: XBee I/O Board v1.0
XIO: XBee I/O Board v1.0
Wi-Fi        Bluetooth   802.15.4 / ZigBee
IEEE       802.11b       802.15.1    802.15.4
             100m           10m        30m
           11Mbps         1Mbps      250kbps
             32             7        65535


              LAN

       1             2.4GHz
Star
Point to Point




Point to Multi




                                 802.15.4 Coordinator
                                 802.15.4 End Device

                 IEEE 802.15.4
IEEE 802.15.4
•               1
•
Mesh
           Coordinator
           Router
           End Device

ZigBee
ZigBee
•        1
•
•
XBee
• IEEE 802.15.4 ZigBee 2          *5

  – XBee 802.15.4
  – XBee ZB ZigBee PRO
•                          3500
•
•



  *5
FIO (Funnel I/O)

• LilyPad Arduino v1.6
•
• XBee
FIO (Funnel I/O) v1.0
FIO (Funnel I/O) v1.0
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
Funnel
     009
• I2C
  –
  –
  –        LED
• XBee      FIO
•
2006
•
    –
    – 3D
    –
    –
•
•
2008
IAMAS Gainer/Funnel
2009   3   15 16

Mais conteúdo relacionado

Semelhante a Workshop at AXIS Inc.

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
 
WCAN mini ActionScript Vol.5
WCAN mini ActionScript Vol.5WCAN mini ActionScript Vol.5
WCAN mini ActionScript Vol.5
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
 

Semelhante a Workshop at AXIS Inc. (20)

67WS Seminar Event
67WS Seminar Event67WS Seminar Event
67WS Seminar Event
 
YCAM Workshop Part 1
YCAM Workshop Part 1YCAM Workshop Part 1
YCAM Workshop Part 1
 
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
 
67WS 2008.07.16
67WS 2008.07.1667WS 2008.07.16
67WS 2008.07.16
 
Scottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RADScottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RAD
 
2014 09 12 Dia Programador Session Materials
2014 09 12 Dia Programador Session Materials2014 09 12 Dia Programador Session Materials
2014 09 12 Dia Programador Session Materials
 
WCAN mini ActionScript Vol.5
WCAN mini ActionScript Vol.5WCAN mini ActionScript Vol.5
WCAN mini ActionScript Vol.5
 
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
 
I made some more expansion board for M5Stack
I made some more expansion  board for M5StackI made some more expansion  board for M5Stack
I made some more expansion board for M5Stack
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Introducing the Arduino
Introducing the ArduinoIntroducing the Arduino
Introducing the Arduino
 
Powerful Electronics with Arduino
Powerful Electronics with ArduinoPowerful Electronics with Arduino
Powerful Electronics with Arduino
 
Cassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshopCassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshop
 
Prižiganje lučk z Arduinom
Prižiganje lučk z ArduinomPrižiganje lučk z Arduinom
Prižiganje lučk z Arduinom
 
PCB CAD workshop
PCB CAD workshopPCB CAD workshop
PCB CAD workshop
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
P-Space Arduino/Genuino day 2016
P-Space Arduino/Genuino day 2016P-Space Arduino/Genuino day 2016
P-Space Arduino/Genuino day 2016
 
Arduino programming part1
Arduino programming part1Arduino programming part1
Arduino programming part1
 

Mais de Shigeru Kobayashi

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

Mais de 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ハッカソン
 
イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房
イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房
イノベーション創出のファシリテータとしてのデジタル工作機械を備えた市民工房
 

Último

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Último (20)

ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 

Workshop at AXIS Inc.

  • 2. 1 • 10:00 10:30 • 10:30 11:30 • 11:30 12:00 • 1 13:00 14:45 • 2 15:00 16:45 • 17:00 18:00
  • 3. 2 • 10:00 14:45 • 15:00 16:30 • Funnel 16:30 17:30 • 17:30 18:00
  • 5. • 1970 • 1993 2004 – – – • IAMAS 2004 – –
  • 7. Make Volume 04 Sketch 2008
  • 8. Make Volume 05 Sketch / Prototype 2008
  • 9. Make Volume 06 Prototyping Lab: 2009
  • 12. 1/2 Gainer I/O 1 USB 1 SAD-01 1 SPP-100 470Ω 1 10kΩ 1 10kΩ B 1 CdS 5mm 1 LED 1 KMX52-1050 1 6mm 1
  • 13. 2/2 AMN11112 1 GP2Y0A21YK 1 1 SoftPot 100mm 1 FSR FSR #402 1 SoftPot/FSR 1
  • 14. ITP*1 Tom Igoe • 1 • • 1 *1 Interactive Telecommunications Program
  • 15. ITP ITP Winter Show 2008 • ITP 2 • 12 17 18 • http://itp.nyu.edu/shows/winter2008/
  • 16. PC • ASCII • 1
  • 17. Alto (1973) http://toastytech.com/guis/
  • 18. • PC – – PC • Flash
  • 19. Nintendo Wii • • iPhone •
  • 20. • • LED • I/O PC
  • 21. ActionScript C C++ Java • •
  • 23. – Flash – Processing – Max/MSP • – Gainer – Arduino – Phidgets
  • 24. • • – – – – • • UNDO
  • 25. PIC AVR program A a0]=ain.o; aout.1 = 255; B C D
  • 26. PC Arduino Wiring program A a0]=ain.o; aout.1 = 255; B C D PC program a0]=ain.o; aout.1 = 255;
  • 27. Arduino I/O SparkFun Electronics
  • 28. I/O PC Gainer Phidgets A B C D PC program a0]=ain.o; aout.1 = 255;
  • 30. Gainer • I/O • – ActionScript 2/3 – Processing – Max/MSP
  • 32. I/O
  • 33.
  • 34. I/O
  • 35.
  • 36. LED
  • 37.
  • 38. HELLO!! • 2007.12.22-23 • • 19 • • Processing×Funnel×Gainer I/O
  • 39. 1 Haohao table • • • 3 • NTT InterCommunication Center [ICC] 2006.6.6-2008.3.11
  • 44. 2 • • 1 • NTT InterCommunication Center [ICC] 2007.4.19-2008.3.9 • 2008
  • 45. 2
  • 46. 2
  • 47. 2
  • 48. 2
  • 49. 2
  • 50. 2
  • 51. 2 ICC
  • 52. 2 ICC
  • 53. 2 ICC
  • 54. 3 3 • 11 • • • • IAMAS 2007.8.24-26
  • 55. 4 Mountain Guitar • • – – • I/O PC • IAMAS • CG
  • 57. • • • littleBits coffemaker*2 *2 http://www.vimeo.com/1389390
  • 58. – – • – –
  • 59. 5 Jamming Gear • × • – – • I/O PC • Make: Tokyo Meeting 01-02 IAMAS Gangu Project
  • 60. 6 ephemeral melody • × × × • • Gainer I/O 3 Max PC • CG http://www.youtube.com/watch?v=usou5Xs4IQ0
  • 61. 1 • • • – – • – –
  • 62. –2 – GND – V
  • 63.
  • 64. – – A
  • 65.
  • 66. – – Ω
  • 67.
  • 68. • 1,000 1kΩ • 1,000,000 1MΩ • 1,000 1 1mA • 1,000,000 1 50µA
  • 69.
  • 71. +5V GND
  • 72.
  • 73.
  • 74.
  • 75. LED
  • 76. • • – – –
  • 78. LED
  • 79. LED • LED 20mA • • •
  • 80. V =I ×R •V V •I A •R Ω
  • 81. − LED ×R = LED R − LED R= LED 5.0V LED 1.8V 10mA 5 − 1.8 3.2 R= = = 0.01 0.01
  • 82. LED
  • 83. +5V • GND •
  • 84. LED NG
  • 85. LED
  • 86. LED 7
  • 87. Gainer I/O 2 • dout 0 1 2 – LED – • *3 aout 0 255 256 – LED – *3 PWM
  • 88. 1 I/O LED LED.fla import gainer.*; var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); //IO gio.onReady = function() { // LED sqr.onPress = function() { gio.turnOnLED(); } // LED sqr.onRelease = function() { gio.turnOffLED(); } }
  • 89. 2 I/O LED LED button.fla import gainer.*; var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); //IO gio.onReady = function() { //I/O gio.onPressed = function() { gio.turnOnLED(); }; //I/O gio.onReleased = function() { gio.turnOffLED(); }; };
  • 90. dout 0 LED
  • 91. dout 0 LED
  • 92. 3 LED LED dout mouse.fla import gainer.*; var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); gio.onReady = function() { _root.onEnterFrame = function() { // LED sqr.onPress = function() { gio.setHigh(0); }; // LED sqr.onRelease = function() { gio.setLow(0); }; }; };
  • 93. aout 0 LED
  • 94. aout 0 LED
  • 95. 4 x LED LED aout mouse.fla import gainer.*; var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); gio.onReady = function() { _root.onEnterFrame = function() { // x 0 255 var brightness:Number = Math.round(255 * (_root._xmouse/Stage.width)); trace(brightness); // aout 0 brightness gio.analogOutput(0, brightness); } }
  • 96. Gainer I/O 2 • din 0 1 2 – – • ain 0 255 256 – –
  • 97. din 0
  • 98. din 0
  • 99. ain 0
  • 100. ain 0
  • 102.
  • 103.
  • 104. 5 0 pot movie.fla // import gainer.*; // Gainer var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); // I/O gio.onReady = function() { // gio.beginAnalogInput(); // _root.onEnterFrame = function() { // _root.movieClip.gotoAndStop(gio.analogInput[0] + 1); }; };
  • 105. 6 0 pot sound.fla // import gainer.*; // Gainer var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); // I/O gio.onReady = function() { // gio.beginAnalogInput(); // _root.onEnterFrame = function() { // _root.soundClip.setVolume(gio.analogInput[0] / 255 * 100); }; };
  • 106. 2 • • – – –
  • 107. ain 0
  • 108. ain 0
  • 110. Gainer.remap() 7 Gainer.remap() pot movie remap.fla 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); }; };
  • 111. ain 0
  • 112. ain 0
  • 113. ain 0 SoftPot
  • 114. ain 0 SoftPot
  • 115. ain 0 SoftPot • • •
  • 116. ain 0
  • 117. ain 0
  • 118. ain 0 • PSD • • PSD movie sound.fla
  • 119. din 0
  • 121. true false • – –
  • 122. 8 NaPiOn movie.fla var scheduledTime:Number = 0; // var wasActive:Boolean = false; // var isPlaying:Boolean = false; // var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true); gio.onReady = function() { // gio.beginDigitalInput(); // _root.onEnterFrame = function() { // var now:Number = getTimer(); // var isActive:Boolean = gio.digitalInput[0];
  • 123. 9 if (!wasActive && isActive && !isPlaying) { // true _root.movieClip.gotoAndPlay(1); isPlaying = true; } else if (wasActive && !isActive) { // true false 3 scheduledTime = now + 3000; } if (isPlaying && (now >= scheduledTime)) { // false _root.movieClip.stop(); isPlaying = false; } wasActive = isActive; }; };
  • 124. ain
  • 125. ain
  • 128.
  • 130. 10 acceleration basic.fla var xMin:Number = 70; // X var xMax:Number = 180; // X gio.onReady = function() { this.beginAnalogInput(); // gio loop() _root.onEnterFrame = mx.utils.Delegate.create(this, loop); } function loop():Void { // -1 1 var xSinTheta:Number = Gainer.remap(this.analogInput[0], xMin, xMax, -1, 1); // var xInDegree:Number = Math.asin(xSinTheta) / Math.PI * 180; }
  • 131. • • LPF • HPF
  • 132. 11 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;
  • 133. 12 // 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; } }
  • 134. – rising edge – falling edge •
  • 135. 13 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; // }; };
  • 136. – – •
  • 137. 1 2 14 1 2 set point.fla var threshold:Number = 127; // var hysteresis:Number = 10; // var lastState:Number = -1; // gio.onReady = function() { gio.beginAnalogInput();
  • 138. 1 2 15 1 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; }; };
  • 139. 1 2 16 1 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; }; };
  • 140.
  • 141. 17 2 two switches.fla if (gio.digitalInput[0] && !gio.digitalInput[1]) { // 0 1 } else if (!gio.digitalInput[0] && gio.digitalInput[1]) { // 0 1 } else if (gio.digitalInput[0] && gio.digitalInput[1]) { // 01 } else { // 01 }
  • 142.
  • 143. 18 2 var val0:Number = gio.analogInput[0]; var val1:Number = gio.analogInput[1];
  • 144. Gainer I/O 19 8 // 8 // // din 0 ain 4 // din 1 ain 5 // din 2 ain 6 // din 3 ain 7 var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE2, true); // ain 7 var val:Number = gio.analogInput[7];
  • 145. 20 3 // // Sound() MovieClip var mc0 = _root.createEmptyMovieClip(quot;sound_mc0quot;,0); var mc1 = _root.createEmptyMovieClip(quot;sound_mc1quot;,1); var mc2 = _root.createEmptyMovieClip(quot;sound_mc2quot;,2); var soundClip0 = new Sound(mc0); var soundClip1 = new Sound(mc1); var soundClip2 = new Sound(mc2); soundClip0.setVolume(100); soundClip1.setVolume(50); soundClip2.setVolume(0);
  • 146. Funnel Gainer • GUI •
  • 148. 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
  • 149. Funnel • – – – – •
  • 151. Funnel Gainer • Gainer – – Gainer I/O 1:1 – • Funnel – – Arduino XBee –
  • 152. Funnel Sketching User Experiences Getting the Design Right and the Right Design Bill Buxton Morgan Kaufmann Pub 2007
  • 153. Funnel Bill Buxton, Sketching User Experiences (2008)
  • 154. Funnel • GUI • – Convolution – SetPoint – Scaler – Osc • I/O
  • 155. Funnel
  • 156. Arduino • Hernando Barrag´n IDII*4 a Wiring • • IDE Arduino I/O *4 Interaction Design Institute Ivrea
  • 157. Wiring SparkFun Electronics
  • 158. Arduino Duemilanove SparkFun Electronics
  • 160. – – •
  • 161. LilyPad Arduino SparkFun Electronics
  • 162. Arduino Pro Mini SparkFun Electronics
  • 163. Arduino ProtoShield SparkFun Electronics
  • 164. Arduino XBee Shield SparkFun Electronics
  • 165. XIO: XBee I/O Board v1.0
  • 166. XIO: XBee I/O Board v1.0
  • 167. Wi-Fi Bluetooth 802.15.4 / ZigBee IEEE 802.11b 802.15.1 802.15.4 100m 10m 30m 11Mbps 1Mbps 250kbps 32 7 65535 LAN 1 2.4GHz
  • 168. Star Point to Point Point to Multi 802.15.4 Coordinator 802.15.4 End Device IEEE 802.15.4
  • 170. Mesh Coordinator Router End Device ZigBee
  • 171. ZigBee • 1 • •
  • 172. XBee • IEEE 802.15.4 ZigBee 2 *5 – XBee 802.15.4 – XBee ZB ZigBee PRO • 3500 • • *5
  • 173. FIO (Funnel I/O) • LilyPad Arduino v1.6 • • XBee
  • 178. FIO (Funnel I/O) v1.3 - +
  • 180. FIO v1.3 vs Funnel IO Remixed
  • 181. Funnel 009 • I2C – – – LED • XBee FIO •
  • 182. 2006
  • 183. – – 3D – – • •
  • 184. 2008