75 lines
2.5 KiB
OpenSCAD
75 lines
2.5 KiB
OpenSCAD
// camera_mount.scad — Support stéréo pour 2x Microsoft LifeCam HD-3000
|
|
// Baseline: 110 mm (médiane 10-12 cm optimal)
|
|
// Fixation: 4x M3 sur châssis AUV
|
|
// Matériau recommandé: PETG (résistance eau, impact)
|
|
// Auteur: Baptiste Moulin 2026
|
|
|
|
$fn = 60;
|
|
|
|
// --- Paramètres principaux ---
|
|
BASELINE = 110; // mm entre axes optiques
|
|
CAM_W = 34; // largeur boîtier LifeCam (section base)
|
|
CAM_H = 34; // hauteur boîtier LifeCam
|
|
CAM_DEPTH = 10; // profondeur empreinte caméra dans le support
|
|
MOUNT_THICK = 6; // épaisseur plaque support
|
|
MOUNT_H = 50; // hauteur totale support
|
|
BOLT_D = 3.4; // diamètre trou M3 (passage libre)
|
|
BOLT_PITCH_X = 96; // entraxe vis de fixation AUV (X)
|
|
BOLT_PITCH_Y = 30; // entraxe vis de fixation AUV (Y)
|
|
|
|
// --- Longueur totale de la plaque ---
|
|
PLATE_L = BASELINE + CAM_W + 10;
|
|
|
|
module cam_cutout() {
|
|
// Empreinte caméra: rectangle + passage câble USB
|
|
cube([CAM_W, CAM_DEPTH, CAM_H], center=true);
|
|
// Slot câble USB (6x10 mm) en bas de l'empreinte
|
|
translate([0, 0, -CAM_H/2 + 5])
|
|
cube([12, CAM_DEPTH + 2, 10], center=true);
|
|
}
|
|
|
|
module bolt_holes_mount() {
|
|
// 4 trous M3 pour fixation sur châssis AUV
|
|
for (x = [-BOLT_PITCH_X/2, BOLT_PITCH_X/2])
|
|
for (y = [-BOLT_PITCH_Y/2, BOLT_PITCH_Y/2])
|
|
translate([x, y, 0])
|
|
cylinder(d=BOLT_D, h=MOUNT_THICK + 2, center=true);
|
|
}
|
|
|
|
module support() {
|
|
difference() {
|
|
// Corps principal
|
|
union() {
|
|
// Plaque horizontale
|
|
cube([PLATE_L, MOUNT_THICK, MOUNT_H], center=true);
|
|
// Renforts latéraux sur chaque caméra
|
|
for (side = [-1, 1])
|
|
translate([side * BASELINE/2, MOUNT_THICK/2, 0])
|
|
cube([CAM_W + 4, MOUNT_THICK * 2, MOUNT_H], center=true);
|
|
}
|
|
|
|
// Empreinte caméra gauche
|
|
translate([-BASELINE/2, 0, 0])
|
|
cam_cutout();
|
|
|
|
// Empreinte caméra droite
|
|
translate([BASELINE/2, 0, 0])
|
|
cam_cutout();
|
|
|
|
// Trous de fixation AUV
|
|
bolt_holes_mount();
|
|
|
|
// Allègement central (triangle)
|
|
translate([0, 0, 0])
|
|
cube([BASELINE - CAM_W - 8, MOUNT_THICK + 2, MOUNT_H - 16], center=true);
|
|
}
|
|
}
|
|
|
|
// --- Rendu principal ---
|
|
support();
|
|
|
|
// --- Annotations (commentaires) ---
|
|
// Axes optiques à Z=0, Y=MOUNT_THICK+5
|
|
// Baseline mesurée = BASELINE mm entre les 2 marques rouges
|
|
// Imprimer à 0.2 mm layer height, 40% infill gyroid, 3 périmètres
|