Sadržaj:
Video: Ciklona LED arkadna igra: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Namjera ovog projekta bila je stvoriti jednostavnu igru koristeći Arduino koja bi bila interaktivna i zabavna za djecu. Sjećam se da je arkadna igra Cyclone jedna od mojih omiljenih arkadnih igara dok sam bila mlađa, pa sam odlučila da je ponovim. Ovo je vrlo jednostavan projekt koji se sastoji od Arduina, niza LED -ova koje se pojedinačno mogu adresirati i tipke.
Cilj igre je zaustaviti biciklističko svjetlo kada dosegne označenu (crvenu) LED diodu. Ako uspije, nivo težine će se povećati. Ako ne uspije, svjetlosni ciklus će se ponovo pokrenuti na trenutnom nivou težine.
Ovo uputstvo je bilo ogroman resurs za jezgro mog kodiranja.
Korak 1: Prikupite potrepštine
-
Glavne komponente:
- Arduino (koristio sam UNO)
- Niz pojedinačno adresabilnih LED dioda (koristio sam vezu)
- Pritisnite dugme (koristio sam vezu)
- Štampana ploča (PCB) ili matična ploča
-
Napajanje (koristio sam dva odvojena izvora napajanja, možda ćete se izvući ako ste kreativni)
- 5V 3A za LED diode
- 9V 1A za Arduino
-
Okvir:
- Kućište elektronike (izmijenio sam drveno svjetlo iz Goodwill -a)
- LED kućište (izmijenio sam vaš standardni zidni sat i izbušio rupe koristeći identifikatore minuta kao oznake rupa. Upotrijebite drveni sat ako je moguće za lakše bušenje.)
- Kućište dugmadi (koristio sam lakatnu PVC cijev)
-
Alati / drugi materijali:
- Rezervno ožičenje za vaš krug
- 10K (otporni otpornik za prekidač) i 470 ohma (za podatkovnu žicu na LED diodama)
- Bušite za stvaranje rupa u koje će se smjestiti vaše LED diode i napraviti sve potrebne rupe u vašem uređaju za prolaz žica
- Lemilica za lemljenje vašeg kola na PCB
- Pištolj za vruće ljepilo za pričvršćivanje LED dioda na vaš uređaj
- Čičak ili neko drugo sredstvo za zajedničko pričvršćivanje okvira
- Opciono zaptivke za rupe izbušene za prolaz žica
Korak 2: Otpremite kôd
Obavezno preuzmite i dodajte biblioteku "FastLED"
Jezgro koda (void loop) sastoji se od dva stanja: visoko pritisnuto dugme (Kraj igre) i nisko pritisnuto dugme (sviranje). Kada korisnik pritisne dugme, LED adresa na kojoj je svjetlo bilo zaustavljeno uspoređuje se s adresom središnje LED diode. Ako nisu isti, sva svjetla dvaput trepere crveno i trenutni nivo se ponovo pokreće. Ako su isti, cylon (skripta FastLED biblioteke) radi dva puta, nivo težine se povećava i igranje se nastavlja. Nakon što igrač pobijedi posljednji nivo, cylon trči osmi put i igra se ponovo pokreće na nivou 1.
// Igra ciklona
#include "FastLED.h" // do 50 #define NUM_LEDS 40 #define CENTER_LED 21 #define DATA_PIN 7 #define LED_TYPE WS2811 #define COLOR_ORDER RGB // raspon 0-64 #define BRIGHTNESS 50 // Definicija nivoa težine #define LAKO 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 // početna poteškoća int density = 1; // Definiranje niza LED dioda CRGB LED dioda [NUM_LEDS]; // Je li igrač pobijedio u ovoj rundi? Ova oznaka se koristi za parametre težine. bool wonThisRound = false; // Početna lokacija biciklističkog svjetla int LEDaddress = 0; // Da li igra radi? bool svira = istina; // Je li ovo prva pobjeda? bool CycleEnded = true; // Detalji dugmeta const int buttonPin = 9; int buttonState = 0; // Inicijalizacija LED biblioteke i arduino funkcija void setup () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (BRIGHTNESS); pinMode (buttonPin, INPUT); Serial.begin (9600); } // Meso i krumpir // Dva načina - Igranje i kraj igre void loop () {// END GAME buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Playing = false; // Korisnik je pritisnuo dugme i LED je prestao na dobitnoj adresi. for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Black; } LED diode [CENTER_LED] = CRGB:: Crveno; LED diode [LED adresa] = CRGB:: Zelena; FastLED.show (); if (CycleEnded = true) {int diff = abs (CENTER_LED - LEDadress); // Pronalazi udaljenost između upaljenog LED -a i središnjeg LED -a if (diff == 0) {wonThisRound = true; // Igrač je uspješno pobijedio nivo if (poteškoća! = MISSION_IMPOSSIBLE) {for (int i = 0; i <2; i ++) {cylon (); }} ako (poteškoća == MISSION_IMPOSSIBLE) {for (int i = 0; i <8; i ++) {cylon (); } poteškoća = 0; } povećatiDifficulty (); wonThisRound = false; } else {kašnjenje (1000); for (int i = 0; i <2; i ++) {flash (); }} CycleEnded = false; } LED adresa = 0; kašnjenje (250); buttonState = digitalRead (buttonPin); if (buttonState == LOW) {Playing = true; }} // IGRA SE ako (svira) {for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Black; // Isključuje sve LED diode} LED diode [CENTER_LED] = CRGB:: Crveno; // Postavlja boju LED centra na zelene LED diode [LEDaddress] = CRGB:: Green; // Postavlja cikličku LED boju na crvenu FastLED.show (); // Pokreće LEDadresu ++; // Postavlja svjetlosni ciklus na jedno po jedno LED (LEDaddress == NUM_LEDS) {LEDaddress = 0; } kašnjenje (getTime (poteškoće)); buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Playing = false; CycleEnded = true; }}} // Parametri nivoa int getTime (int diff) // Vraća vremensko kašnjenje za bazu kretanja LED -a na poteškoći {int timeValue = 0; switch (diff) {case EASY: timeValue = 100; break; slučaj SREDNJI: timeValue = 80; break; slučaj HARD: timeValue = 60; break; slučaj ON_SPEED: timeValue = 40; break; slučaj SONIC_SPEED: timeValue = 30; break; slučaj ROCKET_SPEED: timeValue = 20; break; slučaj LIGHT_SPEED: timeValue = 13; break; slučaj MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue; // Vraća iznos kašnjenja} // Dobitni parametri povećanja poteškoće void increaseDifficulty () {if (poteškoća! = MISSION_IMPOSSIBLE && wonThisRound) {poteškoća ++; }} // Lost LED Show void flash () {fill_solid (LED diode, NUM_LEDS, CRGB:: Crveno); FastLED.show (); kašnjenje (500); fill_solid (LED diode, NUM_LEDS, CRGB:: crno); FastLED.show (); kašnjenje (500); } // Pobijedio 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"); // Prvo pomaknite LED diodu u jednom smjeru za (int i = 0; i = 0; i--) {// Postavite i-tu vodilicu na crvene diode = CHSV (nijansa ++, 255, 255); // Pokaži LED diode FastLED.show (); // sada kada smo prikazali LED diode, resetirajte i'th do crne // LED diode = CRGB:: Crna; fadeall (); // Pričekajte malo prije nego što se okrenemo i ponovimo to delay (10); }}
Korak 3: Instalirajte u Fixture
U ovom odjeljku neću ulaziti u detalje. Postoji hiljadu različitih načina da prođete kroz ovaj dio i mislim da biste trebali biti kreativni kako biste izgledali kako vam se sviđa. S obzirom na to, sat je bio prilično zgodan za korištenje za postavljanje LED dioda jer je imao minute koje sam mogao koristiti kao oznake bušilice. Takođe, stakleni poklopac mi takođe omogućava da ovo koristim kao sto.
Čičak je bio vrlo koristan i za pričvršćivanje LED svjetiljke na kućište elektronike. Koristio sam i čičak na Arduinu. Ovo je bilo vrlo zgodno za izvlačenje Arduina ako ikada poželim izmijeniti kod.
Preporučuje se:
Retro arkadna stand-up igra za 2 igrača by Micro Center: 20 koraka
Retro arkada za 2 igrača Stand-Up Micro Center: Vaš lokalni Micro Center sada sadrži sve što vam je potrebno za izradu vlastitog Retro Arcade ormara zasnovanog na Raspberry Pi. Kompleti su potpuno prilagodljivi, uključuju ormarić, Raspberry Pi, dugmad, upravljačke palice, audio i video pribor i još mnogo toga. To je
Arduino igra ciklona: 5 koraka (sa slikama)
Arduino ciklonska igra: Nikada nisam igrao pravu arkadnu igru ciklona, ali sviđa mi se ideja da se igram s našim vremenom reakcije. Dizajnirao sam minijaturnu igru. Sastoji se od 32 LED diode koje tvore krug, LED diode svijetle jedna po jedna kao LED lovac. Cilj je pritisnuti dugme
POiNG! - Arduino arkadna igra!: 3 koraka
POiNG! - Arduino arkadna igra !: Gradit ćemo arkadnu igru u stilu PONG-a koja koristi dijelove iz " Najcjelovitijeg početnog kompleta UNO R3 projekta " komplet iz Elegoo Inc. Potpuno otkrivanje podataka - Većinu dijelova isporučenih za ovu uputu Elegoo je autoru dostavio
Arduino ciklon Arkadna igra: 6 koraka
Arduino ciklon Arkadna igra: Blistava blistava svjetla! Arduino! Igra! Šta još treba reći? Ova igra je bazirana na arkadnoj igri Cyclone, gdje igrač pokušava zaustaviti LED klizanje po krugu na određenom mjestu
Arduino LED laserska arkadna igra: 3 koraka (sa slikama)
Arduino LED laserska arkadna igra: U ovom uputstvu pokazat ću kako napraviti lasersku arkadnu igru koristeći LED i svjetlosne senzore. Kôd je uključen i ne trebate puno dijelova za njegovu izradu. Neću vam reći kako pravim kućište, to ćete morati sami napraviti! T