Skip to main content

Valentin KOK

Impression d'un objet simple (16/12/2025)

Pour la premièpremière ance, l'objectif éétait d'imprimer un objet simple de son choix pour se familiariser avec les imprimantes.

J'ai choisi un modèmodèle 3D d'un modèmodèle duit d'une épéépée en télétéléchargeant un fichier disponible sur le site printables.com

L'objet est impriméimprimé en 2 parties qui doivent ensuite êêtre assembléassemblées avec de la colle. J'ai duit la taille àà une longueur d'environ 5cm pour une largeur de 2cm, pour duire le temps d'impression, et j'ai choisi un glage de 20mm. Ces glages donnent un temps d'impression de 5 minutes

Capture d’écran (1).pngCapture d’écran (1).png

Le sultat s'est impriméimprimé sans difficultédifficulté particulièparticulière, il suffit ensuite de coller les deux parties

20251216_135419.jpg20251216_140214.jpg

couverte de OpenSCAD

L'objectif éétait d'utiliser le logiciel OpenSCAD pour modémodéliser un objet en se familiarisant avec les fonctions du logiciel.

J'ai modélisémodélisé un visage sur un objet de type pièpièce de monnaie en composant le modèmodèle en diffédifférents "modules":

  • Le module "face" constitue la base de l'objet, c'est un disque en forme de pièpièce de monnaie réaliséréalisé en utilisant la fonction linear_extrude sur deux cercles et en faisant leur diffédifférence.
  • Le module "eye" constitue un oeil. Pour faire le contour de l'oeil, j'ai tracétracé une courbe polynomiale en finissant une fonction en x^2. La courbe est tracétracée avec des cylindres. En traçtraçant l'opposéopposé de cette courbe on obtient deux tracétracés qui permettent de dessiner le contour de l'oeil.
  • Le module "mouth" permet de tracer une bouche en utilisant aussi une courbe polynomiale. Je l'ai tracétracé avec des cylindres plus gros que pour les yeux.

Ensuite en utilisant la fonction union() j'ai uni ces modules, en copiant deux fois le module eye et en traçtraçant des sourcils (en utilisant des cubes + linear_extrude).

Capture d’écran (8).pngCapture d’écran (8).png

Le code :

function f(x) = 0.1*x^2 ;

function g(x) = 0.02*x^2 ;

module face(){
union() {
   
        translate([0,25]) {
            linear_extrude(2){
        circle(30);
            }
        }
       
    

    
    difference() {
        translate([0,25,2]) {
        linear_extrude(2){
            circle(30);
            }
        }
        translate([0,25,0]) {
        linear_extrude(10){
            circle(28);
            }
        }
    
}
            
    
  }
}


module eye() {
    for (x = [ -15 : 5 : 15 ])
            translate([x, f(x), 0])     cylinder(5,3,2);
    translate([0,50]) {
    for (x = [ -15 : 5 : 15 ])
            translate([x, -f(x), 0])     cylinder(5,3,2);
    }
    difference(){  
    translate([0,25]) {
        cylinder(5,5,5);
    }
    translate([0,25,0]) {
        cylinder(10,2,2);
    }
    }
}

module mouth() {
    for (x = [ -15 : 5 : 15 ])
            translate([x, g(x), 0])     cylinder(3,4,4);
}

scale([2,2,2]) {
    union() {
        scale([1.5,1.5,1.5]) face();
        translate([10,5,3]) {
            scale([0.5,0.5,0.5]) {
            eye();
            }
        }
        
        translate([10,45,3]) {
            scale([0.5,0.5,0.5]) {
            eye();
            }
        }
        
        translate([25,45,3]) {
            rotate([0,0,85]){
            cube([20,2,3]);
            }
        }
        
        translate([25,10,3]) {
            rotate([0,0,95]){
            cube([20,2,3]);
            }
        }
        
        translate([-30,38,3]) {
            rotate([0,0,270]){
            mouth();
            }
        }
        
    }
}



CréCréation d'un objet avec pause pendant l'impression : pipépipé

J'ai choisi de crécréer un truquétruqué : pour cela j'ai réaliséréalisé un cube creux et j'ai creusécreusé sur les faces pour marquer les chiffres. Ensuite j'ai réaliséréalisé un poids qui sera impriméimprimé en me temps que le .

Lorsque le poids est complècomplètement impriméimprimé, je mets l'impression en pause. Ensuite je peux coller le poids àà l'intéintérieur du sur la face du bas pour truquer le .

Capture d'écran 2026-01-10 143440.pngCapture d'écran 2026-01-10 143440.png

Mise en pause de l'impression :

20260116_095447.jpg

Collage du poids àà l'intéintérieur du

20260116_095555.jpg

sultat final :

20260116_101935.jpg

Conclusion : le poids est collécollé àà l'intéintérieur de façfaçon àà faire ressortir la face 1 plus souvent. Cependant le poids éétant de petite taille et impriméimprimé en PLA, il est un peu trop ger pour que l'effet soit significatif. Pour faire un avec un truquage vraiment efficace il faudrait aliser un poids de plus grande taille ou prendre une masse faite dans un matématériau plus lourd.

