## Simple Machines

**Type:** Investigation

**Theme:** Engineering

**Grades:** 5, 6, 7, 8, 9, 10

**Learning Target:** Students will collaborate to produce a simple machine with moving parts.

Instructions

- Select one or more partners (you may work alone).
- Design a plan for your group's simple machine. Collaborate on a detailed sketch. Please take note who will produce which component.
- Develop your OpenSCAD component. Use inline comments to tell about what your code does and who you are.
- Combine all component code into one simple machine. Test and refine with animation turned on (variable $t must be in your code).
- Submissions
- A video or screen recording of your machine in action. If possible, please use Microsoft Stream. You are
**not**required to create a Sway or PowerPoint. - A detailed sketch, including a list of who created which part in your group's machine. Each student must create at least one part of the machine. Machine must contain a minimum of two moving parts.
- Please also submit the code. You must create your own code. However, you may modify existing open-source code for an individual component of your machine.

- A video or screen recording of your machine in action. If possible, please use Microsoft Stream. You are

### OpenSCAD

### OpenSCAD Example Code:

Variable $t is reserved for the animation time ($t).

//three gears`//to animate > View > Animate. Add a start time, such as 0. Set FPS to 24 or so. Set Steps to desired number, try 100.`

$gear1 = 20;

$gear2=8;

//gear 1

rotate([0,0,$t*360])for(i=[1:1:$gear1]){

rotate([0,0,(360/$gear1)*i])

translate([$gear1*.7,0]) linear_extrude(2)

circle(3,$fn=3);

}

//gear 2

translate([22,4])

rotate([0,0,-$t*360*$gear1/$gear2])

color("red")

for(i=[1:1:$gear2]){

rotate([0,0,16+(360/$gear2)*i])

translate([$gear2*.7,0]) linear_extrude(2)

circle(3,$fn=3);

}

//gear 3

translate([4,-22])

rotate([0,0,-$t*360*$gear1/$gear2])

color("red")

for(i=[1:1:$gear2]){

rotate([0,0,16+(360/$gear2)*i])

translate([$gear2*.7,0]) linear_extrude(2)

circle(3,$fn=3);

}

//square gear 1

rotate([0,0,$t*360])color("green")for(i=[1:1:12]){

rotate([0,0,(360/12)*i])

cube([2,16,2],true);

rotate([0,0,(360/24)+(360/12)*i])

cube([2,12,2],true);

}

//spherical gear

rotate([0,0,0])translate([12.2,0,0])rotate([0,0,-$t*360])color("red")

for(i=[1:1:6]){

rotate([90,90,(360/24)+(360/6)*i])

cylinder(h=.7, r1=6, r2=6);

//cube([2,18,2],true);

}

//coil and ball

//set Time = 0, FPS = 20, Steps = 20

$coils=4;

$spring=0;

$height = sin(100*3.1415*$t)+2;

$height_ball = sin(100*3.1415*$t/2)+2;

$ball_deform = sin(4*3.1415*$t)+.8;

color("red")linear_extrude(height = $height, center = false, convexity = 2, twist = 360*$coils, $fn = 100)

translate([1, 0, 0])

circle(r = .3);

color("DeepSkyBlue")translate([0, 0, 1.3+$height_ball])scale([1,1,$ball_deform])sphere(2.2, $fn=50);

See https://www.thingiverse.com/groups/openscad/things for more objects.

Exit Ticket

CCSS Math Practice

- I can make sense of problems and persevere in solving them.
- I can attend to precision.

NGSS Crosscutting Concepts

- Cause and Effect
- Scale, Proportion, and Quantity
- Structure and Function