Talaan ng mga Nilalaman:
Video: POiNG! - Arduino Arcade Game !: 3 Hakbang
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Magtatayo kami ng isang PONG-style arcade game na gumagamit ng mga bahagi mula sa "The Most Complete Starter Kit UNO R3 Project" kit mula sa Elegoo Inc.
Buong Pagbubunyag - Karamihan sa mga bahagi na ibinibigay para sa Instructable na ito ay ibinigay sa may-akda ng Elegoo Inc.
Nais kong bumuo ng isang proyekto gamit ang isang module ng LED Matrix. Ang pangunahing 8x8 LED display ay nangangailangan ng paggamit ng mga karagdagang rehistro sa paglilipat upang matugunan ang mga indibidwal na LED sa matrix. Sa halip, ang proyektong ito ay gumagamit ng MAX7219 8x8 LED module. Napakadaling module na gagamitin.
Iminumungkahi ko na dahil sa maraming bilang ng mga koneksyon sa mga kable sa proyektong ito, ito ay isasaalang-alang sa isang antas na INTERMEDIATE level na Maituturo.
Magsimula na tayo!
Mga gamit
Ginamit ang Mga Bahagi ng Elegoo Starter Kit (https://rebrand.ly/dvjb3w8)
- UNO R3 Microcontroller
- MAX7219 8x8 LED Module
- LCD 16x2 Display Module
- 10K Trim Potentiometer at knob
- Mga Dupont Wires
- 220R Resistor
- Passive Piezo Buzzer
- Modyul ng Supply ng Kuryente
- 9V 1A Adapter - kinakailangan dahil ang UNO ay hindi maaaring magbigay ng sapat na kasalukuyang para sa 8x8 LED Module
- Breadboard
Kailangan ng mga Labing Bahagi
2 x 10K Linear Potentiometer - mura at malawak na magagamit sa eBay, AliExpress, Banggood atbp.
Hakbang 1: Pag-kable sa Paikot
Wire up ang circuit ayon sa diagram ng mga kable. Huwag kang mag-madali. Mayroong MARAMING mga koneksyon na kinakailangan para sa dalawang ipinapakita.
Pansinin sa larawan ng circuit na ang module ng kuryente ay nakakabit sa kaliwang bahagi ng breadboard at ang 9V 1A DC Adapter ay naka-plug sa module ng kuryente upang ang sapat na kasalukuyang ibibigay sa LED matrix. Walang koneksyon sa pagitan ng 5V pin sa UNO at ng breadboard. NGUNIT, ang pin ng GND sa UNO ay konektado sa GND sa breadboard.
I-double at triple-check ang iyong trabaho.
Hakbang 2: Arduino Code
Ipinapalagay ng itinuturo na alam mo na kung paano magprogram sa Arduino.
I-download ang kalakip na Arduino sketch. Tiyaking naidagdag mo sa LedControl library sa iyong Arduino library. Ginamit ko ang bersyon ni Eberhard Fahle. Maghanap lang para sa MAX7219 sa Manage Library ng browser at mahahanap mo at mai-install mo ito.
Tiyaking ang pitches.h file ay nasa folder ng iyong sketch. Ginagamit ito para sa pagtugtog ng mga tunog sa laro.
Medyo tungkol sa tiyempo
Tulad ng pagkaantala ng () utos na ganap na i-pause ang pagpapatupad ng iyong sketch kapag ito ay tumatakbo, sa halip ay naghahanap kami ng lumipas na mga tagal ng panahon upang maganap kapag nais naming magpatupad ng mga bahagi na may kaugnayan sa animation ng sketch. Naghahanap kami para sa isang paunang natukoy na dami ng oras upang maipasa bago namin maisagawa ang mga bahagi ng sketch tulad ng pag-update sa lokasyon ng bola sa display.
Mas makabuluhang, ang pagkaantala () na utos ay naisagawa lamang sa loop () na pamamaraan. Karaniwan itong hindi naisasagawa tulad ng inaasahan sa iba pang mga pamamaraan. Kaya't ang lahat ng tiyempo na nauugnay sa animasyon ay tapos na sa loop () na pamamaraan.
Halimbawa:
Tinutukoy namin ang ilang 'mahabang' variable ng uri at isang pares ng mga boolean at pagkatapos ay itinakda ang mga ito sa pagtatapos ng pag-set up ().
bThresh = 80; // ang oras sa milliseconds sa pagitan ng mga pag-update ng bola
ballTime = millis (); // itinakda sa kasalukuyang oras ng system
bon = false; // ay naka-on o naka-off ang bola
ballReturn = false; // nagbabalik ba tayo ng bola pagkatapos ng isang sagwan?
Sa loop () para sa pagguhit ng bola na mayroon kami:
kung ((millis () - ballTime> bThresh) && bon == false) {// kung ang bola ay OFF at ang sapat na oras ay lumipas na ballOn (); // i-on ang ball LED
bon = totoo; // ang bola ay ON na
ballTime = millis (); // reset ang ballTime sa kasalukuyang oras
}
kung ((millis () - ballTime> bThresh) && bon == true) {// kung ang bola ay ON at sapat na oras ang lumipas
ballOff (); // patayin ang bola na LED
bon = false; // ang bola ay OFF na
ballTime = millis (); i-reset ang ballTIme sa kasalukuyang oras
}
Maraming mga paraan upang magawa ang larong ito. Ito lang ang gusto ko.
Ang sketch ay buong dokumentado kaya inaanyayahan kita na basahin ang code upang makita kung paano ito gumagana.
Suriin, ipunin at i-upload ang iyong code.
Masiyahan sa paglalaro ng iyong laro!
Hakbang 3: Konklusyon
Ang aking pasasalamat ay pumunta sa Elegoo Inc para sa pagbibigay ng starter kit na ginamit sa proyektong ito. Ito ay isang kit na may maraming pagkakaiba-iba ng mga bahagi at modyul na makakakuha ka ng maayos sa mundo ng Arduino Maker.