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:
Floppyrj45
2026-04-19 18:07:28 +02:00
parent f9436df2a0
commit d36255cf62
4 changed files with 229 additions and 0 deletions

View 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