2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
Die bedoeling van hierdie projek was om 'n eenvoudige speletjie te skep met 'n Arduino wat interaktief en vermaaklik vir kinders sou wees. Ek onthou dat die Cyclone arcade game een van my gunsteling arcade games was toe ek jonger was, so ek het besluit om dit te herhaal. Dit is 'n baie eenvoudige projek wat bestaan uit 'n Arduino, 'n reeks individueel aanspreekbare LED's en 'n drukknop.
Die doel van die spel is om die fietslig te stop wanneer dit die aangeduide (rooi) LED bereik. As dit suksesvol is, sal die moeilikheidsgraad toeneem. As dit nie slaag nie, begin die ligsiklus weer op die huidige moeilikheidsgraad.
Hierdie instruksies was 'n groot bron vir die kern van my kodering.
Stap 1: Versamel voorraad
-
Hoofkomponente:
- Arduino (ek het 'n UNO gebruik)
- String van individueel aanspreekbare LED's (ek het skakel gebruik)
- Drukknoppie (ek gebruik skakel)
- Gedrukte kringbord (PCB) of broodbord
-
Kragtoevoer (ek het twee afsonderlike kragtoevoer gebruik; u kan met een wegkom as u kreatief is)
- 5V 3A vir LED's
- 9V 1A vir Arduino
-
Raamwerk:
- Elektroniese behuising (ek het 'n houtlamp van Goodwill verander)
- LED -behuising (ek het u standaard muurhorlosie en gate geboor met behulp van die minuut -identifiseerders as gatmerke. Gebruik 'n houtklok indien moontlik om die boorwerk makliker te maak.)
- Knopbehuizing (ek het 'n elmboog -PVC -pyp gebruik)
-
Gereedskap / ander materiale:
- Reserve bedrading vir u kring
- 10K (aftrekweerstand vir skakelaar) en 470 ohm (vir datadraad op LED's) weerstande
- Boor om gate te skep om u LED's te huisves en om die nodige gate in u armatuur te maak om drade deur te voer
- Soldeerbout om u stroombaan aan 'n PCB te soldeer
- Warm lijmpistool om die LED's aan u armatuur vas te maak
- Klittenband of 'n manier om die raamwerk saam te beveilig
- Pakkies is opsioneel vir gate wat geboor is om drade deur te laat
Stap 2: Laai kode op
Maak seker dat u die "FastLED" -biblioteek aflaai en byvoeg
Die kern van die kode (leemte -lus) bestaan uit twee toestande: drukknop hoog (eindspel) en drukknop laag (speel). Sodra die gebruiker op die knoppie druk, word die LED -adres waarop die lig gestop is, vergelyk met die adres van die middelste LED. As dit nie dieselfde is nie, flikker al die ligte twee keer rooi en begin die huidige vlak weer. As dit dieselfde is, hardloop cylon (FastLED -biblioteekskrif) twee keer, neem die moeilikheidsgraad toe en speel weer. Sodra die speler die laaste vlak geklop het, hardloop cylon agtste keer en begin die spel weer op vlak 1.
// Sikloon spel
#sluit "FastLED.h" // in tot 50 #define NUM_LEDS 40 #define CENTER_LED 21 #define DATA_PIN 7 #define LED_TYPE WS2811 #definieer COLOR_ORDER RGB // reeks 0-64 #definieer BRIGHTNESS 50 // Definisie van moeilikheidsgraad #definisie MAKLIK 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 // Begin moeilikheid int moeilikheid = 1; // Definieer die verskeidenheid leds CRGB -leds [NUM_LEDS]; // Het die speler hierdie ronde gewen? Hierdie etiket word gebruik vir moeilikheidsparameters. bool wonThisRound = false; // Beginplek van die fietslig int LEDaddress = 0; // Is die spel aan die gang? bool Speel = waar; // Is dit die eerste oorwinning? bool CycleEnded = waar; // Knoppiebesonderhede const int buttonPin = 9; int buttonState = 0; // Initialiseer die led -biblioteek en arduino -funksies, ongeldige opstelling () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (BRIGHTNESS); pinMode (buttonPin, INPUT); Serial.begin (9600); } // Die vleis en aartappels // Twee modi - speel en eindig spel leegloop () {// EINDE SPEL buttonState = digitalRead (buttonPin); if (buttonState == HOOG) {Speel = vals; // Gebruiker het op die knoppie gedruk, en die LED het op die wenadres gestop. for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Swart; } leds [CENTER_LED] = CRGB:: Rooi; leds [LEDaddress] = CRGB:: Groen; FastLED.show (); as (CycleEnded = true) {int diff = abs (CENTER_LED - LEDaddress); // Vind afstand tussen die verligte led en die middelste led as (diff == 0) {wonThisRound = true; // Speler slaag die vlak suksesvol as (moeilikheidsgraad! = MISSIE_IMPOSSIBEL) {vir (int i = 0; i <2; i ++) {cylon (); }} if (moeilikheid == MISSIE_IMPOSSIBEL) {vir (int i = 0; i <8; i ++) {cylon (); } moeilikheidsgraad = 0; } toename Moeilikheid (); wonThisRound = vals; } anders {vertraging (1000); vir (int i = 0; i <2; i ++) {flash (); }} CycleEnded = vals; } LED -adres = 0; vertraging (250); buttonState = digitalRead (buttonPin); if (buttonState == LOW) {Playing = true; }}} // SPEEL as (speel) {vir (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Swart; // Skakel al die leds} leds [CENTER_LED] = CRGB:: Rooi af; // Stel die kleur van die middel in op groen LED's [LED -adres] = CRGB:: Groen; // Stel die silinderende kleur in op rooi FastLED.show (); // Inisialiseer ligsiklus LED -adres ++; // Stel ligsiklus in op een led op 'n slag as (LEDaddress == NUM_LEDS) {LEDaddress = 0; } vertraging (getTime (moeilikheidsgraad)); buttonState = digitalRead (buttonPin); if (buttonState == HOOG) {Speel = vals; CycleEnded = waar; }}}} // Vlakparameters int getTime (int diff) // Wys tydvertraging vir geleide bewegingsbasis oor moeilikheid {int timeValue = 0; switch (diff) {case EASY: timeValue = 100; breek; geval MEDIUM: timeValue = 80; breek; saak HARD: timeValue = 60; breek; saak ON_SPEED: timeValue = 40; breek; saak SONIC_SPEED: timeValue = 30; breek; saak ROCKET_SPEED: timeValue = 20; breek; saak LIGHT_SPEED: timeValue = 13; breek; saak MISSION_IMPOSSIBLE: timeValue = 7; } retour timeValue; // Gee die vertragingsbedrag terug} // Wenprobleme verhoog parameters leegte verhoging Moeilikheid () {if (moeilikheid! = MISSION_IMPOSSIBLE && wonThisRound) {moeilikheid ++; }} // Verlore LED Wys leegte flits () {fill_solid (leds, NUM_LEDS, CRGB:: Rooi); FastLED.show (); vertraging (500); fill_solid (leds, NUM_LEDS, CRGB:: Swart); FastLED.show (); vertraging (500); } // Won LED Wys leegte fadeall () {vir (int i = 0; i <NUM_LEDS; i ++) {leds .nscale8 (250); }} void cylon () {static uint8_t hue = 0; Serial.print ("x"); // Skuif eers die led in een rigting vir (int i = 0; i = 0; i--) {// Stel die led in op rooi LED's = CHSV (hue ++, 255, 255); // Wys die LED's FastLED.show (); // noudat ons die leds gewys het, stel die een terug na swart // leds = CRGB:: Black; fadeall (); // Wag 'n bietjie voordat ons rondloop en dit weer doen vertraag (10); }}
Stap 3: Installeer in Fixture
Ek gaan nie in besonderhede in hierdie afdeling ingaan nie. Daar is duisend verskillende maniere om hierdie gedeelte te volg, en ek dink dat u kreatief moet wees om te laat lyk hoe u daarvan hou. Dit gesê, die horlosie was redelik gerieflik om die LED's te huisves, aangesien dit klein aanwysers het wat ek as boormerke kon gebruik. Met die glasomslag kan ek dit ook as 'n tafel gebruik.
Die klittenband was ook baie handig om die LED -armatuur aan die elektroniese behuising te bevestig. Ek het ook klittenband op die Arduino gebruik. Dit het dit baie gerieflik gemaak om die Arduino uit te trek as ek die kode ooit wil verander.
Aanbeveel:
PUNK! - Arduino Arcade Game !: 3 stappe
PUNK! - Arduino Arcade Game !: Ons bou 'n arcade-speletjie in PONG-styl wat dele van die " The Most Complete Starter Kit UNO R3 Project " kit van Elegoo Inc. Volledige bekendmaking - Die meeste dele wat vir hierdie instruksies verskaf is, is deur die skrywer deur Elegoo
Sikloon (Arduino LED -spel): 6 stappe (met foto's)
Sikloon (Arduino LED -spel): In hierdie tutoriaal leer ek u hoe u 'n LED -speletjie met baie min kode of ervaring kan skep! Ek het 'n rukkie hierdie idee gehad en uiteindelik kon ek dit skep. Dit is 'n prettige speletjie wat ons almal aan die arcade -speletjies herinner. Daar is ander tutoriale oor
Arduino Cyclone Arcade Game: 6 stappe
Arduino Cyclone Arcade Game: Knipperende flitsende ligte! Arduino! Spel! Wat meer moet gesê word? Hierdie speletjie is gebaseer op die Cyclone -arcade -speletjie, waar die speler probeer om 'n led te stop wat op 'n spesifieke plek om 'n sirkel draai
Stackers Arcade Game: 6 stappe (met foto's)
Stackers Arcade Game: Hallo ouens, vandag wil ek hierdie wonderlike arcade game wat jy kan maak met 'n klomp Ws2812b LED's en 'n mikrobeheerder/FPGA met julle deel. Behold Stack Overflow - ons hardeware -implementering van 'n klassieke arcade game. Wat begin het as 'n skoolprojek
Arduino LED Laser Arcade Game: 3 stappe (met foto's)
Arduino LED Laser Arcade Game: In hierdie instruksies sal ek demonstreer hoe u 'n Laser Arcade Game kan maak met behulp van LED- en ligsensors. Die kode is ingesluit en u benodig nie baie onderdele om dit te bou nie. Ek sal jou nie vertel hoe ek die saak bou nie; jy sal dit self moet maak! T