Valentin KOK
Impression d'un objet simple (16/12/2025)
Pour la premièpremière sésé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 réré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 réréduit la taille àà une longueur d'environ 5cm pour une largeur de 2cm, pour réréduire le temps d'impression, et j'ai choisi un réréglage de 20mm. Ces réréglages donnent un temps d'impression de 5 minutes
Le rérésultat s'est impriméimprimé sans difficultédifficulté particulièparticulière, il suffit ensuite de coller les deux parties
DéDé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 dédé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 monnaieréaliséréalisé en utilisant la fonction linear_extrude sur deux cercles et en faisant leurdiffédifférence. - Le module "eye" constitue un oeil. Pour faire le contour de l'oeil, j'ai
tracétracé une courbe polynomiale endédéfinissant une fonction en x^2. La courbe esttracétracée avec des cylindres. Entraçtraçant l'opposéopposé de cette courbe on obtient deuxtracé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 réréuni ces modules, en copiant deux fois le module eye et en traçtraçant des sourcils (en utilisant des cubes + linear_extrude).
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 : DéDé pipépipé
J'ai choisi de crécréer un dédé 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 mêmême temps que le dédé.
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 dédé sur la face du bas pour truquer le dédé.
Mise en pause de l'impression :
Collage du poids àà l'intéintérieur du dédé :
RéRésultat final :
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 léléger pour que l'effet soit significatif. Pour faire un dédé avec un truquage vraiment efficace il faudrait réré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
Objet détecté : LED allumée
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.









