Binome2020-2

De Wiki de bureau d'études PeiP
Révision datée du 20 avril 2021 à 09:55 par Adeletan (discussion | contributions) (PCB : Vue schématique)

Introduction

L'objectif de ce bureau d'étude est de concevoir entièrement une clé USB personnalisée.

Pour cela, nous passerons par plusieurs étapes :

  • Réalisation du circuit électronique à l'aide du logiciel Fritzing.
  • Soudage des différents composants sur notre clé.
  • Programmation du microcontrôleur de la clé en Arduino.
  • Conception de d'un boitier pour notre clé.


Pour personnaliser notre clé USB, l'idée retenue est de concevoir une clé USB déverrouillable par code.

Nous utiliserons des LED rouge et verte pour déterminer si le code rentré est respectivement mauvais ou bon.

De plus, il sera possible de redéfinir le code à l'aide d'un bouton de réinitialisation du code sur la clé.

Matériel/Composant

Micro-contrôleur ATMega16u2


Tout d'abord, pour la conception de notre clé usb, nous aurons besoin d'un micro-contrôleur AVR. Plus précisément, nous choisirons l'ATMega16u2.






schema
carte mémoire Adesto64Mb


De plus, pour notre clé USB, nous utiliserons une mémoire AT45DB641E (64Mb) car celle-ci est adaptée à notre mciro-contrôleur.


LED CMS


Nous aurons aussi besoin de 2 LED cms ( une rouge et une verte )






schema
Bouton


6 boutons


Projet Intermédiaire

  • Avant de concevoir notre clé usb, on réalise d'abord un projet intermédiaire sur une carte et avec un micro-contrôleur (ATTiny84) plus facile à souder que celui que l'on utilisera pour la clé (ATMega16u2).
  • Ce projet à pour but de nous faire travailler seulement dans un premier temps sur la fonctionnalité supplémentaire de notre clé usb.
  • Dans notre cas, il s'agira de travailler sur nos 6 boutons et nos 2 LED rouge et verte.
  • 5 boutons serviront à rentrer un chiffre par couple [(0,1), (2,3)...,(8,9)] tandis que le dernier fera office de bouton "2nde" pour rentrer le deuxième chiffre de la paire.
  • Il est possible de retrouver ci-dessous le PCB de notre projet intermédiaire :

Fichier:Projet intermediaire.zip

PCB  : Vue schématique

Circuit schema fritzing.png



C'est tout d'abord sur la partie schématique que nous avons commencé la réalisation de notre PCB.

PCB  : Vue circuit-imprimé

Circuit imprime fritzing.png


PCB  : Vide

Circuit imprime vide.png


PCB Soudé

Pcb complet.png


Code test projet intermédiaire

 #include <Password.h>
 const int ledred = 8;
 const int ledgreen = 7;
 // Dans notre cas on va dire que notre mot de passe sera 1234
 Password password = Password("1234"); 
 void setup() 
{
 // on définit les branches de 0 à 5 en résistance PULLUP
 for( int i= 0; i<6; i++){
   pinMode(i,INPUT_PULLUP);
} 
 // Les 2 LED sont définies commes des OUTPUT
 pinMode(ledred,OUTPUT);
 pinMode(ledgreen,OUTPUT);
} 
 void loop() 
{ 
 // La LED de confimation reste éteinte
 digitalWrite(ledgreen, LOW);  
 // Tant que le mdp n'est pas bon, la LED rouge reste éteinte
 if(password.evaluate()==false)
 digitalWrite(ledred, HIGH); 
 // Les chiffres de 1 à 5 sont attribués aux 5 premiers boutons, à chaque fois qu'on appuie sur un bouton, le mdp s'incrémente d'un chiffre
 // Le dernier bouton est le bouton validé
 if (digitalRead(1)==LOW)
 {password.append('1');
 delay(50);
 } 
 
 if (digitalRead(0)==LOW)
 {password.append('2');
 delay(50);
 }
 
 if (digitalRead(2)==LOW)
 {password.append('3');
 delay(50);
 }
 
 if (digitalRead(3)==LOW)
 {password.append('4');
 delay(50);
 }
 
 if (digitalRead(4)==LOW)
 {password.append('5');
 delay(50);
 }
 // En appuyant sur ce bouton, on vérifie si le mot de passe proposé est équivalent au mot de passe de base
 // Si il ne correspond pas, la LED rouge clignotte et le mdp se réinitialise
 // Si il correspond, la LED Verte s'allume
 if (digitalRead(5)==LOW)
 {if (!( password.evaluate()))
   {digitalWrite(ledred,LOW);
   delay(50);
   digitalWrite(ledred,HIGH);
   delay(50);
   digitalWrite(ledred,LOW);
   delay(50);
   digitalWrite(ledred,HIGH);
   delay(50);
   digitalWrite(ledred,LOW);
   delay(50);
   password.reset();
   }
 else 
 {digitalWrite(ledred, LOW);
 digitalWrite(ledgreen, HIGH);
 delay(300);
 password.reset();}}}

Projet Final : Clef à déverrouillage par code

PCB final

Fichier:Cle USB Groupe2 Antoine-Telian.zip

Chronologie

- 18/01/2021

Présentation du bureau d'étude et choix de la fonctionnalité supplémentaire à ajouter sur notre clé USB.

- 21/01/2021

L'idée retenue est de réaliser une clé USB dévérouillable par un code pin à l'aide de boutons sur la clé.

On y placera aussi deux leds : une rouge pour indiquer si le code n'est pas rentré ou s'il est faut et une led verte qui indiquera si le code est bon.

- 25/01/2021

On réalise d'abord notre Projet intermédiaire. Celui-ci consiste à concevoir une première carte dont le micro-contrôleur est l'ATTiny84. Nous concevons cette première carte avec notre fonctionnalité supplémentaire.

Initiation au logiciel Fritzing pour la réalisation de circuit imprimé.

- 28/01/2021

On continue la réalisation de notre circuit imprimé sur Fritzing en plaçant correctement nos différents composants.

- 01/02/2021

Commencement du programme pour notre Projet intermédiaire sur Arduino.

- 04/02/2021

Fin de la conception de notre circuit imprimé sur Fritzing après avoir ajouté la batterie et l'ICSP.

Nous avons continué notre programme arduino pour notre Projet intermédiaire.

- 08/02/2021

Impression de la carte.

Fin de notre programme arduino pour notre projet intermédiaire.

- 11/02/2021

Début de la soudure des composants (micro-contrôleur, boutons)

- 15/02/2021

Soudage des composants (résistances, LED)

- 18/02/2021

Fin de la soudure (câbles)

Test du programme arduino avec succès

-8/03/2021

Factorisation du code avec des boucles suite aux conseils de Rex.

-11/03/2021

Conception du PCB de la clef sur inkscape.

-18/03/2021

Exportation du fichier d'inkscape sur fritzing et ajout des composants nécessaires.

-22/03/2021

Branchements des composants sur le Fritzing.

-25/03/2021

Fin élaboration du pcb sur Fritzing.

-29/03/2021

-01/04/2021

-08/04/2021

-12/04/2021

-15/04/2021

-19/04/2021


Carte commandée

La carte est commandée, le dessin SVG de la carte a du être refait, il n'était pas correct. Des modifications ont été effectuées au niveau du routage. En particulier descendre les distances pour la DRC à 0.15 millièmes d'inch n'était pas très malin. Les fichiers ci-dessous :

Fichiers SVG : Fichier:ClefUSBAntoineTelianSVG.zip.

Fichier Fritzing source : Fichier:ClefUSBAntoineTelian.zip.