Binome2019-10 : Différence entre versions

De Wiki de bureau d'études PeiP
(Code de la clé)
(Conclusion)
 
(8 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 139 : Ligne 139 :
 
[[Fichier:PCB de la cle USB.PNG]]
 
[[Fichier:PCB de la cle USB.PNG]]
  
 +
=Code de la clé=
  
=Code de la clé=
+
le code de la clé pour l'option mot de passe est le suivant :
  
  #include <stdio.h>
+
#include <stdio.h>
  #include <stdlib.h>
+
#include <stdlib.h>
  #include <string.h>
+
#include <string.h>
  long interrupteur[]={PD3,PD4,PD5,PD6,PD7,PB0,PC4,PC5};
+
int Dp,Dm;
  long alimentation_plus = D+;
+
long interrupteur[]={PD3,PD4,PD5,PD6,PD7,PB0,PC4,PC5};
  long alimentation_moins = D-;
+
long alimentation_plus = Dp;
  long password={};
+
long alimentation_moins = Dm;
  long correct_password={HIGH,HIGH,LOW,HIGH,LOW,LOW,HIGH,LOW};
+
long password={};
  void setup() {
+
long correct_password={};
  // put your setup code here, to run once:
+
void setup()  
  int i;
+
{
  for(i=0; i<8; i++) pinMode(interrupteur[i],INPUT);
+
int i;
   pinMode(alimentation_plus,OUTPUT);
+
long correct_password;
  pinMode(alimentation_moins,OUTPUT);
+
for (i=0;i<=7;i++)
 
+
{
 +
  if (i%2==0)
 +
   {
 +
    correct_password+=HIGH;
 
   }
 
   }
void loop() {
+
  if (i%2!=0)
  // put your main code here, to run repeatedly:
+
  {
 
+
     correct_password+=LOW;
  int i;
 
  for(i=0; i<8; i++) password = (password + digitalRead(interrupteur[i]);
 
  if (password==correct_password)
 
  {
 
     digitalWrite(alimentation_plus, HIGH);
 
    digitalWrite(alimentation_moins, HIGH);
 
   
 
  }
 
 
   }
 
   }
 +
}
 +
for(i=0; i<8; i++) pinMode(interrupteur[i],INPUT);
 +
pinMode(alimentation_plus,OUTPUT);
 +
pinMode(alimentation_moins,OUTPUT);
 +
 +
}
 +
void loop()
 +
{
 +
int i;
 +
for(i=0; i<8; i++) password = (password + digitalRead(interrupteur[i]));
 +
if (password==correct_password)
 +
{
 +
  digitalWrite(alimentation_plus, HIGH);
 +
  digitalWrite(alimentation_moins, HIGH);
 +
 
 +
  }
 +
  }
  
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #318CE7; vertical-align: top; width: 98%;"> Conclusion  </div>=
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #318CE7; vertical-align: top; width: 98%;"> Conclusion  </div>=
  
Lors de ce bureau d'étude nous avons pu découvrir la filière IMA autour d'un projet qui consistait en la réalisation et personnalisation d'une clef USB. Pour cela, nous avons réalisé une partie conception sur le logiciel fritzing, ensuite une partie manipulation notamment en soudant des composants et enfin une partie codage sur Arduino. Pour ce qui est de l'état de notre projet, nous avons réalisé la partie conception de notre clef USB et essayer de coder un mot de passe pour notre clef mais à cause de la crise sanitaire du coronavirus et donc du confinement que cela a occasionné, nous n'avons pas réussi à obtenir un code à la hauteur de nos espérances. Nous aurions aussi aimé pouvoir la réaliser et la tester mais cela n'a pas pu se faire. Finalement ce bureau d'étude nous a permis, de réaliser notre premier projet en groupe, et de se faire un avis plus construit sur cette filière (IMA).
+
Lors de ce bureau d'étude nous avons pu découvrir la filière IMA autour d'un projet qui consistait en la réalisation et personnalisation d'une clef USB. Pour cela, nous avons réalisé une partie conception sur le logiciel fritzing, ensuite une partie manipulation notamment en soudant des composants et enfin une partie codage sur Arduino.  
 +
Pour ce qui est de l'état de notre projet, nous avons réalisé la partie conception de notre clé USB et essayer de coder un mot de passe pour notre clef mais à cause de la crise sanitaire du coronavirus et donc du confinement que cela a occasionné, nous n'avons pas réussi à obtenir un code à la hauteur de nos espérances.  
 +
Nous aurions aussi aimé pouvoir la réaliser et la tester mais cela n'a pas pu se faire. Finalement ce bureau d'étude nous a permis de réaliser notre premier projet en groupe, et de se faire un avis plus construit sur cette filière (IMA).

Version actuelle datée du 22 mai 2020 à 19:15

Introduction

L'objectif de notre enseignement de bureau d'étude est de réaliser une clef USB personnalisée et fonctionnelle. Cela va nous apprendre à concevoir et mettre en place avec les moyens à disposition un projet. Cet enseignement va aussi nous apporter des connaissances en codage, en soudage, et sur des logicielles de conception.

Première Idée de personnalisation de notre projet

Sur notre clé USB nous voulons installer une mémoire de 16Go, un mot de passe mécanique (avec des micro-interrupteurs coulissant),et enfin nous allons y fixer 2 leds (la première indiquera que celle-ci est vérouillée et l'autre indiquera qu'elle est dévérouillée et prête à être utilisée). Au niveau du boîtier qui recouvrira le circuit nous y placerons un logo, qui pourrait être un indice pour déchiffrer le code.


Réalisation d'un dé électronique

Avant de nous lancer dans la réalisation de notre clef USB, nous allons tout d'abord apprendre à manipuler les différents logiciels ainsi qu'à se former à la soudure et à la programmation avec Arduino sur un plus petit projet qui est un dé électronique.


Tout d'abord nous avons conçu le circuit imprimé de notre dé sur le logiciel fritzing, pour cela nous nous sommes aidés d'une vidéo youtube. Fichier:Circuit imprime de electronique.zip

Schéma du dé électronique

Shema de electronique.png

PCB du dé

PCB du de electronique.png

Soudage des composants sur le circuit imprimé

Ensuite après avoir commandé celle-ci, nous avons soudé l'attiny 84 ainsi que les résistances, les leds, le bouton et les fils de programmation sur notre circuit imprimé.


Photo du dé.png


Photo du dé verso.png


Code du dé électronique

Enfin nous avons programmé notre dé électronique comme ci-dessous pour que celui soit fonctionnelle.

 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
 int led[]={5,4,1,3,6,2,0};
 void setup() 
 {
   int i;
   for(i=0; i<7; i++) pinMode(led[i], OUTPUT);
   pinMode(9,INPUT_PULLUP);
   randomSeed(analogRead(A7));
   }
 void loop()
 {
  if (digitalRead(9)==LOW)
  {
     int numero;
     numero=random(1,7);
     if (numero==1)
     { 
       digitalWrite(led[3], HIGH);
     }
     if (numero==2)
     {  
       digitalWrite (led[2], HIGH);
       digitalWrite (led[4], HIGH);
     }
     if (numero==3)
     {
       digitalWrite(led[2], HIGH);
       digitalWrite(led[3], HIGH);
       digitalWrite(led[4], HIGH);
     }
     if (numero==4)
     { 
       digitalWrite(led[0], HIGH);
       digitalWrite(led[2], HIGH);
       digitalWrite(led[4], HIGH);
       digitalWrite(led[6], HIGH);
     }  
     if (numero==5)
     {
       digitalWrite(led[0], HIGH);
       digitalWrite(led[2], HIGH);
       digitalWrite(led[3], HIGH);
       digitalWrite(led[4], HIGH);
       digitalWrite(led[6], HIGH);
     }
     if (numero==6)
     {
       digitalWrite(led[0], HIGH);
       digitalWrite(led[1], HIGH);
       digitalWrite(led[2], HIGH);
       digitalWrite(led[4], HIGH);
       digitalWrite(led[5], HIGH);
       digitalWrite(led[6], HIGH);
     }
     delay(1000);
     int i;
     for (i=0; i<7 ; i++) digitalWrite(led[i], LOW);
     delay(1000);
     }
   }

Notre programme a donc été testé par Rex et celui-ci s'avère correct.


Test de notre dé électronique

media:test.mp4


Réalisation de notre clé USB

Personnalisation que nous avons apporté

Finalement pour personnaliser notre clef USb, nous lui avons rajouté un mot de passe mécanique grâce à un dip switch comportant 8 channels. Nous avions prévu de mettre une mémoire de 128Gb mais à cause de la crise sanitaire du coronavirus qui a engendré la fermeture des écoles, cela devenait trop compliqué pour nous de le réaliser à la maison. Nous avons donc choisi la clé usb suivante comportant une mémoire de 64Mb qui nous paraissait plus réalisable à distance Fichier:Cle usbv2.zip

Et voici le dossier après modofication Fichier:Cle usb Gr 10 .zip

Shéma de notre clé USB

Shema de la cle.PNG

PCB de la clé

PCB de la cle USB.PNG

Code de la clé

le code de la clé pour l'option mot de passe est le suivant :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Dp,Dm;
long interrupteur[]={PD3,PD4,PD5,PD6,PD7,PB0,PC4,PC5};
long alimentation_plus = Dp;
long alimentation_moins = Dm;
long password={};
long correct_password={};
void setup() 
{
int i;
long correct_password;
for (i=0;i<=7;i++)
{
 if (i%2==0)
 {
   correct_password+=HIGH;
 }
  if (i%2!=0)
  {
   correct_password+=LOW;
  }
}
for(i=0; i<8; i++) pinMode(interrupteur[i],INPUT);
pinMode(alimentation_plus,OUTPUT);
pinMode(alimentation_moins,OUTPUT);

}
void loop() 
{
int i;
for(i=0; i<8; i++) password = (password + digitalRead(interrupteur[i]));
if (password==correct_password)
{
  digitalWrite(alimentation_plus, HIGH);
  digitalWrite(alimentation_moins, HIGH);
  
 }
 }

Conclusion

Lors de ce bureau d'étude nous avons pu découvrir la filière IMA autour d'un projet qui consistait en la réalisation et personnalisation d'une clef USB. Pour cela, nous avons réalisé une partie conception sur le logiciel fritzing, ensuite une partie manipulation notamment en soudant des composants et enfin une partie codage sur Arduino. Pour ce qui est de l'état de notre projet, nous avons réalisé la partie conception de notre clé USB et essayer de coder un mot de passe pour notre clef mais à cause de la crise sanitaire du coronavirus et donc du confinement que cela a occasionné, nous n'avons pas réussi à obtenir un code à la hauteur de nos espérances. Nous aurions aussi aimé pouvoir la réaliser et la tester mais cela n'a pas pu se faire. Finalement ce bureau d'étude nous a permis de réaliser notre premier projet en groupe, et de se faire un avis plus construit sur cette filière (IMA).