Binome2019-9 : Différence entre versions
(→Clé USB) |
|||
Ligne 54 : | Ligne 54 : | ||
Tout d'abord nous avons élaboré les plans de notre dé en vue schématique, ce qui nous permet d'y voir plus clair et de mieux comprendre notre carte. | Tout d'abord nous avons élaboré les plans de notre dé en vue schématique, ce qui nous permet d'y voir plus clair et de mieux comprendre notre carte. | ||
− | Après avoir effectué notre schématique (schéma1), celui-ci est indispensable car | + | Après avoir effectué notre schématique (schéma1), celui-ci est indispensable car dès que l'on se retrouve avec beaucoup de composant, on s'y perd facilement, l'erreur est donc plus facilement détectable et il est conseiller d'utiliser des label pour facilité la compréhension. |
Le schéma finit, il faut maintenant agencer les composants de sorte qu'aucunes pistes ne se croisent sur notre circuit imprimé (schéma 2). | Le schéma finit, il faut maintenant agencer les composants de sorte qu'aucunes pistes ne se croisent sur notre circuit imprimé (schéma 2). | ||
Ligne 68 : | Ligne 68 : | ||
− | Par la suite nos avons soudé sur notre circuit les 7 leds et 7 résistances, un travail | + | Par la suite nos avons soudé sur notre circuit les 7 leds et 7 résistances, un travail minutieux et assez compliqué, surtout pour les premières soudures. |
Il ne reste plus qu'a coder notre microcontroleur, pour ce faire on utilise l'Arduino IDE. | Il ne reste plus qu'a coder notre microcontroleur, pour ce faire on utilise l'Arduino IDE. | ||
Le code ci-dessous va nous permettre d'afficher un nombre aléatoire entre 1 et 6. | Le code ci-dessous va nous permettre d'afficher un nombre aléatoire entre 1 et 6. | ||
− | Lorsque l'on va venir presser le bouton, un roulement de tambour va s'effectuer en affichant | + | Lorsque l'on va venir presser le bouton, un roulement de tambour va s'effectuer en affichant aléatoirement des chiffres à la suite et pour finir le nombre aléatoire choisi va se figer. |
Voici le code: | Voici le code: |
Version du 4 mai 2020 à 08:13
Sommaire
Introduction
Dans ce BE, l'objectif est de réaliser une clé usb avoir une ou plusieurs fonctionnalités originales. La première partie est donc de réflechir à différentes idées de fonctions à introduire sur cette clé.
Partie Réflexion
Le principal objectif est de tenter d'imbriquer des clés par le biais d'un hub.
Nous avons aussi plusieurs idées de fonctionnalités originales de la clé USB :
- un haut-parleur (bruitage lors du remplissage, de la connexion, etc)
- vumètre à LED
- Dévérouillage de la clé via un mot de passe, on scinde la clé en 2 parties, la première ayant un stockage minimal servant à la demande du mot de passe, l'autre utile pour le stockage et l'échange d'informations. (bip d'erreur en cas d'échec du mot de passe)
- ajouter de la mémoire via un SHIELD
Composants
- Le coeur qui va être un micro-contrôleur AVR plus exactement l'ATMega16u2.
- une mémoire faible capacité (64Mb) avec l'AT45DB641E-SHN2B-T ou une grande capacité mais plus difficile à souder (128Gb) avec l'MT29F128G8
TUSB4041I Four-Port USB 2.0 Hub
Test ReX 15/03/2020
Test ReX 15/03/2020 Après quelques soudures le programme suivant passe sur l'ATtiny84 :
#define MAX_LED 7 int leds[]={0,1,2,3,4,5,6}; void setup() { int i; for(i=0;i<MAX_LED;i++) pinMode(leds[i], OUTPUT); } void loop() { int i; for(i=0;i<MAX_LED;i++) digitalWrite(leds[i], HIGH); delay(1000); for(i=0;i<MAX_LED;i++) digitalWrite(leds[i], LOW); delay(1000); }
Démonstration de l'exécution : media:binome2019-9-test1.mp4.
Projet Intermédiaire: Le dé électronique
Ce projet nous a permis de prendre en main le logiciel Fritzing et Arduino IDE, ce qui nous sera utile par la suite pour la conception de la clé USB.
Tout d'abord nous avons élaboré les plans de notre dé en vue schématique, ce qui nous permet d'y voir plus clair et de mieux comprendre notre carte. Après avoir effectué notre schématique (schéma1), celui-ci est indispensable car dès que l'on se retrouve avec beaucoup de composant, on s'y perd facilement, l'erreur est donc plus facilement détectable et il est conseiller d'utiliser des label pour facilité la compréhension.
Le schéma finit, il faut maintenant agencer les composants de sorte qu'aucunes pistes ne se croisent sur notre circuit imprimé (schéma 2).
Voici une photo de la vue schématique et du circuit imprimé
Par la suite nos avons soudé sur notre circuit les 7 leds et 7 résistances, un travail minutieux et assez compliqué, surtout pour les premières soudures.
Il ne reste plus qu'a coder notre microcontroleur, pour ce faire on utilise l'Arduino IDE. Le code ci-dessous va nous permettre d'afficher un nombre aléatoire entre 1 et 6. Lorsque l'on va venir presser le bouton, un roulement de tambour va s'effectuer en affichant aléatoirement des chiffres à la suite et pour finir le nombre aléatoire choisi va se figer.
Voici le code: //========FONCTIONS PERSONALISEES - Il s'agit de fonctions créées sur mesure pour nos besoins
void toutEteindre() { //Cette fonction permet d'éteindre toutes les leds. Elle est de type "void" car elle ne revoit aucune valeur: elle se content d'exécuter les instructions.
digitalWrite(0, LOW); //Eteindre la led 1 digitalWrite(1, LOW); //Eteindre la led 2 digitalWrite(2, LOW); //Eteindre la led 3 digitalWrite(3, LOW); //Eteindre la led 4 digitalWrite(4, LOW); //Eteindre la led 5 digitalWrite(5, LOW); //Eteindre la led 6 digitalWrite(6, LOW); //Eteindre la led 7
}
void afficher(int nb) { //Cette fonction permet d'allumer les bonnes leds en fonction du nombre choisi.
//Elle prend en paramètre le nombre que l'on veut afficher. switch (nb) { //C'est pareil qu'un if sauf que le if prend que des valeurs booléennes case 1: digitalWrite(4, HIGH); break; case 2: digitalWrite(1, HIGH); digitalWrite(6, HIGH); break; case 3: digitalWrite(0, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); break; case 4: digitalWrite(0, HIGH); digitalWrite(1, HIGH); digitalWrite(3, HIGH); digitalWrite(6, HIGH); break; case 5: digitalWrite(0, HIGH); digitalWrite(1, HIGH); digitalWrite(3, HIGH); digitalWrite(6, HIGH); digitalWrite(4, HIGH); break; case 6: digitalWrite(0, HIGH); digitalWrite(1, HIGH); digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); break; }
}
int chercher() {
return random(1, 7);
}
//=================================================
void setup() {
pinMode(0, OUTPUT); pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(9,INPUT_PULLUP);
}
void loop() {
if (digitalRead(9) == LOW) { for (int i = 1; i <= random(8, 15); i++) { // On fait defiler plusieurs nombre pour le suspens afficher(chercher()); delay(200); toutEteindre(); } afficher(chercher()); //On affiche le "vrai" chiffre. delay(3000); toutEteindre(); }
}
Le résultat final en vidéo et quelques photos de notre circuit imprimé final: Fichier:20200328 165241.mp4
voici le Fritzing de notre dé: Fichier:Circuit de 1.zip
Clé USB
Afin de concevoir notre clé usb nous sommes avons choisi comme base de travail cette clé usb:
Pour l'amélioration de notre clé usb nous avons décider de faire un vu mètre avec des leds. Apres avoir discuté de cela avec nos professeurs ce qui nous a été conseillé est un registre à décalage.
--description du fonctionnement à faire--
Fichier Fritzing ( je n'arrive pas à importer les composants de la parties mémoire ): Fichier:Cle usb black roussel.zip