瀏覽代碼

alternate support bracket

clementinecomputing 5 年之前
父節點
當前提交
f6d838ffee

+ 15 - 0
experiment/production/housing/v-amaranth/PopufareHousingCommon.scad

@@ -167,6 +167,21 @@ _SCREEN_CY = _SCREEN_HOLE_DY/2 + _SCREEN_LL_M2_C[1] - _SCREEN_OUTER_CENTER[1];
 _RASPBERRY_PI_B_CX = (_SCREEN_HOLE_DX - _RASPBERRY_PI_B_HOLE_DX/2) + _SCREEN_LL_M2_C[0] - _SCREEN_OUTER_CENTER[0];
 _RASPBERRY_PI_B_CY = (_SCREEN_HOLE_DY - _RASPBERRY_PI_B_HOLE_DY/2) + _SCREEN_LL_M2_C[1] - _SCREEN_OUTER_CENTER[1];
 
+RPI3BP_SCREW_DW = 58;
+RPI3BP_SCREW_DH = 49;
+RPI3BP_SCREW_DE = 3.5;
+RPI3BP_SCREW_R = 2.75/2;
+RPI3BP_SCREW_PAD_R = 6/2;
+RPI3BP_W = 85;
+RPI3BP_H = 56;
+RPI3BP_USB0_H = 29;
+RPI3BP_USB1_H = 47;
+RPI3BP_USB_DH = RPI3BP_USB1_H - RPI3BP_USB0_H;
+RPI3BP_ETH_H = 10.25;
+RPI3BP_ETH_DH = 16;
+
+RPI3BP_SD_W = 18;
+
 
 // Bounding box width of rouned rect is w and h,
 // so this function compensates for the rounded corner

+ 121 - 0
experiment/production/housing/v-amaranth/PopufareHousingInnerBackSupport.scad

@@ -0,0 +1,121 @@
+// License: CC0
+//
+// To the extent possible under law, Clementine Computing LLC has waived
+// all copyright and related or neighboring rights to this file.
+//
+// This work is published from: United States.
+//
+
+include <PopufareHousingCommon.scad>
+
+// To be attached to the 'bottom' of the Raspberry Pi (3B+).
+// This bracket is meant to provide zip tie access to tie down USB
+// connections, zip tie access for the GPRS antennae and provide
+// support for the SD card.
+// Mounting this bracket flush with the bottom of the Raspberry Pi (3B+)
+// should provide the lip of the material to prevent the SD card from
+// dislodging.
+//
+module PopufareHousingInnerBackSupportPlate() {
+  _lip_r = 24;
+  _lip_l = 24;
+  _w = RPI3BP_W + _lip_l + _lip_r;
+  _h = RPI3BP_H + 10;
+  _r = 3;
+  
+  _sd_w = 3.25;
+  
+  _rpi_lip = RPI3BP_W - RPI3BP_SCREW_DW - RPI3BP_SCREW_DE;
+  
+  // debug: pi board reference
+  //translate([0,RPI3BP_H + 20]) square([RPI3BP_W, RPI3BP_H], center=true);
+  //translate([RPI3BP_W + 30,0]) square([RPI3BP_W, RPI3BP_H], center=true);
+  
+  difference() {
+    union() {
+      difference() {
+        //translate([_lip_l/2, 0]) rounded_rect(_w, _h, _r);
+        translate([_w/2 - (_lip_l + RPI3BP_W/2), 0]) rounded_rect(_w, _h, _r);
+        
+        // sd card bracket
+        //
+        translate([-RPI3BP_W/2-_sd_w/2, 0])
+         rounded_rect(_sd_w-2, RPI3BP_H, 1);
+        
+        // cut out middles sections to get rounded edges
+        //
+        translate([-RPI3BP_W/2+RPI3BP_SCREW_DW/2 + RPI3BP_SCREW_DE,0])
+          rounded_rect(RPI3BP_SCREW_DW-2*RPI3BP_SCREW_DE, RPI3BP_H, 2);
+        translate([RPI3BP_W/2 - _rpi_lip/2+2, 0])
+          rounded_rect(_rpi_lip-3, RPI3BP_H, 2);
+      
+        // the above creates strips, use this to cut out the middle section
+        // which we'll fill with rounded edges below
+        //
+        square([RPI3BP_W+0.5, RPI3BP_H - 2*RPI3BP_SCREW_DE], center=true);
+      };
+    
+      // rounded tabs for mounting screws
+      //
+      translate([-RPI3BP_W/2+RPI3BP_SCREW_DE, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
+        circle(RPI3BP_SCREW_PAD_R);
+
+      translate([-RPI3BP_W/2+RPI3BP_SCREW_DE,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
+        circle(RPI3BP_SCREW_PAD_R);
+      
+      translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
+        circle(RPI3BP_SCREW_PAD_R);
+      
+      translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
+        circle(RPI3BP_SCREW_PAD_R);
+
+    }
+    
+    // rpi mounting screws
+    //
+    translate([-RPI3BP_W/2+RPI3BP_SCREW_DE, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
+      circle(RPI3BP_SCREW_R);
+    
+    translate([-RPI3BP_W/2+RPI3BP_SCREW_DE,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
+      circle(RPI3BP_SCREW_R);
+    
+    translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
+      circle(RPI3BP_SCREW_R);
+    
+    translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
+      circle(RPI3BP_SCREW_R);
+    
+    
+    // usb zip tie slots
+    //
+    translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB0_H - RPI3BP_USB_DH/2])
+      rounded_rect(_lip_r/2, 3, 1);
+    translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB0_H + RPI3BP_USB_DH/2])
+      rounded_rect(_lip_r/2, 3, 1);
+    translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB1_H + RPI3BP_USB_DH/2])
+      rounded_rect(_lip_r/2, 3, 1);
+    
+    // ethernet access
+    //
+    translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_ETH_H-3])
+      rounded_rect(_lip_r/2, RPI3BP_ETH_DH-2, 2);
+      
+    // GPRS antennae access
+    // 12 from center
+    // 8 diameter
+    // 14 center from edge
+    //
+    translate([-RPI3BP_W/2 - 14, 0])
+      rounded_rect(9, 30, 4);
+      
+    // antennae zip tie access
+    //
+    translate([-RPI3BP_W/2 - 14,  24])
+      rounded_rect(8, 4, 2);
+    translate([-RPI3BP_W/2 - 14, -24])
+      rounded_rect(8, 4, 2);
+  }
+
+}
+
+//PopufareHousingInnerBackSupportPlate();

+ 1 - 1
experiment/production/housing/v-amaranth/export/export-all

@@ -1,6 +1,6 @@
 #!/bin/bash
 
-VERSION=2.4.1
+VERSION=2.4.2
 
 function ngc_position {
   ifn="$1"

+ 3 - 1
experiment/production/housing/v-amaranth/housing_layout_3d.scad

@@ -15,6 +15,7 @@ include <PopufareHousingTop.scad>
 include <PopufareHousingBack.scad>
 
 include <PopufareHousingInnerBack.scad>
+include <PopufareHousingInnerBackSupport.scad>
 
 include <PopufareHousingBackLipAttachment.scad>
 
@@ -73,7 +74,8 @@ translate( [ 0, dw/2 - 50, dz + spacing] ) PopufareHousingTopPlate();
 
 translate([  0, -1.3*dh, 90])
   rotate(45, [1,0,0])
-  PopufareHousingInnerBackPlate();
+  PopufareHousingInnerBackSupportPlate();
+  //PopufareHousingInnerBackPlate();
   
 
 translate([  200, 30, 90])