Binome2020-7 : Différence entre versions
(→PCB vide :) |
(→Avril) |
||
(60 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 12 : | Ligne 12 : | ||
− | Pour le microprocesseur, nous avons pris celui recommandé par le livret, plus précisément l'ATMega16u2 : | + | [[File:atmega16u2.png|thumb|left|200px|ATMega16u2]] |
+ | Pour le microprocesseur, nous avons pris celui recommandé par le livret, plus précisément l'ATMega16u2. | ||
+ | <br style="clear: both;" /> | ||
− | + | [[File:Adesto64Mb.jpg|thumb|right|200px|Adesto64Mb]] | |
− | Pour la mémoire flash, nous utiliserons également la mémoire conseillé de 16mo : AT45DB641E | + | Pour la mémoire flash, nous utiliserons également la mémoire conseillé de 16mo : AT45DB641E. |
+ | <br style="clear: both;" /> | ||
− | + | [[File:Microphone.png|thumb|left|200px|Microphone electret]] | |
− | 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é : | + | 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é |
+ | <br style="clear: both;" /> | ||
− | + | Nous aurons besoin également d'une alimentation. | |
− | Nous aurons besoin également d'une alimentation | ||
+ | =<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #2E64FE; vertical-align: top; width: 98%;"> Projet intermédiaire : VuMètre et microphone </div>= | ||
− | = | + | ==Schéma terminé == |
+ | |||
+ | [[Fichier:VumetreSchematic.JPG|thumb|center|800px]] | ||
+ | |||
+ | ==PCB terminé == | ||
+ | |||
+ | [[Fichier:VumetrePCB.JPG|thumb|400px|center]] | ||
+ | |||
+ | ==PCB vide== | ||
− | + | [[Fichier:PCB videGE.jpg|400px|center|]] | |
− | + | ==fichier utilisé pour connecter les pins sorties == | |
− | + | [[Fichier:attiny84pinout.jpg|1000px|center|]] | |
− | + | ==PCB soudé et relié a l'arduino uno== | |
− | ==PCB | ||
− | [[Fichier: | + | [[Fichier:VUMETREARDUINO.jpg|300px|center|]] |
− | ==Code version 1 | + | ==Code version 1== |
<p> | <p> | ||
Ligne 47 : | Ligne 58 : | ||
void setup() | void setup() | ||
{ | { | ||
− | // on | + | // on définit les broches de 0 à 6 en sortie. |
for(int i=0;i<=6;i++) { | for(int i=0;i<=6;i++) { | ||
pinMode(i, OUTPUT); | pinMode(i, OUTPUT); | ||
Ligne 93 : | Ligne 104 : | ||
digitalWrite(6, HIGH); | digitalWrite(6, HIGH); | ||
} | } | ||
+ | |||
+ | ==Code version 2:== | ||
+ | |||
+ | <p> | ||
+ | Voici le code réalisé afin de faire fonctionner le projet intermédiaire "microphone Vu mètre", code définitif | ||
+ | </p> | ||
+ | |||
+ | 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); | ||
+ | } | ||
+ | |||
+ | ==Vidéo du Vumètre :== | ||
+ | |||
+ | [[Media:20210208_101831.mp4]] | ||
+ | |||
+ | =<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #2E64FE; vertical-align: top; width: 98%;"> Projet souvenir : VuMètre et microphone </div>= | ||
+ | |||
+ | En attente de la réception de la clé USB, on programme un vu-mètre sonore avec microphone sur une autre carte, déjà imprimée. | ||
+ | |||
+ | == Soudage des composants de la carte == | ||
+ | |||
+ | La carte étant à moitié soudée, nous avons soudé le reste des composants pour former le circuit nécessaire. | ||
+ | |||
+ | [[Fichier:Cartesoudee-min.jpg|600px|center]] | ||
+ | |||
+ | == Programmation de la carte avec Arduino Uno == | ||
+ | |||
+ | [[Fichier:Carteprogrammee-min.jpg|600px|center]] | ||
+ | |||
+ | =<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #2E64FE; vertical-align: top; width: 98%;"> Projet final : clé usb avec vu-mètre </div>= | ||
+ | |||
+ | ==Vue Schématique de la clé Usb== | ||
+ | |||
+ | [[Fichier:ShematicCle.JPG|center]] | ||
+ | |||
+ | ==Pcb de la clé usb== | ||
+ | |||
+ | [[Fichier:CLE-USB.JPG|1300px|center]] | ||
+ | |||
+ | ==Test de la clé finale en vidéo== | ||
+ | |||
+ | On insère la clé. La fonction supplémentaire du chenillard indique que la clé est bien branchée. La clé est reconnue par l'ordinateur et on lit le fichier stocké (qui est ici le générique français de K2000, en référence à sa fonction supplémentaire). | ||
+ | |||
+ | [[Fichier:TestCleUSBgabed.mp4]] | ||
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #2E64FE; vertical-align: top; width: 98%;"> Chronologie </div>= | =<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #2E64FE; vertical-align: top; width: 98%;"> Chronologie </div>= | ||
+ | |||
+ | ==Janvier== | ||
'''Première séance 18/01 :''' | '''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). | * 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 | + | * 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 :''' | '''Séance du 21/01 :''' | ||
− | * Continuation du circuit imprimé sur Fritzing. (contradiction de la vue schématique et | + | * 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 :''' | '''Séance du 25/01 :''' | ||
− | * Continuation du | + | * Continuation du PCB (routage terminé) et détourage des fils non reliés a la masse pour impression future. |
'''Séance du 28/01 :''' | '''Séance du 28/01 :''' | ||
Ligne 116 : | Ligne 220 : | ||
* Recherche des composants du circuit | * Recherche des composants du circuit | ||
− | * Commencement du code sur | + | * Commencement du code sur Arduino. |
+ | |||
+ | ==Février== | ||
'''Séance du 01/02 :''' | '''Séance du 01/02 :''' | ||
* Récupération du pcb à l'atelier | * 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. |
− | * soudure des composants sur le pcb | + | * 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 Ardu).ino | ||
+ | |||
+ | '''Séance du 8/02 :''' | ||
+ | |||
+ | *Transfert du code V2 sur la carte avec succès. | ||
+ | *Début du PCB de la clé USB. | ||
+ | |||
+ | '''Séance du 11/02 :''' | ||
+ | |||
+ | * Resoudage de la dernière LED, qui était mal soudée. | ||
+ | * Fin du code du vu-mètre sonore; Il est capable d'effectuer un échantillonage du bruit ambiant avant de remplir sa fonction. | ||
+ | |||
+ | '''Séance du 15/02 :''' | ||
+ | |||
+ | * Création d'un deuxième pcb pour mieux agencer les composants | ||
+ | |||
+ | |||
+ | '''Séance du 18/02 :''' | ||
+ | |||
+ | * Rectification du deuxième pcb auprès du professeur. | ||
+ | * Ajout d'un J1 pour relier les deux pcb entre eux. | ||
+ | |||
+ | ==Mars== | ||
+ | |||
+ | '''Séance du 08/03 :''' | ||
+ | |||
+ | * Vérification de la clé usb auprès du professeur (plus d'overlapping ou de fils trops près) | ||
+ | * Rectification du 2ème PCB de manière a avoir le pcb qui puisse se superposer à la clé usb | ||
+ | |||
+ | ''' Séance du 11/03 :''' | ||
+ | * Reception de la nouvelle carte blanche; Elle condense les projets intermédiaires des BE de bon nombre de groupes. | ||
+ | |||
+ | ''' Séance du 15/03 :''' | ||
+ | * Soudage des composants de la nouvelle carte | ||
+ | |||
+ | ''' Séance du 18/03 :''' | ||
+ | * Tentative de téléversement du code de la nouvelle carte (erreurs de reconnaissance des pins) | ||
+ | * Détection d'un problème de branchement, tentative de resoudage du transistor (et de la capacité). Sans succès. | ||
+ | * Réécriture du programme pour remettre les pins correspondants. | ||
+ | * Identification du problème: le transistor n'est pas du bon modèle sans compter que le micro était branché dans le mauvais sens. | ||
+ | |||
+ | ''' Séance du 22/03 :''' | ||
+ | * Soudage du nouveau transistor sur la carte | ||
+ | * Resoudage du micro dans le bon sens | ||
+ | |||
+ | ''' Séance du 25/03 :''' | ||
+ | |||
+ | * Reception de la clé usb | ||
+ | * Inventaire des composants nécéssaires | ||
+ | * Soudage du microcontroleur et du quartz | ||
+ | |||
+ | ''' Séance du 29/03 :''' | ||
+ | |||
+ | * Soudage des resistances, des capacités et des Leds du circuit du microcontroleur | ||
+ | |||
+ | ==Avril== | ||
+ | |||
+ | ''' Séance du 01/04 :''' | ||
+ | * Soudage de la dernière Led | ||
+ | * effaçage de la piste qui est relié a la masse | ||
+ | * carte ne marche pas malgré de multiples tentatives (2 par le professeur + carte élèves = echec) | ||
+ | * Réédition d'un PCB fritzing en partant de la carte du groupe (Hortense et Laurine) | ||
+ | |||
+ | ''' Séance du 08/04 :''' | ||
+ | * Soudage des mémoires de la 3e carte | ||
+ | * 2e et 3e cartes détectées | ||
+ | |||
+ | ''' Séance du 12/04 :''' | ||
+ | * Soudage des composants de la 1ère carte | ||
+ | * 1ère carte détectée, suite au rechauffage et nettoyage du micro-contrôlleur | ||
+ | * Continuation du code | ||
+ | |||
+ | ''' Séance du 15/04 :''' | ||
+ | * Fonctionnement de la clé USB avec DFU-programmer (premier échec car erreur dans la bibliothèque) | ||
+ | * Carte reconnue mais mémoire trop petite pour être détectée par l'ordinateur (solution: modification de la taille de la clé dans DataFlashManager.h 1M->8M) | ||
+ | * Stockage non concluant car mémoire mal soudée | ||
+ | |||
+ | ''' Séance du 19/04 :''' | ||
+ | * Test des mémoires concluant | ||
+ | * Formatage de la clé | ||
+ | |||
+ | ''' Séance du 22/04 :''' | ||
+ | * Soudage des mémoires sur la deuxième carte et Soudage du Shield | ||
+ | * Écriture du code | ||
+ | * Injection du code: c'est un échec car on a d'abord initialisé sur le mauvais côté : B au lieu de D et ensuite, le code poussait le chenillard en dehors de la zone visible car mauvaise incrémentation | ||
+ | * Réinjection du code modifié: c'est une réussite |
Version actuelle datée du 4 mai 2021 à 22:18
Sommaire
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é :
- Fritzing : http://fritzing.org/home/
- Arduino : https://www.arduino.cc/
Matériel
Choix des composants :
Pour le microprocesseur, nous avons pris celui recommandé par le livret, plus précisément l'ATMega16u2.
Pour la mémoire flash, nous utiliserons également la mémoire conseillé de 16mo : AT45DB641E.
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é
Nous aurons besoin également d'une alimentation.
Projet intermédiaire : VuMètre et microphone
Schéma terminé
PCB terminé
PCB vide
fichier utilisé pour connecter les pins sorties
PCB soudé et relié a l'arduino uno
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); }
Vidéo du Vumètre :
Projet souvenir : VuMètre et microphone
En attente de la réception de la clé USB, on programme un vu-mètre sonore avec microphone sur une autre carte, déjà imprimée.
Soudage des composants de la carte
La carte étant à moitié soudée, nous avons soudé le reste des composants pour former le circuit nécessaire.
Programmation de la carte avec Arduino Uno
Projet final : clé usb avec vu-mètre
Vue Schématique de la clé Usb
Pcb de la clé usb
Test de la clé finale en vidéo
On insère la clé. La fonction supplémentaire du chenillard indique que la clé est bien branchée. La clé est reconnue par l'ordinateur et on lit le fichier stocké (qui est ici le générique français de K2000, en référence à sa fonction supplémentaire).
Chronologie
Janvier
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.
Février
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 Ardu).ino
Séance du 8/02 :
- Transfert du code V2 sur la carte avec succès.
- Début du PCB de la clé USB.
Séance du 11/02 :
- Resoudage de la dernière LED, qui était mal soudée.
- Fin du code du vu-mètre sonore; Il est capable d'effectuer un échantillonage du bruit ambiant avant de remplir sa fonction.
Séance du 15/02 :
- Création d'un deuxième pcb pour mieux agencer les composants
Séance du 18/02 :
- Rectification du deuxième pcb auprès du professeur.
- Ajout d'un J1 pour relier les deux pcb entre eux.
Mars
Séance du 08/03 :
- Vérification de la clé usb auprès du professeur (plus d'overlapping ou de fils trops près)
- Rectification du 2ème PCB de manière a avoir le pcb qui puisse se superposer à la clé usb
Séance du 11/03 :
- Reception de la nouvelle carte blanche; Elle condense les projets intermédiaires des BE de bon nombre de groupes.
Séance du 15/03 :
- Soudage des composants de la nouvelle carte
Séance du 18/03 :
- Tentative de téléversement du code de la nouvelle carte (erreurs de reconnaissance des pins)
- Détection d'un problème de branchement, tentative de resoudage du transistor (et de la capacité). Sans succès.
- Réécriture du programme pour remettre les pins correspondants.
- Identification du problème: le transistor n'est pas du bon modèle sans compter que le micro était branché dans le mauvais sens.
Séance du 22/03 :
- Soudage du nouveau transistor sur la carte
- Resoudage du micro dans le bon sens
Séance du 25/03 :
- Reception de la clé usb
- Inventaire des composants nécéssaires
- Soudage du microcontroleur et du quartz
Séance du 29/03 :
- Soudage des resistances, des capacités et des Leds du circuit du microcontroleur
Avril
Séance du 01/04 :
- Soudage de la dernière Led
- effaçage de la piste qui est relié a la masse
- carte ne marche pas malgré de multiples tentatives (2 par le professeur + carte élèves = echec)
- Réédition d'un PCB fritzing en partant de la carte du groupe (Hortense et Laurine)
Séance du 08/04 :
- Soudage des mémoires de la 3e carte
- 2e et 3e cartes détectées
Séance du 12/04 :
- Soudage des composants de la 1ère carte
- 1ère carte détectée, suite au rechauffage et nettoyage du micro-contrôlleur
- Continuation du code
Séance du 15/04 :
- Fonctionnement de la clé USB avec DFU-programmer (premier échec car erreur dans la bibliothèque)
- Carte reconnue mais mémoire trop petite pour être détectée par l'ordinateur (solution: modification de la taille de la clé dans DataFlashManager.h 1M->8M)
- Stockage non concluant car mémoire mal soudée
Séance du 19/04 :
- Test des mémoires concluant
- Formatage de la clé
Séance du 22/04 :
- Soudage des mémoires sur la deuxième carte et Soudage du Shield
- Écriture du code
- Injection du code: c'est un échec car on a d'abord initialisé sur le mauvais côté : B au lieu de D et ensuite, le code poussait le chenillard en dehors de la zone visible car mauvaise incrémentation
- Réinjection du code modifié: c'est une réussite