Binome2020-7 : Différence entre versions

De Wiki de bureau d'études PeiP
(Chronologie)
(Projet intermédiaire : VuMètre et microphone)
Ligne 36 : Ligne 36 :
  
 
[[Fichier:PCB videGE.jpg|600px|]]
 
[[Fichier:PCB videGE.jpg|600px|]]
 +
 +
==PCB soudé et relié a l'arduino uno :==
 +
 +
[[Fichier:VUMETREARDUINO.jpg|600px|]]
  
 
==Code version 1:==
 
==Code version 1:==
Ligne 102 : Ligne 106 :
  
 
  int mini;
 
  int mini;
  int microAnalog;
+
  int microAnalog;  
 
 
  void setup()  
 
  void setup()  
 
  {
 
  {
Ligne 110 : Ligne 113 :
 
     pinMode(i, OUTPUT);  
 
     pinMode(i, OUTPUT);  
 
   }
 
   }
 
 
   // On fait un échantillonnage sur le bruit ambiant
 
   // On fait un échantillonnage sur le bruit ambiant
 
   // pour définir la valeur mini qui correspond à toutes
 
   // pour définir la valeur mini qui correspond à toutes
Ligne 120 : Ligne 122 :
 
     microAnalog = analogRead(7);
 
     microAnalog = analogRead(7);
 
     delay(1);
 
     delay(1);
 
 
     if(microAnalog<mini)
 
     if(microAnalog<mini)
 
       mini=microAnalog;
 
       mini=microAnalog;
 
   }  
 
   }  
 
 
   // on allume les 7 LEDs pour signaler que l'échantillonnage est terminé
 
   // on allume les 7 LEDs pour signaler que l'échantillonnage est terminé
 
   for(int i=0;i<=6;i++) {
 
   for(int i=0;i<=6;i++) {
Ligne 131 : Ligne 131 :
 
   delay(1000);
 
   delay(1000);
 
  }
 
  }
 
 
  void loop() {
 
  void loop() {
 
   delay(1);
 
   delay(1);
 
   // on lit la valeur analogique du microphone
 
   // on lit la valeur analogique du microphone
 
   microAnalog = analogRead(7);
 
   microAnalog = analogRead(7);
 
 
   //on éteint les 7 LEDS.
 
   //on éteint les 7 LEDS.
 
   for(int i=0;i<=6;i++) {
 
   for(int i=0;i<=6;i++) {
 
     digitalWrite(i, LOW);
 
     digitalWrite(i, LOW);
 
   }
 
   }
 
 
   // en fonction du niveau on allume les LEDS.
 
   // en fonction du niveau on allume les LEDS.
 
   if(microAnalog>170 )
 
   if(microAnalog>170 )
     digitalWrite(0, HIGH);
+
     digitalWrite(0, HIGH);  
   
 
 
   if(microAnalog>+175)
 
   if(microAnalog>+175)
     digitalWrite(1, HIGH);
+
     digitalWrite(1, HIGH);
 
 
 
   if(microAnalog>+180)
 
   if(microAnalog>+180)
     digitalWrite(2, HIGH);
+
     digitalWrite(2, HIGH);
 
 
 
   if(microAnalog>+190)
 
   if(microAnalog>+190)
     digitalWrite(3, HIGH);
+
     digitalWrite(3, HIGH);
 
 
 
   if(microAnalog>+200)
 
   if(microAnalog>+200)
     digitalWrite(4, HIGH);
+
     digitalWrite(4, HIGH);
 
 
 
   if(microAnalog>+215)
 
   if(microAnalog>+215)
     digitalWrite(5, HIGH);
+
     digitalWrite(5, HIGH);
 
 
 
   if(microAnalog>+230)
 
   if(microAnalog>+230)
 
     digitalWrite(6, HIGH);
 
     digitalWrite(6, HIGH);

Version du 8 février 2021 à 10:10

Introduction

Durant ce BE, nous allons créer une clé USB (Universal Serial Bus) personnalisé de A à Z en y ajoutant une fonction personnalisé. La première partie sera consacré au hardware, la seconde au software.

logiciel utilisé :

Matériel

Choix des composants :


Pour le microprocesseur, nous avons pris celui recommandé par le livret, plus précisément l'ATMega16u2 :

  • ATMega16u2
  • Pour la mémoire flash, nous utiliserons également la mémoire conseillé de 16mo : AT45DB641E

  • Adesto64Mb
  • Nous utiliserons bien d'autres composants comme un quartz, des résistances, des condensateurs, des diodes, des régulateurs de tension et des LED ainsi qu'un microphone pour commencer le circuit imprimé :

  • Microphone electret
  • Nous aurons besoin également d'une alimentation


    Projet intermédiaire : VuMètre et microphone

    Schématic terminé :

    VumetreSchematic.JPG

    PCB terminé :

    VumetrePCB.JPG

    PCB vide :

    PCB videGE.jpg

    PCB soudé et relié a l'arduino uno :

    VUMETREARDUINO.jpg

    Code version 1:

    Voici le code réalisé afin de faire fonctionner le projet intermédiaire "microphone Vu mètre".

    int mini;
    int microAnalog;
    void setup()  
    {
     // on définit les broches de 0 à 6 en sortie.
     for(int i=0;i<=6;i++) {
       pinMode(i, OUTPUT); 
    }
     // On fait un échantillonnage sur le bruit ambiant
     // pour définir la valeur mini qui correspond à toutes
     // les LEDs éteintes.
     mini=1024;
     for(int i=0;i<=20;i++) 
     {
       // on lit la valeur analogique du microphone
       microAnalog = analogRead(7);
       delay(1);
       if(microAnalog<mini)
          mini=microAnalog;
     }
     // on allume les 7 LEDs pour signaler que l'échantillonnage est terminé
     for(int i=0;i<=6;i++) {
       digitalWrite(i, HIGH);
     }
     delay(1000);
    }
     void loop() {
       delay(1);
     // on lit la valeur analogique du microphone
       microAnalog = analogRead(7);
     //on éteint les 7 LEDS.
     for(int i=0;i<=6;i++) {
       digitalWrite(i, LOW);
     }
     // en fonction du niveau on allume les LEDS.
     if(microAnalog>mini)
       digitalWrite(0, HIGH);  
     if(microAnalog>mini+1)
       digitalWrite(1, HIGH); 
     if(microAnalog>mini+2)
       digitalWrite(2, HIGH); 
     if(microAnalog>mini+3)
       digitalWrite(3, HIGH); 
     if(microAnalog>mini+4)
       digitalWrite(4, HIGH); 
     if(microAnalog>mini+5)
       digitalWrite(5, HIGH); 
     if(microAnalog>mini+6)
       digitalWrite(6, HIGH); 
    }
    


    Code version 2:

    Voici le code réalisé afin de faire fonctionner le projet intermédiaire "microphone Vu mètre", code définitif

    int mini;
    int microAnalog; 
    void setup() 
    {
      // on défini les broches de 0 à 6 en sortie.
      for(int i=0;i<=6;i++) {
        pinMode(i, OUTPUT); 
     }
      // On fait un échantillonnage sur le bruit ambiant
      // pour définir la valeur mini qui correspond à toutes
      // les LEDs éteintes.
      mini=0;
      for(int i=0;i<=20;i++) 
      {
        // on lit la valeur analogique du microphone
        microAnalog = analogRead(7);
        delay(1);
        if(microAnalog<mini)
          mini=microAnalog;
      } 
      // on allume les 7 LEDs pour signaler que l'échantillonnage est terminé
      for(int i=0;i<=6;i++) {
        digitalWrite(i, HIGH);
      }
      delay(1000);
    }
    void loop() {
      delay(1);
      // on lit la valeur analogique du microphone
      microAnalog = analogRead(7);
      //on éteint les 7 LEDS.
      for(int i=0;i<=6;i++) {
        digitalWrite(i, LOW);
      }
      // en fonction du niveau on allume les LEDS.
      if(microAnalog>170 )
        digitalWrite(0, HIGH);   
      if(microAnalog>+175)
        digitalWrite(1, HIGH);  
      if(microAnalog>+180)
        digitalWrite(2, HIGH);  
      if(microAnalog>+190)
        digitalWrite(3, HIGH);  
      if(microAnalog>+200)
        digitalWrite(4, HIGH);  
      if(microAnalog>+215)
        digitalWrite(5, HIGH);  
      if(microAnalog>+230)
        digitalWrite(6, HIGH);
    }
    

    Chronologie

    Première séance 18/01 :

    • Choix de la fonction supplémentaire : vu-mètre permettant de voir la capacité de la clé USB.
    • Début de la création d'un circuit imprimé sur la partie vu-mètre + microphone sur Fritzing (découverte du logiciel).
    • Amélioration du circuit "Fichier:DéB2.zip" (en remplaçant .zip par .fzz pour pouvoir l'ouvrir dans l'application) et en ajoutant un circuit d'amplificateur pour le micro éléctret.

    Séance du 21/01 :

    • Continuation du circuit imprimé sur Fritzing. (contradiction de la vue schématique et PCB ), lissage des angles droits et reduction de la place des composants sur la carte.

    Séance du 25/01 :

    • Continuation du pcb (routage terminé) et détourage des fils non reliés a la masse pour impression future.

    Séance du 28/01 :

    • Recherche des composants du circuit
    • Commencement du code sur Arduino.

    Séance du 01/02 :

    • Récupération du pcb à l'atelier
    • Préparation du pcb à la soudure, gommage du pcb pour enlever l'oxydation en veillant à ce que l'on ne touche pas le pcb avec les doigts.
    • Début de la soudure des composants sur le PCB (résistances, LEDs et micro-contrôlleur)

    Séance du 04/02 :

    • Soudure des derniers composants du PCB (micro et support) et mise en place des VIA
    • Poursuite de la programmation et vérification du code sur Arduino

    Séance du 7/02 :

    • Transfert du code V2 sur la carte avec succès.