Binome2020-2 : Différence entre versions
(→Introduction) |
(→Introduction) |
||
| Ligne 1 : | Ligne 1 : | ||
=<div class="mcwiki-header" style="border-radius: 40px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #964BFF; vertical-align: top; width: 98%;"> Introduction </div>= | =<div class="mcwiki-header" style="border-radius: 40px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #964BFF; vertical-align: top; width: 98%;"> Introduction </div>= | ||
| − | L'objectif de ce bureau d'étude est de concevoir entièrement une clé USB personnalisée. | + | 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. | * Réalisation du circuit électronique à l'aide du logiciel Fritzing. | ||
Version du 18 avril 2021 à 18:48
Sommaire
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é.
Matériel/Composant
Tout d'abord, pour la création de notre clé usb, nous aurons besoin d'un micro-contrôleur AVR. Plus précisément, nous choisirons l'ATMega16u2.
De plus, pour notre clé USB, nous utiliserons une mémoire AT45DB641E (64Mb) car celle-ci est adaptée à notre mciro-contrôleur.
2 LED ( une rouge et une verte )
6 boutons
Projet Intermédiaire
Avant de concevoir notre clé usb, on réalise d'abord un projet intermédiaire. Ce projet à pour but de nous faire travailler seulement sur la fonctionnalité supplémentaire de notre clé usb sur une carte avec un micro-contrôleur (ATTiny84) plus facile à souder que celui que l'on utilisera pour la clé (ATMega16u2).
Fichier:Projet intermediaire.zip
PCB : Vue schématique
PCB : Vue circuit-imprimé
PCB : Vide
PCB Soudé
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.
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.

