Projet_prototypage_groupe_Haji_Hamoudi_Ben Aboubou
MU5MN045 - PROTOTYPAGE - 2024/2025
ImĂšne HAMOUDI & Wissal HAJI & Omayma BEN ABOUBOU
PREMIERE SEANCE - ARDUINO - Vendredi 07 Février 2025
L'objectif du projet est de mesurer la température et l'humidité à l'aide du capteur et d'effectuer des actions en fonction des valeurs obtenues.
- Si la température dépasse 20°C, un servo-moteur tourne progressivement.
- Si l'humidité dépasse 30%, une LED s'allume.
- Les données de température et d'humidité sont affichées sur le moniteur série.
Ce bloc initialise le projet en définissant les composants nécessaires. La ligne #define LED 6 assigne la broche 6 à une LED qui s'allumera en fonction de l'humidité. Ensuite, les bibliothÚques Seeed_SHT35.h et Servo.h sont incluses pour gérer respectivement le capteur de température/humidité SHT35 et le servo-moteur. On déclare aussi une variable pos pour contrÎler l'angle du servo et on crée un objet myservo pour l'utiliser dans le programme.
Ce bloc de code adapte le programme en fonction du modÚle de carte Arduino utilisé. Si une carte SAMD est détectée (comme une Arduino MKR1000 ou Zero), alors les broches I2C (SDA = 20, SCL = 21) sont configurées en conséquence et la communication série se fera via SerialUSB. Pour une carte classique comme une Arduino Uno ou Mega, les broches utilisées sont A4 pour SDA et A5 pour SCL, et la communication série passe par Serial.
Dans la fonction setup (), on initialise le matĂ©riel. La ligne myservo.attach(9); relie le servo-moteur Ă la broche 9. Ensuite, pinMode(LED, OUTPUT); configure la LED en mode sortie pour quâon puisse lâallumer ou lâĂ©teindre selon lâhumiditĂ© mesurĂ©e. La communication sĂ©rie est Ă©tablie avec une vitesse de 115200 bauds pour afficher les donnĂ©es sur le moniteur sĂ©rie. Ensuite, sensor.init() initialise le capteur SHT35, et si lâinitiation Ă©choue, un message dâerreur "sensor init failed!!" est affichĂ©. Enfin, un delay(1000); ajoute une pause d'une seconde avant d'entrer dans la boucle principale.
Dans la fonction loop(), plusieurs variables sont dĂ©finies pour stocker les mesures du capteur. temp et hum sont des variables float qui enregistreront la tempĂ©rature et lâhumiditĂ© respectivement. Les variables value et data[6] sont dĂ©finies mais ne sont pas utilisĂ©es, elles peuvent donc ĂȘtre supprimĂ©es sans affecter le fonctionnement du code.
Cette partie de la boucle loop() tente de lire les donnĂ©es du capteur SHT35 en effectuant une mesure unique avec sensor.read_meas_data_single_shot(). Si la lecture Ă©choue (NO_ERROR n'est pas retournĂ©), un message "read temp failed!!" est affichĂ©, et le programme passe Ă lâitĂ©ration suivante de la boucle sans exĂ©cuter les actions dĂ©pendantes des mesures.
Si la lecture du capteur est rĂ©ussie, on affiche la tempĂ©rature mesurĂ©e sur le moniteur sĂ©rie. "temperature = " est imprimĂ© suivi de la valeur de temp, exprimĂ©e en degrĂ©s Celsius ("â"). Cela permet de surveiller en temps rĂ©el les variations de tempĂ©rature mesurĂ©es par le capteur.
Si la tempĂ©rature dĂ©passe 20°C, le servo commence Ă tourner progressivement. ProblĂšme : la commande myservo.write(pos); permet de donner une position au servo, mais la plupart des servos standards ne peuvent tourner que de 0 Ă 180°. La valeur 360 est donc incorrecte et doit ĂȘtre remplacĂ©e par 180 :
PROJET DE CREATION DE PRODUIT - Vendredi 07 Mars 2025
Consigne :
Ce wiki décrit le processus de modélisation et d'impression d'un objet en 3D, de la conception à la fabrication. L'objectif est de créer un objet, qu'il soit fonctionnel ou esthétique, en suivant les étapes clés du processus de fabrication additive.
Nous avons suivi une sĂ©ance de formation sur Tinkercad et PrusaSlicer le Lundi 03 Mars 2025, oĂč nous avons appris les bases de la modĂ©lisation et de la prĂ©paration Ă l'impression. Ce projet est donc une mise en pratique de cette formation.
Choix : Cactus Porte-Clés
Ce porte-clĂ©s en forme de cactus est conçu pour ĂȘtre placĂ© Ă l'entrĂ©e d'une habitation. Il permet d'accrocher plusieurs clĂ©s grĂące Ă ses bras en forme de crochets. Sa base assure une bonne stabilitĂ© sur une surface plane.
figure 1 : inspiration
Modélisation de la piÚce :
La modélisation est réalisée à l'aide du logiciel Tinkercad. Plusieurs captures d'écran du modÚle avec les dimensions seront insérées pour illustrer le processus.
Etapes suivies
-
Esquisse : Définition des dimensions et de la géométrie de base du cactus et de sa base.
-
Extrusion et mise en volume : Transformation de l'esquisse en un objet 3D, avec l'ajout des crochets pour les clés.
-
Détail et optimisation : Ajout de rainures esthétiques et optimisation de la forme pour une impression stable.
-
Exportation : Sauvegarde du fichier au format STL
figure 2 : Modélisation Tinkercad
Préparation à l'impression :
La préparation a été réalisée avec PrusaSlicer. Des captures d'écran du slicer seront ajoutées pour illustrer les réglages.
ParamÚtres utilisés
-
Slicing : Transformation du modĂšle en instructions pour l'imprimante.
-
Réglage des paramÚtres :
-
Hauteur de couche : 0.2 mm
-
Remplissage : 20%
-
Température d'extrusion : 200°C (PLA)
-
Température du plateau : 60°C
-
Vitesse d'impression : 50 mm/s
-
Supports : Aucun (malgré plusieurs échecs, ils n'ont pas permis d'améliorer l'impression)
-
Adhérence au plateau : Jupe ou bordure non activée
-
-
GĂ©nĂ©ration du G-code : Enregistrement du fichier prĂȘt Ă l'impression.
-
Le temps d'impression estimé est de 1h56 en mode normal.
figure 3 : Aperçu des réglages sur Pruseslicer
Impression :
figure 4 : Images de l'imprimante en fonctionnement
Vidéo de l'impression en cours
ProblÚmes rencontrés
Nous avons subi plusieurs échecs d'impression (5 au total). L'imprimante a détecté un filament coincé, ce qui a généré un message d'erreur et stoppé l'impression.
figure 5 : Tentatives d'impression qui ont échoué
Axes d'amélioration
-
Ajout d'un support pour stabiliser la piĂšce â Ăchec
-
Assistance du personnel du FabLab pour diagnostiquer le problĂšme â Toujours des erreurs
-
DerniĂšre tentative en cours avec un doublement des dimensions : La piĂšce est actuellement en impression, nous attendons de voir le rĂ©sultat â Ăchec.
Découpage Laser [Boite à bijoux gravée] - Lundi 31 mars 2025
Objectif
Notre objectif est de concevoir un objet à l'aide du découpage laser, en y ajoutant une gravure. En tant qu'équipe de jeunes femmes passionnées par les bijoux, nous avons décidé de créer une boßte à bijoux pour les ranger de maniÚre élégante et pratique.
INSPIRATION
Réalisation
Nous avons utilisé le site Festi.info pour récupérer un modÚle de boßte et ajuster ses paramÚtres selon nos besoins. AprÚs avoir défini les dimensions et autres réglages, nous avons exporté le fichier au format .svg.
Ensuite, nous avons importé ce modÚle dans Inkscape afin de préparer la gravure.
Afin dâobtenir un tracĂ© prĂ©cis, nous avons vectorisĂ© lâĂ©criture en utilisant la fonction "Contour en chemin".
Cette Ă©tape nous a permis d'obtenir une gravure nette et dĂ©taillĂ©e, prĂȘte pour la dĂ©coupe laser.
Résultat final :
â¶ïžâ¶ïžâ¶ïž LIEN VIDEO DECOUPE LASER
PROJET FINAL : BoĂźte Ă bijoux lumineuse - Avril 2025
Introduction & choix du projet
Notre objectif était de concevoir un objet personnalisé en combinant plusieurs techniques de fabrication numérique : découpe laser, impression 3D et électronique programmable -Arduino.
Au démarrage du projet, nous avons exploré plusieurs pistespour enrichir notre boßte à bijoux :
-
Option 1 : intégrer un éclairage LED automatique à l'ouverture de la boßte,
-
Option 2 : ajouter un systÚme de diffusion musicale qui se déclencherait à l'ouverture.
AprĂšs rĂ©flexion, nous avons dĂ©cidĂ© dâopter pour l'Ă©clairage LED pour plusieurs raisons :
-
D'un point de vue technique, l'intégration des LEDs est plus simple et moins encombrante qu'un module sonore.
-
LâesthĂ©tique : la lumiĂšre apporte une ambiance chaleureuse, mettant en valeur les bijoux Ă lâintĂ©rieur de la boĂźte.
-
La simplicitĂ© d'usage : une lumiĂšre douce est discrĂšte et ne dĂ©range pas lâutilisateur contrairement Ă une musique automatique qui pourrait devenir gĂȘnante. Les LEDs sont mĂȘme particuliĂšrement utiles pour retrouver facilement ses bijoux la nuit, sans avoir besoin dâallumer une grande lampe ou lâĂ©clairage principal de la piĂšce.
Ainsi, notre choix sâest orientĂ© vers une solution qui sublime lâobjet tout en amĂ©liorant lâexpĂ©rience pratique pour lâutilisateur au quotidien.
Réalisation de la boßte à bijoux via découpe laser
Conception et montage du circuit électrique
1. Capteur Ultrason HC-SR04
-
VCC â 5V Arduino
-
GND â GND Arduino
-
TRIG â Pin 9 Arduino
-
ECHO â Pin 10 Arduino
2. Ruban LED RGB 5050
-
VCC â 5V Arduino (ou alimentation externe si beaucoup de LEDs)
-
GND â GND Arduino
-
Data IN â Pin 6 Arduino
Liste des composants :
-
Arduino Uno
-
Capteur Ultrason HC-SR04
-
Ruban LED RGB 5050
-
CĂąbles de connexion
Le code :#include <FastLED.h> #define TRIG_PIN 9 // Broche TRIG du HC-SR04 #define ECHO_PIN 8 // Broche ECHO du HC-SR04 #define LED_PIN 6 // Broche des LEDs WS2812b #define NUM_LEDS 60 // Nombre de LEDs #define BRIGHTNESS 50 // LuminositĂ© (0-255) #define THRESHOLD 30 // Distance (cm) pour considĂ©rer la boĂźte ouverte CRGB leds[NUM_LEDS]; void setup() { Serial.begin(9600); pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); FastLED.setBrightness(BRIGHTNESS); FastLED.clear(); FastLED.show(); // Ăteindre les LEDs au dĂ©but } void loop() { long duration; int distance; // đĄ Mesurer la distance avec le HC-SR04 digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); duration = pulseIn(ECHO_PIN, HIGH); distance = duration * 0.034 / 2; Serial.print("Distance mesurĂ©e : "); Serial.print(distance); Serial.println(" cm"); if (distance > THRESHOLD) { Serial.println("đŠ BoĂźte ouverte ! LEDs allumĂ©es !"); allumerLEDs(); } else { Serial.println("đŠ BoĂźte fermĂ©e ! LEDs Ă©teintes !"); eteindreLEDs(); } delay(500); } // đŽ Fonction pour allumer les LEDs en rouge void allumerLEDs() { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB(255, 0, 0); // Rouge } FastLED.show(); } // â« Fonction pour Ă©teindre les LEDs void eteindreLEDs() { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB(0, 0, 0); // Noir (Ă©teint) } FastLED.show(); }
Fabrication de la plaque en impression 3D