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.


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

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

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