firefly primer 1.003

Upload: thechickenisbad

Post on 08-Apr-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 Firefly Primer 1.003

    1/37

    PRIM

    ER

    FIREFLY

    CONNECTINGARDUINO+GRASSHOPPER

    BYJASONKJOH

    NSONANDANDR

    EWP

    AYNE

    FireyVersion1.003

  • 8/7/2019 Firefly Primer 1.003

    2/37

    Firey Primer - Firey Version 1.003 - Page 2

    Firey Primer - Firey Version 1.003

    By Jason K Johnson and Andrew Payne

    Copyright 2010 All Rights Reserved

    For use with Grasshopper (build 0.7 or higher)

    Last Modied: August 29, 2010 2:49 PM

    Check for updates to this Primer at:

    www.reyexperiments.com

  • 8/7/2019 Firefly Primer 1.003

    3/37

  • 8/7/2019 Firefly Primer 1.003

    4/37

    Firey Primer - Firey Version 1.003 - Page 4

    Ideas

    The apparent veil between the organic and the manufactured has crumpled What shouldwe call that common soul between the organic communies we know of as organisms and

    ecologies, and their manufactured counterparts of robots, corporaons, economies, and

    computer circuits? I call those examples, both made and born, vivisystems for the lifelikeness

    each kind of system holds.-Kevin Kelly, Out of Control

    If architects designed a building like a body, it would have a system of bones and muscles and

    tendons and a brain that knows how to respond. If a building could change its posture, ghten

    its muscles and brace itself against the wind, its structural mass could literally be cut in half.

    -Guy Nordenson, Princeton University / Nordenson and Associates

    We foresee the possibility that most (if not all) architectural space will become responsive

    and be animated through intelligent kinec capacies. Each space will have a series of sensorswhich allow the occupaonal paerns within the space to be registered and fed back into

    the intelligent responsive structures. This can operate on many scales and levels. I think what

    emerges is a new era within architecture, or between architecture and some other disciplines

    -Patrick Schumacher (from an interview conducted by Alessandra Belia on 10 Feb 2004)

    First we build the tools, and then they build us.

    -Marshall McLuhan

    Images: Kuka fabricaon robot, Aegis Wall, MIT Senseable Cies Lab,

    Makerbot personal fabricator, Usman Haque, Future Cies Lab

  • 8/7/2019 Firefly Primer 1.003

    5/37

    Firey Primer - Firey Version 1.003 - Page 5

    Table of Contents

    Secon Contents Page

    INTRODUCTION 03Table of Contents 05

    1.0 GETTING STARTED > INSTALLATION 06

    Rhino, Grasshopper, Firey (.gha) Install 06Arduino, Blink, Firey Firmata (.pde) Upload 07

    2.0 FIREFLY TOOLBAR + COMPONENTS 082.1 Open Port 09

    2.2 Duemilanove Read 102.3 Duemilanove Write 112.4 Mega Read 132.5 Mega Write 132.6 Generic Serial Read 142.7 Generic Serial Write 152.8 Pachube Read 162.9 Wii Nunchuck 172.10 Binary Blink 182.11 Buer 192.12 Constrain Values 202.13 Data Log 212.14 Fader One-Way 222.15 Fader Two-Way 222.16 Playback 232.17 Smoothing 242.18 Addional Components (Boolean, Slider, Tracker, Remap, Panel, ) 25

    3.0 FIREFLY TUTORIALS 283.1 Tutorial 01: Basic Reading and Wring 28

    3.2 Tutorial 02: Pachube 313.X Tutorial 03: GH / Light Sensors + LED Field3.X Tutorial 04: GH Structural Analysis using Flex Sensors3.X Tutorial 05: Wind Analysis3.X Tutorial 06: Wii, Reactavision and other peripherals

    4.0 BASIC ELECTRONICS4.X Arduino Hardware Overview4.X Arduino Programming Overview; Hacking the Firey Firmata (.pde)4.X Sensors - Analog and Digital4.X Actuators - Servos, Motors, LEDS4.X Techniques - Prototyping, Soldering, etc.4.X Fritzing for Arduino Visualizaon

    5.0 ADDITIONAL RESOURCES 345.1 Hardware Suppliers and Related Soware 345.2 Recommended Web Resources 355.3 Recommended Books and Readings 36

    6.0 FIREFLY COMMUNITY - Share, Comment, Help 37

    Comingsoon!

  • 8/7/2019 Firefly Primer 1.003

    6/37

    Firey Primer - Firey Version 1.003 - Page 6

    1.0 GETTING STARTED > INSTALLATION

    First Steps > Dowload and Install Soware

    You will need to install the following soware packages/plug-ins to use Firey. For Steps 04-05 you will need an

    Arduino board and USB cable. For the the purposes of these introductory tutorials we are assuming that you

    will be using the Arduino Duemilanove board. Support for other boards will be published in the next version ofthe Firey Primer.

    ///////////////////////////////////////////////////////

    Step 01. Rhino Version 4 - Service Release 8Download the latest version of Rhino: hp://www.rhino3d.com/download.htm

    You must have Service Release 8: hp://download.rhino3d.com/en/Rhino/4.0/sr/download/

    ///////////////////////////////////////////////////////

    Step 02. Grasshopper (Build 0.7 or higher)Download the latest build: hp://download.rhino3d.com/en/Grasshopper/1.0/wip/rc/download/

    ///////////////////////////////////////////////////////

    Step 03. Firey (Build 1.002)Download the latest build, Firey Primer, and resources: hp://www.reyexperiments.com

    Copy/Paste the le named Firey_1.003.gha into the following folder:

    C:\Program Files\Rhinoceros 4.0\Plug-ins\Grasshopper\Components

    Conrm the installaon: Launch Rhino 4.0 SR8; Type grasshopper in the Command prompt; Once

    Grasshopper has launched in a new window - conrm that the Firey tab has been added (see image below).

    Congratulaons you have installed the Firey plug-in!!!

    Firey Tab

    http://arduino.cc/en/Main/ArduinoBoardDuemilanovehttp://www.rhino3d.com/download.htmhttp://www.rhino3d.com/download.htmhttp://www.grasshopper3d.com/profile/fireflyhttp://www.grasshopper3d.com/profile/fireflyhttp://www.rhino3d.com/download.htmhttp://www.rhino3d.com/download.htmhttp://arduino.cc/en/Main/ArduinoBoardDuemilanove
  • 8/7/2019 Firefly Primer 1.003

    7/37

    Firey Primer - Firey Version 1.003 - Page 7

    Step 04. Arduino 0018 Soware + Install the Drivers + Blink your Arduino BoardDownload the latest version: hp://www.arduino.cc/en/Main/Soware

    * If you are using a Mac OSX we recommend that you install Arduino 0018 on the Windows side.

    Follow these instrucons closely and complete steps #1-6: hp://arduino.cc/en/Guide/Windows

    A few seconds aer the upload nishes, you should see the pin 13 (L) LED on the board start to blink (in

    orange). If it does, congratulaons! Your Arduino is up-and-running!

    Note: If you are having Arduino installaon problems visit: hp://arduino.cc/en/Guide/Troubleshoong

    ///////////////////////////////////////////////////////

    Step 05a. Firey Firmata (Build 1.003)Download the latest Firey Firmata: hp://www.reyexperiments.com

    Copy/Paste the folder named Firey_DUEM_Firmata_1003.pde into your Arduino Sketchbook folder:

    My Documents\Arduino or Username\Documents\Arduino

    Note: The rst me you run the Arduino soware, it will automacally create a directory for your Sketchbook.

    You can view or change the locaon of the sketchbook locaon with the File > Preferences dialog. The sketchesin your sketchbook can be opened from the File > Sketchbookmenu or from the Open buon on the toolbar.

    Step 05b. Upload Firey Firmata to your Arduino Boarda. Launch the Arduino 0018 Applicaon

    b. Open the Firey Firmata sketch: File > Sketchbook > Firey_DUEM_Firmata_1003.pde

    c. Select your Board: Tools > Board > Arduino Duemilanove (w/ ATmega 328)

    d. Select your Serial Port: Tools > Serial Port > COM# (choose one that is available; remember the Port #)

    e. Upload the Program: Simply click the Upload buon. Wait a few seconds - you should see the RX and TX

    leds on the board ashing. If the upload is successful, the message Done uploading. will appear in the status

    bar. You will keep the USB connected to the Arduino - this is how Firey will communicate with the sensors,

    motors and LEDS connected to the board.

    Congratulaons - your Arduino board is now ready to communicate with Grasshopper / Firey!!!

    Blink Me !!!USB

    Upload Buon

    http://www.arduino.cc/en/Main/Softwarehttp://arduino.cc/en/Guide/Windowshttp://arduino.cc/en/Guide/Troubleshootinghttp://www.grasshopper3d.com/profile/fireflyhttp://www.grasshopper3d.com/profile/fireflyhttp://arduino.cc/en/Guide/Troubleshootinghttp://arduino.cc/en/Guide/Windowshttp://www.arduino.cc/en/Main/Software
  • 8/7/2019 Firefly Primer 1.003

    8/37

    Firey Primer - Firey Version 1.003 - Page 8

    2.0 FIREFLY TOOLBAR + COMPONENTS

    BOARDSDuemilanove Read - read values on all digital and analog Arduino DUEM pins

    Duemilanove Write- write values on all digital and analog Arduino DUEM pins

    Mega Read - read values on all digital and analog Arduino MEGA pinsMega Write - write values on all digital and analog Arduino MEGA pinsSerialRead - Retrieve a value coming over the serial sortSerialWrite - Write a string value to the Serial PortOpen Port - open the serial port, set the port number and the baud rate

    OTHER INPUTS

    Pachube Read - Read a le from a Pachube Internet feed (www.pachube.com)Wii Nunchuck - read all sensor values from a Wii Nunchuck

    UTILITYBinary Blink - oscillates 0s and 1s based on an incoming paern of integers

    Buer - Store the last number of values based on the buer domain

    Constrain Values - constrains a number to specic numeric rangeData Log- create a log for incoming dataFader One-Way - fade between one value to another based on a me intervalFader Two-Way - fade between a min and max value based on fade in /outPlayback - the playback component will retrieve values from a text le (.txt, .csv, and .dat)Smoothing - Smooth (or average) an incoming value

    Firey Toolbar

  • 8/7/2019 Firefly Primer 1.003

    9/37

    Arduino: Tools > Serial Port > COM #

    Locang your Serial Port COM# within the Arduino PDE

    Firey Primer - Firey Version 1.003 - Page 9

    2.1 Open Port

    Firey > Boards > Open Port

    The Open Port component allows you to establish the connecon between the Arduino and Grasshopper. First,

    conrm the communicaon Baud Rate (Since 9600 works for just about everything - beginners can skip this

    step!). Second, Set the Port Number [A] and then Open or Close the Serial Port Connecon using a True/False

    Toggle [B] [False = Port Closed; True = Port Open]. The Firey Duemilanove Read/Write and Mega Read/Write

    components will only send/receive data if the port is open.Note: Always close the serial port before closing your Grasshopper sketch. If you do not close your port then the

    next me you open the le you will encounter a pop-up screen with a whole series of nasty errors messages!

    * You can use mulple Open Port components to connect mulple Arduino boards to Firey.

    Descripon of Component Input/Output Parameters

    Input parameters:

    Open (Boolean) Boolean (True/False) value to Open or Close the Serial Port

    Port (Integer) The Port Number has to be the same Serial Port assigned in the Arduino Sketch. You can nd

    which COM port [C] you are using by clicking on the Tools>Serial Port buon on the Arduino IDE (see below).Baud (Integer) The BaudRate value should match the speed set in the Arduino sketch. Standard values: 4800,

    9600, 14400, 19200, 28800, 38400, 57600.

    Output parameters:

    Msg (String) Current status of Serial Port

    Step 01. Set the

    Port number

    Step 02. Toggle

    Open to True

    A

    B

    C

  • 8/7/2019 Firefly Primer 1.003

    10/37

    Firey Primer - Firey Version 1.003 - Page 10

    2.2 Duemilanove Read

    Firey > Boards > Duemilanove Read

    The FireFly Duemilanove Read component will read values for all corresponding digital and analog pins on the

    Arduino Duemilanove, Diecimilla, or Lillypad board. Note: This component is meant to be used in tandem with

    the FireFly Duemilanove Arduino program (a .pde le) which can be downloaded from the Firey website at:

    www.reyexperiments.com

    [A] Port: This should match the Port number that you rst established in the Open Port component

    Descripon of Component Input/Output Parameters

    Input Parameters:

    Start (Boolean) Input an Boolean value (True/False) to start receiving values from the Arduino

    Port (Integer) The Port Number has to be the same Serial Port assigned in the Arduino Sketch.

    Timer (Boolean) Set a Boolean Toggle to turn the mer on (True) or o (False)

    Rate (Integer) Time interval (ms) to wait aer the soluon has been expired. The default is for the mer to up-

    date at its fastest possible rate. It you only want to read your sensors every 2 seconds you would enter 2000

    here, or every half second would be 500, etc.

    Output Parameters:

    APin0 (Integer) Incoming sensor value from Analog In Pin 0

    APin1 (Integer) Incoming sensor value from Analog In Pin 1

    APin2 (Integer) Incoming sensor value from Analog In Pin 2

    APin3 (Integer) Incoming sensor value from Analog In Pin 3

    APin4 (Integer) Incoming sensor value from Analog In Pin 4

    APin5 (Integer) Incoming sensor value from Analog In Pin 5

    DPin2 (Integer) Incoming sensor value from Digital In Pin 2

    DPin4 (Integer) Incoming sensor value from Digital In Pin 4

    DPin7 (Integer) Incoming sensor value from Digital In Pin 7

    Msg (String) Current status of Serial Port

    A

  • 8/7/2019 Firefly Primer 1.003

    11/37

    Firey Primer - Firey Version 1.003 - Page 11

    2.3 Duemilanove Write

    Firey > Boards > Duemilanove Write

    The FireFly Duemilanove Write component will write values for all corresponding digital pins on an Arduino

    Duemilanove, Diecimilla, or Lillypad board. Note: This component is meant to be used in tandem with the Fire-

    Fly Duemilanove Arduino Sketch (a .pde le) which can be downloaded from the Firey website at:

    www.reyexperiments.com

    Note: The current Firey Firmata build assigns Digital (PWM) Pins 9, 10, and 11 for use with Servo engines,

    and Digital Pins 3, 5, 6 are dedicated to Digital (PWM) for LEDS etc. All other Digital Pins can be used for Digital

    Write (HIGH/LOW).

    [A] Port: This should match the Port number that you rst established in the Open Port component

    Descripon of Component Input/Output Parameters

    Input parameters:

    Start (Boolean) Input an Boolean value (True/False) to start wring values to the Arduino

    DPin13 (Integer) Integer to write to Digital Pin13. The integer (0) will send a LOW value and a (1) will send a

    HIGH value.

    DPin12 (Integer) Integer to write to Digital Pin12. The integer (0) will send a LOW value and a (1) will send a

    HIGH value.

    DPin11* (Integer) Integer to write to Digital Pin 11. If the PWM buon is not checked, then the integer (0) will

    send a LOW value and a (1) will send a HIGH value. If the PWM buon is checked, then any PWM value be-tween 0-255 can be sent to the specied pin.

    DPin10* (Integer) Integer to write to Digital Pin 10. If the PWM buon is not checked, then the integer (0) will

    send a LOW value and a (1) will send a HIGH value. If the PWM buon is checked, then any PWM value be-

    tween 0-255 can be sent to the specied pin.

    DPin9* (Integer) Integer to write to Digital Pin 9. If the PWM buon is not checked, then the integer (0) will

    send a LOW value and a (1) will send a HIGH value. If the PWM buon is checked, then any PWM value be-

    tween 0-255 can be sent to the specied pin.

    DPin8 (Integer) Integer to write to Digital Pin12. The integer (0) will send a LOW value and a (1) will send a

    HIGH value.

    A

  • 8/7/2019 Firefly Primer 1.003

    12/37

    Firey Primer - Firey Version 1.003 - Page 12

    DPin6* (Integer) Integer to write to Digital Pin 6. If the PWM buon is not checked, then the integer (0) will

    send a LOW value and a (1) will send a HIGH value. If the PWM buon is checked, then any PWM value be-

    tween 0-255 can be sent to the specied pin.

    DPin5* (Integer) Integer to write to Digital Pin 5. If the PWM buon is not checked, then the integer (0) will

    send a LOW value and a (1) will send a HIGH value. If the PWM buon is checked, then any PWM value be-

    tween 0-255 can be sent to the specied pin.

    DPin3* (Integer) Integer to write to Digital Pin 3. If the PWM buon is not checked, then the integer (0) will

    send a LOW value and a (1) will send a HIGH value. If the PWM buon is checked, then any PWM value be-tween 0-255 can be sent to the specied pin.

    Output parameters:

    Out (String) Returns the string that will be sent to the Arduino board. The Arduino sketch that accompanies

    this component will split this string up and send the values to the appropriate pins.

    Msg (String) Current status of Serial Port

    Arduino Diecimila / Duemilanove Overview

    The Arduino Duemilanove (2009) is a microcontroller board based on the ATmega168 or ATmega328. It has

    14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal oscil-

    lator, a USB connecon, a power jack, an ICSP header, and a reset buon. It contains everything needed to sup-

    port the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter

    or baery to get started.

    Duemilanove means 2009 in Italian and is named aer the year of its release. The Duemilanove is the latest

    in a series of USB Arduino boards; for a comparison with previous versions, see the index of Arduino boards.

    For more info:hp://arduino.cc/en/Main/ArduinoBoardDuemilanove

  • 8/7/2019 Firefly Primer 1.003

    13/37

    Firey Primer - Firey Version 1.003 - Page 13

    2.4 / 2.5 Mega Read / Write

    Firey > Boards > Mega Read / Write

    The FireFly Mega Read and Write component will read and write values to all corresponding digital and analog

    pins on an Arduino Mega board. Note: This component is meant to be used in tandem with the FireFly Mega

    Arduino Sketch which can be downloaded from the Firey website at: www.reyexperiments.com

    This component is recommended for advanced users only. The Arduino Mega has 54 digital input/output pins

    (of which 14 can be used as PWM outputs), 16 analog inputs and more. Detailed specs can be found here:

    hp://arduino.cc/en/Main/ArduinoBoardMega

    Digital Pins 2,3,4,5,6,7 can fade LEDS (PWM opon must be selected)

    Digital PWM Pins 8,9,10,11,12,13 are capable of controlling Servos (PWM opon must be selected)

    Digital Pins 22,23,24,25,26,27,28,29,30,31,32,33 can control digital LEDS (on/o)

    Arduino Mega microcontroller

  • 8/7/2019 Firefly Primer 1.003

    14/37

  • 8/7/2019 Firefly Primer 1.003

    15/37

    Firey Primer - Firey Version 1.003 - Page 15

    2.7 Generic Serial Write

    Firey > Boards > Generic Serial Write

    Write a string value to the Serial Port.

    Descripon of Component Input/Output Parameters

    Input parameters:

    Start (Boolean) Input an Boolean value (True/False) to start wring values to the Arduino. Note: You must rst

    open the serial connecon by using the Open Port component (Firey/Boards/Open Port) before seng the

    Start input value to True.

    Data (String) String to write to the Serial Port

    Port (Integer) The Port Number has to be the same Serial Port assigned in the Arduino Sketch. You can nd

    which COM port you are using by clicking on the Tools>Serial Port buon on the Arduino IDE.

    Output parameters:

    Out (String) Returns the string that will be sent to the Arduino board.

    Msg (String) Current status of Serial Port

  • 8/7/2019 Firefly Primer 1.003

    16/37

    Firey Primer - Firey Version 1.003 - Page 16

    2.8 Pachube Read

    Firey > Other Inputs > Pachube Read

    Read a le from a Pachube feed. Pachube (hp://www.pachube.com ) allows you to store, share and discover

    real-me sensor, energy and environment data from objects, devices and buildings around the world. Pachube

    is a convenient, secure and scalable plaorm that helps you connect to and build the internet of things.

    (Quoted from Pachube.com). *See the Pachube Read Tutorial in secon 3.2 of this Primer

    Descripon of Component Input/Output Parameters

    Input parameters

    Feed (String): Pachube web address of feed.

    API Key (String): Users API Key

    Output parameters

    csv (String) Returns the CSV output from a given csv pachube feed.

    Msg (String) Returns the tle and mestamp for the retreival of the pachube feed

    ID (String) Returns the XML ID of each element in a pachube feed

    Tag (String) Returns the XML Tag of each element in a pachube feed

    Min (String) Returns the minimum value of each element in an XML pachube feed

    Max (String) Returns the maximum value of each element in an XML pachube feed

    Val (String) Returns the current value of each element in an XML pachube feed

    Unit (String) Returns the units of each element in an XML pachube feed

  • 8/7/2019 Firefly Primer 1.003

    17/37

    Firey Primer - Firey Version 1.003 - Page 17

    2.9 Wii Nunchuck

    Firey > Other Inputs > Wii Nunchuck

    This component will allow you to read all of the sensor values from the Wii Nunchuck. Note: This component is

    meant to be used in tandem with the Wii Nunchuck Arduino Sketch which can be downloaded from the Firey

    website at: www.reyexperiments.com

    Descripon of Component Input/Output Parameters

    Input parameters:

    Start (Boolean) Input an Boolean value (True/False) to start receiving values from the Arduino. Note: You must

    rst open the serial connecon by using the Open Port component (Firey/Boards/Open Port) before seng

    the Start input value to True.

    Port (Integer) The Port Number has to be the same Serial Port assigned in the Arduino Sketch. You can nd

    which COM port you are using by clicking on the Tools>Serial Port buon on the Arduino IDE.

    Output parameters:

    AccX (Integer): Returns the accelerometer X value

    AccY (Integer): Returns the accelerometer Y value

    AccZ (Integer): Returns the accelerometer Z valueJoyX (Integer): Returns the joysck value of the X-axis

    JoyY (Integer): Returns the joysck value of the Y-axis

    Zbut (Integer): Returns the status of the Z buon

    Cbut (Integer): Returns the status of the C buon

    Msg (String): Current status of Serial Port

    WiiChuck Arduino Adapter Kit

    hp://www.sparkfun.com/commerce/product_info.php?products_id=928

    hp://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available

  • 8/7/2019 Firefly Primer 1.003

    18/37

    Firey Primer - Firey Version 1.003 - Page 18

    2.10 Binary Blink

    Firey > Ulity > Binary Blink

    Oscillates 0s and 1s based on an incoming paern of integers

    Descripon of Component Input/Output Parameters

    Input parameters:

    P (Integer): The blink paern is a list of integers that will determine the me interval (ms) between the

    oscillang output of zeros or ones. For instance, a blink paern of 100,200,300,400 will rst output a zero for

    100ms, then a one for 200ms, then back to a zero for 300ms, and nally another one for 400ms. If the repeat

    toggle has been set to true, this blinking paern will connue. The smallest me interval that is currently

    accepted in the blink paer is 25ms.

    S (Boolean): Start/Stop Boolean toggle

    R (Boolean): Repeat Paern

    Output parameters:

    B (Integer): Binary Output of 0s and 1s

    Binary Blink is one of the simplest ways to conrm that Firey

    and the Arduino board are communicang correctly. In the

    image (right) the long leg (+) of an LED is inserted into Pin13

    and the short leg (-) is inserted into GND.

  • 8/7/2019 Firefly Primer 1.003

    19/37

    Firey Primer - Firey Version 1.003 - Page 19

    2.11 Buer

    Firey > Ulity > Buer

    Store the last number of values based on the buer domain

    Descripon of Component Input/Output Parameters

    Input parameters:

    V (Number) Incoming value

    D (Domain) Target Domain to store data in the buer.

    Output parameters:

    V (Number) The list of buered values

    Mn (Number) The minimum value in the buer

    Mx (Number) The maximum value in the buer

  • 8/7/2019 Firefly Primer 1.003

    20/37

    Firey Primer - Firey Version 1.003 - Page 20

    2.12 Constrain

    Firey > Ulity > Constrain

    Constrains a number to a specic numeric range.

    Descripon of Component Input/Output Parameters

    Input parameters:

    Val (Number) Incoming value

    Min (Domain) Domain to constrain values

    Output parameters:Val (Number): Constrained Value

  • 8/7/2019 Firefly Primer 1.003

    21/37

    Firey Primer - Firey Version 1.003 - Page 21

    2.13 Data Log

    Firey > Ulity > Data Log

    Create a log of incoming data.

    Descripon of Component Input/Output Parameters

    Input parameters:

    V (String) The incoming data to track

    R (Boolean) Reset the log of values

    T (Boolean) Start recording values into the data log

    W (Boolean) Wrap index to list bounds. If the Wrap value is set to true and the incoming log value exceeds the

    length limit, then it will begin re-recording over the previous values from index number zero.

    L (Integer) Set the number of values you wish to store in the data log. If an length of zero is set, then the datalog will record values indenitely (or unl you stop the recording).

    P (String) Oponal le path in your directory to stream the data log

    Output parameters:

    O (String) The output log of data

  • 8/7/2019 Firefly Primer 1.003

    22/37

    Firey Primer - Firey Version 1.003 - Page 22

    2.14 / 2.15 Fade One / Two Way

    Firey > Ulity > Fade One Way

    Fade between one value to another based on a me interval (ms). These are great components to fade LEDS or

    pulsing motors using med intervals.

    Firey: Ulity > Fade Two Way

    Fade between a minimum and maximum value based on the fade in and fade out me interval (ms).

    Descripon of Component Input/Output Parameters

    Input parameters:V1 (Integer) The minimum value for the fade

    V2 (Integer) The maximum value for the fade

    T or T1 (Integer) The me interval (ms) to fade from the minimum value to the maximum value. The smallest

    me interval that will be accepted is 100ms.

    T2 (Integer) The me interval (ms) to fade from the maximum value to the minimum value. The smallest me

    interval that will be accepted is 100ms.

    D or D1 (Integer) A me delay (ms) to wait before aer the value has reached the maximum value but before it

    starts the fade back to the minimum value.

    D2 (Integer) A me delay (ms) to wait before aer the value has reached the minimum value but before it

    starts the fade back to the maximum value.

    S (Boolean) Start/Stop Boolean toggle

    Output parameters:

    O (Integer) Fading Output

  • 8/7/2019 Firefly Primer 1.003

    23/37

    Firey Primer - Firey Version 1.003 - Page 23

    2.16 Playback

    Firey > Ulies > Playback

    The Playback component will retrieve values from a text le (acceptable le types: .txt, .csv, and .dat) and will

    begin returning individual values at a given frame rate(s). You can input mulple framerates to simultaneously

    keep track of mulple outputs at dierent intervals

    Descripon of Component Input/Output Parameters

    Input parameters:

    P (String) File path(s) to monitor. The playback will remove any mestamp values from the original le.

    Acceptable le types include .txt, .csv, and .dat

    S (Boolean) Start/Stop Boolean toggle

    F (Integer) Frame rate (ms) to the return each value from the le. Currently the smallest frame rate allowed is

    25ms.

    R (Boolean) Repeat Playback paern

    Output parameters:

    O (String) The playback output values

  • 8/7/2019 Firefly Primer 1.003

    24/37

    Firey Primer - Firey Version 1.003 - Page 24

    2.17 Smoothing

    Ulity > Smoothing

    Smooth (or average) an incoming value based on a sampling level. In the illustraon above, the rawAPin0

    sensor value is 673.APin0 is connected to the Vparameter. A text Panel holding the number 10 (generally

    anything between 10-20 works well) is connected to the N parameter. On the right side of the Smooth

    component you can see a text Panel holding the smoothed value of 673.0.

    A comparison of the two Value Tracker graphs (above right) best illustrates how eecve the smooth

    component can be when reading analog sensors like Photoresistors, IR proximity sensors, Accelerometers, etc.

    The graph above (B) is jagged and jiery, while the lower graph (A) is relavely smooth and owing.

    Descripon of Component Input/Output Parameters

    Input parameters

    Val (Number): Incoming value

    N (Integer): The number of samples to average

    Output parameters

    A (Number): A smoothed average of values.

    A

    B

  • 8/7/2019 Firefly Primer 1.003

    25/37

    Firey Primer - Firey Version 1.003 - Page 25

    2.18 Addional Components

    Addional Components [Timer, Value Tracker, Remap Numbers and more]

    These addional components are not Firey specic components but you will use them quite oen. They

    come pre-packaged as a part of the standard Grasshopper build. You will ulize many of these components

    when you use Firey so it is crical that you know where to nd them and how to incorporate them into yourprojects. This is a just a sampling of what we consider to be the most important for beginning users - as you get

    more advanced you will certainly begin to incorporate many more into your projects. If there are components

    or custom clusters that you invent and you think they should be included in the next Firey Primer - please

    leave us a comment on the Firey website: www.reyexperiments.com

    Boolean Switch - Toggle a switch between TRUE / FALSE. (True outputs a 0; False outputs a 1)

    Params > Special > Boolean Switch

    Boolean Switch DescriponA switch is a special interface object that allows for quick seng of individual Boolean values. You can toggle a

    Switch through the Menu, or by double-clicking it. Note that switches only have output grips.

    Number Slider - output a specic range of numbers by sliding a dial lef and right

    Params > Special > Number Slider

    Number Slider DescriponA slider is a special interface object that allows for quick seng of individual numeric values. You can changethe values and properes through the menu, or by double-clicking a slider object. Sliders can be made longeror shorter by dragging the right-most edge le or right. Note that sliders only have output grips.

  • 8/7/2019 Firefly Primer 1.003

    26/37

    Firey Primer - Firey Version 1.003 - Page 26

    Value Tracker - Track a collecon of numeric values over me

    Value Tracker Descripon

    The Value Tracker allows you to visualize incoming sensor data coming from your APins and DPins. If you right-click on the Value Tracker component you can set the Period (width of the graph - from 1 second to 1 hour),and you can set the Update me (this works best if you keep the default seng of Smooth 25ms). This is avery handy tool to use when you are trying understand how your sensors are performing side-by-side.

    Params > Special > Value Tracker

    Remap Numbers - Remap numbers into a new numeric domain

    Remap Numbers Descripon

    This component allows to you remap incoming analog sensor data (usually 0-1023) to any numeric domain (forLEDs this is usually 0 To 255, or for servos this is usually 0 To 180).

    Input parameters:V (Number) Values to remapS (Domain) Oponal source domain.T (Domain) Target domain

    Output parameters:R (Number) Remapped numbers.

    Math > Domain > Remap Numbers

    Analog values will be variable and

    connuous ranging from 0 to 1023

    Digital values will spike from 0 to 1

  • 8/7/2019 Firefly Primer 1.003

    27/37

    Firey Primer - Firey Version 1.003 - Page 27

    Panel - output parameters of components, or input parameters into a component (text or numbers).

    Params > Special > Panel

    Panel DescriponPanels can receive their informaon from elsewhere. If you plug an output parameter into a Panel, you can seethe contents of that parameter in real-me. All data in Grasshopper can be viewed in this way.

  • 8/7/2019 Firefly Primer 1.003

    28/37

    In order to complete these tutorials you must have successfully followed all the steps outlinedin the rst secon of this Primer: 1.0 Geng Started > Installaon.Download the tutorial support les at: hp://www.reyexperiments.com

    IntroduconFor this rst Firey tutorial you will ulize the three most basic Firey components: Open Port, Duemilanove

    Read and Duemilanove Write. To begin with - your Arduino boards USB cable should be connected to your

    computer and the green power light should on. The Firey DUEM Firmata should also be uploaded to you

    board. Next you will place these three Firey components into your Grasshopper workspace, then you will

    prepare them to both read and write data over the USB serial port.

    Steps 1 will cover building the actual circuit using an Arduino Board, breadboard, Servo, LEDsSteps 2-4 will cover the process of seng GH/Firey Open Port, Read and WriteSteps 5 will cover linking your GH/Firey sketch to specic geometry

    Firey Primer - Firey Version 1.003 - Page 28

    3.1 - Tutorial: Basic Reading and Wring

    3.0 FIREFLY TUTORIALS

    Step 1: Preparing the Arduino Breadboard Circuit

    a. LED - Connect the long leg of an LED to Digital Pin 13, and connect the short leg to the second-to-last pin

    maked GND. Note that Pin 13 has a built-in resistor. If you aach to any other pin you must use a resistor.

    b. STANDARD SERVO - Connect a Stardard Servo to Digital Pin 9. Note that this pin is marked PWM (Pulse

    Width Modulaon). The standard Firey build allows you to control servos on Digital Pins 9,10,11 only.

    c. LED (PWM) - Connect the long leg o the LED to a resistor and Digital Pin 3, and the other to GND.

    d. PHOTORESISTOR - Use a Photoresistor and a 10K resistor to construct the circuit pitured above. Connect the

    SIG (signal) to any of your Analog In pins. The circuit above uses Analog Pin 1.

    a. LED

    +GND

    b. STANDARD

    SERVO

    SIG

    5VGND

    GND5V SIG

    d. PHOTORESISTOR10 K

    USB

    c. LED (PWM)

    + GND

    1 K

  • 8/7/2019 Firefly Primer 1.003

    29/37

    Step 1: Preparing Open Port

    a. Drag the Open Port component to the Grasshopper workspace

    b. Add a Boolean Toggle [A] to the Open input. When you double-click the Boolean Toggle you will acvate

    (True) or deacvate (False) Fireys ability to communicate with your Arduino.

    c. Set the Serial Port Number (this should match the port COM# you used when you uploaded the Firmata). We

    recommend using a Text Panel [B] (Params > Special > Text Panel) to input your port COM#.

    d. Close/Toggle your Boolean to (False) for now. You will open it aer you get everything else set up.

    Firey Primer - Firey Version 1.003 - Page 29

    Step 2: Preparing Duemilanove Read

    a. Drag the Duemilanove Read component to the Grasshopper workspace

    b. Add a Boolean Toggle to the Start and Timer inputs. When you double-click the Boolean Toggle you will

    acvate (True) or deacvate (False) this components ability to communicate with your Serial Port / Arduino.

    c. Create and connect Text Panels (Params > Special > Panel) to each of the Read [D] parameters (APin0

    through DPin 7) and the Msg panel on the right side of the component. This will allow you to read the values

    coming from sensors conected to the Arduino. In later steps we will connect these directly to specic param-

    eters within a Grasshopper model to dynamically control geometries, spaal relaonships, etc.

    Above - The Duemilanove Write Component (see descripon on the next page)

    PORT

    READ WRITE

    A

    B

    C

    E

    F

    G

    H

    I

    J

  • 8/7/2019 Firefly Primer 1.003

    30/37

    Firey Primer - Firey Version 1.003 - Page 30

    Step 3: Preparing Duemilanove Write

    a. Drag the Duemilanove Write component to the Grasshopper workspace

    b. Add a Boolean Toggle to the Start input. When you double-click the Boolean Toggle you will acvate (True)

    or deacvate (False) communicaon with your Serial Port / Arduino.

    c. Create and connect Text Panels (Params > Special > Panel) to the Outand Msg[J] parameters. The Out

    parameter is essenally a diagnosc tool that allows you to see what data is actually being sent through the

    Serial Port to the Arduino board. This string of comma-seperated numbers is then seperated in the Arduino

    Firmata (.pde) sketch and is used to control specic Arduino pins.

    d. Add three unique Number Sliders to all the components on the le side of the component. Refer to the

    diagram above to locate these three slider types:

    [E] 0-1 Slider (Slider Type: Integer; Lower Value: 0 and Upper Value: 1)

    [F] Servo Slider (Slider Type: Integer; Lower Value: 0 and Upper Value: 179)

    [G] LED Slider (Slider Type: Integer; Lower Value: 0 and Upper Value: 255)

    Note on DPins marked with a star* [H]: The DPin11*, DPin10*, DPin9*, DPin6*, DPin5*, Dpin3* parameters

    have a PWM opon (Pulse Width Modulaon). If you right click over the DPin parameter text you will see

    an opon to select PWM [I]. If PWM is selected, Pins 5,6,7 can be used to fade LEDS, and Pins 9,10,11 can

    control Servo Motors. These PWM pins correspond the the PWM pins indicated on the Arduino Duemilanoveboard. If the PWM buon is not checked, then the integer (0) will send a LOW value and a (1) will send a HIGH

    value. If the PWM buon is checked, then any PWM value between 0-255 can be sent to the specied pin.

    Step 4: Connect Firey to points in the Rhino File

    The example (below) creates a real-me 3D map of your Analog Inputs and draws a line accross them. We

    rst connect the 6 outputs from the Duemilanove Read component to the Z input of a Point component

    [A]. We then use a Series Component to input (0,5,10,15,20,25) into the Y input [B]. A Pline [C] is used to

    connect these points and create a dynamically updang line in space. We then add another corresponding

    Point component. These points will be xed to ground plane. Again, we use the Series Component to input

    (0,5,10,15,20,25) into the Y input [D]. The nal step is to connect both sets of points with vercal lines [E].

    Figure 1. The Rhino modeling window (le) and Grasshopper Interface (right)

    C

    A

    BC

    DE

    E

  • 8/7/2019 Firefly Primer 1.003

    31/37

    Firey Primer - Firey Version 1.003 - Page 31

    Preparing the Pachube Read Component

    Step 1. Setup a pachube account and nd your API Key

    In order to begin monitoring various sensor feeds from pachube.com, you will rst need to create an account.

    Begin by going to the URL: hp://www.pachube.com and click on the Sign Up link at the top of the page. Aer

    providing a unique user name, e-mail address, and password you will be directed back to the pachube home

    page.

    When logged in, you will noce a grey menu bar at the top of the page with various links to manage your ac-count. On the far right hand side of this menu, you will nd a link to manage My Sengs. Aer clicking on

    this link, you will be directed to your account sengs page where you will nd your API Key.

    Some Pachube API methods dont require authencaon (primarily those involving syndicaon and those that

    contain no real-me data, for example 24-hour history CSV and graphs). This enables them to be used in third-

    party websites or mashups that require public access.

    However, most real me data methods do require a Pachube API key. Your API Key is your personal idenca-

    on code that will be required to access many real-me feeds on pachube.

    Note: Since your API Key is your personal idener on pachube, it is crucial that you keep this code private. Do

    not share this informaon with others and make sure you do not share Grasshopper les which may contain

    your key inside the document.

    Now that we have setup an account, drag and drop a Text Panel onto the canvas. Copy and paste your API Key

    (from your account sengs) into the Text Panel. Connect the output of this Text Panel to the API Key input

    node of the Pachube Read component.

    3.2 - Tutorial: Pachube Read

    My Sengs

  • 8/7/2019 Firefly Primer 1.003

    32/37

    Firey Primer - Firey Version 1.003 - Page 32

    Step 2. Find a Pachube feed

    There are several dierent methods for accessing the thousands of live realme sensor feeds that are updated

    to the pachube servers every minute. Map View allows users to nd a feed based on geolocaon. Tags are

    color coded based on categories: agriculture, buildings, devices, energy, environment, transport, and other.

    List View gives users a text based version of all online feeds. Finally, Cloud View provides a list of all feed tags

    and scales the text of each tag based on the number of occurrences of each tag (larger fonts indicate the

    greater number of occurrences of a given tag). We can also Search Feeds or Tags by using the search box at

    the top of the page.

    For this tutorial, we will use a feed created by the Naonal Wind Technology Center in Denver, CO. Type the

    following web address into your browser: hp://www.pachube.com/feeds/1197 . The readings that are dis-

    played are derived from instruments mounted on or near an 82 meter (270 foot) meteorological tower located

    at 39 54 38.34 N and 105 14 5.28 W (datum WGS84) with its base at an elevaon of 1855 meters (6085

    feet) above mean sea level.

    Each feeds page (e.g. hp://www.pachube.com/feeds/1197) lists three URLs for accessing realme data in

    various formats: CSV, JSON & EEML (an XML format). The XML le format contains the most descripve infor-

    maon about a sensor feed (including metadata), while the CSV format contains the least. Note: The Grass-

    hopper Pachube Read component can only access XML or CSV le formats.

    By retrieving data from one of these URLs you will access the remote environments most recent datastream

    values and metadata (up to a resoluon of 5 seconds) and can use this data to control, trigger, modulate or

    otherwise aect your device, building, environment, actuator, etc.

    Each feed page has a data stream link labeled embed, history, triggers which reveal a drawer with a number

    of URLs and code snippets:

  • 8/7/2019 Firefly Primer 1.003

    33/37

    Firey Primer - Firey Version 1.003 - Page 33

    URL: retrieves the realme value of that datastream alone. We can add the extension .xml or .csv to this URL

    address to isolate the current value of a single sensor data stream.

    History: quick view of the last 24 hours of data in 15-minute increments, CSV format, no mestamps (total of

    96 datapoints). This URL address can only be accessed by adding the .csv le extension.

    Archive: complete datastream history in 15-minute increments, CSV format, includes mestamps. This URL

    address can only be accessed by adding the .csv le extension.

    PNG graph: HTML code snippet for embedding a congurable PNG graph of the datastream. Currently the

    PNG graphs cannot be imported into Grasshopper.

    Zoom graph: HTML code snippet for embedding a zoomable graph of the last 30 days of data. Currently the

    Zoom graph cannot be imported into Grasshopper.

    Step 3. Seng up a Pachube Read Component in Grasshopper

  • 8/7/2019 Firefly Primer 1.003

    34/37

    Firey Primer - Firey Version 1.003 - Page 34

    5.00 ADDITIONAL RESOURCES

    5.1 Hardware Suppliers and Related Soware

    LITTLE BITS OF EVERYTHING

    Adafruit[Based in NYC - Arduinos, Sensors, Wireless, DIY Central, great range of things ...]Jameco [outside SF in Belmont, CA - Huge selecon of Electronics]

    RobotShop [Huge selecon of robot-based electronics, SMAs, Motors, Sensors]

    Al Lashers Electronics [Located in Berkeley, CA -1734 University Ave (510)843-5915]

    Electronics Plus [San Rafael, CA - (415) 457-0466]

    Frys [1077 East Arques Ave. Sunnyvale, CA, 408.617.1300 - also in Palo Alto, San Jose and more]

    Marlin P. Jones [Huge Supplier including Power Supplies, LED, Connectors, etc]

    ARDUINO + GENERAL ELECTRONICS SUPPLIERS

    Arduino [mothership: great links to everything Arduino]

    Sparkfun [sensors, hardware, kits ...]

    MakerShed[sensors, hardware, kits ...]LiquidWare [lots of everything]

    POWER SUPPLIES

    PowerSupplyOne [Huge Selecon of Power Supplies]

    SENSORS

    Acroname [Sharp IR Sensor Source - we use the GP2Y0A02YK]

    Making Things [Great range of Sensors - highly recommend]

    Sparkfun Sensors [many avours] Sensor Kit by Sparkfun

    LadyAda [Bits and Pieces; Sensors and Arduinos and much more]

    SERVOS

    Servocity[Great Selecon of Servos and Supplies]

    LEDS

    SuperBrightLEDS.com [Single LEDs or mulple strings, all types, good quality]

    GOOD ARDUINO BASED STARTER KITS

    + Minimum >Arduino Budget Packor equal [includes Arduino Duemilanove Atmega328, and a small selecon

    of starter components]

    + Mid-Range >Arduino Starter Packor equal [includes Arduino Duemilanove Atmega328, Protoboard, and agood selecon of starter components]

    + High-End Recommended > Arduino Experimentaon Kit v1.0or equal [includes Arduino Duemilanove At-

    mega328, Prototyping bundles, and a great selecon of starter components]

    Other misc. tools that you might consider purchasing: a soldering iron and solder, wire strippers, helping

    hands, digital mulmeter, etc. Here is a great linkfor info on the best tools to purchase.

    [Note: These are working lists. Please e-mail us a related links and well consider adding them to our lists]

    http://www.adafruit.com/http://www.jameco.com/http://www.robotshop.com/http://allashers.com/http://www.electronicplus.com/http://www.frys.com/http://www.mpja.com/http://arduino.cc/en/Main/Hardwarehttp://www.sparkfun.com/commerce/advanced_search_result.php?keywords=Arduino&x=0&y=0&search_section=productshttp://www.makershed.com/SearchResults.asp?Cat=46http://www.liquidware.com/http://powersupplyone.com/http://www.acroname.com/robotics/parts/c_Sensors.htmlhttp://www.makingthings.com/store/sensorshttp://www.sparkfun.com/commerce/categories.php?c=23http://www.sparkfun.com/commerce/product_info.php?products_id=9383http://www.adafruit.com/index.php?main_page=index&cPath=17http://www.servocity.com/http://www.superbrightleds.com/http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=68http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=170http://www.adafruit.com/index.php?main_page=product_info&cPath=8&products_id=136http://www.adafruit.com/index.php?main_page=product_info&cPath=8&products_id=136http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=170http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=68http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193http://www.superbrightleds.com/http://www.servocity.com/http://www.adafruit.com/index.php?main_page=index&cPath=17http://www.sparkfun.com/commerce/product_info.php?products_id=9383http://www.sparkfun.com/commerce/categories.php?c=23http://www.makingthings.com/store/sensorshttp://www.acroname.com/robotics/parts/c_Sensors.htmlhttp://powersupplyone.com/http://www.liquidware.com/http://www.makershed.com/SearchResults.asp?Cat=46http://www.sparkfun.com/commerce/advanced_search_result.php?keywords=Arduino&x=0&y=0&search_section=productshttp://arduino.cc/en/Main/Hardwarehttp://www.mpja.com/http://www.frys.com/http://www.electronicplus.com/http://allashers.com/http://www.robotshop.com/http://www.jameco.com/http://www.adafruit.com/
  • 8/7/2019 Firefly Primer 1.003

    35/37

    Firey Primer - Firey Version 1.003 - Page 35

    5.3 Related Soware Projects

    Grasshopper and GH Plug-in RelatedGrasshopper Home [plug-in for Rhino; Created by David Ruen and augmented by many others]

    Kangaroo [Physics Engine for simulang materials]Geometry Gym [Geometry toolkit]ModeLab Tools [Many helpful GH tools ]Geco [connect GH with Ecotect]Weaverbird[smoothing, modifying and preparing meshes]For a complete list visit: hp://www.grasshopper3d.com/page/addons-for-grasshopper

    Arduino RelatedArduino[obviously, but this is a key soware especially to hack the Firey Firmata!]

    Processing [Arduino is based on Processing by Casey Reas and Ben Fry]

    Modkit[Drag and Drop programming for Arduino]

    General Related ProjectsUbimash [Uses UDP to publish and subscribe to server data; used with GC and others]

    NetLabToolkit[Tools for tangible interacon using Arduino / Flash Widgets]

    Fritzing [Draw, Visualize and Output Circuits Diagrams; Arduino to Breadboard - highly recommended]

    5.2 Related Tech Links

    LEDSLED Circuitry Tutorial: hp://www.theledlight.com/ledcircuits.html

    LED Calculator:hp://www.led-calculator.com/

    Instructableshp://www.instructables.com/

    Lady Ada Tutorials hp://www.adafruit.com/index.php?main_page=tutorials

    SERVOS

    Hacking Servos for connuous rotaon: hp://www.sealerobocs.org/guide/servohack.html

    [Note: These are working lists. Please e-mail us a related links and well consider adding them to our lists]

    http://www.grasshopper3d.com/http://groups.google.co.uk/group/kangaroophysicshttp://geometrygym.blogspot.com/http://modelab.nu/http://www.grasshopper3d.com/profiles/blogs/geco-gh2ecotect-beta-releasehttp://www.giuliopiacentino.com/weaverbird/http://www.grasshopper3d.com/page/addons-for-grasshopperhttp://www.grasshopper3d.com/page/addons-for-grasshopperhttp://www.arduino.cc/http://processing.org/http://www.modk.it/softwarehttp://%20http//ubimash.com/http://www.netlabtoolkit.org/http://fritzing.org/http://www.theledlight.com/ledcircuits.htmlhttp://www.led-calculator.com/http://www.instructables.com/http://www.adafruit.com/index.php?main_page=tutorialshttp://www.seattlerobotics.org/guide/servohack.htmlhttp://www.seattlerobotics.org/guide/servohack.htmlhttp://www.adafruit.com/index.php?main_page=tutorialshttp://www.instructables.com/http://www.led-calculator.com/http://www.theledlight.com/ledcircuits.htmlhttp://fritzing.org/http://www.netlabtoolkit.org/http://%20http//ubimash.com/http://www.modk.it/softwarehttp://processing.org/http://www.arduino.cc/http://www.grasshopper3d.com/page/addons-for-grasshopperhttp://www.giuliopiacentino.com/weaverbird/http://www.grasshopper3d.com/profiles/blogs/geco-gh2ecotect-beta-releasehttp://modelab.nu/http://geometrygym.blogspot.com/http://groups.google.co.uk/group/kangaroophysicshttp://www.grasshopper3d.com/
  • 8/7/2019 Firefly Primer 1.003

    36/37

    Firey Primer - Firey Version 1.003 - Page 36

    6.00 FIREFLY COMMUNITY - Share, Comment, Help

    Firey is currently hosted at: hp://www.reyexperiments.com We encourage you to create

    discussions related to Firey on this site.

    There is also a thriving community of Arduino related enthusiasts here:

    hp://www.arduino.cc/cgi-bin/yabb2/YaBB.pl

    We encourage you to e-mail us comments, correcons and suggesons:

    [email protected]

    5.4 Related Books and ReadingFox, Michael and Kemp, Miles. Interacve Architecture. Princeton Architectural Press, 2009. (Amazon)

    Nobel, Joshua. Programming Interacvity: A Designers Guide to Processing, Arduino, and Openframeworks.OReilly Media, 2009. (Amazon)

    Pla, Charles. Make: Electronics (Learning Through Discovery Series). Make Publishers, 2009. (Amazon)

    Banzi, Massimo. Geng Started with Arduino. Make Publishers, 2008. (Amazon)Reas and Fry. Processing - Programming Handbook for Designers. MIT Press. (Amazon)Igoe and OSullivan. Physical Compung: Sensing and Controlling the Physical World with Computers. CourseTech CPR. (Amazon)Igoe, Tom. Making Things Talk. OReilly Press. (Amazon)

    Image courtesy of modelab.nu/

    http://www.grasshopper3d.com/profile/firefly.http://www.arduino.cc/cgi-bin/yabb2/YaBB.plhttp://www.amazon.com/Interactive-Architecture-Michael-Fox/dp/1568988362http://www.amazon.com/Programming-Interactivity-Designers-Processing-Openframeworks/dp/0596154143/ref=pd_sim_b_4http://www.amazon.com/Programming-Interactivity-Designers-Processing-Openframeworks/dp/0596154143/ref=pd_sim_b_4http://www.amazon.com/MAKE-Electronics-Learning-Through-Discovery/dp/0596153740/ref=pd_sim_b_8http://www.amazon.com/Getting-Started-Arduino-Make-Projects/dp/0596155514/ref=pd_sim_b_1http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/ref=pd_sim_b_5http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/ref=pd_sim_b_5http://www.amazon.com/Making-Things-Talk-Practical-Connecting/dp/0596510519/ref=pd_sim_b_6http://www.amazon.com/Making-Things-Talk-Practical-Connecting/dp/0596510519/ref=pd_sim_b_6http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/ref=pd_sim_b_5http://www.amazon.com/Getting-Started-Arduino-Make-Projects/dp/0596155514/ref=pd_sim_b_1http://www.amazon.com/MAKE-Electronics-Learning-Through-Discovery/dp/0596153740/ref=pd_sim_b_8http://www.amazon.com/Programming-Interactivity-Designers-Processing-Openframeworks/dp/0596154143/ref=pd_sim_b_4http://www.amazon.com/Interactive-Architecture-Michael-Fox/dp/1568988362http://www.arduino.cc/cgi-bin/yabb2/YaBB.plhttp://www.grasshopper3d.com/profile/firefly.
  • 8/7/2019 Firefly Primer 1.003

    37/37

    utureCiesLab-TheAuroraProject

    thspecialthankstoC.Norman/T.

    Kelley)