feat: Dockerfile BlueOS, deploy_pi.sh rsync, camera_mount.scad baseline 110mm
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
74
hardware/camera_mount.scad
Normal file
74
hardware/camera_mount.scad
Normal file
@@ -0,0 +1,74 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user