Binome2019-2 : Différence entre versions

De Wiki de bureau d'études PeiP
(Chronologie)
(Code informatique)
Ligne 27 : Ligne 27 :
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #800080; vertical-align: top; width: 98%;"> Code informatique </div>=
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #800080; vertical-align: top; width: 98%;"> Code informatique </div>=
  
 +
=Code du dé électronique=
 +
 +
{{code|#include <stdio.h>
 +
#include <stdlib.h>
 +
#include <time.h>
 +
 +
#define LED1 0
 +
#define LED2 1
 +
#define LED3 2
 +
#define LED4 3
 +
#define LED5 4
 +
#define LED6 5
 +
#define LED7 6
 +
int Tableaupin[7]= {5,4,1,3,6,2,0};
 +
int BROCHE_BOUTON=7;
 +
 +
void setup() {
 +
// initialisation
 +
Serial.begin(9600);
 +
pinMode(Tableaupin[LED1], OUTPUT);
 +
pinMode(Tableaupin[LED2], OUTPUT);
 +
pinMode(Tableaupin[LED3], OUTPUT);
 +
pinMode(Tableaupin[LED4], OUTPUT);
 +
pinMode(Tableaupin[LED5], OUTPUT);
 +
pinMode(Tableaupin[LED6], OUTPUT);
 +
pinMode(Tableaupin[LED7], OUTPUT);
 +
pinMode(BROCHE_BOUTON,INPUT_PULLUP);
 +
digitalWrite(Tableaupin[LED1],HIGH);
 +
delay(200);
 +
digitalWrite(Tableaupin[LED1],LOW);
 +
digitalWrite(Tableaupin[LED2],HIGH);
 +
delay(200);
 +
digitalWrite(Tableaupin[LED2],LOW);
 +
digitalWrite(Tableaupin[LED3],HIGH);
 +
delay(200);
 +
digitalWrite(Tableaupin[LED3],LOW);
 +
digitalWrite(Tableaupin[LED4],HIGH);
 +
delay(200);
 +
digitalWrite(Tableaupin[LED4],LOW);
 +
digitalWrite(Tableaupin[LED5],HIGH);
 +
delay(200);
 +
digitalWrite(Tableaupin[LED5],LOW);
 +
digitalWrite(Tableaupin[LED6],HIGH);
 +
delay(200);
 +
digitalWrite(Tableaupin[LED6],LOW);
 +
digitalWrite(Tableaupin[LED7],HIGH);
 +
delay(200);
 +
digitalWrite(Tableaupin[LED7],LOW);
 +
randomSeed(analogRead(0));
 +
}
 +
 +
 +
int random_a_b(int a,int b)
 +
//fonction qui renvoie un nombre entre a inclus et b exclus
 +
{
 +
return random()%(b-a) +a;
 +
}
 +
 +
//fct nombre de leds allumées
 +
 +
void de1T()
 +
{
 +
  digitalWrite(Tableaupin[LED4],HIGH);
 +
  delay(1000);
 +
}
 +
void de2T()
 +
{
 +
  digitalWrite(Tableaupin[LED3],HIGH);
 +
  digitalWrite(Tableaupin[LED5],HIGH);
 +
  delay(1000);
 +
}
 +
void de3T()
 +
{
 +
  digitalWrite(Tableaupin[LED3],HIGH);
 +
  digitalWrite(Tableaupin[LED4],HIGH);
 +
  digitalWrite(Tableaupin[LED5],HIGH);
 +
  delay(1000);
 +
}
 +
void de4T()
 +
{
 +
  digitalWrite(Tableaupin[LED1],HIGH);
 +
  digitalWrite(Tableaupin[LED3],HIGH);
 +
  digitalWrite(Tableaupin[LED5],HIGH);
 +
  digitalWrite(Tableaupin[LED7],HIGH);
 +
  delay(1000);
 +
}
 +
void de5T()
 +
{
 +
  digitalWrite(Tableaupin[LED1],HIGH);
 +
  digitalWrite(Tableaupin[LED3],HIGH);
 +
  digitalWrite(Tableaupin[LED4],HIGH);
 +
  digitalWrite(Tableaupin[LED5],HIGH);
 +
  digitalWrite(Tableaupin[LED7],HIGH);
 +
  delay(1000);
 +
}
 +
void de6T()
 +
{
 +
  digitalWrite(Tableaupin[LED1],HIGH);
 +
  digitalWrite(Tableaupin[LED2],HIGH);
 +
  digitalWrite(Tableaupin[LED3],HIGH);
 +
  digitalWrite(Tableaupin[LED5],HIGH);
 +
  digitalWrite(Tableaupin[LED6],HIGH);
 +
  digitalWrite(Tableaupin[LED7],HIGH);
 +
  delay(1000);
 +
}
 +
 +
// fonct eteint lampe
 +
 +
void de6F()
 +
{
 +
  digitalWrite(Tableaupin[LED1],LOW);
 +
  digitalWrite(Tableaupin[LED2],LOW);
 +
  digitalWrite(Tableaupin[LED3],LOW);
 +
  digitalWrite(Tableaupin[LED4],LOW);
 +
  digitalWrite(Tableaupin[LED5],LOW);
 +
  digitalWrite(Tableaupin[LED6],LOW);
 +
  digitalWrite(Tableaupin[LED7],LOW);
 +
}
 +
 +
//fonction d'affichage resultat final
 +
 +
void loop()
 +
{
 +
  int LED;
 +
 +
// partie selection dé
 +
 +
  if (digitalRead(BROCHE_BOUTON) == HIGH){
 +
  LED=random_a_b(0,6);
 +
  de6F();
 +
  }
 +
 +
  unsigned char test=(digitalRead(BROCHE_BOUTON)==LOW);
 +
  switch (LED)
 +
  {
 +
    case 0:
 +
      if (test) de1T(); break;
 +
    case 1:
 +
      if (test) de2T(); break;
 +
    case 2:
 +
      if (test) de3T(); break;
 +
    case 3:
 +
      if (test) de4T(); break;
 +
    case 4:
 +
      if (test) de5T(); break;
 +
    case 5:
 +
      if (test) de6T(); break;
 +
  }
 +
 +
 +
}
 +
 +
 +
}}
  
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #800080; vertical-align: top; width: 98%;"> Chronologie </div>=
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #800080; vertical-align: top; width: 98%;"> Chronologie </div>=

