Digital Hinge is an interactive composite textile origami structure
connected to a digital interface.
The manipulation of each hinge is processed in real time
through data collected from sensors embedded in the surfaces.
The physical interactions are simulated through a live physics engine,
bridging the materiality of the prototype with the digital interface.
Video in HD resolution: click on HD option.
The origami surface is conceived as a SINGLE MODULE that can be connected to a multitude of other INDIVIDUAL modules or produced as a patterned surface composed of MULTIPLE nodes. Functioning as a wired network, the modules communicate asynchronously in a bridge-nodes configuration.
The connected boards communicate with the computer/digital interface via FTDI cable, sending and receiving information through the Serial Port.
SYSTEM OVERVIEW
The digital interface interfaces with the physical prototype through Rhino + Grasshopper + Firefly via Serial port.
The simulation is produced in Grasshopper + Kangaroo.
DATA: SENSING SYSTEM
Each module is provided with 3 hall sensors and 3 magnets attached to the borders of 3 hinges on the Composite Origami prototype.
The values coming from each sensor convey information on the folding angle between rigid elements. These values are fed to the digital simulation in real time (baud rate 9600).
Each module is tagged with an 'id' [0 to n ].
The custom Arduino software:
- initiates serial communication with the serial port through the Software Serial (the software serial library takes 2 out of the 4 mega of program storage space available on the Attiny44 so not much space is left for other computation on the microprocessor memory)
- the RX pin listens to the Serial Port, waiting for an incoming identification number (id)
- if the Serial Port sends through a char corresponding to the id of the module (in the case of the bridge it is '1')
- sensor values are read (sensor V2, V4, V6)
- sensor values are passed to the Serial Port through Software Serial
- a Led flash highlights the working of this exchange of information
LEGS IN USE FOR PROGRAMMING (IN ARDUINO IDE):
PB0> rx (actually used as tx in the code) / LEG 2 ATTINY / PIN 9 ARDUINO
PB1> tx (actually used as rx in the code) / LEG 3 ATTINY / PIN 10 ARDUINO
PA1> sense2 / LEG 12 ATTINY / PIN 1 ARDUINO > S2
PA4> sense4 / LEG 9 ATTINY / PIN 4 ARDUINO > S4
PA2> sense6 / LEG 11 ATTINY / PIN 2 ARDUINO > S6
PA7> LED / LEG 6 ATTINY / PIN 7 ARDUINO
VALUES: DATA PROCESSING
The rest of the computation is done in Grasshopper 2.0 through the Firefly plugin, which allows to send/receive data in Grasshopper through the Serial Port.
In the Grasshopper definition I:
- Activate Serial Port communication
- Send the id value to the Serial Port
[microprocessor responds by sensing values]
- Read the incoming sensor values from serial port
- Calibrate sensor data by manually recording 'flat' values by pressing rec and typing 'r'
- Map the sensor values that follow to values ranging 0 to 1, because those are the range of values used by the physics engine to simulate the folding of the digital structure.
This HIGH RES IMAGE shows in detail all steps described above and below.
SIMULATION: DIGITAL BEHAVIOUR
Kangaroo is a physics engine capable of simulating the behaviour of structures in a digital environment. I used the plugin to replicate the behaviour of a rigid origami folding structure through a custom Grasshopper definition, integrated with data received through Firefly.
Version 0.99 was used for the development of this project.
Daniel Piker, Kangaroo developer, provided an initial Grasshopper Origami definition, called Origami Simplified example (can be both found on the Grasshopper forum and downloaded with a bundle of other examples on the Kangaroo page).
An 'origami node' has been implemented here. The original definition takes > the folding values from a slider (called 'folding' in the above example), manually activated by a mouse action within the Grasshopper environment > a Rhino generated mesh
> Rhino generated valley fold lines
> Rhino generated mountain fold lines
> valleys folding angle
> mountains folding angle
In order to produce the results shown in the video, the 'origami node' was unpacked and redeveloped to allow the integration of the incoming data from the hall sensors.
The new Grasshopper definition is also defined through :
> mesh
> valley fold lines
> mountain fold lines
> valleys folding angle
> mountains folding angle
in the same way.
As in the original example, the mesh is broken down in 9 valley curves and 3 mountain curves. Each of the 12 curves is treated by the system as the common line between 2 triangles.
The physical magnet - sensor groupings are matched through Grasshopper to 3 corresponding 3 folding groups.
The 3 X mapped sensor values substitute the 'folding slider' defined in the original example.
The Kangaroo object used to activate the simulation mainly takes 2 values:
- STRENGTH value for each hinge
- RESTING angle for each hinge
Each physical grouping matches a mountain curve defined in the digital system.
The digital hinges are matched with the incoming sensor values to define the individual REST ANGLE forces fed in the Kangaroo object.
DESIGN FILES
HARD ELECTRONICS (BOARD)
- Eagle files circuit (board + schem)
- B&w pngs milling
FLEXIBLE ELECTRONICS (HALL SENSORS)
- B&w png file sensor traces
> MATERIAL: 3M copper tape | VYNIL-CUT: 100grf / 0.150mm
- Cut files textiles base for sensors
> MATERIAL: Adhesive fabric | LASER-CUT on Epilog: Speed 80% / Power 30%
ARDUINO CODE
GRASSHOPPER + FIREFLY + KANGAROO
- .3dm file
- Grasshopper file
COMPOSITING
- .3dm File frame + parts perspex & fabrics
> MATERIAL: Perspex 5 mm | LASERCUT on Trotech: Power: 90 / Velocity: 0.6 / Frequency: 7000
> MATERIAL: Textile lycra + polyester mix | LASERCUT on Epilog: Speed 70 / Power 50 / Frequency 2500
MAGNETS CASTING
- .3dm file mold design
- .stl file mold design
> MATERIAL: machinable wax | ROUGHING: 3.175 mm Square | FINISHING: 1 mm Square
- B&w png file for magnets and sensors placement for vynilcutter
> MATERIAL: vynil | VYNIL-CUT: 100grf / 0.150mm
- Eagle files circuit (board + schem)
- B&w pngs milling
FLEXIBLE ELECTRONICS (HALL SENSORS)
- B&w png file sensor traces
> MATERIAL: 3M copper tape | VYNIL-CUT: 100grf / 0.150mm
- Cut files textiles base for sensors
> MATERIAL: Adhesive fabric | LASER-CUT on Epilog: Speed 80% / Power 30%
ARDUINO CODE
GRASSHOPPER + FIREFLY + KANGAROO
- .3dm file
- Grasshopper file
COMPOSITING
- .3dm File frame + parts perspex & fabrics
> MATERIAL: Perspex 5 mm | LASERCUT on Trotech: Power: 90 / Velocity: 0.6 / Frequency: 7000
> MATERIAL: Textile lycra + polyester mix | LASERCUT on Epilog: Speed 70 / Power 50 / Frequency 2500
MAGNETS CASTING
- .3dm file mold design
- .stl file mold design
> MATERIAL: machinable wax | ROUGHING: 3.175 mm Square | FINISHING: 1 mm Square
- B&w png file for magnets and sensors placement for vynilcutter
> MATERIAL: vynil | VYNIL-CUT: 100grf / 0.150mm
BILL OF MATERIALS
HOME | ABOUT | WORK | CONTACT
Francesca Perona © 2015
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Original open source HTML and CSS files
Second HTML and CSS source
Francesca Perona © 2015
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Original open source HTML and CSS files
Second HTML and CSS source