Talaan ng mga Nilalaman:
Video: Cyclone LED Arcade Game: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Ang layunin ng proyektong ito ay upang lumikha ng isang simpleng laro gamit ang isang Arduino na magiging interactive at nakakaaliw para sa mga bata. Naaalala ko ang laro ng Cyclone arcade na isa sa aking mga paboritong arcade game noong bata pa ako, kaya't napagpasyahan kong gayahin ito. Ito ay isang napaka-simpleng proyekto na binubuo ng isang Arduino, string ng mga indibidwal na adressable LEDs, at isang push button.
Ang layunin ng laro ay upang ihinto ang ilaw ng pagbibisikleta kapag naabot nito ang ipinahiwatig na (pula) na LED. Kung matagumpay, tataas ang antas ng kahirapan. Kung hindi matagumpay, ang light cycle ay magsisimulang muli sa kasalukuyang antas ng kahirapan.
Ang itinuturo na ito ay isang malaking mapagkukunan para sa core ng aking pag-coding.
Hakbang 1: Ipunin ang Mga Pantustos
-
Pangunahing Mga Bahagi:
- Arduino (Gumamit ako ng UNO)
- String ng mga indibidwal na maaaring addressing LEDs (Gumamit ako ng link)
- Push button (ginamit ko ang link)
- Naka-print circuit board (PCB) o breadboard
-
Power Supply (Gumamit ako ng dalawang magkakahiwalay na power supply, maaari kang makawala sa isa kung malikhain ka)
- 5V 3A para sa LEDs
- 9V 1A para sa Arduino
-
Framework:
- Pabahay ng electronics (binago ko ang isang kabit na gawa sa lampara mula sa Goodwill)
- LED na pabahay (binago ko ang iyong karaniwang relo sa dingding at nag-drill ng mga butas gamit ang mga minutong identifier bilang marka ng butas. Gumamit ng kahoy na orasan kung posible upang gawing mas madali ang pagbabarena.)
- Pabahay ng butones (Gumamit ako ng isang siko ng tubo ng PVC)
-
Mga tool / Iba Pang Mga Kagamitan:
- Ekstrang mga kable para sa iyong circuit
- 10K (pull-down risistor para sa switch) at 470 ohm (para sa data wire sa LEDs) resistors
- Mag-drill para sa paglikha ng mga butas upang maitabi ang iyong mga LED at at gumawa ng anumang kinakailangang mga butas sa iyong kabit upang mapasa ang mga wire
- Panghinang na bakal para sa paghihinang ng iyong circuit sa isang PCB
- Mainit na baril ng pandikit para sa pag-secure ng mga LED sa iyong kabit
- Ang Velcro o ilang paraan ng pag-secure ng balangkas na magkasama
- Ang mga gasket ay opsyonal para sa mga butas na na-drill para dumaan ang mga wire
Hakbang 2: I-upload ang Code
Tiyaking nai-download at naidagdag mo ang "FastLED" library
Ang core ng code (void loop) ay binubuo ng dalawang estado: push button high (End Game) at push button na mababa (Playing). Kapag ang gumagamit ay pinindot ang pindutan, ang LED address na ang ilaw ay tumigil sa ay inihambing sa address ng center LED. Kung ang mga ito ay hindi pareho, ang lahat ng mga ilaw ay nag-flash pula ng dalawang beses at ang kasalukuyang antas ay restart. Kung magkatulad ang mga ito, tatakbo nang dalawang beses ang cylon (FastLED library script), tumataas ang antas ng kahirapan, at ipinagpatuloy ang paglalaro. Kapag natalo ng manlalaro ang huling antas, tumatakbo ang silon ng ikawalong beses at ang laro ay nagsisimula muli sa antas 1.
// Cyclone Game
# isama ang "FastLED.h" // hanggang sa 50 # tukuyin ang NUM_LEDS 40 #define CENTER_LED 21 #define DATA_PIN 7 #define LED_TYPE WS2811 #define COLOR_ORDER RGB // range 0-64 #define BRIGHTNESS 50 // Kahulugan ng mga antas ng kahirapan #define Madaling 1 #tukoy MEDIUM 2 # tukuyin HARD 3 # tukuyin ON_SPEED 4 # tukuyin ang SONIC_SPEED 5 # tukuyin ang ROCKET_SPEED 6 #define LIGHT_SPEED 7 #define MISSION_IMPOSSIBLE 8 // Simula ng kahirapan int kahirapan = 1; // Tukuyin ang hanay ng mga leds CRGB leds [NUM_LEDS]; // Nanalo ba ang manlalaro sa pag-ikot na ito? Ginamit ang tag na ito para sa mga parameter ng paghihirap. bool wonThisRound = false; // Simula ng lokasyon ng ilaw sa pagbibisikleta int LEDaddress = 0; // Tumatakbo ba ang laro? bool Playing = totoo; // Ito ba ang unang panalo? bool CycleEnded = totoo; // Mga detalye ng pindutan const int buttonPin = 9; int buttonState = 0; // Initialize the led library and arduino functions void setup () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBightness (BRIGHTNESS); pinMode (buttonPin, INPUT); Serial.begin (9600); } // Ang karne at patatas // Two Mode - Playing and End Game void loop () {// END GAME buttonState = digitalRead (buttonPin); kung (buttonState == MATAAS) {Playing = false; // Pinindot ng gumagamit ang pindutan, at huminto ang LED sa nanalong address. para sa (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Itim; } leds [CENTER_LED] = CRGB:: Pula; leds [LEDaddress] = CRGB:: Green; FastLED.show (); kung (CycleEnded = true) {int diff = abs (CENTER_LED - LEDaddress); // Nakahanap ng distansya sa pagitan ng naiilaw na led at ng center led kung (diff == 0) {wonThisRound = true; // Matagumpay na natalo ng player ang antas kung (kahirapan! = MISSION_IMPOSSIBLE) {para sa (int i = 0; i <2; i ++) {cylon (); }} kung (kahirapan == MISSION_IMPOSSIBLE) {para sa (int i = 0; i <8; i ++) {cylon (); } kahirapan = 0; } dagdaganPagkakahirapan (); wonThisRound = false; } iba pa {antala (1000); para sa (int i = 0; i <2; i ++) {flash (); }} CycleEnded = false; } LEDaddress = 0; pagkaantala (250); buttonState = digitalRead (buttonPin); kung (buttonState == LOW) {Playing = true; }} // PLAYING if (Playing) {for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Itim; // Patayin ang lahat ng leds} leds [CENTER_LED] = CRGB:: Pula; // Sets center led color to green leds [LEDaddress] = CRGB:: Green; // Sets cyling led color to red FastLED.show (); // Pinasimulan ang light cycle LEDaddress ++; // Nagtatakda ng light cycle sa isa na pinamumunuan kung (LEDaddress == NUM_LEDS) {LEDaddress = 0; } antala (getTime (kahirapan)); buttonState = digitalRead (buttonPin); kung (buttonState == MATAAS) {Playing = false; CycleEnded = totoo; }}} // Mga Antas ng Parameter int getTime (int diff) // Nagbabalik ng pagkaantala ng oras para sa humantong kilusan na batay sa kahirapan {int timeValue = 0; switch (diff) {case EASY: timeValue = 100; pahinga; kaso MEDIUM: timeValue = 80; pahinga; kaso HARD: timeValue = 60; pahinga; kaso ON_SPEED: timeValue = 40; pahinga; kaso SONIC_SPEED: timeValue = 30; pahinga; kaso ROCKET_SPEED: timeValue = 20; pahinga; kaso LIGHT_SPEED: timeValue = 13; pahinga; kaso MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue; // Ibalik ang halaga ng pagkaantala} // Panalong nahihirapan na dagdagan ang mga parameter na walang bisa na pagtaasDifficulty () {if (kahirapan! = MISSION_IMPOSSIBLE && wonThisRound) {kahirapan ++; }} // Lost LED Show void flash () {fill_solid (leds, NUM_LEDS, CRGB:: Red); FastLED.show (); pagkaantala (500); fill_solid (leds, NUM_LEDS, CRGB:: Itim); FastLED.show (); pagkaantala (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"); // First slide the led in one direction for (int i = 0; i = 0; i--) {// Itakda ang i'th led to red leds = CHSV (hue ++, 255, 255); // Show the leds FastLED.show (); // ngayong naipakita na namin ang mga leds, i-reset ang ith led to black // leds = CRGB:: Itim; fadeall (); // Maghintay nang kaunti bago kami paikot ikot at gawin itong muli antala (10); }}
Hakbang 3: I-install sa Fixture
Hindi ako pupunta sa mga detalye sa seksyong ito. Mayroong isang libong iba't ibang mga paraan upang magawa ang bahaging ito at sa palagay ko dapat kang maging malikhain upang magmukha itong gusto mo. Sinabi na, ang orasan ay medyo maginhawa upang magamit para sa pabahay ng mga LED dahil mayroon itong mga minutong tagapagpahiwatig na nagamit ko bilang mga marka ng drill. Gayundin, pinapayagan din ako ng takip ng salamin na gamitin ito bilang isang mesa.
Ang velcro ay lubhang kapaki-pakinabang din para sa pag-secure ng LED na kabit sa kagamitang pabahay ng electronics. Gumamit din ako ng velcro sa Arduino. Ginawa itong napaka maginhawa para sa paghila ng Arduino kung nais kong baguhin ang code.
Inirerekumendang:
FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Hakbang
FPGA Cyclone IV DueProLogic - Push Button & LED: Sa tutorial na ito, gagamitin namin ang FPGA upang makontrol ang panlabas na LED circuit. Ipapatupad namin ang mga sumusunod na gawain (A) Gamitin ang mga push button sa FPGA Cyclone IV DuePrologic upang makontrol ang LED. (B) Flash LED sa & off panaka-nakangVideo demo Lab
Arduino Cyclone Game: 5 Hakbang (na may Mga Larawan)
Arduino Cyclone Game: Hindi pa ako nakakalaro ng tunay na laro ng arcade ng bagyo ngunit gusto ko ang ideya na maglaro sa oras ng aming reaksyon. Nagdisenyo ako ng isang miniaturized na laro. Binubuo ito sa 32 LEDs na bumubuo ng isang bilog, ang mga LED ay nag-iilaw isa-isa bilang isang led chaser. Ang layunin ay upang pindutin ang isang butto
Cyclone (Arduino LED Game): 6 na Hakbang (na may Mga Larawan)
Cyclone (Arduino LED Game): Sa tutorial na ito, tuturuan kita kung paano lumikha ng isang LED game na may napakakaunting code o karanasan! Nagkaroon ako ng ideyang ito nang ilang sandali at sa wakas ay nalikha ko ito. Ito ay isang nakakatuwang laro na nagpapaalala sa amin ng lahat ng mga arcade game. Mayroong iba pang mga tutorial t
Arduino Cyclone Arcade Game: 6 Mga Hakbang
Arduino Cyclone Arcade Game: Blinky flashy lights! Arduino! Laro! Ano pa ang kailangang sabihin? Ang larong ito ay batay sa laro ng Cyclone arcade, kung saan sinusubukan ng player na ihinto ang isang humantong sa pag-scroll sa paligid ng isang bilog sa isang tukoy na lugar
Arduino LED Laser Arcade Game: 3 Hakbang (na may Mga Larawan)
Arduino LED Laser Arcade Game: Sa itinuturo na ito ay ipapakita ko kung paano gumawa ng isang Laser Arcade Game gamit ang LED at light sensors. Ang code ay kasama at hindi mo kailangan ng maraming bahagi upang maitayo ito. Hindi ko sasabihin sa iyo kung paano ko itinatayo ang kaso, gagawin mo iyon sa iyong sarili! T