Innehållsförteckning:
Video: Cyklon LED Arcade Game: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Avsikten med detta projekt var att skapa ett enkelt spel med en Arduino som skulle vara interaktiv och underhållande för barn. Jag kommer ihåg att Cyclone arkadespel var ett av mina favorit arkadspel när jag var yngre, så jag bestämde mig för att replikera det. Detta är ett mycket enkelt projekt som består av en Arduino, sträng av individuellt adresserbara lysdioder och en tryckknapp.
Målet med spelet är att stoppa cykelljuset när det når den angivna (röda) lysdioden. Om det lyckas kommer svårighetsgraden att öka. Om det inte lyckas kommer ljuscykeln att starta om vid den aktuella svårighetsgraden.
Denna instruerbara var en enorm resurs för kärnan i min kodning.
Steg 1: Samla förbrukningsmaterial
-
Huvudkomponenter:
- Arduino (jag använde en UNO)
- Sträng av individuellt adresserbara lysdioder (jag använde länk)
- Tryckknapp (jag använde länk)
- Tryckt kretskort (PCB) eller brödbräda
-
Strömförsörjning (jag använde två separata nätaggregat, du kan komma undan med en om du är kreativ)
- 5V 3A för lysdioder
- 9V 1A för Arduino
-
Ramverk:
- Elektronikhus (jag modifierade en trälampa från Goodwill)
- LED -hus (jag modifierade din vanliga väggklocka och borrade hål med hjälp av minutidentifierarna som hålmarkeringar. Använd om möjligt en träklocka för att underlätta borrningen.)
- Knapphölje (jag använde ett armbåge PVC -rör)
-
Verktyg / andra material:
- Reservkablar för din krets
- 10K (neddragningsmotstånd för omkopplare) och 470 ohm (för datakabel på lysdioder) motstånd
- Borra för att skapa hål för att hysa dina lysdioder och för att göra nödvändiga hål i din armatur för att leda igenom ledningar
- Lödkolv för lödning av din krets till ett kretskort
- Het limpistol för att fästa lysdioderna på din armatur
- Kardborre eller något sätt att säkra ramverket tillsammans
- Tätningar som tillval för hål som borrats för att ledningar ska passera
Steg 2: Ladda upp kod
Se till att du laddar ner och lägger till "FastLED" -biblioteket
Kärnan i koden (void loop) består av två tillstånd: tryckknapp hög (slutspel) och tryckknapp låg (uppspelning). När användaren trycker på knappen jämförs den LED -adress som lampan stoppades på med adressen för den centrala lysdioden. Om de inte är desamma blinkar alla lampor rött två gånger och den aktuella nivån startar om. Om de är desamma körs cylon (FastLED -bibliotekskript) två gånger, svårighetsgraden ökar och spelet fortsätter. När spelaren slår den sista nivån kör cylon åttonde gånger och spelet startar om på nivå 1.
// Cyklonspel
#inkludera "FastLED.h" // upp till 50 #define NUM_LEDS 40 #define CENTER_LED 21 #define DATA_PIN 7 #define LED_TYPE WS2811 #define COLOR_ORDER RGB // intervall 0-64 #define BRIGHTNESS 50 // Definition av svårighetsgrader #define Lätt 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 // Startsvårigheter svårighetsgrad = 1; // Definiera matrisen av leds CRGB -leds [NUM_LEDS]; // Vann spelaren den här omgången? Denna tagg används för svårighetsparametrar. bool wonThisRound = false; // Startplats för cykelljuset int LEDaddress = 0; // Spelar spelet? bool Spela = sant; // Är detta den första vinsten? bool CycleEnded = true; // Knappdetaljer const int buttonPin = 9; int buttonState = 0; // Initiera ledbiblioteket och arduino -funktioner ogiltiga inställningar () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (BRIGHTNESS); pinMode (buttonPin, INPUT); Serial.begin (9600); } // Köttet och potatisen // Två lägen - Spela och avsluta spel void loop () {// END GAME buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Playing = false; // Användaren har tryckt på knappen och lysdioden har stannat på den vinnande adressen. för (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Svart; } leds [CENTER_LED] = CRGB:: Röd; leds [LEDaddress] = CRGB:: Grön; FastLED.show (); if (CycleEnded = true) {int diff = abs (CENTER_LED - LEDaddress); // Hittar avståndet mellan den tända lysdioden och den mellersta lysdioden om (diff == 0) {wonThisRound = true; // Spelaren lyckades slå nivån om (svårighet! = MISSION_IMPOSSIBLE) {för (int i = 0; i <2; i ++) {cylon (); }} if (svårighet == MISSION_IMPOSSIBLE) {för (int i = 0; i <8; i ++) {cylon (); } svårighet = 0; } öka svårigheten (); wonThisRound = false; } annat {fördröjning (1000); för (int i = 0; i <2; i ++) {flash (); }} CycleEnded = false; } LEDadress = 0; fördröjning (250); buttonState = digitalRead (buttonPin); if (buttonState == LOW) {Playing = true; }} // SPELAR om (spelar) {för (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Black; // Stänger av alla leds} leds [CENTER_LED] = CRGB:: Röd; // Ställer mittledd färg till gröna lysdioder [LEDaddress] = CRGB:: Grön; // Ställer in cylindrig led -färg till röd FastLED.show (); // Initierar ljuscykel LEDaddress ++; // Ställer in ljuscykeln till en led i taget om (LEDaddress == NUM_LEDS) {LEDaddress = 0; } fördröjning (getTime (svårighet)); buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Playing = false; CycleEnded = true; }}} // Nivåparametrar int getTime (int diff) // Returnerar tidsfördröjning för LED -rörelsebas på svårighetsgrad {int timeValue = 0; switch (diff) {case EASY: timeValue = 100; ha sönder; fall MEDIUM: timeValue = 80; ha sönder; fall HARD: timeValue = 60; ha sönder; fall ON_SPEED: timeValue = 40; ha sönder; fall SONIC_SPEED: timeValue = 30; ha sönder; fall ROCKET_SPEED: timeValue = 20; ha sönder; fall LIGHT_SPEED: timeValue = 13; ha sönder; fall MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue; // Returnera fördröjningsbeloppet} // Vinningssvårigheter öka parametrarna void ökaDifidity () {if (svårighet! = MISSION_IMPOSSIBLE && wonThisRound) {svårighet ++; }} // Förlorad LED Visa tomrumsblixt () {fill_solid (leds, NUM_LEDS, CRGB:: Röd); FastLED.show (); fördröjning (500); fill_solid (leds, NUM_LEDS, CRGB:: Black); FastLED.show (); fördröjning (500); } // Vann LED Visa void fadeall () {för (int i = 0; i <NUM_LEDS; i ++) {leds .nscale8 (250); }} void cylon () {statisk uint8_t nyans = 0; Serial.print ("x"); // Skjut först lysdioden i en riktning för (int i = 0; i = 0; i--) {// Ställ in den första ledningen till röda lysdioder = CHSV (nyans ++, 255, 255); // Visa lysdioderna FastLED.show (); // nu när vi har visat lysdioderna, återställ ith led till svart // leds = CRGB:: Black; fadeall (); // Vänta lite innan vi går runt och gör det igen fördröjning (10); }}
Steg 3: Installera i fixtur
Jag tänker inte gå in på detaljer i det här avsnittet. Det finns tusen olika sätt att gå om den här delen och jag tycker att du ska vara kreativ för att få det att se ut som du gillar det. Med detta sagt var klockan ganska bekväm att använda för att hysa lysdioderna eftersom den hade små indikatorer som jag kunde använda som borrmarkeringar. Glaslocket låter mig också använda detta som ett bord.
Kardborrbandet var också mycket användbart för att fästa LED -armaturen till elektronikhuset. Jag använde också kardborre på Arduino. Detta gjorde det mycket bekvämt att dra ut Arduino om jag någonsin vill ändra koden.
Rekommenderad:
POING! - Arduino Arcade Game !: 3 steg
POING! - Arduino Arcade Game !: Vi bygger ett arkadespel i PONG-stil som använder delar från " The Most Complete Starter Kit UNO R3 Project " kit från Elegoo Inc. Full Disclosure - De flesta delar som levererades för denna instruktionsbok levererades till författaren av Elegoo
Cyklon (Arduino LED -spel): 6 steg (med bilder)
Cyklon (Arduino LED -spel): I denna handledning kommer jag att lära dig hur du skapar ett LED -spel med väldigt lite kod eller erfarenhet! Jag hade den här idén ett tag och kom till slut att skapa den. Det är ett roligt spel som påminner oss alla om arkadspel. Det finns andra handledning
Arduino Cyclone Arcade Game: 6 steg
Arduino Cyclone Arcade Game: Blinkande flashiga lampor! Arduino! Spel! Vad mer behöver sägas? Detta spel är baserat på Cyclone -arkadspelet, där spelaren försöker stoppa en LED -rullning runt en cirkel på en viss plats
Stackers Arcade Game: 6 steg (med bilder)
Stackers Arcade Game: Hej killar, idag vill jag dela med dig detta fantastiska arkadspel som du kan göra med ett gäng Ws2812b lysdioder och en mikrokontroller/FPGA. Behold Stack Overflow - vår hårdvaruimplementering av ett klassiskt arkadspel. Vad började som ett skolprojekt
Arduino LED Laser Arcade Game: 3 steg (med bilder)
Arduino LED Laser Arcade Game: I detta instruerbara ska jag demonstrera hur man gör ett Laser Arcade Game med hjälp av LED- och ljussensorer. Koden ingår och du behöver inte många delar för att bygga den. Jag kommer inte att berätta för dig hur jag bygger fallet, du måste göra det själv! T