# ZEGHOUDI Salma

**<span style="text-decoration: underline;">Mardi 16 décembre 2026</span>**

### <span style="color: rgb(0, 0, 0);">**<sup><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;">Activité Impression 3D</span></sup>**</span>

### <span style="text-decoration: underline;"><span style="color: rgb(186, 55, 42); text-decoration: underline;">Cœur prénom « Zakia »</span></span>

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-1.-objectif-de-l%27act"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown">  
</div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown"><span style="text-decoration: underline;">1. Objectif de l'activité</span></div></div></div></div></div></div></div>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.

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-2.-description-de-l%27"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown"><span style="text-decoration: underline;">2. Description de l'activité</span></div></div></div></div></div></div></div>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 :

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-rapide-%C3%A0-imprimer-%28p"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown">- Rapide à imprimer (petit volume)
- Visuellement parlant : on observe bien la construction couche par couche
- Personnalisable facilement via les paramètres OpenSCAD

</div></div></div></div></div></div><span style="text-decoration: underline;">3. Matériel utilisé</span>

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-%C3%89l%C3%A9ment-d%C3%A9tail-impri"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown"><div class="overflow-x-auto w-full px-2 mb-6"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Élément</th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Détail</th></tr></thead><tbody><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Imprimante 3D</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Original Prusa MK4S</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Filament</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">PLA Rouge</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Logiciel de modélisation</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">OpenSCAD</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Slicer</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">PrusaSlicer</td></tr></tbody></table>

</div></div></div></div></div></div></div></div><span style="text-decoration: underline;">4.logiciels </span>

**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.

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-5.-code-openscad-uti"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown"><span style="text-decoration: underline;">5. Code OpenSCAD utilisé</span></div></div></div></div></div></div></div>[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/t4Wimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/t4Wimage.png)

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk--1"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown"><div aria-label="Code scad" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" role="group" tabindex="0">  
</div></div></div></div></div></div></div></div><div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-6.-r%C3%A9glages-d%27impres"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown">6. Réglages d'impression</div></div></div></div></div></div></div><div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-param%C3%A8tre-valeur-mat"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown"><div class="overflow-x-auto w-full px-2 mb-6"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Paramètre</th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Valeur</th></tr></thead><tbody><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Matériau</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">PLA Rouge</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Hauteur de couche</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">0,15 mm (SPEED)</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Remplissage</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">20 %</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Température buse</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">200 °C</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Température plateau</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">60 °C</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Vitesse</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Paramètres par défaut PrusaSlicer</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Supports</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Non</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Adhérence plateau</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Par défaut (brim si nécessaire)</td></tr></tbody></table>

</div></div></div></div></div></div></div></div><div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-7.-%C3%89tapes-de-r%C3%A9alisa"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown"><span style="text-decoration: underline;">7. Étapes de réalisation</span></div></div></div></div></div></div></div><div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-mod%C3%A9lisation-dans-op"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown">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

</div></div></div></div></div></div><span style="text-decoration: underline;">8. Observations et anecdotes</span>

> « 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 :

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-la-premi%C3%A8re-couche-e"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown">- 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.

<span style="text-decoration: underline;">9. Résultat</span></div></div></div></div></div></div>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.

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-dimensions-respect%C3%A9e"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown">- 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.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/5Q7image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/5Q7image.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/w8Uimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/w8Uimage.png)

</div></div></div></div></div></div><span style="text-decoration: underline;">10. Limites </span>

<div class="flex-1 flex flex-col px-4 max-w-3xl mx-auto w-full pt-1" id="bkmrk-la-police-disponible"><div data-test-render-count="1"><div class="group"><div class="group relative relative pb-3" data-is-streaming="false"><div class="font-claude-response relative leading-[1.65rem] [&_pre>div]:bg-bg-000/50 [&_pre>div]:border-0.5 [&_pre>div]:border-border-400 [&_.ignore-pre-bg>div]:bg-transparent [&_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div><div class="standard-markdown grid-cols-1 grid [&_>_*]:min-w-0 gap-3 standard-markdown">- 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.

</div></div></div></div></div></div></div>## Sifflet fonctionnel

