ZEGHOUDI Salma

Mardi 16 décembre 2026

Activité Impression 3D

Cœur prénom « Zakia »


1. Objectif de l'activité

L'objectif de cette séance était de découvrir les bases de l'impression 3D à travers un projet simple et personnalisé. Contrairement à l'utilisation d'un fichier STL existant, ici la modélisation a été réalisée directement avec OpenSCAD, ce qui a permis d'aborder à la fois la modélisation paramétrique et le processus complet d'impression 3D.

2. Description de l'activité

Le projet consiste à modéliser et imprimer un cœur 3D personnalisé avec le prénom « Zakia » en relief sur la face supérieure. Cet objet a été entièrement conçu dans OpenSCAD à l'aide d'une formule mathématique paramétrique, puis tranché avec PrusaSlicer avant d'être imprimé en PLA rouge.

Ce type d'objet est idéal pour une première approche car il est :

  • Rapide à imprimer (petit volume)
  • Visuellement parlant : on observe bien la construction couche par couche
  • Personnalisable facilement via les paramètres OpenSCAD

3. Matériel utilisé

Élément Détail
Imprimante 3D Original Prusa MK4S
Filament PLA Rouge
Logiciel de modélisation OpenSCAD
Slicer PrusaSlicer

4.logiciels 

OpenSCAD : Modélisation OpenSCAD est un logiciel de modélisation 3D paramétrique. Il fonctionne entièrement par script : on décrit la forme avec du code, ce qui permet une personnalisation facile et reproductible. Le code utilisé repose sur une courbe mathématique paramétrique (formule du cœur) et intègre le prénom en relief via la fonction text().

PrusaSlicer :Tranchage PrusaSlicer est le logiciel de tranchage utilisé pour préparer le fichier d'impression. Il convertit le modèle 3D (fichier STL exporté depuis OpenSCAD) en instructions G-code compréhensibles par l'imprimante.

5. Code OpenSCAD utilisé

image.png


