Workshop at AXIS Inc.

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Workshop at AXIS Inc. - Presentation Transcript

    1. IAMAS Gainer/Funnel 2009 3 15 16
    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
    4. • • •
    5. • 1970 • 1993 2004 – – – • IAMAS 2004 – –
    6. • • •
    7. Make Volume 04 Sketch 2008
    8. Make Volume 05 Sketch / Prototype 2008
    9. Make Volume 06 Prototyping Lab: 2009
    10. GAINER GainerBook Labo 2007 2008
    11. Making Things Talk Arduino Tom Igoe 2008
    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 • •
    22. • •
    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;
    29. Phidgets
    30. Gainer • I/O • – ActionScript 2/3 – Processing – Max/MSP
    31. Gainer I/O
    32. I/O
    33. I/O
    34. LED
    35. HELLO!! • 2007.12.22-23 • • 19 • • Processing×Funnel×Gainer I/O
    36. 1 Haohao table • • • 3 • NTT InterCommunication Center [ICC] 2006.6.6-2008.3.11
    37. 1 Haohao table ICC
    38. 1 Haohao table
    39. 1 Haohao table
    40. 1 Haohao table
    41. 2 • • 1 • NTT InterCommunication Center [ICC] 2007.4.19-2008.3.9 • 2008
    42. 2
    43. 2
    44. 2
    45. 2
    46. 2
    47. 2
    48. 2 ICC
    49. 2 ICC
    50. 2 ICC
    51. 3 3 • 11 • • • • IAMAS 2007.8.24-26
    52. 4 Mountain Guitar • • – – • I/O PC • IAMAS • CG
    53. • • • • • •
    54. • • • littleBits coffemaker*2 *2 http://www.vimeo.com/1389390
    55. • – – • – –
    56. 5 Jamming Gear • × • – – • I/O PC • Make: Tokyo Meeting 01-02 IAMAS Gangu Project
    57. 6 ephemeral melody • × × × • • Gainer I/O 3 Max PC • CG http://www.youtube.com/watch?v=usou5Xs4IQ0
    58. 1 • • • – – • – –
    59. • –2 – GND – V
    60. • – – A
    61. • – – Ω
    62. • 1,000 1kΩ • 1,000,000 1MΩ • 1,000 1 1mA • 1,000,000 1 50µA
    63. • •
    64. +5V GND
    65. LED
    66. • • – – –
    67. • • •
    68. LED
    69. LED • LED 20mA • • •
    70. V =I ×R •V V •I A •R Ω
    71. − LED ×R = LED R − LED R= LED 5.0V LED 1.8V 10mA 5 − 1.8 3.2 R= = = 0.01 0.01
    72. LED
    73. • +5V • GND •
    74. LED NG
    75. LED
    76. LED 7
    77. Gainer I/O 2 • dout 0 1 2 – LED – • *3 aout 0 255 256 – LED – *3 PWM
    78. 1 I/O LED LED.fla import gainer.*; var gio:Gainer = new Gainer(\"localhost\", 2000, Gainer.MODE1, true); //IO gio.onReady = function() { // LED sqr.onPress = function() { gio.turnOnLED(); } // LED sqr.onRelease = function() { gio.turnOffLED(); } }
    79. 2 I/O LED LED button.fla import gainer.*; var gio:Gainer = new Gainer(\"localhost\", 2000, Gainer.MODE1, true); //IO gio.onReady = function() { //I/O gio.onPressed = function() { gio.turnOnLED(); }; //I/O gio.onReleased = function() { gio.turnOffLED(); }; };
    80. dout 0 LED
    81. dout 0 LED
    82. 3 LED LED dout mouse.fla import gainer.*; var gio:Gainer = new Gainer(\"localhost\", 2000, Gainer.MODE1, true); gio.onReady = function() { _root.onEnterFrame = function() { // LED sqr.onPress = function() { gio.setHigh(0); }; // LED sqr.onRelease = function() { gio.setLow(0); }; }; };
    83. aout 0 LED
    84. aout 0 LED
    85. 4 x LED LED aout mouse.fla import gainer.*; var gio:Gainer = new Gainer(\"localhost\", 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); } }
    86. Gainer I/O 2 • din 0 1 2 – – • ain 0 255 256 – –
    87. din 0
    88. din 0
    89. ain 0
    90. ain 0
    91. ain 0 • SignalScopeApp • • ain 1 •
    92. 5 0 pot movie.fla // import gainer.*; // Gainer var gio:Gainer = new Gainer(\"localhost\", 2000, Gainer.MODE1, true); // I/O gio.onReady = function() { // gio.beginAnalogInput(); // _root.onEnterFrame = function() { // _root.movieClip.gotoAndStop(gio.analogInput[0] + 1); }; };
    93. 6 0 pot sound.fla // import gainer.*; // Gainer var gio:Gainer = new Gainer(\"localhost\", 2000, Gainer.MODE1, true); // I/O gio.onReady = function() { // gio.beginAnalogInput(); // _root.onEnterFrame = function() { // _root.soundClip.setVolume(gio.analogInput[0] / 255 * 100); }; };
    94. 2 • • – – –
    95. ain 0
    96. ain 0
    97. ain 0 • • SignalScopeApp • •
    98. Gainer.remap() 7 Gainer.remap() pot movie remap.fla import gainer.*; var gio:Gainer = new Gainer(\"localhost\", 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); }; };
    99. ain 0
    100. ain 0
    101. ain 0 SoftPot
    102. ain 0 SoftPot
    103. ain 0 SoftPot • • •
    104. ain 0
    105. ain 0
    106. ain 0 • PSD • • PSD movie sound.fla
    107. din 0
    108. • SignalScopeApp •
    109. • true false • – –
    110. 8 NaPiOn movie.fla var scheduledTime:Number = 0; // var wasActive:Boolean = false; // var isPlaying:Boolean = false; // var gio:Gainer = new Gainer(\"localhost\", 2000, Gainer.MODE1, true); gio.onReady = function() { // gio.beginDigitalInput(); // _root.onEnterFrame = function() { // var now:Number = getTimer(); // var isActive:Boolean = gio.digitalInput[0];
    111. 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; }; };
    112. ain
    113. ain
    114. ain • SignalScopeApp • x, y, z – –
    115. • •
    116. • • SignalScopeApp • -1 +1 • sin
    117. 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; }
    118. • • LPF • HPF
    119. 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;
    120. 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; } }
    121. • – rising edge – falling edge •
    122. 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; // }; };
    123. • – – •
    124. 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();
    125. 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; }; };
    126. 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; }; };
    127. 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 }
    128. 18 2 var val0:Number = gio.analogInput[0]; var val1:Number = gio.analogInput[1];
    129. 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(\"localhost\", 2000, Gainer.MODE2, true); // ain 7 var val:Number = gio.analogInput[7];
    130. 20 3 // // Sound() MovieClip var mc0 = _root.createEmptyMovieClip(\"sound_mc0\",0); var mc1 = _root.createEmptyMovieClip(\"sound_mc1\",1); var mc2 = _root.createEmptyMovieClip(\"sound_mc2\",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);
    131. Funnel Gainer • GUI •
    132. Funnel • • •
    133. 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
    134. Funnel • – – – – •
    135. Funnel • • •
    136. Funnel Gainer • Gainer – – Gainer I/O 1:1 – • Funnel – – Arduino XBee –
    137. Funnel Sketching User Experiences Getting the Design Right and the Right Design Bill Buxton Morgan Kaufmann Pub 2007
    138. Funnel Bill Buxton, Sketching User Experiences (2008)
    139. Funnel • GUI • – Convolution – SetPoint – Scaler – Osc • I/O
    140. Funnel
    141. Arduino • Hernando Barrag´n IDII*4 a Wiring • • IDE Arduino I/O *4 Interaction Design Institute Ivrea
    142. Wiring SparkFun Electronics
    143. Arduino Duemilanove SparkFun Electronics
    144. Arduino IDE
    145. • – – •
    146. LilyPad Arduino SparkFun Electronics
    147. Arduino Pro Mini SparkFun Electronics
    148. Arduino ProtoShield SparkFun Electronics
    149. Arduino XBee Shield SparkFun Electronics
    150. XIO: XBee I/O Board v1.0
    151. XIO: XBee I/O Board v1.0
    152. 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
    153. Star Point to Point Point to Multi 802.15.4 Coordinator 802.15.4 End Device IEEE 802.15.4
    154. IEEE 802.15.4 • 1 •
    155. Mesh Coordinator Router End Device ZigBee
    156. ZigBee • 1 • •
    157. XBee • IEEE 802.15.4 ZigBee 2 *5 – XBee 802.15.4 – XBee ZB ZigBee PRO • 3500 • • *5
    158. FIO (Funnel I/O) • LilyPad Arduino v1.6 • • XBee
    159. FIO (Funnel I/O) v1.0
    160. FIO (Funnel I/O) v1.0
    161. FIO (Funnel I/O) v1.3
    162. FIO (Funnel I/O) v1.3
    163. FIO (Funnel I/O) v1.3 - +
    164. FIO (Funnel I/O) v1.3
    165. FIO v1.3 vs Funnel IO Remixed
    166. Funnel 009 • I2C – – – LED • XBee FIO •
    167. 2006
    168. • – – 3D – – • •
    169. 2008
    170. IAMAS Gainer/Funnel 2009 3 15 16
    SlideShare Zeitgeist 2009

    + kotobukikotobuki Nominate

    custom

    882 views, 0 favs, 2 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 882
      • 846 on SlideShare
      • 36 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 22 views on http://pcf.axisdesign.org
    • 14 views on http://www.iamas.ac.jp

    more

    All embeds
    • 22 views on http://pcf.axisdesign.org
    • 14 views on http://www.iamas.ac.jp

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories