diff options
| author | Nikita Kostovsky <nikita@kostovsky.me> | 2026-01-08 02:04:31 +0100 |
|---|---|---|
| committer | Nikita Kostovsky <nikita@kostovsky.me> | 2026-01-08 02:04:31 +0100 |
| commit | 466513eaded54d9fbef8943ad6c1eaca715768f5 (patch) | |
| tree | 873276b91f82b22f254a1fb63ea0a3674a07dcd2 /body/veye_imx287.scad | |
| parent | 8b676dab039a0d534d3e9f63c78a5826aa2ec264 (diff) | |
add imx287 holder draft, add radxa sd card, move laser tensioning holes
Diffstat (limited to 'body/veye_imx287.scad')
| -rw-r--r-- | body/veye_imx287.scad | 71 |
1 files changed, 70 insertions, 1 deletions
diff --git a/body/veye_imx287.scad b/body/veye_imx287.scad index 0b89873..3576105 100644 --- a/body/veye_imx287.scad +++ b/body/veye_imx287.scad @@ -101,4 +101,73 @@ module veye_imx287_natural() } } -//veye_imx287_natural();
\ No newline at end of file +module veye_imx287_mount_plate() +{ + w = veye_imx287_pcb_w; + h = veye_imx287_pcb_h; + frame_w = 6; + iw = w - frame_w; + ih = h - frame_w; + t = 2; + corner_radius = 2; + cr = corner_radius; + + // holes + hd = 2.05; + hh = 10; + // distance between holes + h_delta = 25; + hr = hd / 2; + + // sensor has non-zero thickness, so put holder + // closer to pcb + translate([0, -imx287_thickness, 0]) + // move to zero + translate([0, t / 2, 0]) + difference() + { + // outer shape + hull() + { + for ( + dx = [w / 2 - cr, -w / 2 + cr], + dy = [w / 2 - cr, -w / 2 + cr]) + { + translate([dx, 0, dy]) + translate([0, t / 2, 0]) + rotate([90, 0, 0]) + cylinder($fn = dToFn(cr * 2), r = cr, h = t); + } + } + // to cut + hull() + { + for ( + dx = [iw / 2 - cr, -iw / 2 + cr], + dy = [iw / 2 - cr, -iw / 2 + cr]) + { + translate([dx, 0, dy]) + translate([0, t, 0]) + rotate([90, 0, 0]) + cylinder($fn = dToFn(cr * 2), r = cr, h = t * 2); + } + } + // holes + { + for ( + dx = [h_delta / 2, -h_delta / 2], + dy = [h_delta / 2, -h_delta / 2]) + { + translate([dx, 0, dy]) + translate([0, hh / 2, 0]) + rotate([90, 0, 0]) + cylinder($fn = dToFn(hd), d = hd, h = hh); + } + } + } +} + +color("yellow", 0.3) +*veye_imx287_natural(); +color("green", 0.3) +*veye_imx287_mount_plate();
\ No newline at end of file |
