Binome2019-11 : Différence entre versions
(→Introduction) |
(→Fonctionnalité et matériel utilisé) |
||
Ligne 26 : | Ligne 26 : | ||
- Affichage de l'heure [[Fichier:Atmega16u2.png|200px|thumb|right|Micro-contrôleur AVR ATMega16u2]] | - Affichage de l'heure [[Fichier:Atmega16u2.png|200px|thumb|right|Micro-contrôleur AVR ATMega16u2]] | ||
− | |||
− | |||
+ | '''Matériel utilisé :''' | ||
+ | |||
+ | |||
+ | - Carte électronique USB et Horloge | ||
− | + | - Micro-contrôleur AVR, ATMEGA328P | |
+ | - Une RTC (Real Time Clock) | ||
− | - | + | - Mémoires |
− | - | + | - Autre composants (résistances, condensateurs, transistor) |
− | - | + | - Circuit de quartz FA |
- | - |
Version du 7 mai 2020 à 13:36
Sommaire
Introduction
Le but de notre projet est de fabriquer une clé usb avec une fonctionnalité de mettre l'heure sur celle-ci, branché sur le port USB du PC, cette clé peut nous donner l'heure, pratique si votre PC est en pleine écran, pas besoin de sortir votre téléphone uniquement pour regarder l'heure. Cette clé usb est essentiel pour tous ceux qui travaille 24 heure sur 24 sur un ordinateur portable ou fixe, de jour comme de nuit.
Fonctionnalité et matériel utilisé
Fonctionalités de la clé :
- Capacité de la mémoire
- Vitesse de lecture (entre basse et haute vitesse)
Fonctionalités ajoutées :
Matériel utilisé :
- Carte électronique USB et Horloge
- Micro-contrôleur AVR, ATMEGA328P
- Une RTC (Real Time Clock)
- Mémoires
- Autre composants (résistances, condensateurs, transistor)
- Circuit de quartz FA
-
Initiation aux logiciels
Pour nous familiariser avec les logiciels Fritzing et IDE Arduino, nous avons crée un dé, voici les composants pour la création de notre dé :
- ATtiny84 avec 14 pattes
- 7 leds vertes
- 7 résistances de 220 ohm de préférence
- une batterie et un bouton poussoir
Dans un temps, on a crée le schéma PCB de notre dé, puis nous avons relier les composants ensemble sur le schéma "circuit imprimé" dans le logiciel Fritzing. Voici le fichier .fzz : media:De_G11.zip
Ensuite, nous avons programmer notre ATtiny84 à l'aide de l'IDE Arduino, dans un premier temps, nous avons crée ce programme :
//Le port 0 correspond à la led 1 //Le port 1 correspond à la led 2 //Le port 2 correspond à la led 3 //Le port 3 correspond à la led 4 //Le port 4 correspond à la led 5 //Le port 5 correspond à la led 6 //Le port 6 correspond à la led 7 //Le port 9 correspond au bouton //J'ai pris le chiffre des pattes de attiny84 non-alternative pinout comme vous avez dit int led[7]={0,1,2,3,4,5,6}; int etat_btn=0; BTN =9 const int etat_de[7][7]={ //Ici, les états que peut prendre notre dé en fonction du chiffre obtenu. {LOW,LOW,LOW,LOW,LOW,LOW,LOW}, {LOW,LOW,LOW,HIGH,LOW,LOW,LOW}, {LOW,HIGH,LOW,LOW,LOW,LOW,HIGH}, {LOW,HIGH,LOW,HIGH,LOW,LOW,HIGH}, {HIGH,HIGH,LOW,LOW,LOW,HIGH,HIGH}, {HIGH,HIGH,LOW,HIGH,LOW,HIGH,HIGH}, {HIGH,HIGH,HIGH,LOW,HIGH,HIGH,HIGH}, }; void setup() { // put your setup code here, to run once: pinMode(led[0],OUTPUT); // On indique de les broches 10 à 3 peuvent recevoir du courant pinMode(led[1],OUTPUT); pinMode(led[2],OUTPUT); pinMode(led[3],OUTPUT); pinMode(led[4],OUTPUT); pinMode(led[5],OUTPUT); pinMode(led[6],OUTPUT); pinMode(BTN,INPUT_PULLUP); //randomSeed(analogRead(0)); //On initialise notre random //Serial.begin(9600) } void loop() { // put your main code here, to run repeatedly: etat_btn = digitalRead(BTN); if ( etat_btn == LOW ){ //On regarde si notre capteur (à la broche 3) est allumé : "low" puisque input_pullup inverse le mode input int chiffre_de,i; chiffre_de=random(1,7); for(i=0;i<7;i++){ digitalWrite(led[i],etat_de[chiffre_de][i]);}} //On effectue les actions à faire pour les 7 leds } // Je n'ai pas mis de delay() puisque le programme marche seulement apres l'appui du btn
Ce code marche avec notre carte : media:Grp11de.mp4, afin d'aller plus loin, il y a certains bug à corriger dans ce code. Par exemple, lorsque qu'on appuie sans relâcher le bouton, un "6" s'affiche, le code n'est pas censé faire ça.
Création de notre clé usb
Nous avons repris la clé usb issue du fichier Media:cle_usb_bisv2.zip (On peut toujours changer si nécessaire)
Cependant, comment va t'on crée notre horloge?
On va faire un programme, avec un micro-controleur contrôlant un afficheur 7seg :
Schéma de base de notre circuit
Voici le matériel :
- 11 résistances
- afficheur 4 chiffres 7seg HDSP_B09G
- Micro-controleur ATmega328P Nous avons choisi ce modèle puisque nous avons besoin de beaucoup de broches (4+7 pour 7seg, puis plusieurs autres pour les autres fonctionnalité)
- transistor (à voir le modèle)
- Une RTC MCP79410
( Le modèle du transistor, valeur de résistance et le micro-contrôleur reste à changer )
Création du composant pour Fritzing
D'abord il faut crée le composant HDSP-B09G, notre afficheur 7 segments avec 12 pins, il faut recrée le schématique et le pcb à l'aide du logiciel Inkscape :
PCB : Ici, grâce au logiciel Inkscape, on a récrée le schéma pour le PCB en m'inspirant d'un composant 7 segments 4 digits de base, on a déplacé les disques de cuivres pour que celle-ci correspond avec le 7 segments 4 digit qu'on a choisi
Schématique : On l'a pas changé, on a gardé celui de base IC
Ensuite, on a relié les connexions, le fichier d'import du composant HDSP-B09G est disponible ici : Fichier:7seg hdsp b09g.zip
Finalement, pour notre RTC, un IC boîtier SO avec 8 pins suffit
Création du schématique sur fritzing
Nous avons suivi le premier schéma que nous avons crée, sauf nous avons rajouté :
- Le module RTC pour l'horloge
- Le bon micro-contrôleur et afficheur 7 seg Atmega328P
Il fallait ajouter 2 circuit de quartz :
- Une à 32.768 Khz avec des capacités à 10 pF chacune pour la RTC
- Une à 8 Mhz avec des capacités à 22 pF chacune, une résistance pour l'ATmega328P
Nous avons aussi fait :
- L'ajout d'un ICSP pour programmer l'ATmega328P
- L'ajout d'une capacité de découplage aux borne du Vcc et une résistance de 10Kohm pour le reset Nous avons donc ceci :
- L'ajout du circuit supplémentaire pour la RTC
- L'ajout d'une batterie de secours dans la RTC afin quelle reste actif quand la clé n'est pas branché
Au final, voici notre pcb : Fichier:HorlogeG11v2.zip (Le fichier .fzz est dans le dossier compressé, ne pas renommer le .zip)