From 466513eaded54d9fbef8943ad6c1eaca715768f5 Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Thu, 8 Jan 2026 02:04:31 +0100 Subject: add imx287 holder draft, add radxa sd card, move laser tensioning holes --- body/veye_imx287.scad | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) (limited to 'body/veye_imx287.scad') 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 -- cgit v1.2.3-70-g09d2