1. <span style="text-decoration: underline;"> Objectif du projet</span>

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.

<span style="text-decoration: underline;">2. Description du projet</span>

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.

<span style="text-decoration: underline;">3. Matériel utilisé</span>

<table id="bkmrk-%C3%89l%C3%A9ment-d%C3%A9tail-impri-1"><thead><tr><th>Élément</th><th>Détail</th></tr></thead><tbody><tr><td>Imprimante 3D</td><td>Original Prusa MK4S</td></tr><tr><td>Filament</td><td>PLA Blanc</td></tr><tr><td>Logiciel de modélisation</td><td>OpenSCAD</td></tr><tr><td>Slicer</td><td>PrusaSlicer</td></tr><tr><td>Élément supplémentaire</td><td>Bille (tentative d'insertion manuelle)</td></tr></tbody></table>

<span style="text-decoration: underline;">4. Logiciels utilisés</span>

**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.

<span style="text-decoration: underline;">5. Code OpenSCAD utilisé</span>

// ============================================================  
// 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();  
}

<span style="text-decoration: underline;">6.Réglages d'impressions</span>

<table id="bkmrk-param%C3%A8tre-valeur-mat-1"><thead><tr><th>Paramètre</th><th>Valeur</th></tr></thead><tbody><tr><td>Matériau</td><td>PLA Blanc</td></tr><tr><td>Hauteur de couche</td><td>0,15 mm (SPEED)</td></tr><tr><td>Remplissage</td><td>100 %</td></tr><tr><td>Température buse</td><td>200 °C</td></tr><tr><td>Température plateau</td><td>60 °C</td></tr><tr><td>Vitesse</td><td>Paramètres par défaut PrusaSlicer</td></tr><tr><td>Supports</td><td>Non</td></tr><tr><td>Adhérence plateau</td><td>Par défaut</td></tr><tr><td>Pause à la couche</td><td>Tentative d'insertion de bille</td></tr></tbody></table>

<span style="text-decoration: underline;">7. Étapes de réalisation</span>

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)

<span style="text-decoration: underline;">8. Observations et anecdotes</span>

> « 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 :

- La **couche de pause** a été choisie trop tôt : la cavité intérieure n'était pas encore suffisamment formée pour accueillir la bille dans la bonne position.
- La bille, une fois la buse revenue, a été **partiellement écrasée ou déplacée** par le filament des couches suivantes.
- Le biseau (fipple) est fonctionnel mais le son produit est faible — probablement lié à un léger manque d'étanchéité des parois à 0,15 mm de couche.
- L'anneau porte-clé est bien formé et solide.

<span style="text-decoration: underline;">9. Résultat</span>

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/fEbimage.png) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/fEbimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/iFKimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/iFKimage.png)

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

- Le corps est bien formé, les parois sont propres
- L'embout buccal et l'anneau porte-clé sont correctement imprimés
- Le biseau (ouverture rectangulaire sur le dessus) est bien visible
- La tentative d'insertion de bille n'a pas abouti : le sifflet fonctionne sans bille mais avec un son moins puissant qu'un sifflet à bille classique

<span style="text-decoration: underline;">10. Limites du projet</span>

- La **pause d'impression pour insertion de bille** nécessite une planification précise de la couche de pause — à retravailler.
- Le diamètre de la cavité interne doit être **adapté exactement** au diamètre de la bille choisie avant l'impression.
- Le remplissage à 100 % rallonge significativement le temps d'impression.
- La qualité acoustique du sifflet dépend fortement de la précision du biseau, difficile à obtenir à 0,15 mm de couche.

<span style="text-decoration: underline;">11.Apprentissage</span>

**Impression 3D :**

- Utilisation de la fonction **"Pause at layer"** dans PrusaSlicer
- Importance du choix de la **bonne couche de pause** pour les insertions
- Impact du remplissage à 100 % sur l'étanchéité et le temps d'impression
- Un projet raté est aussi un apprentissage : identifier pourquoi ça n'a pas fonctionné est aussi important que réussir !

## EXERCICE ARDUINO ( avec lila Yahiaoui )

