Or, Yarden, Kobi, Maria
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Table Of Content<br />
Part I<br />
- Abstract ...............................................................................................10-11<br />
- Head V1.0 .............................................................................................12-19<br />
- Head V1.1 ..............................................................................................20-29<br />
- Code (Grasshopper) ........................................................................30-39<br />
Part 2<br />
- Electronic Scheme ..........................................................................43<br />
- Material Application ......................................................................46-49<br />
- Head V2.0 ...........................................................................................50-61<br />
- Code (Grasshopper) .......................................................................62-73<br />
- Code (Arduino) .................................................................................76-93<br />
Part 3<br />
- Lab Reports .......................................................................................96-107<br />
- Bibliography .......................................................................................107<br />
- Reference ............................................................................................108-111
Part<br />
I
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Abstract<br />
this project is a work of students at the technion institute of technology.<br />
The idea behind it is creating a smart tool which can attach to the KUKA robotic arm to<br />
weave wires according to heat readings that it gets on the surface that the work is being<br />
done on.<br />
the project includes: developing the 'Spinneret head' which is the smart tool, code for the<br />
weaving movement made with Grasshopper and Python, Arduino code for the heat readings<br />
made with Python and a module which is basically the surface on which the weaving is done on.<br />
Diagram<br />
Technion Architecture & Town Planning Faculty<br />
6
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Mockup - BETA<br />
Technion Architecture & Town Planning Faculty<br />
7
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
MOCKUP<br />
SPINNER HEAD TOOL V1.0<br />
1<br />
Technion Architecture & Town Planning Faculty<br />
8
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
9
Components<br />
Isometric view<br />
SPINNER HEAD TOOL V1.0<br />
This is the first mockup of the tool that we designed. In this<br />
version of the head we tried to understand the shape and<br />
mechanics that will allow the arm to deploy a wire betweend<br />
rodes that are placed on a flat surface.<br />
Body<br />
sahped in a simple box shape, the body is big inof to allow the<br />
parts to be change.<br />
Material: Wood<br />
Size: 12 x 4 x 10 [cm]<br />
Connector<br />
this part is simulating the connecting part to the KUKA arm.<br />
allow us to simulate the position of the Flange.<br />
Material: Wood<br />
Size: 5 x 1 x 5 [cm]<br />
Cartridge Rod<br />
the rod is supported through the body and holds the web<br />
cartridge. the pipe shape allows the cartridge to rotate and<br />
release the wire.<br />
Material: stainless steel<br />
Size: diameter: 6 [mm] , Length: 10 x 5 [cm]<br />
Leading Pipe<br />
because of the extended shape, the pipe is leading the wire to<br />
the position of the movement course.<br />
Material: silicone<br />
Size: diameter: 5 [mm], Length: 5 [cm]<br />
Tension Supporter<br />
providing stretch between the Cartridge and the Leading pipe.<br />
Material: metal<br />
Size: diameter: 2 [mm], Length: 8 [cm]<br />
Nut<br />
Size: 6 [mm]<br />
10
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Assembly<br />
Isometric view<br />
1<br />
2<br />
1<br />
Body<br />
2<br />
Connector<br />
3<br />
Cartridge Rod<br />
4<br />
Leading Pipe<br />
5<br />
Tension Supporter<br />
6<br />
7<br />
Nut<br />
Wire Wheel<br />
4 5<br />
3<br />
7<br />
6<br />
Cartridge insertion<br />
The Nut prevents the Cartridge<br />
from falling.<br />
It can also lock the cartridge<br />
by strengthening the nut and<br />
preventing it from rolling.<br />
Technion Architecture & Town Planning Faculty<br />
11
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
OPERATION METHOD<br />
SPINNER HEAD TOOL v.1.0<br />
Isometric view<br />
Tension<br />
The tension of the wire is the degree to which<br />
it is stretched. In this tool the tension is created<br />
by tying the end of the wire to any object and<br />
moving the arm against the object position.<br />
Technion Architecture & Town Planning Faculty<br />
12
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
The tension that is created from the<br />
movment turns into the spinning movment<br />
of the Cartridge and that's what releases<br />
the wire.<br />
Technion Architecture & Town Planning Faculty<br />
13
14
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Conclusions<br />
Version 1.0<br />
1. Reduce the mass of the body.<br />
2. Intensify the tension between the wire and cartridge.<br />
3. The position and the size of the cartridge needs to be flexible.<br />
4. Improve the connection between the body and the arm with the Flange.<br />
5. Improve the pipe by making it detachable.<br />
Make Flexible<br />
Improve Flange<br />
Connection<br />
Intensify<br />
Tension<br />
Reduce Mass<br />
Turn into<br />
Detachable Pipe<br />
Technion Architecture & Town Planning Faculty<br />
15
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
3D PRINT<br />
SPINNERET HEAD TOOL V1.1<br />
2<br />
Technion Architecture & Town Planning Faculty<br />
16
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
17
Components<br />
Isometric view<br />
SPINNERET V1.1<br />
From the conclusions that we made from the last version<br />
we decided to improve the movment flexebility by reducing<br />
material and to accurate the position of the wire. Furthermore,<br />
we upgraded the Leading Pipe instruments to improve the<br />
support of the wire. This new version named after the part in<br />
the spider (animal) that responsible on leading the cobweb<br />
out of the spider - Spinneret.<br />
Body<br />
'L' shaped body in order to use less metrial mass while still<br />
being firm enough.<br />
Material: Wood<br />
Size: 12 x 2x 10 [cm]<br />
Flange<br />
this part is 3D printed from the KUKA site.<br />
Material: PLA<br />
Size: 4 x 1.2 x 4 [cm]<br />
Cartridge Rod<br />
the rod is supported through the body and holds the web cartridge.<br />
the pipe shape allows the cartridge to rotate and release the wire.<br />
Material: stainless steel<br />
Size: daimeter: 6 [mm] , Length: 10x 7 [cm]<br />
Pipe House<br />
the house that connected to the body via a screw allows the<br />
Leading Pipe to be removable in time of need.<br />
Material: stainless steel<br />
Size: daimeter: 2 [cm] , Length: 2.7 [cm]<br />
Leading Pipe<br />
because of the extended shape, the pipe is leading the wire to<br />
the position of the movment course.<br />
Material: stainless steel<br />
Size: daimeter: 5 [mm], Length: 8 [cm]<br />
Pipe.<br />
Material: silicone<br />
Size: daimeter: 5 [mm], Length: 5 [cm]<br />
Tension Supporter<br />
providing stretch between the Caritage and the Leading pipe.<br />
Material: metal<br />
Size: daimeter: 1 [cm]<br />
18
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Assembly<br />
Isometric view<br />
The Flange is consist of two parts<br />
that connected to each other and to<br />
the Robotic Arm with four screws. in<br />
the other side of the flange there is<br />
a connector that connects the body<br />
to the Flange.<br />
The disassembly of the elements planed to<br />
improve the loading prosidure of the wire<br />
into the pipe and to inable the option of<br />
fixing any jam in the pipe area.<br />
Technion Architecture & Town Planning Faculty<br />
19
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
PLANS<br />
Right view<br />
Technion Architecture & Town Planning Faculty<br />
20
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Top View<br />
Technion Architecture & Town Planning Faculty<br />
21
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Left view<br />
Technion Architecture & Town Planning Faculty<br />
22
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Front View<br />
Technion Architecture & Town Planning Faculty<br />
23
24
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Conclusions<br />
Version 1.1<br />
1. 3D print the flange part with the body in one piece.<br />
2. Improve the connection of the cartridge rod by strengthening the screws.<br />
3. Change the way of attaching the wire wheel because it was heavy and had a<br />
big moment.<br />
4. Lengthen the cartridge rod in order to reach all the parts of the screw. the<br />
screws are 12 [cm]<br />
5. Add the electric part to the body to make it a smart head; heat reading camera,<br />
arduino board and wires.<br />
6. Make the body size bigger to fit all the gadgets.<br />
7. Attach the glue container to create hardened weaved construction.<br />
3D print as one<br />
part<br />
Make Body Size<br />
Bigger<br />
Attach Wheel<br />
Differently<br />
Strengthen<br />
Connection<br />
Attach Arduino<br />
Board<br />
Add Glue<br />
Container<br />
Attach Heat<br />
Reading Camera<br />
Make Cartridge<br />
Rod Longer<br />
Technion Architecture & Town Planning Faculty<br />
25
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
CODE<br />
Code 1.1<br />
B<br />
A<br />
A - Surface Composition<br />
B - Point Sorting<br />
C<br />
C - Kuka Movement<br />
Technion Architecture & Town Planning Faculty<br />
26
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Brep<br />
Top Surface<br />
Code Objective:<br />
Test a basic movement with the kuka robot<br />
that we are interested to apply in our project.<br />
the code uses a 2D hexagonal surface on which it<br />
performs a scan and plans the movement.<br />
this code was made with grasshopper components<br />
only.<br />
Steps:<br />
1- choosing a BREP from RHINO.<br />
2- choosing the outlines of the shape.<br />
3- choosing the upper outlines on which the<br />
movement is going to be performed.<br />
4- dividing the lines to control points and arranging<br />
them in the wanted order.<br />
5- inserting the points into the KUKA program.<br />
Result:<br />
linear movement that passes through the center<br />
point of a star shape.<br />
Path Border<br />
Control points division<br />
Sorting points to different lists<br />
Path<br />
Technion Architecture & Town Planning Faculty<br />
27
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 1.2<br />
D<br />
D<br />
Code Objective:<br />
Movement feasibility of code 3.<br />
in this code, we used 4 screws in different<br />
heights that are connected to a 2D surface.<br />
this code contains a new element which is wrapping around a<br />
scew.<br />
the code is manual: movement direction, number of screws and<br />
number of wraps are all manually inserted.<br />
Steps:<br />
1- inserting outlines of the wanted shape plus an extra point of a<br />
screw if needed.<br />
2- creating control points of the shape.<br />
3- creating guidelines that represent the screws in the code.<br />
4- manual selection of each and every screw.<br />
5- manual selection of every control point.<br />
6- extracting the center point of every screw.<br />
7- Inserting all the points to Python code that creates the wrapping<br />
movement.<br />
8- extracting the start and end point of every wrapping movement.<br />
9- connecting between the end point of a wrap to the start point<br />
of the next wrap.<br />
10- uniting all the created lines into one list that will be arranged<br />
according to the movement.<br />
11- divicing the lines into control points.<br />
12- inserting the control points to the KUKA program.<br />
Technion Architecture & Town Planning Faculty<br />
28
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Brep<br />
Top Surface<br />
Path Border<br />
Border Control Points<br />
Extrude Screw Simulators<br />
Path<br />
Wrapping Path<br />
0 max = 2 * math.pi<br />
1 #print max, math.pi<br />
2<br />
3 deltaXY = max / nPoints # Angle step in radians<br />
4 deltaZ = height / nPoints # Height step<br />
5<br />
6 sideM = 0<br />
7 ang = 0<br />
8 dz = 0<br />
9 pts = [] # List of points defining the spiral<br />
10 lines = []<br />
# List of crossing lines<br />
11 pipes = []<br />
# List of crossing tubes<br />
12<br />
13 #Define Miroring<br />
14<br />
15 if Side == True:<br />
16 sideM = -1<br />
17 elif Side == False:<br />
18 sideM = +1<br />
19<br />
20 for i in range(int(nPoints + 1)):<br />
21 x = diX + radius * sideM * math.cos(times * ang) # Circle vertex.X<br />
22 y = diY + radius * math.sin(times * ang) # Circle vertex.Y<br />
23 z = diZ + dz<br />
# Circle vertex.Z<br />
24<br />
25 pts.append(rs.AddPoint([x, y, z]))<br />
26<br />
27 ang = ang + deltaXY<br />
28 dz = dz + deltaZ<br />
29<br />
30 # Create circles<br />
31 cir = rs.AddInterpCurve(pts)<br />
32<br />
33 # Rotating the spring<br />
34 rs.RotateObjects(cir, [diX, diY, diZ], Rotate , None)<br />
35<br />
36 pt = rs.DivideCurve(cir, nPoints, True, True)<br />
37<br />
Technion Architecture & Town Planning Faculty<br />
29
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 2.1<br />
B<br />
c-1<br />
D<br />
F<br />
A<br />
c<br />
D<br />
E<br />
E-1<br />
G<br />
H<br />
Code Objective:<br />
Movement feasibility of code 3.<br />
in this code, we checked the option of creating a wrapping<br />
movement around the screws in different heights.<br />
in this code 5 screws of the same height are connected to a<br />
rectangular 2D surface.<br />
The code is manual: wrapping direction, number of wraps nad<br />
number of screws are inserted manually.<br />
Steps:<br />
1- inserting outlines of the wanted shape plus an extra point of a<br />
screw if needed.<br />
2- creating control points of the shape.<br />
3- creating guidelines that represent the screws in the code.<br />
4- manual selection of each and every screw.<br />
5- manual selection of every control point.<br />
6- extracting the center point of every screw.<br />
7- Inserting all the points to Python code that creates the wrapping<br />
movement.<br />
8- extracting the start and end point of every wrapping movement.<br />
9- connecting between the end point of a wrap to the start point<br />
of the next wrap.<br />
10- uniting all the created lines into one list that will be arranged<br />
according to the movement.<br />
11- divicing the lines into control points.<br />
12- inserting the control points to the KUKA program.<br />
Technion Architecture & Town Planning Faculty<br />
30
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Brep<br />
Top Surface<br />
Path Border<br />
Border Control Points<br />
{0}<br />
0 40<br />
1 32<br />
2 50<br />
3 30<br />
4 73<br />
Extrude Screw Simulators<br />
Screws Heights<br />
Path<br />
Wrapping Path<br />
0 max = 2 * math.pi<br />
1 #print max, math.pi<br />
2<br />
3 deltaXY = max / nPoints # Angle step in radians<br />
4 deltaZ = height / nPoints # Height step<br />
5<br />
6 sideM = 0<br />
7 ang = 0<br />
8 dz = 0<br />
9 pts = [] # List of points defining the spiral<br />
10 lines = []<br />
# List of crossing lines<br />
11 pipes = []<br />
# List of crossing tubes<br />
12<br />
13 #Define Miroring<br />
14<br />
15 if Side == True:<br />
16 sideM = -1<br />
17 elif Side == False:<br />
18 sideM = +1<br />
19<br />
20 for i in range(int(nPoints + 1)):<br />
21 x = diX + radius * sideM * math.cos(times * ang) # Circle vertex.X<br />
22 y = diY + radius * math.sin(times * ang) # Circle vertex.Y<br />
23 z = diZ + dz<br />
# Circle vertex.Z<br />
24<br />
25 pts.append(rs.AddPoint([x, y, z]))<br />
26<br />
27 ang = ang + deltaXY<br />
28 dz = dz + deltaZ<br />
29<br />
30 # Create circles<br />
31 cir = rs.AddInterpCurve(pts)<br />
32<br />
33 # Rotating the spring<br />
34 rs.RotateObjects(cir, [diX, diY, diZ], Rotate , None)<br />
35<br />
36 pt = rs.DivideCurve(cir, nPoints, True, True)<br />
37<br />
Technion Architecture & Town Planning Faculty<br />
31
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 2.1<br />
A - Shape Contour Insert<br />
B - Screw Creator<br />
C - Height Chooser<br />
D- Midscrew Finder<br />
G- Course Point For Kuka<br />
C-1- Control Point Chooser<br />
F- Line Creator String To String<br />
H- Kuka Simulator<br />
E- Spin Creator<br />
Technion Architecture & Town Planning Faculty<br />
32
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
E-1 - Python Spiral<br />
spiral code<br />
1- insert center point and x,y,z<br />
2- creating the spiral code that duplicates the points according to the cos formula.<br />
https://sites.math.washington.edu/~ebekyel/Math126/Spiral.html<br />
3- the radius and the distance between every spiral is determined manually.<br />
Technion Architecture & Town Planning Faculty<br />
33
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 2.2<br />
B<br />
c-1<br />
D<br />
F<br />
A<br />
c<br />
D<br />
E<br />
E-1<br />
G<br />
H<br />
Code Objective:<br />
Movement feasibility of code 3.<br />
in this code, we checked the option of creating a wrapping<br />
movement around the screws in different heights.<br />
in this code 5 screws of the same height are connected to a rectangular 2D<br />
surface.<br />
The code is manual: wrapping direction, number of wraps nad number of<br />
screws are inserted manually.<br />
Steps:<br />
1- inserting outlines of the wanted shape plus an extra point of a screw if<br />
needed.<br />
2- creating control points of the shape.<br />
3- creating guidelines that represent the screws in the code.<br />
4- manual selection of each and every screw.<br />
5- manual selection of every control point.<br />
6- extracting the center point of every screw.<br />
7- Inserting all the points to Python code that creates the wrapping movement.<br />
8- extracting the start and end point of every wrapping movement.<br />
9- connecting between the end point of a wrap to the start point of the next<br />
wrap.<br />
10- uniting all the created lines into one list that will be arranged according to<br />
the movement.<br />
11- divicing the lines into control points.<br />
12- inserting the control points to the KUKA program.<br />
Technion Architecture & Town Planning Faculty<br />
34
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Brep<br />
Top Surface<br />
Path Border<br />
Border Control Points<br />
{0}<br />
0 40<br />
1 32<br />
2 50<br />
3 30<br />
4 73<br />
Extrude Screw Simulators<br />
Screws Heights<br />
Path<br />
Wrapping Path<br />
0 max = 2 * math.pi<br />
1 #print max, math.pi<br />
2<br />
3 deltaXY = max / nPoints # Angle step in radians<br />
4 deltaZ = height / nPoints # Height step<br />
5<br />
6 sideM = 0<br />
7 ang = 0<br />
8 dz = 0<br />
9 pts = [] # List of points defining the spiral<br />
10 lines = []<br />
# List of crossing lines<br />
11 pipes = []<br />
# List of crossing tubes<br />
12<br />
13 #Define Miroring<br />
14<br />
15 if Side == True:<br />
16 sideM = -1<br />
17 elif Side == False:<br />
18 sideM = +1<br />
19<br />
20 for i in range(int(nPoints + 1)):<br />
21 x = diX + radius * sideM * math.cos(times * ang) # Circle vertex.X<br />
22 y = diY + radius * math.sin(times * ang) # Circle vertex.Y<br />
23 z = diZ + dz<br />
# Circle vertex.Z<br />
24<br />
25 pts.append(rs.AddPoint([x, y, z]))<br />
26<br />
27 ang = ang + deltaXY<br />
28 dz = dz + deltaZ<br />
29<br />
30 # Create circles<br />
31 cir = rs.AddInterpCurve(pts)<br />
32<br />
33 # Rotating the spring<br />
34 rs.RotateObjects(cir, [diX, diY, diZ], Rotate , None)<br />
35<br />
36 pt = rs.DivideCurve(cir, nPoints, True, True)<br />
37<br />
Technion Architecture & Town Planning Faculty<br />
35
Part<br />
II
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
38
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Electronic Scheme<br />
Technion Architecture & Town Planning Faculty<br />
39
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Material Experiment Documentation<br />
The Experiment's goal is to figure out the right material for the wire and the<br />
glue that is gonna be used in weaving our model.<br />
>> We Want To Find A flexible strong Wire and a fast drying Glue.<br />
Glue Types<br />
- Loctite super glue-3<br />
- Poxipol >A<<br />
- Poxipol >B<<br />
- 5 Minute Epoxy<br />
Wire Types<br />
Test Combinations<br />
<strong>Or</strong>ange Thin Wire<br />
Radius : 0.5mm<br />
Test 1: comined with Loctite, 2 drops - 20 second<br />
Test 2: combined with Epoxy, 3 drops - 1 hour<br />
Test 3: combined with Poxipol A/B, 3 dorps - 1 hour<br />
Brwon Thick Tough Wire<br />
Radius : 1mm<br />
Test 1: combined with Loctite, 3 drops - 10 seconds<br />
Test 2: combined with Epoxy, 4 drops - 50 minutes<br />
Test 3: combined with Poxipol A/B, 4 drops - 50 minutes<br />
<strong>Or</strong>ange Thin Wire<br />
Radius : 0.125mm<br />
Test 1: combined with Loctite, 2 drops - 5 seconds<br />
Test 2: combined with Epoxy, 4 drops - 55 minutes<br />
Test 3: combined with Poxil A/B, 4 drops - 55 minutes<br />
White Thick Soft Wire<br />
Radius : 1mm<br />
Test 1: combined with Loctite, 5 drops - 2 seconds<br />
Test 2: combined with Epoxy, 5 drops - 1 hour<br />
Test 3: combined with Poxipol A/B, 5 drops - 1 hour<br />
Technion Architecture & Town Planning Faculty<br />
42
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Board Types<br />
The Aluminum Board suggest<br />
heating the aluminum pads<br />
which will be placed above<br />
the heating pads of the same<br />
size, so reading of the camera<br />
will be done one the aluminum<br />
pads themselves.<br />
Opt A: Board with Aluminum heated plate<br />
The Double Board suggests<br />
heating through the nails<br />
themselves. in the gap the<br />
heating pads will be placed<br />
and attached to the nails and<br />
the camera does the reading<br />
on the upper board where<br />
only the nails will be visible.<br />
Opt B: Board with heated Nails<br />
conclusions<br />
Glue<br />
We can clearly conclude from the experiment that the glue that gave the best results<br />
was the Loctite Super Glue-3. In average , we had to use fewer drops of it and it dried<br />
all the wires the fastest : took from 2 - 20 seconds to dry, while the other type took<br />
about an hour.<br />
Wire<br />
The choice of the wire eventually is the soft white wire. It has the best physical<br />
qualities amongst all the others: it is flexible enough, thick enough and when combined<br />
with the Loctite Super Glue-3 it gives the Best Structure out of all the options.<br />
Technion Architecture & Town Planning Faculty<br />
43
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Construction Materials Documentation<br />
The Experiment's Goal is to test which way is better to create the construction<br />
removal after we knit the whole designed grid with the chosen wire and glue.<br />
Opt A: half straws with brown wire<br />
with glue<br />
Opt B: Brown Wire with glue<br />
Opt C: full straws and silicon pipes with<br />
white wire<br />
Technion Architecture & Town Planning Faculty<br />
44
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Opt A:<br />
the tops of the screws were cut and half straws with a small radius were inserted<br />
to the screws. the construction that was formed with the brown wire and glue<br />
was good but the removal was hard. it can be seen in the left pic of Opt A how the<br />
straw was bent while removing it.<br />
Opt B:<br />
the screws remained whole in this option. the wire was knitted around them with<br />
out any construction removal technique. the idea was to remove the nails from the<br />
board with the formed construction.<br />
Opt C:<br />
the tops of the screws were cut again, this time they were inserted into a big<br />
radius straws and silicon pipes, which allows more freedom for the removal process,<br />
however, it caused the construction to weaken because of the freedom of the<br />
straws that caused the tention to get weaker.<br />
conclusions<br />
Straws<br />
we can conclude from the experiment that after the glue was hardened , the best way<br />
to remove the formed construction was with the straws and pipes and the white wire.<br />
as it is easy to remove and the glue and wire struck good on the straws and silicon pipes.<br />
so to conclude we chose silicon pipes because the wires and glue stuck much better<br />
at it than the straws.<br />
the wanted silicon pipes should be in a smaller radius to fit better with the screws.<br />
Screws<br />
The screws are going to stay whole like in Option B, and the operation of the removal<br />
will by unscrewing the screws upwards and detaching them from the wooden board.<br />
Technion Architecture & Town Planning Faculty<br />
45
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
3D PRINT<br />
SPINNERET HEAD TOOL V2.0<br />
3<br />
Technion Architecture & Town Planning Faculty<br />
46
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
47
Components<br />
Isometric view<br />
SPINNERET V2.0<br />
This version is an improvement of the past version. in this<br />
version we have implemented Mechanical and Electric Elements<br />
. the idea is to be able to knit according to the heat reading<br />
from the camera sensor attached to the body. a bucket of glue<br />
was also added to this version as we want to create a hard<br />
knitted structure after the head finishes the weaving according<br />
to the movement developed in the code.<br />
Body<br />
'L' shaped body with circular hole for the spring in which the wire<br />
wheel will be inserted in. the body is split into two pieces now.<br />
Material: PLA<br />
Size: 13.4 x 16.6 x 2 [cm]<br />
Spring<br />
this part locks in it the wire wheel. it attaches to the body in a<br />
circular motion and locks on it.<br />
Material: PLA<br />
Size: Radius: 4.2 [cm]<br />
Pipe House<br />
the pipe house is supported with the body and holds the wire.<br />
the pipe shape allows the cartridge to rotate and release the<br />
wire.<br />
Material: PLA<br />
Size: Length: 8 [cm]<br />
Glue Container<br />
a container for the glue is attached to the body at its lowest<br />
part. the attachment is done with a click mechanism.<br />
Material: PLA<br />
Size: 4.67 x 11.4 x 4.5 [cm]<br />
Extortioner Pin<br />
two pins that squeez the glue off the passing wire.<br />
Material: teflon<br />
Size: diameter: 7.6 [mm], Length: 5.6 [cm]<br />
Pipe<br />
Size: diameter: 6 [mm], Length: 7 [cm]<br />
Pin<br />
locking the different parts attached together.<br />
Size: Length: 19 [mm]<br />
48
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Arduino<br />
Spring<br />
Camera<br />
Sensor<br />
Glue<br />
Container<br />
Wire Head<br />
The new Version includes two important parts: Electric & Mechanical.<br />
the electric part includes the first arduino board and a sensor camera. this complex<br />
recieves the input which is the heat reading.<br />
the mechanical part includes a spring for the wire. glue container and a wire knitting<br />
head which can be detached. this complex creates the output which is the weaved<br />
wire in the designed shape.<br />
Technion Architecture & Town Planning Faculty<br />
49
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
The arduino board is attached to the left side of<br />
the Spinneret. an exact shape of the arduino was<br />
created on the body to attached it perfectly and<br />
flawlessly, so it can provide electrivity to all the<br />
left side of the body which is the Electrical part.<br />
Technion Architecture & Town Planning Faculty<br />
50<br />
the cartride rod part is composed of<br />
two parts. one that attaches to the<br />
body by clicking into it. the second<br />
part which surrounds the teflon pipe is<br />
locked with a pin.
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
the spring locks into the body in<br />
a circular motion after putting in<br />
the wire wheel.<br />
Technion Architecture & Town Planning Faculty<br />
51
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
PLANS<br />
Right view<br />
Technion Architecture & Town Planning Faculty<br />
52
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Top View<br />
Technion Architecture & Town Planning Faculty<br />
53
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Left view<br />
Technion Architecture & Town Planning Faculty<br />
54
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Front View<br />
Technion Architecture & Town Planning Faculty<br />
55
56
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Conclusions<br />
Version 2.0<br />
1. Making the wire wheel more loose to reduce the tention that was<br />
created.<br />
2. Making the pipe house from either a stronger material or a more flexible<br />
one.<br />
Better<br />
Connection<br />
Change<br />
Material<br />
Technion Architecture & Town Planning Faculty<br />
57
CODE<br />
General Code<br />
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
A<br />
E<br />
B<br />
C<br />
D<br />
E - KUKA Simulator<br />
D<br />
Technion Architecture & Town Planning Faculty<br />
58
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
A - Scan Movement<br />
B - Reading Port Arduino<br />
C - List Recorder<br />
D - Movement Generator<br />
Technion Architecture & Town Planning Faculty<br />
59
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 3.1<br />
A<br />
Code Objective:<br />
This Code Is a part of all the codes that were tested in the Lab.<br />
it creates the movement for the heat reading for the arduino.<br />
Steps In Python Code:<br />
1- Manually creating 4 offset points on the tested board .<br />
2- arranging the points according to the movement.<br />
3- Inserting all the points into the Kuka Program.<br />
Technion Architecture & Town Planning Faculty<br />
60
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Brep<br />
Offseting the Control points<br />
Sorting the points<br />
Technion Architecture & Town Planning Faculty<br />
61
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 3.2<br />
A<br />
E<br />
B<br />
C<br />
D<br />
D<br />
Code Objective:<br />
This Code is based on all the knoweldge that we've gathered from all the previous<br />
codes. the objective is : measuring the data, sending to grasshopper, creating the<br />
movement by code and making the movement precise in real time.<br />
in this code we get a reading from the arduino system that is sent from the port<br />
into Grasshopper. the reading is done every 1 sec.<br />
Steps In Python Code:<br />
1- receiving data from the reading : A,B,C,D,E,F,G<br />
2- inserting the dara into the Python code that translates the readings into<br />
different heights: 20,40,60,80 m"m.<br />
3- becuase of the fact that the reading is done every 1 sec ,<br />
the code was created to generate distance according to time.<br />
explanation: if the route takes about 40 sec and has 4 stops then the generated<br />
distance data in the code will be equal to 10 sec.<br />
result: a list of 4 parameters will be generated.<br />
4- inserting the generated data list into Python.<br />
result: control points generated.<br />
5- inserting control points into the Kuka program.<br />
** the final form is controlled by the heating pads, that's why the generated shape<br />
isn't controlled by the code but by the sensors.<br />
Technion Architecture & Town Planning Faculty<br />
62
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
A<br />
B<br />
C<br />
D<br />
Input from Arduino<br />
Python<br />
Code<br />
A<br />
D<br />
==<br />
20<br />
80<br />
[mm]<br />
[mm]<br />
Transelating the inputs to distance<br />
Diagonal line control points<br />
40<br />
20<br />
20<br />
66.6<br />
Line<br />
Building the control points<br />
60 80<br />
Surface<br />
Building the control points<br />
Different hiegths<br />
40<br />
20<br />
73.6<br />
80<br />
Inserting to the string function<br />
creating a spin around every point<br />
Dividing the line to subpoints<br />
60 80<br />
Creating the hyperbulic surface<br />
20<br />
66.6<br />
73.6<br />
80<br />
Projecting the line’s points to the surface<br />
Technion Architecture & Town Planning Faculty<br />
63
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 3.3<br />
A<br />
E<br />
B<br />
C<br />
D<br />
D<br />
Code Objective:<br />
This is the final test. this code is creatd based on all the knowledge that we've<br />
gathered from all the previous code.<br />
in this code we get a reading from the arduino system that is sent from the<br />
port into Grasshopper. the reading is done every 1 sec.<br />
Steps In Python Code:<br />
1- receiving data from the reading : A,B,C,D,E,F,G<br />
2- inserting the dara into the Python code that translates the readings into<br />
different heights: 20,40,60,80 m"m.<br />
3- becuase of the fact that the reading is done every 1 sec ,<br />
the code was created to generate distance according to time.<br />
explanation: if the route takes about 40 sec and has 4 stops then the generated<br />
distance data in the code will be equal to 10 sec.<br />
result: a list of 4 parameters will be generated.<br />
4- inserting the generated data list into Python.<br />
result: control points generated.<br />
5- inserting control points into the Kuka program.<br />
Technion Architecture & Town Planning Faculty<br />
64
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
A<br />
B<br />
C<br />
D<br />
Input from Arduino<br />
Python<br />
Code<br />
A<br />
D<br />
==<br />
20<br />
80<br />
[mm]<br />
[mm]<br />
Transelating the inputs to distance<br />
40<br />
20<br />
60 80<br />
Line<br />
Building the control points<br />
Surface<br />
Building the control points<br />
Different hiegths<br />
40<br />
20<br />
60 80<br />
Dividing the line to subpoints<br />
Creating the hyperbulic surface<br />
20<br />
66.6<br />
73.6<br />
80<br />
Projecting the line’s points to the surface<br />
Technion Architecture & Town Planning Faculty<br />
65
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
66
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Hyperbolic grid control points<br />
40<br />
36.6 23.6<br />
20<br />
40<br />
36.6 23.6<br />
20<br />
46.6<br />
66.6<br />
46.6<br />
66.6<br />
53.6<br />
73.6<br />
53.6<br />
73.6<br />
60 80<br />
66.6 73.6<br />
Sorting the points in course A<br />
60 80<br />
66.6 73.6<br />
Sorting the points in course B<br />
40<br />
36.6 23.6<br />
20<br />
40<br />
36.6 23.6<br />
20<br />
46.6<br />
66.6<br />
46.6<br />
66.6<br />
53.6<br />
73.6<br />
53.6<br />
73.6<br />
60 80<br />
66.6 73.6<br />
Inserting to the string function<br />
creating a spin around every point<br />
60 80<br />
66.6 73.6<br />
Combain the courses<br />
Technion Architecture & Town Planning Faculty<br />
67
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Python Code<br />
Steps In Python Code:<br />
1- Grid Creation<br />
2- elevating the 4 edge points of the grid according the A,B,C,D Reading.<br />
3- creating a surface between these 4 points.<br />
4- attaching the grid points to the created surface to be able to position the<br />
Hyperbola Shape.<br />
5- arrnaging the list of points according to the movement.<br />
Starting Movement 1<br />
6- destributing the points from movement 1 into 3 lists:<br />
A- center points<br />
B- starting points<br />
C- finishing points<br />
7- inserting all 3 lists into the spiral movement<br />
result:<br />
A- every center point from the list gets a spiral movement around it.<br />
the spiral's charesceristics are generated automatically from the<br />
function.<br />
B- the spiral generats the control points in the list from 0 till the last<br />
spiral.<br />
Inserting the points into the KUKA program<br />
result:<br />
movement from one point to the other according the order in the list.<br />
Explanation of the wrapping/ Spiral movement:<br />
the direction of the start and end of the spiral movement is determined<br />
automatically.<br />
the function is designed in a way that the end point of the spiral is determined<br />
by the number of the wraps which is determined by an if condition that is<br />
decided by the relation between the starting points, the center points and the<br />
end points.<br />
the starting point of the spiral is determined by the if condition.<br />
1- inserting the center point and deconstructing it.<br />
2- creating a loop that duplicates the points according to the COS function.<br />
https://sites.math.washington.edu/~ebekyel/Math126/Spiral.html<br />
3- the radius and the distance between each spiral is determined Manually.<br />
Technion Architecture & Town Planning Faculty<br />
68
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Python<br />
Code<br />
{ X,Y,Z }<br />
{ X,Y,Z }<br />
{ X,Y,Z }<br />
outPoint<br />
centerPoint<br />
inPoint<br />
Inserting the points<br />
from three different lists<br />
extracting the X,Y,Z values of every point<br />
{ X,Y,Z }<br />
X = cos(t)<br />
Y = sin(t)<br />
Z = t<br />
inserting the values to the spiral cos/sin function<br />
defining an ‘if’ statement for defining the direction of the spiral<br />
if if if<br />
elif elif elif<br />
elif<br />
elif<br />
elif<br />
elif<br />
elif<br />
elif<br />
Technion Architecture & Town Planning Faculty<br />
69
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
70
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Electronic Scheme<br />
Technion Architecture & Town Planning Faculty<br />
71
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Hot Board/ Arduino<br />
Opt A: Board with Aluminum heated plate<br />
Components of the Hot Board:<br />
- wooden board .<br />
size: 48*48 cm<br />
- 24 Heating Pads .<br />
size each: 5*10 cm<br />
- aluminum board.<br />
size: 46*46 cm<br />
- 49 nails of different heights.<br />
Height: 12 cm<br />
**the nails are distributed on the board evenly with<br />
a 7 cm distance both horizontally and vertically.<br />
Technion Architecture & Town Planning Faculty<br />
72
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 1<br />
Hot Board Arduino<br />
#include <br />
int pin1 = 3;<br />
int pin2 = 4;<br />
int pin3 = 5;<br />
int pin4 = 6;<br />
int pin5 = 7;<br />
int pin6 = 8;<br />
int pin7 = 9;<br />
int pin8 = 10;<br />
unsigned long previousMillis;<br />
fl o a t Thousade= 1000;<br />
fl o a t TimeSinceStart=0;<br />
extern volatile unsigned long<br />
timer0_millis;<br />
unsigned long new_value = 0;<br />
}<br />
digitalWrite(pin5, LOW);<br />
Serial.println(" 5 is LOW");<br />
digitalWrite(pin6, LOW);<br />
Serial.println(" 6 is LOW");<br />
digitalWrite(pin7, LOW);<br />
Serial.println(" 7 is LOW");<br />
digitalWrite(pin8, LOW);<br />
Serial.println(" 8 is LOW");<br />
void loop() {<br />
unsigned long currentMillis =<br />
millis(); // grab current time<br />
void setup() {<br />
Serial.begin(115200);<br />
pinMode(3, OUTPUT);<br />
pinMode(4, OUTPUT);<br />
pinMode(5, OUTPUT);<br />
pinMode(6, OUTPUT);<br />
pinMode(7, OUTPUT);<br />
pinMode(8, OUTPUT);<br />
pinMode(9, OUTPUT);<br />
pinMode(10, OUTPUT);<br />
digitalWrite(pin1, LOW);<br />
Serial.println("1 is LOW");<br />
digitalWrite(pin2, LOW);<br />
Serial.println(" 2 is LOW");<br />
digitalWrite(pin3, LOW);<br />
Serial.println(" 3 is LOW");<br />
digitalWrite(pin4, LOW);<br />
Serial.println(" 4 is LOW");<br />
Technion Architecture & Town Planning Faculty<br />
73
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Hot Board/ Arduino<br />
Opt B: Board with heated nais<br />
Components of the Hot Board:<br />
- 2 wooden boards .<br />
size: 48*48 cm<br />
- 24 Heating Pads .<br />
size each: 5*10 cm<br />
- 49 Aluminum bases for the nails .<br />
size: 3*3 cm<br />
- 49 nails of different heights.<br />
Height: 12 cm<br />
**the nails are distributed on the board evenly with<br />
a 7 cm distance both horizontally and vertically.<br />
Technion Architecture & Town Planning Faculty<br />
74
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
// THIS IS FOR Number 1 RELAY / PAD////////////////////////////////////////<br />
if ((unsigned long)(currentMillis - previousMillis) >= 25*Thousade &&<br />
(unsigned long)(currentMillis - previousMillis) < 205*Thousade) {<br />
digitalWrite(pin1, HIGH);<br />
Serial.println("Pin 1 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 205*Thousade &&<br />
(unsigned long)(currentMillis - previousMillis) < 235*Thousade) {<br />
digitalWrite(pin1, LOW);<br />
Serial.println("Pin 1 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 235*Thousade &&<br />
(unsigned long)(currentMillis - previousMillis) < 355*Thousade) {<br />
digitalWrite(pin1, HIGH);<br />
Serial.println("Pin 1 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 355*Thousade<br />
&& (unsigned long)(currentMillis - previousMillis) < 385*Thousade) {<br />
digitalWrite(pin1, LOW);<br />
Serial.println("Pin 1 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
///////////////////////////////////////////////////////////////////////////<br />
if ((unsigned long)(currentMillis- previousMillis) >= 385*Thousade)<br />
{<br />
setMillis(0);<br />
}<br />
Serial.print("Time Since Beggining Of Loop is : ");<br />
Serial.println(currentMillis/Thousade);<br />
}<br />
delay(500);<br />
void setMillis(unsigned long new_millis){<br />
uint8_t oldSREG = SREG;<br />
cli();<br />
timer0_millis = new_millis;<br />
SREG = oldSREG;<br />
}<br />
Technion Architecture & Town Planning Faculty<br />
75
Arduino Board<br />
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
6,2<br />
1,1<br />
68,6<br />
50,8<br />
3,3<br />
8,9<br />
53,3<br />
12<br />
9,6<br />
3,2 (4x)<br />
4,7<br />
27,9<br />
15,2<br />
1,8<br />
51,9<br />
74,8<br />
14<br />
10,9<br />
1,6<br />
The Aruino Board That Was Used Is Arduino Uno<br />
Technion Architecture & Town Planning Faculty<br />
76
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 2<br />
Hot Board Arduino<br />
#include <br />
#include <br />
GridEYE grideye;<br />
void setup() {<br />
// Start your preferred I2C object<br />
Wire.begin();<br />
// Library assumes "Wire" for I2C but you can pass something else with begin()<br />
if you like<br />
grideye.begin();<br />
// Pour a bowl of serial<br />
Serial.begin(115200);<br />
}<br />
void loop() {<br />
// variables to store temperature values<br />
fl o a t testPixelValue = 0;<br />
fl o a t hotPixelValue = 0;<br />
int hotPixelIndex = 0;<br />
// for each of the 64 pixels, record the temperature and compare it to the<br />
// hottest pixel that we've tested. If it's hotter, that becomes the new<br />
// king of the hill and its index is recorded. At the end of the loop, we<br />
// should have the index and temperature of the hottest pixel in the frame<br />
long Temp =(grideye.getPixelTemperature(28)+grideye.<br />
getPixelTemperature(29)+grideye.getPixelTemperature(36)+grideye.<br />
getPixelTemperature(37))/4;<br />
// you need to delete this three lines<br />
Serial.print("Center"); // 1<br />
Serial.print(Temp); //2<br />
Serial.println("C"); //3<br />
}<br />
if (Temp >= 20 && Temp < 25 ){<br />
Serial.println("A");<br />
}<br />
if (Temp >= 25 && Temp < 30 ){<br />
Serial.println("B");<br />
}<br />
if (Temp >= 30 && Temp < 35 ){<br />
Serial.println("C");<br />
}<br />
if (Temp >= 35 && Temp < 40 ){<br />
Serial.println("D");<br />
}<br />
if (Temp >= 40 && Temp < 45 ){<br />
Serial.println("E");<br />
}<br />
if (Temp >=45 ){<br />
Serial.println("F");<br />
}<br />
if (Temp
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
78
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Electronic Scheme<br />
Technion Architecture & Town Planning Faculty<br />
79
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
80
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 1<br />
Connection Between Heat Reading Camera And Grasshopper<br />
#include <br />
#include <br />
GridEYE grideye;<br />
void setup() {<br />
// Start your preferred I2C object<br />
Wire.begin();<br />
// Library assumes "Wire" for I2C but you can pass something else with begin()<br />
if you like<br />
grideye.begin();<br />
// Pour a bowl of serial<br />
Serial.begin(115200);<br />
}<br />
void loop() {<br />
// variables to store temperature values<br />
fl o a t testPixelValue = 0;<br />
fl o a t hotPixelValue = 0;<br />
int hotPixelIndex = 0;<br />
// for each of the 64 pixels, record the temperature and compare it to the<br />
// hottest pixel that we've tested. If it's hotter, that becomes the new<br />
// king of the hill and its index is recorded. At the end of the loop, we<br />
// should have the index and temperature of the hottest pixel in the frame<br />
long Temp =(grideye.getPixelTemperature(28)+grideye.<br />
getPixelTemperature(29)+grideye.getPixelTemperature(36)+grideye.<br />
getPixelTemperature(37))/4;<br />
// you need to delete this three lines<br />
// Serial.print("Center"); // 1<br />
// Serial.print(Temp); //2<br />
// Serial.println("C"); //3<br />
if (Temp >= 20 && Temp < 25 ){<br />
Serial.println("A");<br />
}<br />
if (Temp >= 25 && Temp < 30 ){<br />
Serial.println("B");<br />
}<br />
if (Temp >= 30 && Temp < 35 ){<br />
Serial.println("C");<br />
}<br />
if (Temp >= 35 && Temp < 40 ){<br />
Serial.println("D");<br />
}<br />
if (Temp >= 40 && Temp < 45 ){<br />
Serial.println("E");<br />
}<br />
if (Temp >=45 ){<br />
Serial.println("F");<br />
}<br />
if (Temp
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Arduino Control Board Which Controls The<br />
Heating Pads Conntected In The Wooden Board<br />
With The screws.<br />
Technion Architecture & Town Planning Faculty<br />
82
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Code 2<br />
Temperature Reading<br />
int pin1 = 3;<br />
int pin2 = 4;<br />
int pin3 = 5;<br />
int pin4 = 6;<br />
int pin5 = 7;<br />
int pin6 = 8;<br />
int pin7 = 9;<br />
int pin8 = 10;<br />
void setup()<br />
{<br />
pinMode(3, OUTPUT);<br />
pinMode(4, OUTPUT);<br />
pinMode(5, OUTPUT);<br />
pinMode(6, OUTPUT);<br />
pinMode(7, OUTPUT);<br />
pinMode(8, OUTPUT);<br />
pinMode(9, OUTPUT);<br />
pinMode(10, OUTPUT);<br />
digitalWrite(pin1, LOW);<br />
digitalWrite(pin2, LOW);<br />
digitalWrite(pin3, HIGH);<br />
digitalWrite(pin4, HIGH);<br />
digitalWrite(pin5, HIGH);<br />
digitalWrite(pin6, HIGH);<br />
digitalWrite(pin7, HIGH);<br />
digitalWrite(pin8, HIGH);<br />
}<br />
void loop()<br />
{<br />
}<br />
LOW = ON<br />
HIGH = OFF<br />
Technion Architecture & Town Planning Faculty<br />
83
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Control Board<br />
The Control board was desgined with special attachment to the screws baord. this<br />
attachment allows inserting each board like a drawr into the control board and<br />
replacing it when needed.<br />
Relay 3<br />
Arduino Uno<br />
Relay 6<br />
Relay 2<br />
Matrix Bread Board Arduino<br />
Relay 5<br />
Relay 1<br />
USB splitter<br />
Relay 4<br />
Relay - Turns on and off the heating pads according to the given times.<br />
- They connect to the USB which connects them to electricity.<br />
- They Connect to the Arduino Uno and The Matrix.<br />
Heating Pads - each pad is connected by 1 cable to 1 relay.<br />
- each pad is connected by another cable to the USB port.<br />
Control Board - connected to 1 electric port that is connected to the matrix.<br />
- connected to another electric port that is connected the USB spliter.<br />
Technion Architecture & Town Planning Faculty<br />
84
Code 3<br />
Hyperbolic Shape<br />
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
#include <br />
int pin1 = 3;<br />
int pin2 = 4;<br />
int pin3 = 5;<br />
int pin4 = 6;<br />
int pin5 = 7;<br />
int pin6 = 8;<br />
int pin7 = 9;<br />
int pin8 = 10;<br />
unsigned long previousMillis;<br />
fl o a t Thousade= 1000;<br />
fl o a t TimeSinceStart=0;<br />
extern volatile unsigned long timer0_millis;<br />
unsigned long new_value = 0;<br />
void setup() {<br />
Serial.begin(115200);<br />
pinMode(3, OUTPUT);<br />
pinMode(4, OUTPUT);<br />
pinMode(5, OUTPUT);<br />
pinMode(6, OUTPUT);<br />
pinMode(7, OUTPUT);<br />
pinMode(8, OUTPUT);<br />
pinMode(9, OUTPUT);<br />
pinMode(10, OUTPUT);<br />
digitalWrite(pin1, LOW);<br />
Serial.println("1 is LOW");<br />
digitalWrite(pin2, LOW);<br />
Serial.println(" 2 is LOW");<br />
digitalWrite(pin3, LOW);<br />
Serial.println(" 3 is LOW");<br />
digitalWrite(pin4, LOW);<br />
Serial.println(" 4 is LOW");<br />
digitalWrite(pin5, LOW);<br />
Serial.println(" 5 is LOW");<br />
digitalWrite(pin6, LOW);<br />
Serial.println(" 6 is LOW");<br />
digitalWrite(pin7, LOW);<br />
Serial.println(" 7 is LOW");<br />
digitalWrite(pin8, LOW);<br />
Serial.println(" 8 is LOW");<br />
}<br />
void loop()<br />
{<br />
unsigned long currentMillis = millis(); // grab current time<br />
unsigned long previousMillis = millis(); // grab current time<br />
Technion Architecture & Town Planning Faculty<br />
85
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
// THIS IS FOR Number 1 RELAY / PAD///////////////////////////////////////////////<br />
///////////////////////////////<br />
if ((unsigned long)(currentMillis - previousMillis) >= 25*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 205*Thousade) {<br />
digitalWrite(pin1, HIGH);<br />
Serial.println("Pin 1 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 205*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 235*Thousade) {<br />
digitalWrite(pin1, LOW);<br />
Serial.println("Pin 1 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 235*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 355*Thousade) {<br />
digitalWrite(pin1, HIGH);<br />
Serial.println("Pin 1 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 355*Thousade &&<br />
(unsigned long)(currentMillis - previousMillis) < 385*Thousade) {<br />
digitalWrite(pin1, LOW);<br />
Serial.println("Pin 1 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
// THIS IS FOR Number 2 RELAY / PAD//////////////////////////////////////////////<br />
if ((unsigned long)(currentMillis - previousMillis) >= 5*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 25*Thousade) {<br />
digitalWrite(pin2, HIGH);<br />
Serial.println("Pin 2 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 25*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 335*Thousade) {<br />
digitalWrite(pin2, LOW);<br />
Serial.println("Pin 2 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 335*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 385*Thousade) {<br />
digitalWrite(pin2, HIGH);<br />
Serial.println("Pin 2 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
// THIS IS FOR Number 3 RELAY / PAD//////////////////////////////////////////////<br />
if ((unsigned long)(currentMillis - previousMillis) >= 5*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 50*Thousade) {<br />
digitalWrite(pin3, HIGH);<br />
Serial.println("Pin 3 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
Technion Architecture & Town Planning Faculty<br />
86
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
if ((unsigned long)(currentMillis - previousMillis) >= 50*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 285*Thousade) {<br />
digitalWrite(pin3, LOW);<br />
Serial.println("Pin 3 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 285*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 385*Thousade) {<br />
digitalWrite(pin3, HIGH);<br />
Serial.println("Pin 3 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
// THIS IS FOR Number 4 RELAY / PAD///////////////////////////////////////////////<br />
if ((unsigned long)(currentMillis - previousMillis) >= 5*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 25*Thousade) {<br />
digitalWrite(pin4, HIGH);<br />
Serial.println("Pin 4 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 25*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 200*Thousade) {<br />
digitalWrite(pin4, LOW);<br />
Serial.println("Pin 4 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 200*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 225*Thousade) {<br />
digitalWrite(pin4, HIGH);<br />
Serial.println("Pin 4 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 225*Thousade &&<br />
(unsigned long)(currentMillis - previousMillis) < 385*Thousade) {<br />
digitalWrite(pin4, LOW);<br />
Serial.println("Pin 4 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
// THIS IS FOR Number 5 RELAY / PAD///////////////////////////////////////////////<br />
if ((unsigned long)(currentMillis - previousMillis) >= 25*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 205*Thousade) {<br />
digitalWrite(pin5, HIGH);<br />
Serial.println("Pin 5 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 205*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 235*Thousade) {<br />
digitalWrite(pin5, LOW);<br />
Serial.println("Pin 5 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
Technion Architecture & Town Planning Faculty<br />
87
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
88
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
if ((unsigned long)(currentMillis - previousMillis) >= 235*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 355*Thousade) {<br />
digitalWrite(pin5, HIGH);<br />
Serial.println("Pin 5 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 355*Thousade &&<br />
(unsigned long)(currentMillis - previousMillis) < 385*Thousade) {<br />
digitalWrite(pin5, LOW);<br />
Serial.println("Pin 5 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
// THIS IS FOR Number 6 RELAY / PAD///////////////////////////////////////////////<br />
///////////////////////////////<br />
if ((unsigned long)(currentMillis - previousMillis) >= 5*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 25*Thousade) {<br />
digitalWrite(pin6, HIGH);<br />
Serial.println("Pin 6 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 25*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 200*Thousade) {<br />
digitalWrite(pin6, LOW);<br />
Serial.println("Pin 6 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 200*Thousade && (unsigned<br />
long)(currentMillis - previousMillis) < 225*Thousade) {<br />
digitalWrite(pin6, HIGH);<br />
Serial.println("Pin 6 is HIGH");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis - previousMillis) >= 225*Thousade &&<br />
(unsigned long)(currentMillis - previousMillis) < 385*Thousade) {<br />
digitalWrite(pin6, LOW);<br />
Serial.println("Pin 6 is LOW");<br />
unsigned long previousMillis = millis(); // grab current time<br />
}<br />
if ((unsigned long)(currentMillis- previousMillis) >= 385*Thousade)<br />
{<br />
setMillis(0);<br />
}<br />
Serial.print("Time Since Beggining Of Loop is : ");<br />
Serial.println(currentMillis/Thousade);<br />
delay(500);<br />
}<br />
Technion Architecture & Town Planning Faculty<br />
89
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Technion Architecture & Town Planning Faculty<br />
90
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
Electronic Scheme<br />
Technion Architecture & Town Planning Faculty<br />
91
Lab Reports
Report num.1<br />
Team<br />
<strong>Yarden</strong> Elah , <strong>Kobi</strong> Laham Haochen , <strong>Maria</strong> Jarrous , <strong>Or</strong> Shetret<br />
Date 12.12.2018<br />
Movement Test V1.0<br />
Testing the movement of the KUKA wrapping around screws in different heights and<br />
radiuses<br />
Location<br />
Research Lab of Digital Architecture<br />
Module Type (Input Receiver)<br />
Wooden Board with 5 screws in different<br />
heights.<br />
Materials<br />
Knitting wire<br />
Module Type (Tool: Head V1.1)<br />
P.L.A 3D printed Module combined with<br />
metal elements.<br />
Robot Information<br />
Model<br />
KUKA arm model KR6 - 10 R 900<br />
Starting point<br />
X = 136 , Y = 0 , Z = 12<br />
A = 0 , B = 0 , C = 0<br />
Tool num<br />
15<br />
94
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
STEPS<br />
1) Positioning of test board in accordance to the 3D Rhino Model and the KUKA arm.<br />
2) Tightening the test board to the table with cleaves.<br />
3) Bringing the KUKA head to the starting point (Manual).<br />
4) Tying the wire around the first screw.<br />
5) Starting the KUKA movement.<br />
6) The robot will follow the path that is defined by the Grasshopper code.<br />
7) The Spinneret will wrap the wire around the screws using a unique radius code.<br />
8) Stopping the movement at the ending point (Manual).<br />
9) Cutting the wire & Tying it around the ending point. (Manual – Last screw of the<br />
motion)<br />
Technion Architecture & Town Planning Faculty<br />
95
96
Conclutions:<br />
1) Finding a method to calibrate the position of the screw so the robot will<br />
know exectly the screws pisiton and height.<br />
Suggested solutions:<br />
* The Robot will mark the location of the screws before screwing.<br />
* The screw's head will have a sensor that sends the cordinate of the point<br />
and height.<br />
2) The L shape of the SPINERRET tool is limiting the movment in the Z axis so<br />
the maximum screw height can be 80 [mm].<br />
Suggested solutions:<br />
* Making a vertical head tool.<br />
3) strengthening the tool's parts: Flange, Pipe house, Caritrage Rod's nuts.<br />
Suggested solutions:<br />
* For the parts that tend to rotate, adding to holding points that will prevent<br />
the rotation.<br />
* 3D printing all the parts togrther.<br />
4) A mechanisem that streches the wire back so the wire will have mote<br />
tension. the mechanism must act in a force that lower then 3 [kg] so the<br />
robot still pull the wire from the Caritage.<br />
Suggested solutions:<br />
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
* Using the Measure tape rolling mechanisem and adjusting it to the<br />
SPINNERET<br />
Technion Architecture & Town Planning Faculty<br />
97
Report num.2<br />
Team<br />
<strong>Yarden</strong> Elah , <strong>Kobi</strong> Laham Haochen , <strong>Maria</strong> Jarrous , <strong>Or</strong> Shetret<br />
Date 16.1.2019<br />
Movement Test V2.0<br />
Testing the movement of the KUKA :<br />
1- Reading the temperature of the chosen screws with the help of the temperature reading<br />
camera attached to the improved module.<br />
2- Creating 1 linear line wrapping around 4 screws after reading the different temperatures.<br />
3- Creating Hyperbolic grid without glue.<br />
Location<br />
Research Lab of Digital Architecture<br />
Module Type (Input Receiver)<br />
- wooden Board with 4 screws in 1 line.<br />
- 2 wooden board with 4*4 screws in grid.<br />
grid size: 26.7*26.7 cm 2<br />
Robot Information<br />
Model<br />
KUKA arm model KR6 - 10 R<br />
900<br />
Starting point<br />
X = 136 , Y = 0 , Z = 12<br />
A = 0 , B = 0 , C = 0<br />
Tool num<br />
15<br />
Materials<br />
Knitting white wire.<br />
Module Type (Tool: Head V2.0)<br />
P.L.A 3D printed improved Module.<br />
Expectations<br />
- performing the scan and reading 3 or<br />
4 different temperatures.<br />
- creating an inclined wire wrapping<br />
around 3 nails.<br />
- successfully creating a hyperbolic grid<br />
weaved in two directions continuously.<br />
Performing Temperature Reading<br />
98
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
STEPS (for all 4 movements)<br />
1) Positioning of test board in accordance to the 3D Rhino Model and the KUKA arm.<br />
2) Tightening the test board to the table with cleaves.<br />
3) Bringing the KUKA head to the starting point (Manual).<br />
4) Tying the wire around the first screw.<br />
5) Starting the KUKA movement.<br />
6) The robot will follow the path that is defined by the Grasshopper code.<br />
7) The Spinneret will wrap the wire around the screws using a unique radius code.<br />
8) Stopping the movement at the ending point (Manual).<br />
9) Cutting the wire & Tying it around the ending point. (Manual – Last screw of the<br />
motion)<br />
Hyperbolic Woven Grid<br />
Technion Architecture & Town Planning Faculty<br />
99
100
Conclutions:<br />
Summary:<br />
the spinerret evenually broke in the last test, and the reason was that the<br />
wire got too tensed which caused for the cartridge rod to break.<br />
However, despite all thath, everything else worked and the weaving and<br />
temperature reading was successful.<br />
1) weakening the tention of the wire that is being weaved .<br />
Suggested solutions:<br />
* Making the wire wheel a bit more loose so that it will allow better spinning<br />
and less pulling back.<br />
2) strengthening the tool's parts: Pipe House and glue container.<br />
Suggested solutions:<br />
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
* Making the House Pipe from a stronger material as it gets a big moment<br />
from all tention that the wire gets.<br />
* The glue container attachment was a bit loose there for matching between<br />
the sizes of the female and male parts of the connection must be done.<br />
Technion Architecture & Town Planning Faculty<br />
101
Preparation For Report num.3<br />
Team<br />
<strong>Yarden</strong> Elah , <strong>Kobi</strong> Laham Haochen , <strong>Maria</strong> Jarrous , <strong>Or</strong> Shetret<br />
Date 16.1.2019<br />
Extra Tests<br />
more codes and materials were prepared for future use.<br />
Movement Test V3.0<br />
Testing the movement of the KUKA:<br />
1- Creating a Flat Grid that wraps all the screws in the planned motion.<br />
2- Creating the same grid that wraps all the screws but this time with incline regarding the<br />
read temperatures.<br />
3- Creating Hyperbolic grid with glue.<br />
Location<br />
Research Lab of Digital Architecture<br />
Module Type (Input Receiver)<br />
2 wooden boards with 4*4 screws in grid.<br />
grid size: 26.7*26.7 cm 2<br />
Materials<br />
- Knitting white wire.<br />
- Epoxy Glue combined with Super<br />
glue.<br />
Module Type (Tool: Head V2.0)<br />
P.L.A 3D printed improved Module with<br />
glue bucket.<br />
Robot Information<br />
Model<br />
KUKA arm model KR6 - 10 R 900<br />
Starting point<br />
X = 136 , Y = 0 , Z = 12<br />
A = 0 , B = 0 , C = 0<br />
Tool num<br />
15<br />
Expectations<br />
- weaving a whole flat grid.<br />
- weaving an inclined grid which<br />
demands control of some of the<br />
heating pads.<br />
- weaving the same hyperbolic grid<br />
from the previous test but this time<br />
with glue.<br />
102
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
STEPS<br />
1) Positioning of test board in accordance to the 3D Rhino Model and the KUKA arm.<br />
2) Tightening the test board to the table with cleaves.<br />
3) attaching the bucket filled with glue (Only for test with glue).<br />
4) Bringing the KUKA head to the starting point (Manual).<br />
5) Tying the wire around the first screw.<br />
6) Starting the KUKA movement.<br />
7) The robot will follow the path that is defined by the Grasshopper code.<br />
8) The Spinneret will wrap the wire around the screws using a unique radius code.<br />
9) Stopping the movement at the ending point (Manual).<br />
10) Cutting the wire & Tying it around the ending point. (Manual – Last screw of the<br />
motion).<br />
Technion Architecture & Town Planning Faculty<br />
103
Part<br />
III
Bibliography:<br />
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
1. Sheil,B(2012) Manufacturing the bespoke : Making and prototyping architecture. ed. Bob Sheil.<br />
Chichester: John Wiley<br />
2. Menges,A , Sheil B, Glynn R (2017) , Fabricate: Rethinking Design and Construction, London,<br />
UCL Press. , pg. 179-293<br />
3. Sabin E.J, Jones, P.L , LabStudio: Design Research Between Architecture and Biology, (London & New<br />
York: Routledge Taylor and Francis, 2017).<br />
4. Gramazio F. , Kohler M., Willmann J., (2014) THE ROBOTIC TOUCH, How Robots Change Architecture,<br />
Zurich, Park Books.<br />
5. Kieran, S. & Timberlake J. (2004). Refabricating Architecture. How Manufacturing Methodologies Are<br />
Poised to Transform Building Construction, McGraw–Hill, New York<br />
Web Resources:<br />
http://www.robofold.com/<br />
http://gramaziokohler.arch.ethz.ch/<br />
http://www.robotsinarchitecture.org/membership<br />
Publoications by Sigrid Brell-Cokcan and Johannes Braumann<br />
http://www.robotsinarchitecture.org/robarch-publications<br />
https://robodk.com/doc/en/Basic-Guide.html#Start<br />
Karl Singline -Youtube<br />
https://www.youtube.com/channel/UCH166BcWXSEYoTwiZGVLy3w<br />
https://vimeo.com/robotsinarchitecture/videos<br />
https://www.youtube.com/c/RoboDK3D/videos<br />
https://sites.math.washington.edu/~ebekyel/Math126/Spiral.html<br />
https://www.designindaba.com/videos/conference-talks/basia-dzaman-intersection-robotics-and-creativity<br />
Technion Architecture & Town Planning Faculty<br />
107
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
REFERENCE<br />
Elytra Filament Pavilion - Victoria & Albert Museum by;<br />
University of Stuttgart<br />
http://icd.uni-stuttgart.de/?p=16443<br />
Technion Architecture & Town Planning Faculty<br />
108
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
REFERENCE<br />
ICD/ITKE Research Pavilion by;<br />
University of Stuttgart<br />
http://icd.uni-stuttgart.de/?p=18905<br />
Technion Architecture & Town Planning Faculty<br />
109
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
REFERENCE<br />
KnitCandela - A flexibly formed thin concrete shell at MUAC by;<br />
BRG<br />
http://block.arch.ethz.ch/brg/project/knit-candela-muac-mexico-city<br />
Technion Architecture & Town Planning Faculty<br />
110
Applied Research Laboratory _ DMT I Desruptive Material Technology<br />
TOOL INSPIRATION<br />
The intersection of robotics and creativity by;<br />
Basia Dzaman<br />
https://www.designindaba.com/videos/conference-talks/basia-dzaman-intersection-robotics-andcreativity<br />
Technion Architecture & Town Planning Faculty<br />
111