Projets MEBARKIA, AMMACHE, EL HELOU, LUSINIER & GAL
Séance du 07/02/2025
Principaux composants et leurs fonctions :
- LED (Diode électroluminescente) :
Une LED (diode électroluminescente) est un composant électronique qui émet de la lumière lorsqu'un courant électrique la traverse.
- Résistance :
Les résistances limitent le passage du courant électrique dans un circuit. Elles sont utilisées pour protéger les composants sensibles (comme les LEDs) contre un courant excessif. Elle obéit à la loi d’Ohm : U=R×IU = R \times IU=R×I (U : tension, R : résistance, I : courant).
- Condensateur :
Les condensateurs stockent de l'énergie sous forme de charge électrique et peuvent être utilisés pour lisser les variations de tension dans un circuit. Par exemple, un condensateur peut être utilisé pour stabiliser la tension d'alimentation dans des applications comme les moteurs ou les capteurs.
- Potentiomètre :
Un potentiomètre est une résistance variable qui permet de contrôler un courant ou une tension. Il est souvent utilisé pour ajuster des paramètres, comme la luminosité d'une LED ou la vitesse d'un moteur. Un potentiomètre a généralement trois broches :
• Une broche connectée à 5V
• Une broche connectée à GND (Ground)
La broche centrale qui délivre un signal de sortie variable en fonction de la position du potentiomètre.
- Transistor :
Les transistors sont des composants qui permettent de contrôler un courant plus élevé en utilisant un courant plus faible. Ils sont utilisés comme interrupteurs ou amplificateurs dans les circuits électroniques..
- Régulateur de tension :
Les régulateurs sont des composants qui fournissent une tension constante, quel que soit le courant demandé. Par exemple, un régulateur de tension peut transformer une tension d'entrée de 12V en une sortie stable de 5V, ce qui est nécessaire pour alimenter des composants comme les cartes Arduino.
- Capteur I2C (Inter-Integrated Circuit) :
Il sert à transmettre des données entre un microcontrôleur et d'autres composants électroniques.
Il fonctionne sur un bus de deux fils :
SDA (Serial Data) : La ligne de données utilisée pour envoyer et recevoir les informations.
SCL (Serial Clock) : La ligne d'horloge qui synchronise la communication.
- Moniteur de série :
C'est un outil intégré dans l'IDE Arduino qui permet de communiquer avec la carte Arduino via la connexion USB.
Il est utilisé pour afficher des données comme la lecture de capteurs ou la valeur d'un variable.
- Shield :
C'est une carte d'extension qui se place directement sur une carte Arduino pour ajouter des fonctionnalités supplémentaires, comme des capteurs, ou des moteurs. Il se connecte facilement aux broches de l'Arduino, ce qui permet d'étendre ses capacités sans avoir à souder des composants supplémentaires.
Arduino IDE
Montages réalisés :
1- Modifier la fréquence de la LED
Pour modifier la fréquence de la LED, on a changé la durée des délais dans le code.
Code:
#define LED 6
// 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, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(2000); // wait for a second
digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
}
2- Brancher un bouton
On a commencé par brancher le bouton.
Un bouton a généralement deux pattes qui sont reliées entre elles lorsqu'il est pressé. Il doit être placé entre deux broches de l'Arduino (par exemple, entre la broche 2 et GND). Un côté du bouton est connecté à la broche d'entrée et l'autre côté du bouton est connecté à GND.
On a aussi utilisé un programme permettant de détecter l'appui sur le bouton.
Code:
#define BOUTON 2
void setup() {
// put your setup code here, to run once:
pinMode(BOUTON, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int etat_bouton = digitalRead(BOUTON);
if(etat_bouton == 1){
Serial.println("Bouton pressé");
}
delay(100);
}
Serial Monitor :
3- Utiliser un potentiomètre
Le potentiomètre a 3 broches :
• La première est connectée à 5V.
• La deuxième est la sortie.
• La troisième est connectée à GND.
En tournant le potentiomètre, on a ajusté la tension de sortie qui est détectée par l'Arduino et la valeur est affichée sur le moniteur de série.
Code:
#define POT A0
void setup() {
pinMode(POT, INPUT);
Serial.begin(9600);
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
int valeur = analogRead(POT);
Serial.print("Valeur du potentiometre :");
Serial.println(valeur);
delay(200);
}
Serial Monitor :
Photo du montage :
4- Utiliser un capteur I2C
On a utilisé un shield pour connecter les capteurs.
Code du capteur SHT35 :
#include "Seeed_SHT35.h"
/*SAMD core*/
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SDAPIN 20
#define SCLPIN 21
#define RSTPIN 7
#define SERIAL SerialUSB
#else
#define SDAPIN A4
#define SCLPIN A5
#define RSTPIN 2
#define SERIAL Serial
#endif
SHT35 sensor(SCLPIN);
void setup()
{
SERIAL.begin(115200);
delay(10);
SERIAL.println("serial start!!");
if(sensor.init())
{
SERIAL.println("sensor init failed!!!");
}
delay(1000);
}
void loop()
{
u16 value=0;
u8 data[6]={0};
float temp,hum;
if(NO_ERROR!=sensor.read_meas_data_single_shot(HIGH_REP_WITH_STRCH,&temp,&hum))
{
SERIAL.println("read temp failed!!");
SERIAL.println(" ");
SERIAL.println(" ");
SERIAL.println(" ");
}
else
{
SERIAL.println("read data :");
SERIAL.print("temperature = ");
SERIAL.print(temp);
SERIAL.println(" ℃ ");
SERIAL.print("humidity = ");
SERIAL.print(hum);
SERIAL.println(" % ");
SERIAL.println(" ");
SERIAL.println(" ");
SERIAL.println(" ");
}
delay(1000);
}
Serial Monitor :
Photo du montage :
5- Brancher une LED et une résistance
Nous avons branché une LED et une résistance dans un montage avec l'Arduino, le shield, et le capteur I2C.
Pour augmenter la température du capteur, nous l'avons chauffé avec nos mains. À partir d'une certaine température (>25°c), la LED s'allume, et lorsqu'elle descend en dessous de cette valeur, la LED s'éteint.
Code:
#include "Seeed_SHT35.h"
#define LED 6
/*SAMD core*/
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SDAPIN 20
#define SCLPIN 21
#define RSTPIN 7
#define SERIAL SerialUSB
#else
#define SDAPIN A4
#define SCLPIN A5
#define RSTPIN 2
#define SERIAL Serial
#endif
SHT35 sensor(SCLPIN);
void setup()
{
SERIAL.begin(115200);
delay(10);
SERIAL.println("serial start!!");
if(sensor.init())
{
SERIAL.println("sensor init failed!!!");
}
delay(1000);
pinMode(LED, OUTPUT);
}
void loop()
{
u16 value=0;
u8 data[6]={0};
float temp,hum;
if(NO_ERROR!=sensor.read_meas_data_single_shot(HIGH_REP_WITH_STRCH,&temp,&hum))
{
SERIAL.println("read temp failed!!");
SERIAL.println(" ");
SERIAL.println(" ");
SERIAL.println(" ");
}
else
{
SERIAL.println("read data :");
SERIAL.print("temperature = ");
SERIAL.print(temp);
if (temp >25){
digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(2000);
}
SERIAL.println(" ℃ ");
SERIAL.print("humidity = ");
SERIAL.print(hum);
SERIAL.println(" % ");
SERIAL.println(" ");
SERIAL.println(" ");
SERIAL.println(" ");
}
delay(1000);
}
6- Utiliser un servo moteur
Un servo moteur a généralement trois fils :
• Marron : GND (Ground).
• Rouge : 5V (Alimentation).
• Jaune : Signal (contrôlé par une broche PWM, souvent utilisée pour contrôler la position du moteur).
La broche de signal est reliée à une broche PWM de l'Arduino pour contrôler la position du moteur, permettant ainsi des mouvements précis.
Nous avons utilisé deux codes :
• Le premier permet de faire bouger le servo moteur seul :
(Ajouter le code ici)
• Le second permet de contrôler le servo moteur avec le potentiomètre :
(Ajouter le code ici)
Séance du 03/03/2025
Nous avons utilisé Tinkercad, une plateforme en ligne gratuite, pour réaliser des projets de conception 3D et de modélisation. Ce logiciel permet de créer facilement des modèles 3D, de simuler des circuits électroniques et de programmer des cartes Arduino. Grâce à son interface intuitive, nous avons pu voir comment concevoir des objets en 3D et réaliser des prototypes pour des projets variés.
Durant la séance, comme premier exercice pour comprendre comment manipuler les outils sur Tinkercad, on a essayé de faire un support de téléphone.
Les étapes à suivre étaient les suivantes :
- Définir les dimensions de la forme
- Créer une base rectangulaire
- Ajouter un plan incliné
- Ajouter un arret pour que le téléphone ne glisse pas
Résultat souhaité :
Travail à effectuer pour la séance du 07/03/2025
Impression 3D :
Le design était effectué sur TINKERCAD
ETAPE 1 :
Nous avons commencé par utiliser une forme paraboloïde, pour définir la structure principale du cup.
ETAPE 2 :
Nous avons ajouté un Box Hole (boîte en mode "trou").
ETAPE 3 :
Nous avons élevé le box en hauteur au bout de la forme paraboloïde.
ETAPE 4 :
En utilisant l'outil Hide nous avons supprimé la matière nécessaire pour obtenir la forme principale du cup.
ETAPE 5 :
Height: 40
Diameter: 51
ETAPE 6 :
ETAPE 7 :
Pour personnaliser le cup, nous avons ajouté le texte "FAB". On a commencé par ajout des lettres individuellement.
ETAPE 8 :
Utilisation de la fonction Group pour fusionner les lettres et les déplacer/tourner ensemble sans les séparer.
ETAPE 9 :
Nous avons aligné le texte avec le centre du cup. Nous avons aussi agrandit la longueur pour que les lettres soient dans le cup.
ETAPE 10 :
Nous avons copié la forme principale du cup.
ETAPE 11 :
Nous avons réduit la taille de la forme HOLE copié... gardant la forme au centre du CUP (control Z).
ETAPE 12 :
Nous avons copié encore une fois la forme et agrandit la taille de la forme HOLE copié (diameter de 55)... gardant la forme au centre et autour du CUP (control Z).
ETAPE 13 :
Un cube a été ajouté pour créer plusieurs couches.
ETAPE 14 :
ETAPE 15 :
ETAPE 16 :
Nous avons ensuite groupé ces éléments.
ETAPE 17 :
ETAPE 18 :
Nous avons supprimé la matière superflue pour obtenir un cup creux
ETAPE 19 :
Pour créer la anse du cup, nous avons utilisé une forme torus.
ETAPE 20 :
Nous avons effectué une rotation et ajusté les dimensions du torus. Une partie du torus se trouvait à l'intérieur du cup, donc nous avons réalisé une retenue de matière :
Ajout d'une partie retenue du corps du cup.
Groupement de l'ensemble.
Suppression de la partie interne superflue.
VERSION FINALE SUR TINKERCAD :
La forme finale du cup a été obtenue avec toutes les modifications souhaitée.
EXPORT TO STL FORMAT :
Sur l'application PrusaSlicer, exporter le projet le ficher et configurer les paramètres. On choisi de mettre des supports de partout et un remplissage à 15%, pour le reste on laisse les paramètres par défaut.
PRODUIT FINAL EN 3D :
Séance du 07/03/2025
Découpage Laser
Durant cette séance, nous avons abordé les bases du découpage au laser en utilisant la plateforme Inkscape.
Cette séance a pour objectif de nous familiariser avec les principes fondamentaux du design vectoriel, qui sont essentiels pour préparer des fichiers compatibles avec les machines de découpe laser.
Nous avons appris à utiliser Inkscape pour créer des formes précises, et préparer les fichiers pour leur utilisation sur une découpeuse laser. Cette technique permet de transformer des conceptions numériques en objets physiques avec une grande précision, et nous avons vu comment exploiter les outils de la plateforme pour optimiser la qualité du découpage.
Travail à effectuer pour pratiquer la découpe en laser :
L'objectif était de créer un objet comportant des parties qui s'emboîtent les unes dans les autres, puis de réaliser la découpe à l'aide de la machine de découpe laser.
Notre travail :
Idée 1
Etape 1 : Idée et application sur Inkscape
Au départ, nous avons pensé à concevoir un puzzle avec un dessin de panda dessus. Pour la base du puzzle, nous avons cherché une image sur Internet et l'avons importée dans Inkscape. Afin que la machine de découpe laser puisse traiter correctement le dessin, nous avons converti l'image en « chemin » en cliquant sur « Chemin » dans la barre d'outils, puis en sélectionnant « Vectoriser un objet matriciel » et en cliquant sur « Appliquer ».
Image de la forme du puzzle sur Inkscape :
Image de la forme du panda utilisée :
Image du panda sur Inkscape :
Image qui réunit les 2 éléments (puzzle et panda) sur Inkscape :
Etape 2 : Préparation pour le découpage
Avant de procéder à la découpe au laser, nous avons exporté notre fichier dans un format compatible avec la machine de découpe (SVG).
Ensuite, il était essentiel de définir les couleurs appropriées pour chaque élément du design afin d'obtenir le résultat souhaité :
- Forme du puzzle : Le contour a été défini en rouge, une couleur spécifiée pour indiquer à la machine qu'il s'agit de la ligne de découpe.
- Panda : Le fond a été défini en noir, une couleur utilisée pour la gravure du dessin, afin que la machine reconnaisse cette zone comme devant être gravée plutôt que découpée.
(REVOIR SI LES COULEURS SONT CORRECTES)
Etape 3 : Résultat
Malheureusement, le découpage n'a pas fonctionné comme prévu. Nous avons constaté que la forme du puzzle comportait des contours doubles, ce qui a perturbé le processus de découpe. En conséquence, seule l'image du panda a été gravée, sans que les pièces du puzzle ne soient découpées.
Solution :
Pour résoudre ce problème, il était nécessaire de retracer manuellement la forme du puzzle dans Inkscape avant de procéder au découpage :
- Identifier les contours doubles :
Utiliser l'outil de sélection pour repérer les lignes doubles. - Fusionner ou supprimer les chemins redondants :
Fusionner ou les supprimer les lignes doubles. Utiliser l'option "Path" > "Combine" pour combiner les chemins ou bien sélectionner et supprimer les doublons manuellement.
Idée 2
Etape 1 : Idée et application sur Inkscape
Après que la première idée n'ait pas fonctionné, nous avons réfléchi à une nouvelle conception : une maison comportant deux porte-clés. Comme précédemment, nous avons trouvé des images de la maison et des personnages sur Internet et les avons importées dans Inkscape. Nous les avons ensuite transformées en « chemin » de la même manière qu’auparavant.
Pour la maison, une fois l'image convertie en chemin, il n'était pas assez précis, donc nous avons utilisé l'outil plume pour dessiner les contours à la main. En ce qui concerne les personnages, nous avons ajouté de petits trous pour créer les porte-clés.
Image des personnages et de la maison sur Inkscape :
Etape 2 : Préparation pour le découpage
Une fois le fichier exporté en SVG, nous avons vérifié que les couleurs étaient correctement configurées pour obtenir le découpage et la gravure souhaités :
- Personnages : Le contour des personnages ainsi que celui des cercles ont été définis en rouge, afin que la machine effectue la découpe.
- Maison : Le contour de toutes les formes de la maison a également été défini en rouge pour la découpe.
Remarque : Nous avons personnalisé les personnages en y ajoutant des initiales. Pour la gravure des initiales, nous avons choisi un fond noir afin que la machine grave ces éléments spécifiquement sur les personnages.
(ADD PICTURES OF THE PRINTING SCREEN IF WE HAVE)
Etape 3 : Résultat
Lors de la première tentative, nous n'avons pas fait attention au paramètre du matériau sélectionné pour la programmation du découpage. Nous avions choisi 3 mm alors qu'il fallait sélectionner 6 mm. En conséquence, la découpe n’a pas été réalisée correctement.
Après avoir ajusté la sélection du matériau, nous avons relancé le découpage et cette fois, nous avons obtenu le résultat souhaité.
(ADD PICTURES)
Projet Finale:
- Concevoir un système d’alerte de température qui détecte une chaleur excessive avec thermomètre , déclenche une alerte visuelle avec une LED et active un ventilateur pour refroidir l’environnement.
- Ce système peut être utilisé pour protéger des équipements électroniques, surveiller une pièce, ou éviter la surchauffe d’un boîtier.
PROJET FINALE :
🎛 Projet : Contrôle de la luminosité d’un ruban LED avec un potentiomètre
🔧 Matériel utilisé :
-
Ruban de LEDs 5050 WV23414
-
Potentiomètre pour ajuster la luminosité
-
Carte Arduino
⚙️ Fonctionnement du système :
Lors du démarrage, toutes les LEDs sont initialisées et éteintes. Ensuite, dans la boucle principale du programme (loop()
), la carte Arduino lit en continu la valeur du potentiomètre via une entrée analogique. Cette valeur, comprise entre 0 et 1023, est convertie en une valeur de luminosité de 0 à 255 (plage standard pour les couleurs RGB).
Chaque LED du ruban est ensuite configurée pour afficher une lumière blanche dont l’intensité dépend de la position du potentiomètre. Plus on tourne le potentiomètre dans un sens, plus la luminosité des LEDs augmente, et inversement.
Le système permet donc un contrôle progressif de l’éclairage en temps réel, avec une seule couleur (blanc) pour améliorer l’expérience utilisateur.
CODE LED :
#include <Adafruit_NeoPixel.h>
#define PIN_LED 6
#define NOMBRE_DE_LEDS 30 // Mets ici le nombre de LED sur ton ruban
#define PIN_POTENTIOMETRE A0
Adafruit_NeoPixel bande = Adafruit_NeoPixel(NOMBRE_DE_LEDS, PIN_LED, NEO_GRB + NEO_KHZ800);
void setup() {
bande.begin();
bande.show(); // Initialise toutes les LEDs à éteintes
}
void loop() {
int valeurPot = analogRead(PIN_POTENTIOMETRE); // Lire le potentiomètre (0-1023)
int luminosite = map(valeurPot, 0, 1023, 0, 255); // Transformer en 0-255
// Mettre à jour toutes les LEDs
for (int i = 0; i < NOMBRE_DE_LEDS; i++) {
bande.setPixelColor(i, bande.Color(luminosite, luminosite, luminosite)); // couleur blanche
}
bande.show();
}
SCHEMA DU MONTAGE
No Comments