Fabrication jeu de reflexe : Différence entre versions

De Movilab.org
m (Fabrication étape par étape)
m (Fabrication étape par étape)
Ligne 37 : Ligne 37 :
 
* Vert : pin 12
 
* Vert : pin 12
 
* Rouge : pin 11
 
* Rouge : pin 11
 +
 +
Code pour tester les boutons :
 +
 +
<pre>
 +
// pin
 +
const int r = 11; // led rouge
 +
const int v = 12; // led vert
 +
const int b = 13; // led bleu
 +
const int j1g = 8; // joueur 1 clic gauche
 +
const int j1d = 7; // joueur 1 clic droit
 +
const int j2g = 6; // joueur 2 clic gauche
 +
const int j2d = 5; // joueur 2 clic droit
 +
 +
void setup() {
 +
  pinMode(r, OUTPUT);
 +
  pinMode(v, OUTPUT);
 +
  pinMode(b, OUTPUT);
 +
  pinMode(j1g, INPUT);
 +
  pinMode(j1d, INPUT);
 +
  pinMode(j2g, INPUT);
 +
  pinMode(j2d, INPUT);
 +
 +
 +
}
 +
 +
 +
void loop() {
 +
  if (digitalRead(j1g) == HIGH) {
 +
    digitalWrite(r, LOW); 
 +
  } else {
 +
    digitalWrite(r, HIGH);
 +
  }
 +
 
 +
  if (digitalRead(j1d) == HIGH) {
 +
    digitalWrite(b, LOW); 
 +
  } else {
 +
    digitalWrite(b, HIGH);
 +
  }
 +
 
 +
  if (digitalRead(j2g) == HIGH) {
 +
    digitalWrite(v, LOW); 
 +
  } else {
 +
    digitalWrite(v, HIGH);
 +
  }
 +
 
 +
  if (digitalRead(j2d) == HIGH) {
 +
    digitalWrite(r, LOW); 
 +
    digitalWrite(v, LOW); 
 +
    digitalWrite(b, LOW); 
 +
  } else {
 +
    digitalWrite(r, HIGH);
 +
    digitalWrite(v, HIGH);
 +
    digitalWrite(b, HIGH);
 +
  }
 +
 
 +
}
 +
 +
 +
</pre>
  
 
=== 3. L'afficheur LCD ===
 
=== 3. L'afficheur LCD ===
Ligne 44 : Ligne 103 :
 
Modèle compatible Hitachi 44780
 
Modèle compatible Hitachi 44780
  
 +
Pour économiser des connecteurs de sortie sur l'arduino, nous utilisons en convertisseur vers bus I2C. Celui permet de passer de 7 à 2 fils la connexion de l'afficheur LCD à l'arduino.
 +
 +
Code pour tester l'afficheur
 +
 +
<pre>
 +
 +
#include <Wire.h>
 +
#include <LiquidCrystal_I2C.h>
 +
LiquidCrystal_I2C lcd(0x27,20,4); 
 +
 +
void setup() {
 +
  lcd.init();
 +
  lcd.backlight();
 +
  lcd.setCursor(0,0);
 +
  lcd.print("Jeu de reflexe");
 +
  lcd.setCursor(2,1);
 +
  lcd.print("2 souris - 1 arduino"); 
 +
}
 +
 +
 +
void loop() {
 +
}
 +
 +
 +
</pre>
  
Pour économiser des connecteurs de sortie sur l'arduino, nous utilisons en convertisseur vers bus I2C. Celui permet de passer de 7 à 2 fils la connexion de l'afficheur LCD à l'arduino.
 
  
 
=== 4. Programmation ===
 
=== 4. Programmation ===

Version du 26 novembre 2016 à 13:21

Objectif

Fabrication d'un jeu de réflexe avec un circuit Arduino et des souris usagés.

Principe

Le jeu est basé sur l'utilisation des 2 boutons de la souris.

L'arduino affiche de manière aléatoire sur un écran LCD le bouton (gauche ou droite) sur lequel les joueurs doivent cliquer le plus rapidement possible. L'arduino indique le vainqueur et le retard des autres joueurs.


Fabrication étape par étape

1. Les souris

On commence avec 2 souris (2 joueurs).

Démontage des souris pour modifier leur circuit et leur cablâge pour récupérer les contacts des boutons.

Connexion à l'arduino pour détecter sur l'appuie sur les bontons.

  • Bouton gauche : fil vert
  • Bouton droit : fil bleu

Raccordement à l'arduino

  • Souris 1 - bouton gauche : pin 8
  • Souris 1 - bouton droit : pin 7
  • Souris 2 - bouton gauche : pin 6
  • Souris 2 - bouton droit : pin 5

2. Led RVB

Raccordement d'une LED Rouger/Vert/Bleu pour visualiser les tests...

  • Bleu : pin 13
  • Vert : pin 12
  • Rouge : pin 11

Code pour tester les boutons :

// pin
const int r = 11; // led rouge
const int v = 12; // led vert
const int b = 13; // led bleu
const int j1g = 8; // joueur 1 clic gauche
const int j1d = 7; // joueur 1 clic droit
const int j2g = 6; // joueur 2 clic gauche
const int j2d = 5; // joueur 2 clic droit

void setup() {
  pinMode(r, OUTPUT);
  pinMode(v, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(j1g, INPUT);
  pinMode(j1d, INPUT);
  pinMode(j2g, INPUT);
  pinMode(j2d, INPUT);


}


void loop() {
  if (digitalRead(j1g) == HIGH) {
    digitalWrite(r, LOW);  
  } else {
    digitalWrite(r, HIGH);
  }
  
  if (digitalRead(j1d) == HIGH) {
    digitalWrite(b, LOW);  
  } else {
    digitalWrite(b, HIGH);
  }
  
  if (digitalRead(j2g) == HIGH) {
    digitalWrite(v, LOW);  
  } else {
    digitalWrite(v, HIGH);
  }
  
  if (digitalRead(j2d) == HIGH) {
    digitalWrite(r, LOW);  
    digitalWrite(v, LOW);  
    digitalWrite(b, LOW);  
  } else {
    digitalWrite(r, HIGH);
    digitalWrite(v, HIGH);
    digitalWrite(b, HIGH);
  }
  
}


3. L'afficheur LCD

2 lignes - 16 caractères par ligne

Modèle compatible Hitachi 44780

Pour économiser des connecteurs de sortie sur l'arduino, nous utilisons en convertisseur vers bus I2C. Celui permet de passer de 7 à 2 fils la connexion de l'afficheur LCD à l'arduino.

Code pour tester l'afficheur


#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  

void setup() {
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Jeu de reflexe");
  lcd.setCursor(2,1);
  lcd.print("2 souris - 1 arduino");  
}


void loop() {
}



4. Programmation