Binome2020-6 : Différence entre versions
(→Mars) |
|||
(79 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | 18/01/2021 | + | =<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #f1944f; vertical-align: top; width: 98%;"> Circuit micro-attiny </div>= |
− | + | == Janvier == | |
− | on cherche | + | '''18/01/2021''' |
+ | on cherche la fonctionnalité particulière de notre clé usb personalisée, on aimerait trouver un moyen original de dévérouiller la clé. On a plusieurs idées : | ||
− | 1/utiliser une | + | 1/utiliser une photorésistance qui ne permettrait de déverouiller la clé que dans l'obscurité |
− | 2/ | + | 2/détecter les sons ambients pour ne déverrouiller la clé que dans une condition particulière (fréquence précise,volume,...) |
− | 21/01/2021 | + | '''21/01/2021''' |
− | + | On part sur l'idée du microphone. On aimerait pouvoir déverrouiller la clé usb en lui jouant une note précise/une mélodie si possible. | |
− | On a trouvé le circuit à réaliser pour connecter le micro à l'ATtiny84 avec un | + | On a trouvé le circuit à réaliser pour connecter le micro à l'ATtiny84 avec un système d'amplification pour pouvoir reconnaître un son. On apprend à utiliser Fritzing pour le recréer et à terme confectionner une version PCB. |
− | |||
− | |||
− | |||
− | + | [[Fichier:-home-pifou-Downloads-schema.png|thumb|center|500px|Schéma du circuit]] | |
− | |||
− | |||
− | + | On va utiliser l'ATtiny84 comme micro-contrôleur pour ce premier circuit: | |
+ | |||
+ | <div><ul> | ||
+ | <li style="display: inline-block;"> [[Fichier:Attiny84.jpg|thumb|left|300px]] </li> | ||
+ | <li style="display: inline-block;"> [[Fichier:Attiny84_b.jpeg|left|left|300px]] </li> | ||
+ | </ul></div> | ||
+ | |||
+ | '''25/01/2021''' | ||
+ | On continue le pcb sur Fritzing pour le circuit qui allume une LED lorsque le micro capte un son de fréquence donnée. On rajoute donc une led et une resistance sur une autre sortie de l'attiny. On a également ajusté les angles du circuits, en effet il faut limiterle nombre d'angles de pistes à 90°, il faut donc ajouter des points aux differents "virages". le circuit sera alimenté par une pile 3.3 V. | ||
+ | |||
+ | [[Fichier:Schmatic.PNG|thumb|center|500px|Version schématisée sur Fritzing]] | ||
+ | |||
+ | '''28/01/2021''' | ||
+ | On termine le pcb. On a appris à générer le plan de masse, à exporter le PCB en format lisible par la machine outil qui va l'usiner. En parallèle, on effectue quelques recherches pour le code de l'attiny. On va utiliser une carte Arduino uno comme intermédiaire de programmation. on recherche des bibliothèques Arduino qui nous permettraient de reconnaitre une frequence ou arduino | ||
+ | |||
+ | [[Fichier:Pcb.PNG|thumb|center|500px|PCB sur Fritzing]] | ||
+ | |||
+ | == Février == | ||
+ | |||
+ | '''01/02/2021''' | ||
+ | Cinquième séance: | ||
+ | On a trouvé un script Arduino permettant de récupérer la fréquence d'un son à partir d'un signal analogique. Ce script utilise la bibliothèque arduinoFFT.h (Fast Fourier Transform). Pour autant cela parait un peu trop complexe pour un test. De plus, la mémoire de l'Attiny pourrait ne pas suffir | ||
+ | |||
+ | '''04/02/2021''' | ||
+ | On a commencé à souder les composants sur la carte, micro-controlleur puis les composants smd et enfin le micro traversant. On commence à chaque fois par gommer la surface où on soude pour retirer l'oxidation (pour que la soudure tienne dans le temps). On dépose ensuite de la brasure sur la portion de cuivre sur laquelle on soude, | ||
+ | |||
+ | '''11/02/2021''' | ||
+ | On commence à tester des programmes. On essaie de comprendre la data reçue du microphone | ||
+ | |||
+ | '''15/02/2021''' | ||
+ | souder un fil sur l'entrée A2, essayer de définir A2 en sortie, décharger le circuit puis repasser en entrée et faire l'acquisition | ||
+ | |||
+ | == Mars == | ||
+ | |||
+ | '''08/03/2021''' | ||
+ | Après plusieurs séances d'analyse à l'oscilloscope du signal, et un changement de résistance dans le circuit d'amplification (celle de 100K remplacée par une de 4,1K), on se heurte à plusieurs problèmes : | ||
+ | |||
+ | *les pics lors d'un bruit important sont faibles devant la tension moyenne mesurée à la sortie du condensateur | ||
+ | *certains (voire tous) ces pics sont négatifs, et donc notre programme avec un THRESHOLD ne peut pas les détecter car analogRead ne peut pas renvoyer de valeurs négatives | ||
+ | |||
+ | Pour résoudre ce 2eme problème, on pourrait bypass le condensateur à la fin du circuit d'amplification pour lire une tension oscillant autour de 2V (mesuré à l'oscilloscope à l'entrée du condensateur) et mesurer la variation relative de tension. Cette variation étant d'environ 60 mV avec notre système d'amplification actuel, cela représenterait une différence de 18 dans l'analogRead du programme. | ||
+ | |||
+ | [[Fichier:Oscillo_circuit_micro.jpg|thumb|center|800px|Détection d'un clappement de main à l’oscilloscope]] | ||
+ | |||
+ | '''15/03/2021''' | ||
+ | on essaye de téléverser vers la nouvelle carte (blanche) | ||
+ | on a réussi(il fallait d’abord programmer l'Arduino pour que elle puisse programmer l'attiny) | ||
+ | |||
+ | '''18/03/2021''' | ||
+ | code: | ||
+ | |||
+ | [[Fichier:Attiny84_micro.txt]] | ||
+ | [[Fichier:clef_micro.zip]] | ||
+ | |||
+ | '''22/03/2021''' | ||
+ | On commence à construire la carte de la clé usb. Comme l'AtmegaU2 ne comporte pas de convertisseur analogique-numérique, on va devoir utiliser le comparateur du microcontrolleur avec un circuit pour générer une référence (réglable avec un potentiomètre). | ||
+ | On revérifie les tensions aux bornes du circuit d'amplification: au bruit ambiant on est aux alentours de 30mV, lorsqu'on tape dans les mains on atteint un pic à environ 470mV. | ||
+ | |||
+ | [[Fichier:clef_micro_Vshield.zip]] | ||
+ | |||
+ | '''25/03/2021''' | ||
+ | On va finalement mettre notre circuit de micro/ampli sur un shield qui se posera sur notre clé (légèrement modifiée pour l'accueillir) pour économiser de la place sur la clé elle même. | ||
+ | |||
+ | '''29/03/2021''' | ||
+ | On a terminé notre shield qui viendra sur notre clé usb pour connecter le circuit du micro et de l'ampli. | ||
+ | |||
+ | [[Fichier:Clef_micro_shield_finie.zip]] | ||
+ | |||
+ | == Cartes commandées == | ||
+ | |||
+ | Le routage de la clé a été un peu amélioré. Le routage de la carte fille a été complétement repris (emprise un peu trop importante). Le nouveau fichier Fritzing : [[file:ClefUSBLouisMatthieuV2.zip]]. | ||
+ | |||
+ | |||
+ | [[Fichier:Cle_versionFinale_Louis_Matthieu.JPG|thumb|center|800px|Clé et shield terminés]] | ||
+ | |||
+ | == Avril == | ||
+ | |||
+ | '''01/04/2021''' | ||
+ | Les cartes ont été commandées, on commence à regarder pour écrire le code de notre fonction avec le micro : à savoir dévérouiller la clé usb seulement si un son est détecté. Problème : on doit desormais utiliser le comparateur pour "lire" la valeur du micro et déclencher l'interruption. On cherche donc comment programmer cette interruption/comment se programme le comparateur. | ||
+ | |||
+ | cf p225/224 de la fiche technique du atmega16u2 pour le fonctionnement de l'analog comparator | ||
+ | |||
+ | '''8/04/2021''' | ||
+ | On a fait le code de notre fonction sur Arduino en utilisant une bibliothèque Analogcomp pour utiliser le comparateur de l'Atmega. On a commencé à regarder pour les modifications du Dataflashmanager.c qui nous ervira à lire sur la mémoire. | ||
+ | datasheet mémoire : https://www.adestotech.com/wp-content/uploads/DS-45DB641E-027.pdf | ||
+ | |||
+ | '''12/04/2021''' | ||
+ | On continue d'avancer sur "DataflashManager" en attendant la livraison des cartes. | ||
+ | |||
+ | '''19/04/2021''' | ||
+ | On a effectué le programme de test de mémoire sur la clé, on a bien les 5 clignotements de la led de contrôle : les mémoires sont bien détectées. | ||
+ | |||
+ | [[Fichier:Screen_dfu_programmer.png]] | ||
+ | |||
+ | On a ensuite utilisé testblock, puis formaté/monté la clé. On a réussi à mettre un fichier texte dans la clé, puis démonter et ejecter la clé. En la rerbranchant, on retrouve bien le fichier. La clé est fonctionnelle ! | ||
+ | On essaye ensuite d'implémenter la fonction de la clé (déverouillage de l'écriture par detection d'un son) | ||
+ | |||
+ | '''22/04/2021''' | ||
+ | On a essayé de regarder pour implementer la fonctionnalité particulière de la clé, mais on a pas eu le temps de trancrire la fonction dans MassStorage et de faire des tests et des debugs de cette fonction (qu'on avait jamais testée sur ce microcontrolleur) | ||
+ | |||
+ | [[Fichier:Cle_fonctionne.png]] | ||
+ | |||
+ | == Conclusion == | ||
+ | Le bureau d'étude a été une expérience positive pour nous deux. Au delà de toutes les choses qu'on a apprises pour pouvoir finir la clé (Arduino, soudure, élaboration de PCB...), le format de "projet" nous a permis de nous investir plus que dans la plupart des enseignements. | ||
+ | |||
+ | Même si nous sommes un peu déçus de ne pas avoir mis au point notre fonction particulière sur la clé, sa réalisation nous a rendu fiers. Enfin, le BE a été une expérience productive dans notre processus d'orientation en cycle ingénieur. | ||
+ | |||
+ | Un grand merci à M.Boe et M.Redon pour leur aide et leur pédagogie face à de grands débutants comme nous, merci également à Gabriel et Edward pour leur aide régulière pour nos debuggages ;) | ||
+ | |||
+ | == Resources == | ||
http://elektor.presse.free.fr/fiches_livres/205%2050%20mini-projets/978-2-86661-205-4%2050%20mini-projets%20TDM+extrait.pdf | http://elektor.presse.free.fr/fiches_livres/205%2050%20mini-projets/978-2-86661-205-4%2050%20mini-projets%20TDM+extrait.pdf | ||
− | https://github.com/ArminJo/Arduino-FrequencyDetector (bibliothèque) | + | https://github.com/ArminJo/Arduino-FrequencyDetector (bibliothèque Frequency Detector) |
+ | |||
+ | https://www.hackster.io/lbf20012001/audio-frequency-detector-617856 | ||
+ | |||
+ | https://github.com/kosme/arduinoFFT (bibliothèque arduinoFFT) | ||
+ | |||
+ | https://scienceprog.com/electret-condenser-microphone-amplifier-for-use-in-microcontroller-projects/ |
Version actuelle datée du 24 mai 2021 à 15:04
Sommaire
Circuit micro-attiny
Janvier
18/01/2021 on cherche la fonctionnalité particulière de notre clé usb personalisée, on aimerait trouver un moyen original de dévérouiller la clé. On a plusieurs idées :
1/utiliser une photorésistance qui ne permettrait de déverouiller la clé que dans l'obscurité
2/détecter les sons ambients pour ne déverrouiller la clé que dans une condition particulière (fréquence précise,volume,...)
21/01/2021 On part sur l'idée du microphone. On aimerait pouvoir déverrouiller la clé usb en lui jouant une note précise/une mélodie si possible. On a trouvé le circuit à réaliser pour connecter le micro à l'ATtiny84 avec un système d'amplification pour pouvoir reconnaître un son. On apprend à utiliser Fritzing pour le recréer et à terme confectionner une version PCB.
On va utiliser l'ATtiny84 comme micro-contrôleur pour ce premier circuit:
25/01/2021 On continue le pcb sur Fritzing pour le circuit qui allume une LED lorsque le micro capte un son de fréquence donnée. On rajoute donc une led et une resistance sur une autre sortie de l'attiny. On a également ajusté les angles du circuits, en effet il faut limiterle nombre d'angles de pistes à 90°, il faut donc ajouter des points aux differents "virages". le circuit sera alimenté par une pile 3.3 V.
28/01/2021 On termine le pcb. On a appris à générer le plan de masse, à exporter le PCB en format lisible par la machine outil qui va l'usiner. En parallèle, on effectue quelques recherches pour le code de l'attiny. On va utiliser une carte Arduino uno comme intermédiaire de programmation. on recherche des bibliothèques Arduino qui nous permettraient de reconnaitre une frequence ou arduino
Février
01/02/2021 Cinquième séance: On a trouvé un script Arduino permettant de récupérer la fréquence d'un son à partir d'un signal analogique. Ce script utilise la bibliothèque arduinoFFT.h (Fast Fourier Transform). Pour autant cela parait un peu trop complexe pour un test. De plus, la mémoire de l'Attiny pourrait ne pas suffir
04/02/2021 On a commencé à souder les composants sur la carte, micro-controlleur puis les composants smd et enfin le micro traversant. On commence à chaque fois par gommer la surface où on soude pour retirer l'oxidation (pour que la soudure tienne dans le temps). On dépose ensuite de la brasure sur la portion de cuivre sur laquelle on soude,
11/02/2021 On commence à tester des programmes. On essaie de comprendre la data reçue du microphone
15/02/2021 souder un fil sur l'entrée A2, essayer de définir A2 en sortie, décharger le circuit puis repasser en entrée et faire l'acquisition
Mars
08/03/2021 Après plusieurs séances d'analyse à l'oscilloscope du signal, et un changement de résistance dans le circuit d'amplification (celle de 100K remplacée par une de 4,1K), on se heurte à plusieurs problèmes :
- les pics lors d'un bruit important sont faibles devant la tension moyenne mesurée à la sortie du condensateur
- certains (voire tous) ces pics sont négatifs, et donc notre programme avec un THRESHOLD ne peut pas les détecter car analogRead ne peut pas renvoyer de valeurs négatives
Pour résoudre ce 2eme problème, on pourrait bypass le condensateur à la fin du circuit d'amplification pour lire une tension oscillant autour de 2V (mesuré à l'oscilloscope à l'entrée du condensateur) et mesurer la variation relative de tension. Cette variation étant d'environ 60 mV avec notre système d'amplification actuel, cela représenterait une différence de 18 dans l'analogRead du programme.
15/03/2021 on essaye de téléverser vers la nouvelle carte (blanche) on a réussi(il fallait d’abord programmer l'Arduino pour que elle puisse programmer l'attiny)
18/03/2021 code:
Fichier:Attiny84 micro.txt Fichier:Clef micro.zip
22/03/2021 On commence à construire la carte de la clé usb. Comme l'AtmegaU2 ne comporte pas de convertisseur analogique-numérique, on va devoir utiliser le comparateur du microcontrolleur avec un circuit pour générer une référence (réglable avec un potentiomètre). On revérifie les tensions aux bornes du circuit d'amplification: au bruit ambiant on est aux alentours de 30mV, lorsqu'on tape dans les mains on atteint un pic à environ 470mV.
Fichier:Clef micro Vshield.zip
25/03/2021 On va finalement mettre notre circuit de micro/ampli sur un shield qui se posera sur notre clé (légèrement modifiée pour l'accueillir) pour économiser de la place sur la clé elle même.
29/03/2021 On a terminé notre shield qui viendra sur notre clé usb pour connecter le circuit du micro et de l'ampli.
Fichier:Clef micro shield finie.zip
Cartes commandées
Le routage de la clé a été un peu amélioré. Le routage de la carte fille a été complétement repris (emprise un peu trop importante). Le nouveau fichier Fritzing : Fichier:ClefUSBLouisMatthieuV2.zip.
Avril
01/04/2021 Les cartes ont été commandées, on commence à regarder pour écrire le code de notre fonction avec le micro : à savoir dévérouiller la clé usb seulement si un son est détecté. Problème : on doit desormais utiliser le comparateur pour "lire" la valeur du micro et déclencher l'interruption. On cherche donc comment programmer cette interruption/comment se programme le comparateur.
cf p225/224 de la fiche technique du atmega16u2 pour le fonctionnement de l'analog comparator
8/04/2021 On a fait le code de notre fonction sur Arduino en utilisant une bibliothèque Analogcomp pour utiliser le comparateur de l'Atmega. On a commencé à regarder pour les modifications du Dataflashmanager.c qui nous ervira à lire sur la mémoire. datasheet mémoire : https://www.adestotech.com/wp-content/uploads/DS-45DB641E-027.pdf
12/04/2021 On continue d'avancer sur "DataflashManager" en attendant la livraison des cartes.
19/04/2021 On a effectué le programme de test de mémoire sur la clé, on a bien les 5 clignotements de la led de contrôle : les mémoires sont bien détectées.
On a ensuite utilisé testblock, puis formaté/monté la clé. On a réussi à mettre un fichier texte dans la clé, puis démonter et ejecter la clé. En la rerbranchant, on retrouve bien le fichier. La clé est fonctionnelle ! On essaye ensuite d'implémenter la fonction de la clé (déverouillage de l'écriture par detection d'un son)
22/04/2021 On a essayé de regarder pour implementer la fonctionnalité particulière de la clé, mais on a pas eu le temps de trancrire la fonction dans MassStorage et de faire des tests et des debugs de cette fonction (qu'on avait jamais testée sur ce microcontrolleur)
Conclusion
Le bureau d'étude a été une expérience positive pour nous deux. Au delà de toutes les choses qu'on a apprises pour pouvoir finir la clé (Arduino, soudure, élaboration de PCB...), le format de "projet" nous a permis de nous investir plus que dans la plupart des enseignements.
Même si nous sommes un peu déçus de ne pas avoir mis au point notre fonction particulière sur la clé, sa réalisation nous a rendu fiers. Enfin, le BE a été une expérience productive dans notre processus d'orientation en cycle ingénieur.
Un grand merci à M.Boe et M.Redon pour leur aide et leur pédagogie face à de grands débutants comme nous, merci également à Gabriel et Edward pour leur aide régulière pour nos debuggages ;)
Resources
https://github.com/ArminJo/Arduino-FrequencyDetector (bibliothèque Frequency Detector)
https://www.hackster.io/lbf20012001/audio-frequency-detector-617856
https://github.com/kosme/arduinoFFT (bibliothèque arduinoFFT)
https://scienceprog.com/electret-condenser-microphone-amplifier-for-use-in-microcontroller-projects/