Table des matières:
- Étape 1: Rassemblez les fournitures
- Étape 2: Télécharger le code
- Étape 3: Installer dans le luminaire
Vidéo: Jeu d'arcade Cyclone LED : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
L'intention de ce projet était de créer un jeu simple utilisant un Arduino qui serait interactif et divertissant pour les enfants. Je me souviens que le jeu d'arcade Cyclone était l'un de mes jeux d'arcade préférés quand j'étais plus jeune, alors j'ai décidé de le reproduire. Il s'agit d'un projet très simple qui se compose d'un Arduino, d'une chaîne de LED adressables individuellement et d'un bouton-poussoir.
Le but du jeu est d'arrêter le feu de vélo lorsqu'il atteint la LED (rouge) indiquée. En cas de succès, le niveau de difficulté augmentera. En cas d'échec, le cycle lumineux redémarrera au niveau de difficulté actuel.
Cette instructable était une ressource énorme pour le noyau de mon codage.
Étape 1: Rassemblez les fournitures
-
Composants principaux:
- Arduino (j'ai utilisé un UNO)
- Chaîne de LED adressables individuellement (j'ai utilisé le lien)
- Bouton poussoir (j'ai utilisé le lien)
- Carte de circuit imprimé (PCB) ou maquette
-
Alimentation (j'ai utilisé deux alimentations séparées, vous pouvez vous en tirer avec une si vous êtes créatif)
- 5V 3A pour LED
- 9V 1A pour Arduino
-
Cadre:
- Boîtier électronique (j'ai modifié un luminaire en bois de Goodwill)
- Boîtier LED (j'ai modifié votre horloge murale standard et j'ai percé des trous en utilisant les identifiants des minutes comme marquage des trous. Utilisez une horloge en bois si possible pour faciliter le perçage.)
- Boîtier de bouton (j'ai utilisé un tuyau en PVC coudé)
-
Outils / Autres matériaux:
- Câblage de rechange pour votre circuit
- Résistances 10K (résistance pull-down pour commutateur) et 470 ohms (pour fil de données sur LED)
- Percez pour créer des trous pour loger vos LED et faire tous les trous nécessaires dans votre luminaire pour faire passer les fils
- Fer à souder pour souder votre circuit à un PCB
- Pistolet à colle chaude pour fixer les LED à votre luminaire
- Velcro ou un moyen de fixer le cadre ensemble
- Joints en option pour les trous percés pour le passage des fils
Étape 2: Télécharger le code
Assurez-vous de télécharger et d'ajouter la bibliothèque "FastLED"
Le noyau du code (boucle vide) se compose de deux états: bouton poussoir haut (End Game) et bouton poussoir bas (Playing). Une fois que l'utilisateur appuie sur le bouton, l'adresse de la LED sur laquelle la lumière a été arrêtée est comparée à l'adresse de la LED centrale. S'ils ne sont pas les mêmes, tous les voyants clignotent deux fois en rouge et le niveau en cours redémarre. S'ils sont identiques, cylon (script de la bibliothèque FastLED) s'exécute deux fois, le niveau de difficulté augmente et la lecture reprend. Une fois que le joueur a battu le dernier niveau, cylon s'exécute huitième fois et le jeu redémarre au niveau 1.
//Jeu Cyclone
#include "FastLED.h" //jusqu'à 50 #define NUM_LEDS 40 #define CENTER_LED 21 #define DATA_PIN 7 #define LED_TYPE WS2811 #define COLOR_ORDER RGB //plage 0-64 #define BRIGHTNESS 50 //Définition des niveaux de difficulté #define FACILE 1 #define MEDIUM 2 #define HARD 3 #define ON_SPEED 4 #define SONIC_SPEED 5 #define ROCKET_SPEED 6 #define LIGHT_SPEED 7 #define MISSION_IMPOSSIBLE 8 //Début de difficulté int difficulté = 1; // Définit le tableau de leds CRGB leds[NUM_LEDS]; // Le joueur a-t-il gagné cette manche ? Cette balise est utilisée pour les paramètres de difficulté. bool wonThisRound = false; // Emplacement de départ de l'éclairage cyclable int LEDaddress = 0; // Le jeu fonctionne-t-il ? bool Lecture = vrai; // Est-ce la première victoire ? bool CycleEnded = vrai; // Détails du bouton const int buttonPin = 9; int buttonState = 0; // Initialiser la bibliothèque led et les fonctions arduino void setup() { FastLED.addLeds(leds, NUM_LEDS); FastLED.setBrightness(LUMINOSITÉ); pinMode(boutonPin, INPUT); Serial.begin(9600); } // La viande et les pommes de terre //Deux modes - Lecture et fin de partie void loop() { //END GAME buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { Playing = false; //L'utilisateur a appuyé sur le bouton et la LED s'est arrêtée sur l'adresse gagnante. for (int i = 0; i < NUM_LEDS; i++) { leds = CRGB::Black; } leds[CENTER_LED] = CRGB::Rouge; leds[LEDaddress] = CRGB::Vert; FastLED.show(); if (CycleEnded = true) { int diff = abs(CENTER_LED - LEDaddress); //Trouve la distance entre la led allumée et la led centrale if (diff == 0) { wonThisRound = true; //Le joueur a réussi à battre le niveau if (difficulté != MISSION_IMPOSSIBLE) { for (int i = 0; i < 2; i++) { cylon(); } } if (difficulté == MISSION_IMPOSSIBLE) { pour (int i = 0; i < 8; i++) { cylon(); } difficulté = 0; } augmenterDifficulté(); gagnéThisRound = false; } else { délai(1000); for (int i = 0; i < 2; i++) { flash(); } } CycleEnded = false; } LEDadresse = 0; retard (250); buttonState = digitalRead (boutonPin); if (buttonState == LOW) { Playing = true; } } // JOUER if(Jouer) { for (int i = 0; i < NUM_LEDS; i++) { leds = CRGB::Black; //Éteint toutes les leds } leds[CENTER_LED] = CRGB::Red; //Définit la couleur de la led centrale sur les leds vertes[LEDaddress] = CRGB::Green; // Définit la couleur de la led cyling sur rouge FastLED.show(); //Initialisation du cycle lumineux LEDaddress++; //Définit le cycle d'éclairage sur une LED à la fois if (LEDaddress == NUM_LEDS) { LEDaddress = 0; } delay(getTime(difficulté)); buttonState = digitalRead (boutonPin); if (buttonState == HIGH) { Playing = false; CycleEnd = vrai; } } } //Paramètres de niveau int getTime(int diff) // Retourne le délai pour le mouvement de la led en fonction de la difficulté { int timeValue = 0; switch (diff) { case EASY: timeValue = 100; Pause; cas MEDIUM: timeValue = 80; Pause; cas HARD: timeValue = 60; Pause; cas ON_SPEED: timeValue = 40; Pause; cas SONIC_SPEED: timeValue = 30; Pause; cas ROCKET_SPEED: timeValue = 20; Pause; cas LIGHT_SPEED: timeValue = 13; Pause; cas MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue;// Renvoie le montant du retard } //Paramètres d'augmentation de la difficulté gagnante void AugmentationDifficulté() { if (difficulté != MISSION_IMPOSSIBLE && wonThisRound) { difficulté++; } } //Lost LED Show void flash() { fill_solid(leds, NUM_LEDS, CRGB::Red); FastLED.show(); retard (500); fill_solid(leds, NUM_LEDS, CRGB::Black); FastLED.show(); retard (500); } //Won LED Show void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds.nscale8(250); } } void cylon() { static uint8_t hue = 0; Serial.print("x"); // Faites d'abord glisser la led dans une direction for(int i = 0; i = 0; i--) { // Réglez la ième led sur leds rouges = CHSV(hue++, 255, 255); // Affiche les leds FastLED.show(); // maintenant que nous avons affiché les leds, réinitialisez la ième led au noir // leds = CRGB::Black; fadeall(); // Attendez un peu avant de boucler et de recommencer delay(10); } }
Étape 3: Installer dans le luminaire
Je ne vais pas entrer dans les détails dans cette section. Il y a mille façons différentes d'aborder cette partie et je pense que vous devriez être créatif pour que cela ressemble à ce que vous l'aimez. Cela étant dit, l'horloge était assez pratique à utiliser pour loger les LED car elle avait des indicateurs minuscules que j'ai pu utiliser comme repères de perçage. De plus, le couvercle en verre me permet également de l'utiliser comme table.
Le velcro était également très utile pour fixer le luminaire LED au luminaire du boîtier électronique. J'ai également utilisé du velcro sur l'Arduino. Cela l'a rendu très pratique pour retirer l'Arduino si jamais je veux modifier le code.
Conseillé:
Jeu Arduino Cyclone : 5 étapes (avec photos)
Arduino Cyclone Game : Je n'ai jamais joué au vrai jeu d'arcade Cyclone mais j'aime l'idée de jouer avec notre temps de réaction. J'ai conçu un jeu miniaturisé. Il se compose de 32 LED formant un cercle, les LED s'allument une à une comme un chenillard à LED. Le but est d'appuyer sur un bouton
Jeu Simon - Jeu amusant ! : 5 étapes
Simon Game - Fun Game!: Reference: HereAprès un long week-end, vous devez vraiment vous efforcer d'accomplir toutes les tâches et le travail dont vous êtes responsable. Il est temps pour nous d'entraîner notre cerveau, n'est-ce pas ? Outre ces jeux ennuyeux et dénués de sens, il existe un jeu appelé Simon Game
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
Cyclone (jeu Arduino LED): 6 étapes (avec photos)
Cyclone (Arduino LED Game) : Dans ce tutoriel, je vais vous apprendre à créer un jeu LED avec très peu de code ou d'expérience ! J'ai eu cette idée pendant un moment et j'ai finalement eu le temps de la créer. C'est un jeu amusant qui nous rappelle tous les jeux d'arcade. Il y a d'autres tutoriels t
Jeu d'arcade Arduino Cyclone : 6 étapes
Arduino Cyclone Arcade Game : des lumières clignotantes clignotantes ! Arduino ! Jeu! Que dire de plus ? Ce jeu est basé sur le jeu d'arcade Cyclone, où le joueur essaie d'arrêter une LED qui défile autour d'un cercle à un endroit spécifique