Make: Tokyo Meeting 03

2,251 views
2,175 views

Published on

Slides for workshops at Make: Tokyo Meeting 03.

Published in: Design, Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,251
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Make: Tokyo Meeting 03

  1. 1. Make: Tokyo Meeting 03 Jamming Gear [IAMAS] [IAMAS] 2009 5 23 24
  2. 2. Pepper 1 EIC-801 1 150mm 3 330Ω 2 10kΩ B 1 LED 1 GP1A53HRJ00F 2 1 20mm×20mm 8
  3. 3. Make Volume 04 Sketch 2008
  4. 4. Make Volume 05 Sketch / Prototype 2008
  5. 5. Make Volume 06 Prototyping Lab: 2009
  6. 6. Make Volume 07 Prototyping Lab: Jamming Gear 2009 • Jamming Gear • • Jamming Gear
  7. 7. Making Things Talk Arduino Tom Igoe 2008
  8. 8. GAINER GainerBook Labo 2007 2008
  9. 9. • • •
  10. 10. • • 1 Processing • 2 • 3 • 4 Jamming Gear
  11. 11. • ITP*1 Tom Igoe • 1 • • 1 *1 Interactive Telecommunications Program
  12. 12. PC • ASCII • 1
  13. 13. Alto (1973) http://toastytech.com/guis/
  14. 14. • PC – – PC • Flash
  15. 15. • Nintendo Wii • • iPhone •
  16. 16. • • LED • I/O PC
  17. 17. • ActionScript C C++ Java • •
  18. 18. • •
  19. 19. • – Flash – Processing – Max/MSP • – Gainer – Arduino – Phidgets
  20. 20. • • – – – – • • UNDO
  21. 21. PIC AVR program A a0]=ain.o; aout.1 = 255; B C D
  22. 22. PC Arduino Wiring program A a0]=ain.o; aout.1 = 255; B C D PC program a0]=ain.o; aout.1 = 255;
  23. 23. Arduino I/O SparkFun Electronics
  24. 24. I/O PC Gainer Phidgets A B C D PC program a0]=ain.o; aout.1 = 255;
  25. 25. Phidgets
  26. 26. Gainer • I/O • – ActionScript 2/3 – Processing – Max/MSP
  27. 27. Gainer I/O
  28. 28. I/O
  29. 29. I/O
  30. 30. LED
  31. 31. 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
  32. 32. Gainer I/O • SparkFun Electronics PSoC – Gainer PSoC Development Board • Morecat Lab. AVR – Pepper – Ginger – Sugar • RT PIC – Gainer mini
  33. 33. Gainer I/O Pepper Gainer I/O Pepper 16 4 A/D 8 3 PWM 8 2 1 0 LED 1 0 Yes Yes PSoC AVR USB FTDI FT232RL V-USB 28mm×75mm 11mm×31mm
  34. 34. HELLO!! • 2007.12.22-23 • • 19 • • Processing×Funnel×Gainer I/O
  35. 35. Jamming Gear • × • – – • ×FIO×Max/MSP×PC • Make: Tokyo Meeting 01-02 IAMAS Gangu Project
  36. 36. Jamming Gear 1
  37. 37. Jamming Gear 2
  38. 38. Jamming Gear 3
  39. 39. Jamming Gear 4
  40. 40. Jamming Gear 5
  41. 41. Jamming Gear 6
  42. 42. Jamming Gear 6
  43. 43. Funnel • • •
  44. 44. Funnel Gainer • Gainer – – Gainer I/O 1:1 – • Funnel – – Arduino XBee –
  45. 45. Funnel Sketching User Experiences Getting the Design Right and the Right Design Bill Buxton Morgan Kaufmann Pub 2007
  46. 46. Funnel Bill Buxton, Sketching User Experiences (2008)
  47. 47. Funnel • • – Convolution – SetPoint – Scaler – Osc • I/O
  48. 48. Funnel
  49. 49. Arduino Duemilanove SparkFun Electronics
  50. 50. LilyPad Arduino SparkFun Electronics
  51. 51. Arduino Pro Mini SparkFun Electronics
  52. 52. Arduino ProtoShield SparkFun Electronics
  53. 53. Arduino XBee Shield SparkFun Electronics
  54. 54. FIO v1.3
  55. 55. XIO: XBee I/O Board v1.0
  56. 56. XIO: XBee I/O Board v1.0
  57. 57. Processing • • •
  58. 58. Built with Processing [ ] / 2008
  59. 59. Processing • • • •
  60. 60. Processing • Processing Development Environment • Sketch • Display Window
  61. 61. Processing 1 1 Hello World! println(quot;Hello World!quot;);
  62. 62. Processing 2 2 // 1 void setup() { // Display Window size(200, 200); } // void draw() { // background(255, 255, 255); }
  63. 63. Processing 3 3 void setup() { size(200, 200); } void draw() { background(0); stroke(255); line(0, 0, 199, 199); }
  64. 64. Processing 4 4 int brightness = 0; // void setup() { ... void draw() { background(brightness); // brightness } void mousePressed() { brightness = 255; // 255 } void mouseReleased() { brightness = 0; // 0 }
  65. 65. • • •
  66. 66. • – 2 – GND – V
  67. 67. • – – A
  68. 68. • – – Ω
  69. 69. • 1,000 1kΩ • 1,000,000 1MΩ • 1,000 1 1mA • 1,000,000 1 50µA
  70. 70. • •
  71. 71. +5V GND
  72. 72. LED
  73. 73. • • – – –
  74. 74. • • •
  75. 75. LED
  76. 76. LED • LED 20mA • • •
  77. 77. V =I ×R • V V • I A • R Ω
  78. 78. − LED = LED ×R R − LED R= LED 5.0V LED 1.8V 10mA 5 − 1.8 3.2 R= = = 0.01 0.01
  79. 79. LED
  80. 80. • – LED – LED • –
  81. 81. Gainer I/O 2 • dout 0 1 2 – LED – • aout 0 1 256 *2 – LED – *2 PWM
  82. 82. aout 0 LED
  83. 83. aout 0 LED
  84. 84. 1 5 LED 01 ControlLEDByMouse import processing.funnel.*; Gainer gainer; void setup() { size(200, 200); gainer = new Gainer(this, Gainer.MODE1); } void draw() { background(100); }
  85. 85. 1 6 LED 01 ControlLEDByMouse void mousePressed() { gainer.analogOutput(0).value = 1.0; } void mouseReleased() { gainer.analogOutput(0).value = 0.0; }
  86. 86. 2 7 LED 02 ControlLEDByMouseX import processing.funnel.*; Gainer gainer; void setup() { size(200, 200); gainer = new Gainer(this, Gainer.MODE1); } void draw() { float val = (float)mouseX / (width - 1); background(255 * val); gainer.analogOutput(0).value = val; }
  87. 87. Gainer I/O 2 • din 0 1 2 – – • ain 0 1 256 – –
  88. 88. ain 0
  89. 89. ain 0
  90. 90. ain 0 • 03 SimpleScope • •
  91. 91. • 04 Tree *3 • Funnel import • mouseX ain 0 *3 Topics/Fractals and L-Systems/Tree
  92. 92. 8 SetPoint 0 1 05 SetPoint import processing.funnel.*; Gainer gainer; int brightness = 0; void setup() { size(200, 200); gainer = new Gainer(this, Gainer.MODE1); // 0 SetPoint gainer.analogInput(0).addFilter(new SetPoint(0.5, 0.1)); } void draw() { background(brightness); }
  93. 93. 9 SetPoint 0 1 05 SetPoint // 0 0 void risingEdge(PinEvent event) { // if (event.target.number == gainer.analogInput[0]) { // brightness = 255; } } // 0 0 void fallingEdge(PinEvent event) { // if (event.target.number == gainer.analogInput[0]) { // brightness = 0; } }
  94. 94. Jamming Gear
  95. 95. • LED IC • LED IC •
  96. 96. Voltage regulator 3 2 (15kΩ) 4 Amp 5 1 GP1A53HRJ00F
  97. 97. Jamming Gear • 1 • 2 • 2
  98. 98. 1 1
  99. 99. Jamming Gear 10 1 06 RotaryEncoder1 import processing.funnel.*; Gainer pepper; int count = 0; void setup() { ... pepper = new Gainer(this, Gainer.MODE1); pepper.analogInput(0).addFilter(new SetPoint(0.5, 0.1)); } void fallingEdge(PinEvent event) { if (event.target.number == pepper.analogInput[0]) { count++; } }
  100. 100. 1 2
  101. 101. 1 2
  102. 102. Jamming Gear 11 2 07 RotaryEncoder2 void setup() { ... pepper = new Gainer(this, Gainer.MODE1); pepper.analogInput(0).addFilter(new SetPoint(0.5, 0.1)); pepper.analogInput(1).addFilter(new SetPoint(0.5, 0.1)); } void fallingEdge(PinEvent event) { if (event.target.number == pepper.analogInput[0]) { if (pepper.analogInput(1).value == 1) { count--; } else { count++; } } }
  103. 103. Jamming Gear 12 2 08 RotaryEncoder3 // ain 0 ain 1 // void ridingEdge(PinEvent event) { if (event.target.number == pepper.analogInput[0]) { if (pepper.analogInput(1).value == 0) { count--; } else { count++; } } }
  104. 104. • – – – USB • Pepper • 2000 • mtm03@funnel.cc
  105. 105. Make: Tokyo Meeting 03 Jamming Gear [IAMAS] [IAMAS] 2009 5 23 24

×