Version du 23 mars 2020 à 10:13


Introduction

L'objectif de ce nouveau bureau d'étude est de concevoir et créer une clé USB en créant un circuit électronique, en soudant des composants électroniques et en programmant le micro-processeur. L'objectif supplémentaire de bureau d'étude est d'ajouter à notre clé USB une ou plusieurs fonctionnalités qui la rendra unique.

Matériel utilisé

• Circuit imprimé

• Micro-contrôleur

ATMega16u2.png

• Mémoire

Adesto64Mb.jpg

• Micro-interrupteurs

• Microphone

Microphone.png

Code informatique

Code du dé électronique

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <time.h>
  1. define LED1 0
  2. define LED2 1
  3. define LED3 2
  4. define LED4 3
  5. define LED5 4
  6. define LED6 5
  7. define LED7 6

int Tableaupin[7]= {5,4,1,3,6,2,0}; int BROCHE_BOUTON=7;

void setup() {

// initialisation
Serial.begin(9600);
pinMode(Tableaupin[LED1], OUTPUT);
pinMode(Tableaupin[LED2], OUTPUT);
pinMode(Tableaupin[LED3], OUTPUT);
pinMode(Tableaupin[LED4], OUTPUT);
pinMode(Tableaupin[LED5], OUTPUT);
pinMode(Tableaupin[LED6], OUTPUT);
pinMode(Tableaupin[LED7], OUTPUT);
pinMode(BROCHE_BOUTON,INPUT_PULLUP);
digitalWrite(Tableaupin[LED1],HIGH);
delay(200);
digitalWrite(Tableaupin[LED1],LOW);
digitalWrite(Tableaupin[LED2],HIGH);
delay(200);
digitalWrite(Tableaupin[LED2],LOW);
digitalWrite(Tableaupin[LED3],HIGH);
delay(200);
digitalWrite(Tableaupin[LED3],LOW);
digitalWrite(Tableaupin[LED4],HIGH);
delay(200);
digitalWrite(Tableaupin[LED4],LOW);
digitalWrite(Tableaupin[LED5],HIGH);
delay(200);
digitalWrite(Tableaupin[LED5],LOW);
digitalWrite(Tableaupin[LED6],HIGH);
delay(200);
digitalWrite(Tableaupin[LED6],LOW);
digitalWrite(Tableaupin[LED7],HIGH);
delay(200);
digitalWrite(Tableaupin[LED7],LOW);
randomSeed(analogRead(0));

}


