Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Jeu du fil bougeur amélioré avec compteur de score intégré – Projet Arduino Nano

Composants et fournitures

Composant Quantité
Arduino Nano R3 1
Buzzer 1
LED 5 mm rouge 1
LED 5 mm verte 1
Registre à décalage Texas Instruments SN74HC595 (série vers parallèle) 1
Afficheur 7 segments LED rouge 1
Résistance 221 Ω 10
Pile 9V (générique) 1

Outils et machines nécessaires

À propos de ce projet

Après avoir bidouillé avec Arduino pour passer le temps, j'ai décidé de créer une version améliorée du classique jeu du fil bougeur qui compte vos échecs et « pète un câble » si vous touchez le fil 10 fois !

Voici une vidéo de moi-même échouant à mon propre jeu :

Le code source est divisé en trois fichiers.

Dans le code, un « délai de grâce » de 500 ms est défini après chaque échec. Vous pouvez le modifier pour accorder plus de répit au joueur.

J'ai aussi remarqué que les LED sont un peu trop brillantes ! N'hésitez pas à remplacer les deux résistances par des valeurs plus élevées. Les miennes sont d'environ 100 Ω.

Pour l'anneau, j'ai utilisé l'extrémité d'un porte-clés. L'avantage est qu'on peut l'ouvrir et n'a pas à refaire tout le parcours.

J'espère que vous apprécierez mon projet !

Code

nervous_meter_score.ino
int latchPin = 3; // ST_CP [RCK] sur 74HC595
int clockPin = 4; // SH_CP [SCK] sur 74HC595
int dataPin = 2;  // DS [S1] sur 74HC595
const int STOP_LED = 6;
const int GO_LED = 7;
const int BUZZ = 8;
const int TOUCH = 10;
const int fail_threshold = 9;

enum Status { STOP = 0, GO = 1 };

void setup() {
  Serial.begin(9600);
  displayInitialSetup();
  gameInitialSetup();
}

Status status = GO;
int failCounter = 0;

void loop() {
  while (failCounter > fail_threshold) {
    gameover();
  }
  switch (status) {
    case GO:
      digitalWrite(GO_LED, HIGH);
      digitalWrite(STOP_LED, LOW);
      digitalWrite(BUZZ, LOW);
      if (digitalRead(TOUCH) == HIGH) {
        status = STOP;
      }
      break;
    case STOP:
      digitalWrite(GO_LED, LOW);
      failCounter++;
      if (failCounter > fail_threshold) break;
      displayDigit(failCounter);
      Serial.println(failCounter);
      failAlarm();
      status = GO;
      break;
  }
}

byte seg_spin[6] = { B10000000, B01000000, B00100000, B00010000, B00001000, B00000100 };

void gameover() {
  for (int i=0; i<6; i++) {
    digitalWrite(BUZZ, HIGH);
    delay(5);
    digitalWrite(BUZZ, LOW);
    delay(50);
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, LSBFIRST, seg_spin[i]);
    digitalWrite(latchPin, HIGH);
    delay(10);
  }
}
score_display.ino
byte seg_digits[10] = {
  B11111100, // 0
  B01100000, // 1
  B11011010, // 2
  B11110010, // 3
  B01100110, // 4
  B10110110, // 5
  B10111110, // 6
  B11100000, // 7
  B11111110, // 8
  B11100110  // 9
};

void displayDigit(int x) {
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, seg_digits[x]);
  digitalWrite(latchPin, HIGH);
}

void displayInitialSetup() {
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  displayDigit(0);
}
game.ino
void gameInitialSetup() {
  pinMode(STOP_LED, OUTPUT);
  pinMode(GO_LED, OUTPUT);
  pinMode(BUZZ, OUTPUT);
  pinMode(TOUCH, HIGH);
  digitalWrite(TOUCH, LOW);
}

void failAlarm() {
  digitalWrite(STOP_LED, HIGH);
  beep();
  delay(150);
  digitalWrite(STOP_LED, LOW);
  digitalWrite(BUZZ, LOW);
  delay(500);
}

void beep() {
  for(int i=0; i<3; i++) {
    digitalWrite(BUZZ, HIGH);
    delay(50);
    digitalWrite(BUZZ, LOW);
    delay(50);
  }
}

Schéma

Gardez à l'esprit que la broche D10 reliée au 5V constitue un échec déclenchant le buzzer et le compteur. Le schéma ne permet pas de le montrer directement. Adaptez votre câblage et structure en conséquence !

Jeu du fil bougeur amélioré avec compteur de score intégré – Projet Arduino Nano

Processus de fabrication

  1. Le grillage en fil de tungstène réagit-il avec l'air ? Aperçu technique
  2. L'art et l'artisanat des tiares : histoire, matériaux et design moderne
  3. Le fil barbelé expliqué : histoire, construction et usages modernes
  4. Panneau de contrôle Arduino Nano pour Flight Simulator 2020 – Affichage LCD et CDI
  5. Panneau commutateurs et LED pour Microsoft Flight Simulator 2020 basé sur Arduino
  6. Python Counter dans collections : comptage efficace, mise à jour et opérations arithmétiques
  7. Maîtriser l'insertion de fils dans les projets électriques E3.series avec E3.cable
  8. Kit MOSMusic : MOSFET, Arduino et plus pour éclairage musical
  9. Solutions Wire EDM pionnières pour production complexe moules et matrices