Browse Source

start work on a shock mount for the whole microphone assembly (the microphone sits on the shock mount)

Fernando Pablo Lopez-Lezcano 10 years ago
parent
commit
6f79316ce3
1 changed files with 93 additions and 5 deletions
  1. 93 5
      TinySpHEAR_mount_pcb.scad

+ 93 - 5
TinySpHEAR_mount_pcb.scad

@@ -250,9 +250,62 @@ module tetra_capsule_array_mount(angles) {
     }
 }
 
+// internal ring of shock mount
+
+module tetra_shock_mount_int_ring(height, radius, corner, lip) {
+    slot_sep = radius * 2 / 2.7;
+    slot_w = 6;
+    slot_o = height / 3;
+    difference() {
+        tetra_mount_box(slot_o, radius + wall, corner);
+        tetra_mount_box(slot_o, radius - 2 * wall, corner - 2.0);
+    }
+    difference() {
+        tetra_mount_box(height, radius + 2 * wall, corner);
+        tetra_mount_box(height, radius, corner - 2.0);
+        for (rot = [0, 90, 180, 270]) {
+            rotate([0, 0, rot]) {
+                for (xo = [1, -1] * slot_sep) {
+                    translate([-slot_w / 2 + xo, radius - 2 * wall, slot_o]) {
+                        // slots for rubber bands
+                        cube([slot_w, 10, slot_o]);
+                        translate([slot_w / 3, 0, 0]) {
+                            cube([slot_w / 3, 10, 10]);
+                        }
+                    }
+                }
+            }
+        }
+    }    
+    for (rot = [0, 90, 180, 270]) {
+        rotate([0, 0, rot]) {
+            // slots for connecting the upper and lower rings
+            translate([radius + wall, -(slot_sep + slot_w/3)/2, 0]) {
+                difference() {
+                    cube([5, slot_sep + slot_w/3, height]);
+                    translate([0, wall, 0]) {
+                        cube([4, slot_sep + slot_w/3 - 2 * wall, 4]);
+                    }
+                }
+            }
+            // lip to support microphone on lower ring only
+            if (lip == 1) {
+                lip_w = 10;
+                translate([radius, -lip_w/2, height]) {
+                    rotate([90, 90, 180]) {
+                        linear_extrude(height = lip_w) {
+                            polygon([[0, 0], [0, 4], [1, 4], [height * 2/3, 0]]);
+                        }
+                    }
+                }
+            }
+        }
+    }    
+}
+
 // main body of microphone mount
 //
-translate([0, 0, -(pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
+*translate([0, 0, -(pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
     tetra_mount_body(pcb_length - pcb_low_exp - pcb_hi_exp, box_radius + wall, mount_corner, mount_lip, mount_lip, 0);
 }
 
@@ -260,7 +313,7 @@ translate([0, 0, -(pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
 //
 
 //translate([0, 0, pcb_length - pcb_low_exp - pcb_hi_exp + 10]) {
-translate([0, 0, 0]) {
+*translate([0, 0, 0]) {
     tetra_mount_flare(10 + pcb_hi_exp, mount_lip, flare_height, box_radius + wall,  mount_corner, 
                     mount_radius + wall, stalk_height);
     translate([0, 0, 10 + pcb_hi_exp + flare_height + stalk_height]) {
@@ -271,13 +324,48 @@ translate([0, 0, 0]) {
 // flare to microphone cable
 //
 
-translate([0, 0, -(10 + pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
-//translate([0, 0, 0]) {
+//translate([0, 0, -(10 + pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
+translate([0, 0, -15]) {
     rotate([0, 180, 0]) {
         tetra_mount_flare(10 + pcb_low_exp, mount_lip, 20, box_radius + wall, mount_corner, cable_diam / 2 + wall, 10);
     }
 }
 
+// shock mount
+//
+
+ring_sep = 30;
+
+translate([0, 0, -3]) {
+    //rotate([0, 180, 0]) {
+        tetra_shock_mount_int_ring(10, box_radius + 3.5 * wall, 12, 0);
+        rotate([0, 180, 0]) {
+            translate([0, 0, ring_sep]) {
+                tetra_shock_mount_int_ring(10, box_radius + 3.5 * wall, 12, 1);
+            }
+        }
+    //}
+}
+
+translate([0, 0, - ring_sep / 2 - 5]) {
+    difference() {
+        tetra_mount_box(6, box_radius + 25, 25);
+        tetra_mount_box(6, box_radius + 25 - 4 * wall, 25 - 2.0);
+//        cylinder(r = box_radius + 25, h = 6, $fn = facets);
+//        cylinder(r = box_radius + 25 - 3 * wall, h = 6, $fn = facets);
+    }
+        for (rot = [0, 90, 180, 270]) {
+            rotate([0, 0, rot]) {
+                translate([box_radius + 25 + 4 * wall, -7.5, 0]) {
+                    cube([4, 15, 6]);
+                }
+                translate([box_radius + 25, -2, 0]) {
+                    cube([7, 4, 6]);
+                }
+            }
+        }        
+}
+
 // first try at a ccrma logo
 //
 *rotate([90, 0, 0]) {
@@ -291,7 +379,7 @@ translate([0, 0, -(10 + pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
 // the microphone itself
 rendermic = 1;
 
-translate([0, 0, 2.8 + pcb_hi_exp + flare_height + stalk_height + 30]) {
+*translate([0, 0, 2.8 + pcb_hi_exp + flare_height + stalk_height + 30]) {
     // all four capsules
     capsule(45, elev_angle, leg_angles_top, 60, 0, 0.0, 0.0, 0);
     capsule(-135, elev_angle, leg_angles_top, 60, 0, 0.0, 0.0, 0);