Binome2019-10 : Différence entre versions
(→Code du dé électronique) |
(→Conclusion) |
||
(92 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 12 : | Ligne 12 : | ||
=<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%;"> Réalisation d'un dé électronique </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%;"> Réalisation d'un dé électronique </div>= | ||
− | 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 sur un plus petit projet qui est 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== | ||
+ | |||
+ | |||
+ | [[Fichier:Shema de electronique.png|thumb|500px|center]] | ||
+ | |||
+ | ==PCB du dé== | ||
+ | |||
+ | |||
+ | |||
+ | [[Fichier: PCB du de electronique.png|thumb|500px|center]] | ||
+ | |||
+ | =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é. | ||
+ | |||
+ | |||
+ | |||
+ | [[Fichier: photo_du_dé.png]] | ||
+ | |||
+ | |||
+ | |||
+ | [[Fichier: photo_du_dé_verso.png]] | ||
=Code du dé électronique= | =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. | ||
− | #include <stdio.h> | + | |
− | #include <stdlib.h> | + | =Test de notre dé électronique= |
− | #include < | + | |
− | int | + | [[media:test.mp4]] |
− | void setup() | + | |
− | { | + | |
+ | |||
+ | =<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%;"> Réalisation de notre clé USB </div>= | ||
+ | |||
+ | |||
+ | = 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= | ||
+ | |||
+ | [[Fichier:Shema de la cle.PNG]] | ||
+ | |||
+ | =PCB de la clé= | ||
+ | |||
+ | [[Fichier: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; | int i; | ||
− | for(i=0; i<7; i++ | + | long correct_password; |
− | + | for (i=0;i<=7;i++) | |
− | |||
− | |||
{ | { | ||
− | + | if (i%2==0) | |
− | + | { | |
− | if ( | + | 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) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | if ( | ||
{ | { | ||
− | digitalWrite( | + | digitalWrite(alimentation_plus, HIGH); |
− | digitalWrite( | + | 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 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
Sommaire
- 1 Introduction
- 2 Première Idée de personnalisation de notre projet
- 3 Réalisation d'un dé électronique
- 4 Soudage des composants sur le circuit imprimé
- 5 Code du dé électronique
- 6 Test de notre dé électronique
- 7 Réalisation de notre clé USB
- 8 Personnalisation que nous avons apporté
- 9 Shéma de notre clé USB
- 10 PCB de la clé
- 11 Code de la clé
- 12 Conclusion
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
PCB du dé
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é.
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
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
PCB 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 <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).