Code :


taille_de = 20;      
r = 1.5;  
    



module de(taille_de, courbure) {
    difference(){
    minkowski() {
        cube(taille_de - 2*courbure, center=true);
        sphere(courbure);
    }
    cube(taille_de-2,center=true);
    }
}

module point(x, y, z, axe) {
    rotate(axe)
        translate([x, y, z])
            sphere(r = r);
}

translate([0,0,taille_de/2])difference() {

    de(taille_de,2);

    // Face 1
    point(0, 0, taille_de/2, [0,0,0]);

    // Face 6
    point(-4, -4, taille_de/2, [180,0,0]);
    point( 4, -4, taille_de/2, [180,0,0]);
    point(-4,  0, taille_de/2, [180,0,0]);
    point( 4,  0, taille_de/2, [180,0,0]);
    point(-4,  4, taille_de/2, [180,0,0]);
    point( 4,  4, taille_de/2, [180,0,0]);

    // Face 2
    point(-4, -4, taille_de/2, [0,90,0]);
    point( 4,  4, taille_de/2, [0,90,0]);

    // Face 5
    point(-4, -4, taille_de/2, [0,-90,0]);
    point( 4, -4, taille_de/2, [0,-90,0]);
    point( 0,  0, taille_de/2, [0,-90,0]);
    point(-4,  4, taille_de/2, [0,-90,0]);
    point( 4,  4, taille_de/2, [0,-90,0]);

    // Face 3
    point(-4, -4, taille_de/2, [90,0,0]);
    point( 0,  0, taille_de/2, [90,0,0]);
    point( 4,  4, taille_de/2, [90,0,0]);

    // Face 4
    point(-4, -4, taille_de/2, [-90,0,0]);
    point( 4, -4, taille_de/2, [-90,0,0]);
    point(-4,  4, taille_de/2, [-90,0,0]);
    point( 4,  4, taille_de/2, [-90,0,0]);
}

module poids(){
cube([taille_de/3,taille_de/2,taille_de/6], center=true);
  
}

translate([40,0,taille_de/12]) poids();

Découverte Arduino : Valentin KOK et Mohammed-Amine MOUBARRAD

Cette partie vise à se familiariser avec les microcontrôleurs Arduino en réalisant des circuits avec programmation.

1. Circuit avec deux LED décorrelées

L'objectif de l'exercice est de partir d'un circuit Arduino simple avec une LED, et de rajouter une LED pour faire clignoter les deux de manière non corrélée. Pour cela on a relié une LED au port 12 et l'autre au port 13, ce qui permet d'écrire un programme pour contrôler chaque LED.

unsigned long Temps_precedentR = 0;
unsigned long Temps_precedentJ = 0; 
unsigned long Temps_actuel; 
int intervalleR = 1000;
int intervalleJ = 3000;
int etat_ledR = LOW;
int etat_ledJ = LOW;


void setup() {
    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);
}

void loop() {
    Temps_actuel = millis();
    if (Temps_actuel-Temps_precedentR >= intervalleR){ 
        Temps_precedentR = Temps_actuel;
        if (etat_ledR == LOW){
                etat_ledR = HIGH;
                }else{
                etat_ledR= LOW;}
        digitalWrite(12, etat_ledR);                                                                                                                                                                                 
    }
    if (Temps_actuel-Temps_precedentJ >= intervalleJ){ 
        Temps_precedentJ = Temps_actuel;
        if (etat_ledJ == LOW){
                etat_ledJ = HIGH;
                }else{
                etat_ledJ= LOW;}
        digitalWrite(13, etat_ledJ);                                                                                                                                                                                 
    }
}

Dans ce programme on définit des durées de clignotement (intervalles) différents pour la LED rouge et pour la LED jaune. Cela permet de faire clignoter la LED rouge pendant 1 seconde et la LED jaune pendant 3 secondes.

2. Circuit avec un capteur qui réagit à un élément extérieur

Pour ce deuxième circuit le but est de réaliser un circuit qui puisse réagir à un facteur extérieur. Pour cela nous avons choisi d'utiliser un capteur de distance, car cela correspond à une des technologies que nous souhaitons intégrer pour notre PPE.

Le circuit comporte une LED jaune. Si le capteur détecte un objet dans sa distance de détection, la LED s'allume.

void setup() {
  Serial.begin(9600);
  pinMode(12,INPUT);
}

void loop() {
    delay(1000);
    if(digitalRead(12)==LOW) {
      Serial.println("Magnet in range");
      digitalWrite(13,HIGH);

    }
    else {
      Serial.println("Magnet out of range");
      digitalWrite(13,LOW);
    }

}

 

Pas d'objet détecté : LED éteinte

20260129_162936.jpg

 

 

Objet détecté : LED allumée

20260129_162943.jpg

Limites : on peut constater que lorsque la LED est allumée, sa lumière est faible. Cela est peut-être dû à un courant trop faible dans notre circuit, ce que nous n'avons pas réussi à régler sans amplificateur de courant.