sketching in hardware 3

Post on 18-Jan-2015

2.441 Views

Category:

Business

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

My presentation slides for Sketching in Hardware 3

TRANSCRIPT

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::MOVING_AVERAGE@fio.analog_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, 0@gio.led.filters = [@osc]

@gio.button.on RISING_EDGE do@osc.start

end

Funnel: Pseudo code like programming

Example 4 Ruby×Funnel×Gainer I/O

# Turn on the LED after dark

@gio = Gainer.new@gio.ain(0).filters = [SetPoint.new 0.3, 0.1]

# threshold, hysteresis

@gio.ain(0).on FALLING_EDGE do@gio.led.value = 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

top related