Binome2020-2 : Différence entre versions

De Wiki de bureau d'études PeiP
(Code test projet intermédiaire)
(Code test projet intermédiaire)
Ligne 115 : Ligne 115 :
  
  
#include <Password.h>
+
#include <Password.h>
const int ledred = 5;
+
const int ledred = 5;
const int ledgreen = 6;
+
const int ledgreen = 6;
Password password = Password("1234")
+
Password password = Password("1234")
 
+
void setup() {
void setup() {
+
  for( int i= 8; i<14; i++){
 
+
    pinMode(i,INPUT_PULLUP);}
  for( int i= 8; i<14; i++){
+
  pinMode(ledred,OUTPUT);
    pinMode(i,INPUT_PULLUP);}
+
  pinMode(ledgreen,OUTPUT);
  pinMode(ledred,OUTPUT);
+
}
  pinMode(ledgreen,OUTPUT);}
+
void loop() {  
void loop() {  
+
  if(!(password.evaluate()))
  if(!(password.evaluate()))
+
  digitalWrite(ledred, HIGH);
  digitalWrite(ledred, HIGH);
+
  if (digitalRead(8)==LOW)
  if (digitalRead(8)==LOW)
+
  {password.append('1');
  {password.append('1');
+
  delay(500);
  delay(500);
+
  }  
  }  
+
  if (digitalRead(9)==LOW)
  if (digitalRead(9)==LOW)
+
  {password.append('2');
  {password.append('2');
+
  delay(500);
  delay(500);
+
  }
  }
+
  if (digitalRead(10)==LOW)
  if (digitalRead(10)==LOW)
+
  {password.append('3');
  {password.append('3');
+
  delay(500);
  delay(500);
+
  }
  }
+
  if (digitalRead(11)==LOW)
  if (digitalRead(11)==LOW)
+
  {password.append('4');
  {password.append('4');
+
  delay(500);
  delay(500);
+
  }
  }
+
  if (digitalRead(12)==LOW)
  if (digitalRead(12)==LOW)
+
  {password.append('5');
  {password.append('5');
+
  delay(500);
  delay(500);
+
  }
  }
+
  if (digitalRead(13)==LOW)
  if (digitalRead(13)==LOW)
+
  {if (!( password.evaluate()))
  {if (!( password.evaluate()))
+
    {digitalWrite(ledred,LOW);
    {digitalWrite(ledred,LOW);
+
    delay(500);
    delay(500);
+
    digitalWrite(ledred,HIGH);
    digitalWrite(ledred,HIGH);
+
    delay(500);
    delay(500);
+
    digitalWrite(ledred,LOW);
    digitalWrite(ledred,LOW);
+
    delay(500);
    delay(500);
+
    password.reset();
    password.reset();
+
    }
    }
+
  else  
  else  
+
  {digitalWrite(ledred, LOW);
  {digitalWrite(ledred, LOW);
+
  digitalWrite(ledgreen, HIGH);}}
  digitalWrite(ledgreen, HIGH);}}}
+
}
  
 
=<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%;"> Chronologie </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%;"> Chronologie </div>=

Version du 13 février 2021 à 10:12

Introduction

L'objectif de ce bureau d'étude est de concevoir entièrement une clé USB personnalisée. Ainsi, nous réaliserons un circuit électronique puis nous souderons des composants et nous programmerons le micro-contrôleur de la carte. Nous finirons par fabriquer un boîtier 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.

schema
micro-contrôleur









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

schema
carte mémoire










2 LED ( une rouge et une verte )

schema
LED







6 boutons

schema
Bouton











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).


PCB  : Vue schématique

Circuit schema fritzing.png

PCB  : Vue circuit-imprimé

Circuit imprime fritzing.png

PCB  : Vide

Circuit imprime vide.png


Code test projet intermédiaire

#include <Password.h>
const int ledred = 5;
const int ledgreen = 6;
Password password = Password("1234")
void setup() {
  for( int i= 8; i<14; i++){
    pinMode(i,INPUT_PULLUP);}
  pinMode(ledred,OUTPUT);
  pinMode(ledgreen,OUTPUT);
}
void loop() { 
  if(!(password.evaluate()))
  digitalWrite(ledred, HIGH);
  if (digitalRead(8)==LOW)
  {password.append('1');
  delay(500);
  } 
  if (digitalRead(9)==LOW)
  {password.append('2');
  delay(500);
  }
  if (digitalRead(10)==LOW)
  {password.append('3');
  delay(500);
  }
  if (digitalRead(11)==LOW)
  {password.append('4');
  delay(500);
  }
  if (digitalRead(12)==LOW)
  {password.append('5');
  delay(500);
  }
  if (digitalRead(13)==LOW)
  {if (!( password.evaluate()))
    {digitalWrite(ledred,LOW);
    delay(500);
    digitalWrite(ledred,HIGH);
    delay(500);
    digitalWrite(ledred,LOW);
    delay(500);
    password.reset();
    }
  else 
  {digitalWrite(ledred, LOW);
  digitalWrite(ledgreen, HIGH);}}
}

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 de la programmation de notre carte du 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 et l'ICSP.

- 08/02/2021

Impression de la carte.

- 11/02/2021

On commence à souder les composants (micro-contrôleur, boutons)