Binome2019-10

De Wiki de bureau d'études PeiP

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.


photo du dé


face arrière du dé


PCB du dé

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.


PCB.png

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

Code du dé électronique

A la suite de cette étape on a donc 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.

Conclusion