int random_a_b(int a,int b) //fonction qui renvoie un nombre entre a inclus et b exclus { return random()%(b-a) +a; }

//fct nombre de leds allumées

void de1T() {

 digitalWrite(Tableaupin[LED4],HIGH);
 delay(1000);

} void de2T() {

 digitalWrite(Tableaupin[LED3],HIGH);
 digitalWrite(Tableaupin[LED5],HIGH);
 delay(1000);

} void de3T() {

 digitalWrite(Tableaupin[LED3],HIGH);
 digitalWrite(Tableaupin[LED4],HIGH);
 digitalWrite(Tableaupin[LED5],HIGH);
 delay(1000);

} void de4T() {

 digitalWrite(Tableaupin[LED1],HIGH);
 digitalWrite(Tableaupin[LED3],HIGH);
 digitalWrite(Tableaupin[LED5],HIGH);
 digitalWrite(Tableaupin[LED7],HIGH);
 delay(1000);

} void de5T() {

 digitalWrite(Tableaupin[LED1],HIGH);
 digitalWrite(Tableaupin[LED3],HIGH);
 digitalWrite(Tableaupin[LED4],HIGH);
 digitalWrite(Tableaupin[LED5],HIGH);
 digitalWrite(Tableaupin[LED7],HIGH);
 delay(1000);

} void de6T() {

 digitalWrite(Tableaupin[LED1],HIGH);
 digitalWrite(Tableaupin[LED2],HIGH);
 digitalWrite(Tableaupin[LED3],HIGH);
 digitalWrite(Tableaupin[LED5],HIGH);
 digitalWrite(Tableaupin[LED6],HIGH);
 digitalWrite(Tableaupin[LED7],HIGH);
 delay(1000);

}

// fonct eteint lampe

void de6F() {

 digitalWrite(Tableaupin[LED1],LOW);
 digitalWrite(Tableaupin[LED2],LOW);
 digitalWrite(Tableaupin[LED3],LOW);
 digitalWrite(Tableaupin[LED4],LOW);
 digitalWrite(Tableaupin[LED5],LOW);
 digitalWrite(Tableaupin[LED6],LOW);
 digitalWrite(Tableaupin[LED7],LOW);

}

//fonction d'affichage resultat final

void loop() {

 int LED;
// partie selection dé
 if (digitalRead(BROCHE_BOUTON) == HIGH){
 LED=random_a_b(0,6);
 de6F();
 }
 unsigned char test=(digitalRead(BROCHE_BOUTON)==LOW);
 switch (LED)
 {
   case 0:
     if (test) de1T(); break;
   case 1:
     if (test) de2T(); break;
   case 2:
     if (test) de3T(); break;
   case 3:
     if (test) de4T(); break;
   case 4:
     if (test) de5T(); break;
   case 5:
     if (test) de6T(); break;
 }


}

Chronologie

27/01/2020

Idée : Synthèse vocale qui décrit tout ce que la clef fait

10/02/2020

Nouvelle idée pour remplacer la précédente : Clé qui se verrouille/déverrouille et pour la déverrouiller de façon originale : crier dessus

Recherche de notre microphone : https://fr.farnell.com/kingstate/kecg2740pbj/microphone-miniature-electret/dp/1299885?gclid=EAIaIQobChMIntmX98TG5wIVVJnVCh1wkga7EAQYAiABEgL_XfD_BwE&gross_price=true&mckv=GxWpbYpX_dc%7Cpcrid%7C80993908502%7C&CMP=KNC-GFR-GEN-SHOPPING-1299885

17/02/2020 & 02/03/2020

Nous avons appris à utiliser le logiciel Fritzing en réalisant le Schematic et le PCB d'un circuit imprimé. Le but est ici de créer un dé avec des leds.

Voici le circuit du dé (face avant) que nous avons réalisé :

Alixevefavant.png

Voici le circuit du dé (face arrière) que nous avons réalisé :

Alixevefarriere.png

09/03/2020

Programmation du dé et début de la soudure

12/03/2020

Fin de la soudure et de la programmation du dé


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-2-test1.mp4.


16/03/2020

Première séance via chat.plil.fr Test sur la carte, corrections de bugs dans le programme Test à l'aide d'un Arduino Uno et des composants disponibles chez Eve : Testeve.jpg

19/03/2020

Finalisation du dé électronique et début de la conception de la carte de la clef USB sur fritzing

Schemaclef1.png

Schemaclef2.png

Schemaclef3.png

Conclusion