Binome2019-1 : Différence entre versions
(→Conclusion) |
(→Conclusion) |
||
(7 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 193 : | Ligne 193 : | ||
Malheureusement, par manque de temps et de moyens (logiciel Fritzing très lent et quasiment inutilisable sur nos ordinateurs personnels), nous ne sommes pas parvenus à réaliser le circuit imprimé de notre clé. | Malheureusement, par manque de temps et de moyens (logiciel Fritzing très lent et quasiment inutilisable sur nos ordinateurs personnels), nous ne sommes pas parvenus à réaliser le circuit imprimé de notre clé. | ||
− | Voici tout de même la vue de notre PCB | + | Voici tout de même la vue de notre PCB avec la LED et le capteur thermique qu'il reste à relier, et une de nos tentatives en dessous : |
[[File:Pcbincomplet.png|thumb|center|600px|PCB de la clé avec nos composants supplémentaires, non reliés]] | [[File:Pcbincomplet.png|thumb|center|600px|PCB de la clé avec nos composants supplémentaires, non reliés]] | ||
− | [[File: | + | |
+ | |||
+ | [[File:TentaPCB.png|thumb|center|600px|Tentative de routage du PCB de la clé]] | ||
Ligne 212 : | Ligne 214 : | ||
− | Le capteur thermique que nous avons choisi (MCP9804) est un appareil esclave i2c. Pour communiquer du capteur thermique au micro-contrôleur, il faut utiliser une bibliothèque i2c, | + | Le capteur thermique que nous avons choisi (MCP9804) est un appareil esclave i2c pur. Le problème auquel nous avons été confronté est qu'il n'y a pas d'i2c matériel sur le micro-contrôleur de la clé USB (l'ATMega16u2), et on ne peut pas se servir des bibliothèques IDE Arduino. Pour communiquer du capteur thermique au micro-contrôleur, il faut utiliser une bibliothèque "logicielle" i2c, qui utilise des entrées/sorties classiques sans avoir besoin d'une prise en charge de la capacité matérielle i2c du micro-controleur. Voici le lien de la bibliothèque en question : [http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__ic2master.html?i=1/ Bibliothèque i2c] On importe donc le module de la bibliothèque i2c au début de notre code. Il faut aussi déclarer toutes nos variables et constantes en début de code. |
[[File:Debutcode.png|thumb|center|600px|Début du code]] | [[File:Debutcode.png|thumb|center|600px|Début du code]] | ||
Ligne 255 : | Ligne 257 : | ||
− | * Nous sommes cependant très contents d'avoir suivi ce bureau d'études qui nous a permis d'obtenir les bases de certains logiciels et fait découvrir certaines compétences comme le codage. Il nous a également permis de mettre les pieds dans un univers bien | + | * Nous sommes cependant très contents d'avoir suivi ce bureau d'études qui nous a permis d'obtenir les bases de certains logiciels et fait découvrir certaines compétences comme le codage. Il nous a également permis de mettre les pieds dans un univers bien différent de celui apporté par les matières classiques avec un suivi de projet comme nous rencontrerons lors de notre cursus ingénieur. |
Version actuelle datée du 19 mai 2020 à 19:25
DEBAISIEUX Nicolas et FLAMENT Maxence
Sommaire
- 1 Introduction
- 2 Séance du 27/01/2020 : Recherche Fonctionnalités
- 3 Séance du 10/02/2020 : organisation du wiki et recherche composants
- 4 Séance du 13/02/2020 : mise en place de de l'étape du dé
- 5 Séance du 17/02/2020 jusqu'au 02/03 : Utilisation de Fritzing
- 6 Séance du 05/03/2020 : Code du dé
- 7 Séance du 09/03/2020 : Soudage
- 8 Séance du 15/03/2020 : Test ReX de la carte "dé"
- 9 Réalisation de la clé USB
- 10 Conclusion
Introduction
Le but de notre bureau d'étude est de créer de A à Z une clé USB 2.0, à laquelle on essayera d'ajouter une fonctionnalité supplémentaire (en l'occurence, une LED qui change de couleur en fonction de la température ambiante.
Séance du 27/01/2020 : Recherche Fonctionnalités
Voici une liste de fonctionnalités supplémentaires auxquelles nous avons pensé à rajouter sur notre clé USB :
- géolocalisation (mais asssez dur à réaliser)
- signal sonore pour la retrouver dans la pièce/maison
- clé USB étanche ( créer boitier étanche + bouchon )
- capture et affichage de la température de la pièce avec leds
A priori, nous allons opter pour l'option concernant la température.
Il nous faudra donc un capteur thermique et une LED RGB.
Séance du 10/02/2020 : organisation du wiki et recherche composants
Nous avons choisi d'opter pour la clé USB déjà testée par les encadrants. Nous avons cherché un capteur thermique "de surface" pour pouvoir le souder plus facilement sur notre clé. Voici à quoi il ressemble :
MCP9804T-E/MC arduino Lien pour retrouver le capteur thermique
Séance du 13/02/2020 : mise en place de de l'étape du dé
Au vu de la complexité de la réalisation d'une clé USB sans connaissances préalables, nous allons dans un premier temps nous exercer avec la réalisation d'un dé éléctronique. Pour cela, nous nous sommes inspirés de la Youtubeuse "Heliox" qui a créé son propre dé électronique.
Séance du 17/02/2020 jusqu'au 02/03 : Utilisation de Fritzing
Découverte du logiciel Fritzing et première prise en main. Nous avons commencé par organiser les éléments nécessaires à la réalisation du dé éléctronique dans la partie "Vue Schématique" du logiciel :
Puis nous avons une nouvelle fois disposé ces éléments dans la partie "Circuit imprimé" du logiciel. Voici également notre fichier Fritzing de notre dé Fichier:DE BINOME 1.zip
Séance du 05/03/2020 : Code du dé
Voici le code pour que le dé électronique fonctionne correctement et aléatoirement quand on appuie sur le bouton de la carte.
Séance du 09/03/2020 : Soudage
Nous avons soudé les résistances, LEDs, microcontroleur et fils sur notre PCB réalisé grâce à Fritzing.
Séance du 15/03/2020 : Test ReX de la carte "dé"
Test de la carte "dé" par ReX, fonctionnement des 4 LED déjà soudées sans aucune modification.
Programme de test :
#define MAX_LED 7 int leds[]={0,1,2,3,4,5,6}; void setup() { int i; for(i=0;i<MAX_LED;i++) pinMode(leds[i], OUTPUT); } void loop() { int i; for(i=0;i<MAX_LED;i++) digitalWrite(leds[i], HIGH); delay(1000); for(i=0;i<MAX_LED;i++) digitalWrite(leds[i], LOW); delay(1000); }
Démonstration de l'exécution : media:binome2019-1-test1.mp4.
Réalisation de la clé USB
Maintenant que nous avons fini l'étape du dé électronique, nous pouvons passer à la réalisation de notre clé USB.
Nous avons choisi de reprendre le modèle Fritzing de la clé de 16 Mo sur le Wiki principal, et d'y ajouter notre propre fonctionnalité, c'est-à-dire une LED qui change de couleur en fonction de la température de la pièce. Pour ce faire, voici la liste du matériel qu'il nous faut :
- Une LED RGB
- Un capteur thermique (voir plus haut le modèle choisi MCP9804)
- Des résistances
PARTIE VUE SCHEMATIQUE
Le capteur thermique n'étant pas disponible sur Fritzing, nous devons utiliser un composant générique dont nous allons renommer les broches pour qu'elles correspondent à celles de notre capteur.
Après avoir créé notre composant générique, nous l'avons relié au micro-contrôleur de la clé USB (partie capteur thermique). Nous avons aussi ajouté une LED RGB (partie LED RGB). Finalement, voici à quoi ressemble la vue schématique de notre clé, avec notre fonctionnalité supplémentaire LED/Capteur thermique :
PARTIE ROUTAGE PCB
Nous passons maintenant à la partie PCB sur fritzing. Nous avons modifié la taille du PCB pour y ajouter nos composants supplémentaires (LED + Capteur thermique).
Malheureusement, par manque de temps et de moyens (logiciel Fritzing très lent et quasiment inutilisable sur nos ordinateurs personnels), nous ne sommes pas parvenus à réaliser le circuit imprimé de notre clé. Voici tout de même la vue de notre PCB avec la LED et le capteur thermique qu'il reste à relier, et une de nos tentatives en dessous :
CODE
Il faut créer un code pour que la LED RGB que nous avons rajoutée s'allume et change de couleur en fonction de la température ambiante.
L'idée générale de ce code est de :
- récupérer dans un premier temps la valeur de la température mesurée par le capteur thermique
- allumer la LED en fonction de cette température.
Le capteur thermique que nous avons choisi (MCP9804) est un appareil esclave i2c pur. Le problème auquel nous avons été confronté est qu'il n'y a pas d'i2c matériel sur le micro-contrôleur de la clé USB (l'ATMega16u2), et on ne peut pas se servir des bibliothèques IDE Arduino. Pour communiquer du capteur thermique au micro-contrôleur, il faut utiliser une bibliothèque "logicielle" i2c, qui utilise des entrées/sorties classiques sans avoir besoin d'une prise en charge de la capacité matérielle i2c du micro-controleur. Voici le lien de la bibliothèque en question : Bibliothèque i2c On importe donc le module de la bibliothèque i2c au début de notre code. Il faut aussi déclarer toutes nos variables et constantes en début de code.
Ensuite, en cherchant dans la datasheet du capteur thermique (que vous pouvez trouver en cliquant sur le lien de notre capteur), nous avons trouvé un code utilisant cette bibliothèque, permettant d'obtenir la valeur de la température ambiante mesurée par le capteur. Voici ce code, que nous mettons dans le void loop :
Maintenant, le but est d'allumer la LED et que la couleur de cette dernière corresponde à une fourchette de température (par exemple, bleue si on est sous les 15 degrés). Voici donc ce code, qui utilise la variable Temperature créée précédemment :
Remarques :
- Il est fort probable que des erreurs soient présentes dans ce code, ou qu'il manque des éléments. Nous nous en excusons d'avance et nous ne voulons pas faire pleurer les puristes de l'informatique. Nous avons simplement donné ici une "idée générale" de code, vu notre incroyable niveau en langage C :).
- Des améliorations peuvent être apportées. Par exemple ici, on allume en bleue la LED ou en rouge ou en vert, mais on aurait pu combiner deux ou trois couleurs pour apporter des variations de couleurs.
Conclusion
Nous allons maintenant dresser un bilan de ce bureau d'études en guise de conclusion.
- Tout d'abord la mise en place de la conception du dé électronique était une excellente idée, qui nous a permis de mieux appréhender les différents outils à disposition. Nous avons en effet suivi toutes les étapes qu'il y aurait à reproduire ensuite pour la conception de la clé, comme la conception sur Fritzing, la réalisation du code en langage C, puis la soudure des différents composants.
- Si une recherche internet ne suffisait pas pour ôter nos interrogations, la réactivité des deux encadrants nous permettait de toujours plus ou moins avancer.
- Est ensuite venu le temps de la conception de la clé USB, brusquement interrompue par la mise en place du confinement, et donc de la privation des outils nécessaires. L'accompagnement de ce bureau d'études s'est tout de même poursuivi sur un chat en ligne, nous permettant de continuer notre travail. Nous avons donc téléchargé sur nos ordinateurs les logiciels nécessaires comme Fritzing et l'IDE Arduino pour le code. Malgré nos différentes tentatives, nous n'avons pas réussi à obtenir de très bons résultats sur Fritzing à cause de ralentissements importants inexpliqués.
- Donc nous avons tant bien que mal réussi à intégrer, dans le schématique de la clé USB disponible sur le wiki, les éléments de la fonctionnalité "affichage de température par LED". Celui-ci validé par @rex et @aboe, nous nous sommes lancés dans le routage du PCB ainsi que dans la réalisation du code de nos fonctionnalités.
- N'étant ni en option langage C, ni très doués pour l’électronique, nous ne sommes pas certains que le code soit optimal, voire fonctionnel, et le routage du PCB est loin d'être achevé
- Nous sommes cependant très contents d'avoir suivi ce bureau d'études qui nous a permis d'obtenir les bases de certains logiciels et fait découvrir certaines compétences comme le codage. Il nous a également permis de mettre les pieds dans un univers bien différent de celui apporté par les matières classiques avec un suivi de projet comme nous rencontrerons lors de notre cursus ingénieur.