##### <span style="text-decoration: underline;">Contexte :</span>

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.

<span style="text-decoration: underline;">**Qu'est ce Arduino ?** </span>

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

<div id="bkmrk-1-2-3-4-5-6-7-8-9-vo"><div class="cm-editor ͼ1 ͼ2 ͼ4 ͼ1p"><div aria-live="polite">  
</div><div class="cm-scroller" tabindex="-1"><div aria-hidden="true" class="cm-gutters"><div class="cm-gutter cm-lineNumbers"><div class="cm-gutterElement">  
</div><div class="cm-gutterElement">1</div><div class="cm-gutterElement">2</div><div class="cm-gutterElement">3</div><div class="cm-gutterElement">4</div><div class="cm-gutterElement">5</div><div class="cm-gutterElement">6</div><div class="cm-gutterElement">7</div><div class="cm-gutterElement">8</div><div class="cm-gutterElement">9</div></div></div><div aria-multiline="true" aria-readonly="true" autocapitalize="off" autocorrect="off" class="cm-content" contenteditable="true" role="textbox" spellcheck="false" translate="no"><div class="cm-line">void setup() {</div><div class="cm-line">pinMode(LED_BUILTIN, OUTPUT);</div><div class="cm-line">}</div><div class="cm-line">void loop() {</div><div class="cm-line">digitalWrite(LED_BUILTIN, HIGH);</div><div class="cm-line">delay(1000);</div><div class="cm-line">digitalWrite(LED_BUILTIN, LOW);</div><div class="cm-line">delay(1000);</div><div class="cm-line">}</div></div><div aria-hidden="true" class="cm-layer cm-layer-above cm-cursorLayer">  
</div><div aria-hidden="true" class="cm-layer cm-selectionLayer">  
</div></div></div></div>[![WhatsApp Image 2026-04-10 at 16.41.56.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/whatsapp-image-2026-04-10-at-16-41-56.jpeg) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/whatsapp-image-2026-04-10-at-16-41-56.jpeg)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/pFDimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/pFDimage.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.