6. Réglages d'impression
Paramètre Valeur
Matériau PLA Rouge
Hauteur de couche 0,15 mm (SPEED)
Remplissage 20 %
Température buse 200 °C
Température plateau 60 °C
Vitesse Paramètres par défaut PrusaSlicer
Supports Non
Adhérence plateau Par défaut (brim si nécessaire)
7. Étapes de réalisation
  1. Modélisation dans OpenSCAD
    • Écriture du code paramétrique (courbe mathématique du cœur)
    • Ajout du texte « Zakia » en relief avec la fonction text()
    • Aperçu via Design → Preview, puis rendu via Design → Render
    • Export du fichier STL : File → Export → Export as STL
  2. Importation dans PrusaSlicer
    • Vérification de l'échelle et de l'orientation sur le plateau
    • Vérification des réglages standards
    • Ajustement si nécessaire (rotation, mise à l'échelle)
  3. Génération du G-code
    • Lancement du tranchage dans PrusaSlicer
    • Vérification de l'aperçu des couches
  4. Impression 3D
    • Lancement de l'impression sur la Prusa MK4S
    • Surveillance de la première couche
    • Suivi du déroulement et observation de la formation des couches

8. Observations et anecdotes

« C'était fascinant de voir le texte en relief apparaître progressivement, couche après couche et la forme du cœur prenait vie devant mes yeux. »

Points d'attention observés lors de l'impression :

  • La première couche est critique : une mauvaise adhérence peut compromettre toute l'impression.
  • Le relief du texte (1,5 mm) est suffisant pour être lisible sans fragiliser la pièce.
9. Résultat

Le cœur imprimé est conforme au modèle conçu dans OpenSCAD. Le prénom « Zakia » est bien lisible en relief sur la face supérieure. La couleur rouge du PLA donne à l'objet un rendu esthétique fidèle à l'objet de référence.

  • Dimensions respectées et forme du cœur bien symétrique
  • Texte en relief net et lisible
  • Surface propre sans défaut majeur visible                            

    image.pngimage.png

     

10. Limites 

  • La police disponible dans OpenSCAD peut varier selon le système, ce qui peut affecter le rendu du texte.
  • Les réglages avancés de PrusaSlicer n'ont pas été explorés.
  • Le projet ne permet pas d'évaluer la résistance mécanique de la pièce.
  • L'impression a été réalisée uniquement en PLA rouge, sans comparaison avec d'autres matériaux.

Sifflet fonctionnel

  1.  Objectif du projet

L'objectif de cette séance était d'aller plus loin dans la pratique de l'impression 3D en modélisant from scratch un objet fonctionnel : un sifflet. Contrairement à la séance précédente (cœur Zakia), ce projet introduit des notions plus avancées de modélisation OpenSCAD (différences booléennes, biseau acoustique) et tente une manipulation plus complexe pendant l'impression.

2. Description du projet

Le projet consiste à modéliser et imprimer un sifflet fonctionnel entièrement conçu dans OpenSCAD. L'objet comprend un corps creux, un embout buccal, un biseau (fipple) générateur de son, et un anneau d'accroche porte-clé.

Une tentative originale a été faite : mettre l'impression en pause pour introduire manuellement une petite bille à l'intérieur du corps, afin d'obtenir un sifflet à bille comme les modèles classiques. Cette manipulation n'a malheureusement pas fonctionné comme prévu.

3. Matériel utilisé

Élément Détail
Imprimante 3D Original Prusa MK4S
Filament PLA Blanc
Logiciel de modélisation OpenSCAD
Slicer PrusaSlicer
Élément supplémentaire Bille (tentative d'insertion manuelle)

4. Logiciels utilisés

OpenSCAD et PrusaSlicer : Tranchage PrusaSlicer a été utilisé pour trancher le modèle et tenter de gérer la pause d'impression via la fonction "Pause at layer", dans le but d'insérer une bille manuellement entre deux couches.

5. Code OpenSCAD utilisé

// ============================================================
//   SIFFLET CLASSIQUE TYPE ARBITRE
// ============================================================
$fn = 100;

// CORPS PRINCIPAL (forme ovale aplatie)
module corps() {
    difference() {
        // Coque extérieure ovale
        scale([1, 0.65, 1])
            sphere(r=18);
        
        // Vider l'intérieur
        scale([1, 0.65, 1])
            sphere(r=15.5);
        
        // Couper le bas plat
        translate([0, 0, -30])
            cube([60, 60, 30], center=true);
        
        // Couper l'avant pour raccorder l'embout
        translate([22, 0, 0])
            cube([20, 40, 40], center=true);
        
        // Couper l'arrière
        translate([-22, 0, 0])
            cube([20, 40, 40], center=true);
        
        // Fente sonore sur le dessus
        translate([-5, -20, 6])
            cube([10, 40, 2]);
    }
}

// EMBOUT BUCCAL
module embout() {
    translate([18, 0, 1])
    rotate([0, 90, 0])
    difference() {
        union() {
            cylinder(r1=5, r2=4, h=14);
            translate([0, 0, 14])
                cylinder(r=4, h=3);
        }
        cylinder(r1=3.5, r2=2.8, h=18);
    }
}

// CHAMBRE ARRIERE FERMEE
module fond_arriere() {
    translate([-18, 0, 1])
    rotate([0, -90, 0])
    difference() {
        cylinder(r=10, h=4);
        cylinder(r=8.5, h=4);
    }
}

// ANNEAU DE CORDON
module anneau() {
    translate([-20, 0, 8])
    rotate([90, 0, 0])
    difference() {
        torus_shape(6, 2.2);
        // Support de l'anneau sur le corps
    }
}

module torus_shape(R, r) {
    rotate_extrude()
        translate([R, 0, 0])
            circle(r=r);
}

// BILLE INTERNE (visible si coupe)
module bille() {
    translate([0, 0, 2])
        sphere(r=5);
}

// PLAQUE DE SIFFLET (languette sonore)
module languette() {
    translate([-8, -15.5, 0])
        cube([16, 1.5, 6]);
}

// ============================================================
//   ASSEMBLAGE FINAL
// ============================================================
union() {
    corps();
    embout();
    fond_arriere();
    anneau();
    languette();
}

6.Réglages d'impressions

Paramètre Valeur
Matériau PLA Blanc
Hauteur de couche 0,15 mm (SPEED)
Remplissage 100 %
Température buse 200 °C
Température plateau 60 °C
Vitesse Paramètres par défaut PrusaSlicer
Supports Non
Adhérence plateau Par défaut
Pause à la couche Tentative d'insertion de bille

7. Étapes de réalisation

  1. Modélisation dans OpenSCAD

    • Écriture du code paramétrique (corps, embout, fipple, anneau)
    • Utilisation de hull() et difference() pour la forme creuse
    • Aperçu via Design → Preview, rendu via Design → Render
    • Export STL : File → Export → Export as STL
  2. Importation dans PrusaSlicer

    • Vérification de l'orientation (embout face à gauche, biseau sur le dessus)
    • Réglage du remplissage à 100 % pour assurer l'étanchéité acoustique
    • Ajout d'une pause à une couche intermédiaire pour l'insertion de la bille
  3. Génération du G-code

    • Tranchage avec pause programmée
    • Vérification de l'aperçu des couches et de la position de la pause
  4. Impression 3D

    • Lancement de l'impression sur la Prusa MK4S
    • Surveillance de la première couche
    • À la couche de pause : tentative d'insertion manuelle de la bille
  5. Tentative d'insertion de la bille

    • Mise en pause de l'imprimante à mi-hauteur
    • Introduction d'une bille dans la cavité interne
    • Reprise de l'impression : résultat non concluant (voir Observations)

8. Observations et anecdotes

« L'idée d'insérer une bille pendant l'impression semblait simple en théorie mais en pratique, la cavité n'était pas encore assez ouverte à la couche de pause choisie, et la bille n'a pas pu être correctement positionnée. »

Points d'attention observés :

9. Résultat

image.png  image.png

Le sifflet imprimé est globalement conforme au modèle OpenSCAD, comme on peut le constater visuellement :

10. Limites du projet

11.Apprentissage

Impression 3D :

EXERCICE ARDUINO ( avec lila Yahiaoui )

Contexte :

Dans le cadre de l'UE "Processus d'Innovation", nous nous initions à l'électronique afin d'imaginer et de concevoir le prototype de  service innovant.

Objectif : Découvrir et prendre en main le logiciel Arduino à travers des manipulations concrètes, portant sur le contrôle de l'allumage de LEDs, la gestion de leur intensité lumineuse, ainsi que la programmation d'alternances entre états allumé et éteint.

Qu'est ce Arduino ? 

Arduino est un outil composé d'une carte électronique programmable et d'un logiciel permettant de lui envoyer des instructions pour contrôler des composants comme des LEDs ou des capteurs. Il utilise un langage simple basé sur le C/C++, accessible même aux débutants. C'est l'outil idéal pour prototyper rapidement des idées innovantes.

1.Notre objectif dans un premier temps est de faire cllignoter la Led 


void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

WhatsApp Image 2026-04-10 at 16.41.56.jpeg   image.png

Un code basique permettant de faire clignoter une LED en définissant une durée d'allumage et une durée d'extinction.

2. Programmer deux LEDs pour qu'elles clignotent à des fréquences distinctes.


void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(2000);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
delay(500);
}

image.pngSQCimage.png

   

Chaque LED possède ses propres durées d'allumage et d'extinction, permettant de régler indépendamment le rythme de clignotement de chacune, sans qu'elles soient forcément liées l'une à l'autre.

3.

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin(9600);

}

// the loop function runs over and over again forever
void loop() {
/*digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
digitalWrite(12, HIGH); // turn the LED off by making the voltage LOW
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000); */ // wait for a second
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
if (voltage > 4){
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(12, LOW);
} else{
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(12, HIGH);
}
}

Cette activité m'a permis de découvrir les bases de la programmation Arduino et de comprendre comment contrôler des composants électroniques tels que les LEDs.

La principale difficulté rencontrée a été la gestion simultanée de plusieurs LEDs avec des rythmes indépendants, ce qui a nécessité une meilleure organisation du code. La limite de cet exercice reste sa simplicité — on ne fait que contrôler des LEDs, ce qui est encore loin de la complexité d'un vrai prototype.

Cette activité est néanmoins un premier pas concret vers la conception de notre projet innovant, en nous donnant les bases pour envisager l'intégration de capteurs ou d'autres composants plus avancés

image.png



Revision #8
Created 9 January 2026 09:52:07 by Zeghoudi Salma
Updated 3 May 2026 23:36:56 by Zeghoudi Salma