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 de Roulette LED DIY – Construisez une Borne d'Arcade Solo avec Arduino Nano

Composants et fournitures

LED (standard) – 6 rouges, 2 jaunes, 1 verte×9
Bouton poussoir SparkFun 12mm×1
Arduino Nano R3×1
Connecteur femelle 8 positions 1 rangée (0,1")×1
Connecteur jack DC×1

Outils et machines nécessaires

Routeur CNC

Applications et services en ligne

Arduino IDE

À propos de ce projet

Vidéo

Vue d'ensemble

Depuis un moment, je voulais créer un jeu simple et amusant pour une seule personne. C'est extrêmement simple, un seul Arduino Nano suffit. C'est la roulette LED. Le but : s'arrêter sur la LED verte, en évitant les rouges et jaunes. Facile à jouer et à fabriquer.

Jeu de Roulette LED DIY – Construisez une Borne d Arcade Solo avec Arduino Nano

Étape 1

J'ai commencé par concevoir le dispositif dans Fusion 360. La face avant contient 9 LEDs (6 rouges, 2 jaunes, 1 verte) et un espace pour un bouton tactile en bas. J'ai ensuite utilisé ma fraiseuse CNC Millright pour découper les pièces conçues.

Jeu de Roulette LED DIY – Construisez une Borne d Arcade Solo avec Arduino Nano
Jeu de Roulette LED DIY – Construisez une Borne d Arcade Solo avec Arduino Nano
Jeu de Roulette LED DIY – Construisez une Borne d Arcade Solo avec Arduino Nano

Étape 2

La mécanique du jeu : une lumière « se déplace » entre les deux bords et s'arrête à l'appui sur le bouton. Pour une réaction immédiate, j'utilise une interruption. Chaque LED correspond à un index dans un tableau parcouru cycliquement. La LED courante a sa propre variable. Un délai entre chaque étape correspond à la difficulté. Au démarrage, l'utilisateur sélectionne la difficulté en appuyant sur le bouton pour réduire le délai entre chaque changement de LED. Après l'allumage de la bonne LED, un double-clic la verrouille.

Étape 3

Jeu de Roulette LED DIY – Construisez une Borne d Arcade Solo avec Arduino Nano

J'ai poncé les pièces en contreplaqué pour une belle finition et des angles arrondis. Puis assemblé le tout à la colle chaude.

Conclusion

Jeu de Roulette LED DIY – Construisez une Borne d Arcade Solo avec Arduino Nano

Maintenant, quand j'ai envie d'un jeu simple, que ce soit en voyage ou pour décrocher d'un écran, cet appareil me offre une excellente pause. Je peux aussi le rendre multijoueur : chaque LED éloignée du vert rapporte des points, le joueur avec le moins de points à la fin gagne.

Code

Code (C/C++)

/* Utilise broches 2-10
Bibliothèque TTBOUNCE ici : https://github.com/TOLDOTECHNIK/TTBOUNCE */
#include <TTBOUNCE.h>

int delay_time = 0;
const uint8_t led_array[9] = {4,3,5,6,7,8,9,10,11};
const uint8_t button = 2;
uint8_t difficulty = 0;
uint8_t current_led = 0;
bool dir_flag = true; // true = droite, false = gauche
bool game_ended = false;
bool is_win = false;
bool is_finished_selecting = false;

TTBOUNCE b = TTBOUNCE(button);

void doubleClick() {
  Serial.println("double click");
  is_finished_selecting = true;
  delay_time = floor(500/(difficulty+1)); // Formule: délai (ms) = 500 / (difficulté + 1)
  Serial.println("difficulty: " + String(delay_time));
  sweep();
}

void click() {
  Serial.print("Click | ");
  digitalWrite(led_array[difficulty], LOW);
  difficulty++;
  if (difficulty > 8) difficulty = 0;
  digitalWrite(led_array[difficulty], HIGH);
  Serial.println("Difficulty is: " + String(difficulty));
  delay(100);
}

void setup() {
  Serial.begin(9600);
  b.attachDoubleClick(doubleClick);
  b.attachClick(click);
  b.setActiveLow();
  b.enablePullup();
  for (int i = 0; i < 9; i++) {
    pinMode(led_array[i], OUTPUT);
  }
  sweep();
  pulse();
  difficulty = 0;
  digitalWrite(led_array[difficulty], HIGH);
  while (!is_finished_selecting) {
    b.update();
  }
  b.update();
  pinMode(button, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(button), button_pressed, FALLING);
  delay(1000);
}

void loop() {
  if (!game_ended) {
    move_led();
    delay(delay_time);
  } else {
    Serial.println(game_ended);
    Serial.println("Game over");
    if (is_win) {
      Serial.println("you won");
      for (int i = 0; i < 5; i++) {
        pulse();
        delay(100);
      }
    }
    sweep();
    game_ended = false;
    is_win = false;
    delay(2000);
  }
}

void move_led() {
  digitalWrite(led_array[current_led], LOW);
  if (current_led == 8) {
    dir_flag = false;
    current_led -= 1;
  } else if (current_led == 0) {
    dir_flag = true;
    current_led += 1;
  } else if (dir_flag) {
    current_led += 1;
  } else {
    current_led -= 1;
  }
  digitalWrite(led_array[current_led], HIGH);
}

void pulse() {
  for (int i = 0; i < 9; i++) digitalWrite(led_array[i], HIGH);
  delay(100);
  for (int i = 0; i < 9; i++) digitalWrite(led_array[i], LOW);
}

void sweep() {
  for (int i = 0; i < 9; i++) {
    digitalWrite(led_array[i], HIGH);
    delay(50);
    digitalWrite(led_array[i], LOW);
  }
  for (int i = 8; i >= 0; i--) {
    digitalWrite(led_array[i], HIGH);
    delay(50);
    digitalWrite(led_array[i], LOW);
  }
}

void button_pressed() {
  Serial.println("Button pressed on LED: " + String(current_led));
  game_ended = true;
  if (current_led == 4) is_win = true;
  else is_win = false;
  current_led = 0;
  delay(500);
}

Schémas

Jeu de Roulette LED DIY – Construisez une Borne d Arcade Solo avec Arduino Nano

Processus de fabrication

  1. Construire un jeu gyroscopique temps réel avec Arduino Nano et capteur MPU-6050
  2. Dé numérique Arduino sur écran LCD 16x2 – Générateur aléatoire à bouton poussoir
  3. Créer votre propre jeu de roulette à 37 LED avec Arduino Nano
  4. Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance
  5. Jeu Tetris sur Matrice LED 16×8 DIY avec Arduino Nano
  6. Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
  7. Construire un robot quadrupède Arduino intelligent : guide étape par étape
  8. Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano
  9. Contrôle fluide de la luminosité LED avec Bolt IoT et Arduino UNO