Sketching In Hardware 3
-
Upload
shigeru-kobayashi -
Category
Business
-
view
2.442 -
download
0
description
Transcript of Sketching In Hardware 3
A toolkit to interconnect toolkits
Shigeru Kobayashi (mayfair [at] iamas.ac.jp)
Sketching in Hardware 3: INTERCONNECTIONS, July 25-27, 2008, RISD
Introduction
• Roland Corp. (1993∼2004)– Sound designer– Software engineer
• IAMAS (2004∼)– Physical computing– User interface
Introduction: Make Magazine (Japanese)
Make: Technology on Your Time Volume 04O’Reilly Japan (2008)
Background: Gainer
A toolkit consisting of open-source hardwareand software
• Gainer I/O module– PSoC + FT232RL
• Software libraries– ActionScript 2/3– Processing– Max/MSP
Background: Gainer
Open-source hardware
• Gainer PSoC Development Board– Designed by SparkFun Electronics– PSoC based, low cost
• Ginger/Pepper/Sugar– Designed by Morecat Lab– AVR based, low cost
Gainer PSoC Development Board
SKU#: DEV-08480
Ginger/Pepper
http://web.mac.com/kuwatay/
Background: Gainer
Open-source software
• .NET• Perl• PureData• Python• Ruby• Squeak• vvvv
Background: Gainer
+GAINERPhysical Computing with Gainer
GainerBook Labo + Kurukuru Lab (2007)
Comparison: Gainer vs Arduino
Gainer Arduino DiecimilaPrice US$34.95 US$34.95Pins 16 20A/D 8 (8bit) 6 (10bit)
PWM 8 (8bit) 6 (8bit)User buttons 1 0
User LEDs 1 0Open-source Yes YesStand-alone No Yes
Emphasis Simplicity Expandability
Efforts in the classroom at IAMAS
Sketching PrototypingToolkit Gainer Gainer or Arduino
Connection Wired Wired or stand-aloneProgramming PC only PC and/or microcontroller
Material Cardboard WoodStyrofoam 3D printing
Wiring Breadboard Soldering
Example: Jamming Gear
• So Kanno• Kenichiro Saigou
Motivations to Funnel
Found problems
• An I/O module doesn’t cover all user needs,& changing between toolkits is expensive
• For beginners, it is still difficult to handlereal-world inputs
• Wired connection narrows ideas during‘sketching in hardware’ stage
What is Funnel?
• A toolkit to interconnect toolkits• Covers from sketching to prototyping• Intended to be a common language
between designers/artists and engineers
What is Funnel?
• A toolkit to interconnect toolkits• Covers from sketching to prototyping• Intended to be a common language
between designers/artists and engineers• Supports pesudo code like programming• Various filters (LPF, scaler, oscillator)• A new I/O module based on Arduino
Interconnections via Funnel
USB XBeeDongle
GainerI/O Module
Arduino(with Firmata)
USB XBeeDongle
Funnel Server
ActionScript 3 Processing Max/MSPetc.Ruby
AS3 Library Processing Library OSC LibrariesRuby Library
Funnel I/OMaxStreamXBee
Funnel I/OMaxStreamXBee
Interconnections via Funnel
Supported hardware
• Gainer I/O• Arduino (via Firmata v2)• XBee (IEEE 802.15.4/ZigBee)• Funnel I/O
Interconnections via Funnel
Supported languages
• Processing• ActionScript 3• Ruby
Funnel: Demo environment
action-coding*1
• Interconnections betweenProcessing and JRuby
• Supports runtime rewriting• Developer: Ichitaro Masuda
*1 http://code.google.com/p/action-coding/
Funnel: Pseudo code like programming
Example 1 Ruby×Funnel×Arduino Nano
# Control brightness of a screen by a pot
def setupsize 400, 400@aio = Arduino.new :applet => self
end
def drawbackground @aio.analog_pin(2).value * 255
end
Funnel: Pseudo code like programming
Example 2 Ruby×Funnel×Arduino Nano
# Apply a filter to smooth inputs
def setup...@fio = Arduino.new :applet => self
f = Convolution.new Convolution::[email protected]_pin(0).filters = [f]...
end
...
Funnel: Pseudo code like programming
Example 3 Ruby×Funnel×Gainer I/O
# Start blinking the LED when the button is pressed
@gio = Gainer.new@osc = Osc.new Osc::SQUARE, 1, [email protected] = [@osc]
@gio.button.on RISING_EDGE [email protected]
end
Funnel: Pseudo code like programming
Example 4 Ruby×Funnel×Gainer I/O
# Turn on the LED after dark
@gio = [email protected](0).filters = [SetPoint.new 0.3, 0.1]
# threshold, hysteresis
@gio.ain(0).on FALLING_EDGE [email protected] = 1
end
FIO: Funnel I/O Module v1.0
• Based on LilyPad v1.6• 3.3V operation• ATMega168V (8MHz)• XBee (IEEE 802.15.4 or ZigBee)• On-board DC/DC (up to 850mA)• Various mini shields• Looking for distributors ;)
FIO: Funnel I/O Module v1.0
FIO: Funnel I/O Module v1.0
FIO: Funnel I/O Module v1.0
Demo: Ruby×Funnel×FIO
• 1:1• 1:N (broadcast)
Related topics: more interconnections?
action-coding*2
• Developer: Ichitaro Masuda• Utilize Processing API from JRuby• Supports runtime rewriting
*2 http://code.google.com/p/action-coding/
Related topics: more interconnections?
rbof*3
• Developer: Ichitaro Masuda• Utilize openFrameworks from Ruby
*3 http://code.google.com/p/rbof/
Related topics: more interconnections?
ForCy*4
• Developer: Osamu Tamura• On-chip lightweight compiler• Forth/PostScript like language• Ready to use with Arduino• If combined with runtime rewriting...
*4 http://www.recursion.jp/forcy/
A toolkit to interconnect toolkits
Shigeru Kobayashi (mayfair [at] iamas.ac.jp)
Sketching in Hardware 3: INTERCONNECTIONS, July 25-27, 2008, RISD