<div id="bkmrk-1-2-3-4-5-6-7-8-9-10"><div class="cm-editor ͼ1 ͼ2 ͼ4 ͼ1q"><div aria-live="polite">  
</div><div class="cm-scroller" tabindex="-1"><div aria-hidden="true" class="cm-gutters"><div class="cm-gutter cm-lineNumbers"><div class="cm-gutterElement">  
</div><div class="cm-gutterElement">1</div><div class="cm-gutterElement">2</div><div class="cm-gutterElement">3</div><div class="cm-gutterElement">4</div><div class="cm-gutterElement">5</div><div class="cm-gutterElement">6</div><div class="cm-gutterElement">7</div><div class="cm-gutterElement">8</div><div class="cm-gutterElement">9</div><div class="cm-gutterElement">10</div><div class="cm-gutterElement">11</div><div class="cm-gutterElement">12</div><div class="cm-gutterElement">13</div></div></div><div aria-multiline="true" aria-readonly="true" autocapitalize="off" autocorrect="off" class="cm-content" contenteditable="true" role="textbox" spellcheck="false" translate="no"><div class="cm-line">void setup() {</div><div class="cm-line">pinMode(13, OUTPUT);</div><div class="cm-line">pinMode(12, OUTPUT);</div><div class="cm-line">}</div><div class="cm-line">void loop() {</div><div class="cm-line">digitalWrite(13, HIGH);</div><div class="cm-line">delay(2000);</div><div class="cm-line">digitalWrite(13, LOW);</div><div class="cm-line">digitalWrite(12, HIGH);</div><div class="cm-line">delay(1000);</div><div class="cm-line">digitalWrite(12, LOW);</div><div class="cm-line">delay(500);</div><div class="cm-line">}</div></div><div aria-hidden="true" class="cm-layer cm-layer-above cm-cursorLayer">  
</div><div aria-hidden="true" class="cm-layer cm-selectionLayer">  
</div></div></div></div>[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/Imrimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/Imrimage.png)[![SQCimage.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/sqcimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/sqcimage.png)

[ ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/whatsapp-image-2026-04-10-at-16-51-56.jpeg)

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.

<div id="bkmrk-1-2-3-4-5-6-7-8-9-10-1"><div class="cm-editor ͼ1 ͼ2 ͼ4 ͼ1r"><div aria-live="polite">  
</div><div class="cm-scroller" tabindex="-1"><div aria-hidden="true" class="cm-gutters"><div class="cm-gutter cm-lineNumbers"><div class="cm-gutterElement">  
</div><div class="cm-gutterElement">1</div><div class="cm-gutterElement">2</div><div class="cm-gutterElement">3</div><div class="cm-gutterElement">4</div><div class="cm-gutterElement">5</div><div class="cm-gutterElement">6</div><div class="cm-gutterElement">7</div><div class="cm-gutterElement">8</div><div class="cm-gutterElement">9</div><div class="cm-gutterElement">10</div><div class="cm-gutterElement">11</div><div class="cm-gutterElement">12</div><div class="cm-gutterElement">13</div><div class="cm-gutterElement">14</div><div class="cm-gutterElement">15</div><div class="cm-gutterElement">16</div><div class="cm-gutterElement">17</div><div class="cm-gutterElement">18</div><div class="cm-gutterElement">19</div><div class="cm-gutterElement">20</div><div class="cm-gutterElement">21</div><div class="cm-gutterElement">22</div><div class="cm-gutterElement">23</div><div class="cm-gutterElement">24</div><div class="cm-gutterElement">25</div><div class="cm-gutterElement">26</div><div class="cm-gutterElement">27</div><div class="cm-gutterElement">28</div><div class="cm-gutterElement">29</div><div class="cm-gutterElement">30</div><div class="cm-gutterElement">31</div><div class="cm-gutterElement">32</div><div class="cm-gutterElement">33</div></div></div><div aria-multiline="true" aria-readonly="true" autocapitalize="off" autocorrect="off" class="cm-content" contenteditable="true" role="textbox" spellcheck="false" translate="no"><div class="cm-line">// the setup function runs once when you press reset or power the board</div><div class="cm-line">void setup() {</div><div class="cm-line">// initialize digital pin LED_BUILTIN as an output.</div><div class="cm-line">pinMode(LED_BUILTIN, OUTPUT);</div><div class="cm-line">pinMode(12, OUTPUT);</div><div class="cm-line">Serial.begin(9600);</div><div class="cm-line">  
</div><div class="cm-line">}</div><div class="cm-line">  
</div><div class="cm-line">// the loop function runs over and over again forever</div><div class="cm-line">void loop() {</div><div class="cm-line">/*digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)</div><div class="cm-line">delay(1000); // wait for a second</div><div class="cm-line">digitalWrite(12, LOW); // turn the LED off by making the voltage LOW</div><div class="cm-line">delay(1000); // wait for a second</div><div class="cm-line">digitalWrite(12, HIGH); // turn the LED off by making the voltage LOW</div><div class="cm-line">delay(1000);</div><div class="cm-line">digitalWrite(LED_BUILTIN, LOW);</div><div class="cm-line">delay(1000); */ // wait for a second</div><div class="cm-line">// read the input on analog pin 0:</div><div class="cm-line">int sensorValue = analogRead(A0);</div><div class="cm-line">// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):</div><div class="cm-line">float voltage = sensorValue * (5.0 / 1023.0);</div><div class="cm-line">// print out the value you read:</div><div class="cm-line">Serial.println(voltage);</div><div class="cm-line">if (voltage &gt; 4){</div><div class="cm-line">digitalWrite(LED_BUILTIN, HIGH);</div><div class="cm-line">digitalWrite(12, LOW);</div><div class="cm-line">} else{</div><div class="cm-line">digitalWrite(LED_BUILTIN, LOW);</div><div class="cm-line">digitalWrite(12, HIGH);</div><div class="cm-line">}</div><div class="cm-line">}</div></div><div aria-hidden="true" class="cm-layer cm-layer-above cm-cursorLayer">  
</div><div aria-hidden="true" class="cm-layer cm-selectionLayer">  
</div></div></div></div>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](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/zOiimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/zOiimage.png)