Talaan ng mga Nilalaman:
- Hakbang 1: Listahan ng Mga Bahagi:
- Hakbang 2: Koneksyon sa Hardware
- Hakbang 3: Programming
- Hakbang 4: Resulta ng Eksperimento
Video: NeoPixels Matrix : Laro ng Ahas: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Naaalala mo pa ba ang laro ng ahas na nilalaro natin sa aming game box o mobile sa panahon ng ating pagkabata? Ngayon ay matututunan natin kung paano gumawa ng isang laro ng ahas na may 8 * 8 NeoPixels Matrix. Pinipili namin ang Arduino uno bilang control center at Joystick breakout module upang makontrol ang ahas.
Hakbang 1: Listahan ng Mga Bahagi:
Hardware:
1 X Freaduino UNO Rev2.2 MB_EFUNO
1 X Flexible 64 RGB LED 8 * 8 NeoPixels Matrix
1 X Joystick breakout module BKOUT_MD01
3 X Linya ng Gabay
Software:
Arduino IDE
Hakbang 2: Koneksyon sa Hardware
Ikonekta ang NeoPixels upang i-pin ang D2.
"X" sa Joystick breakout module ikonekta ang pin A0 sa Arduino UNO board, "Y" ikonekta ang pin A1, "K" ikonekta ang pin A2.
Hakbang 3: Programming
P # isama
#define PIN 2 // Pin ng Output # tukuyin MAX_LED 64 // Dami ng bead uint32_t c; int a = 0, numero; unsigned char huan = 0, ci = 0; unsigned char u = 40; // Ang laki ng font ng pangkat ng salita na hindi pinirmahan char x = 0; unsigned char Kulay [3]; unsigned char go = {2, 3, 4, 5, 9, 14, 17, 20, 22, 26, 27, 29, 34, 35, 36, 37, 41, 46, 49, 54, 58, 59, 60, 61}; // 24 unsigned char light [8] [8] = {{0, 1, 2, 3, 4, 5, 6, 7}, {15, 14, 13, 12, 11, 10, 9, 8}, {16, 17, 18, 19, 20, 21, 22, 23}, {31, 30, 29, 28, 27, 26, 25, 24}, {32, 33, 34, 35, 36, 37, 38, 39}, {47, 46, 45, 44, 43, 42, 41, 40}, {48, 49, 50, 51, 52, 53, 54, 55}, {63, 62, 61, 60, 59, 58, 57, 56},}; unsigned char character [8] = // Itakda ang salitang ipapadala sa {{0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, // 0 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, // 1 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 2 {0, 1, 1, 1, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 3 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, // 4 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 5 {0, 1, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 6 {0, 1, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, // 7 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 8 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 9 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0 },}; unsigned char displaycore [8] [8]; int bilisS = 400; // Paunang bilis ng iskor ng int int; // Game score int xValue; // JoyStick-X int yValue; // JoyStick-Y int zValue; // JoyStick-Z int FX, FY; // Coordinate of food int SX, SY; // Coordinate of ahas ulo int SUSI, K; int Pinagana; // Paganahin upang i-restart ang laro char sx [64]; // Coordinate of ahas katawan char sy [64]; Adafruit_NeoPixel strip = Adafruit_NeoPixel (MAX_LED, PIN, NEO_RGB + NEO_KHZ800); walang bisa RANDOM () {A: FX = random (0, 7); FY = random (0, 7); para sa (int i = 0; i <3 + iskor; i ++) // Pigilan ang pagpapakita ng pagkain sa katawan ng ahas {kung (FX == sx && FY == sy ) goto A; }} void myDelay (unsigned int Time) {// Sa panahon ng pagka-antala ng paggalaw ng ahas, kailangan nating gumawa ng isang bagay tulad ng kuminang ng pagkain at basahin ang direksyon ng Joystick para sa (int t = 1; t 950 && KEY! = 5) { K = 8; } iba pa kung (yValue <50 && KEY! = 8) {K = 5; } iba pa kung (xValue 950 && KEY! = 4) {K = 6; }} // Dito maaari mong ihambing kung ang direksyon ng keypad ay kabaligtaran ng direksyong paglipat ng ahas. Kung ito ay nasa tapat, pagkatapos ay isuko ang keypad. / ***** ***** ***** ***** ******** / void gameover () {// Kapag ang programa ng Gameover ay tumigil, pindutin ang gitnang pindutan upang muling simulan ang laro. hindi naka-sign na halaga ng char, y; Kulay [0] = random (3, 18); // Set color. Parameter ay R G B, saklaw 0-255. Kulay [1] = random (3, 18); Kulay [2] = random (3, 18); c = strip. Kulay (Kulay [1], Kulay [0], Kulay [2]); halaga = iskor / 10; halaga = halaga * 4; y = 0; para sa (numero = halaga; numero <halaga + 4; numero ++) {para sa (unsigned char vertikal = 0; patayo <8; patayo ++) {ipinapakita [y] [patayo] = character [numero] [patayo]; } y ++; } halaga = puntos% 10; halaga = halaga * 4; para sa (numero = halaga; numero <halaga + 4; numero ++) {para sa (unsigned char vertikal = 0; patayo <8; patayo ++) {ipinapakita [y] [patayo] = character [numero] [patayo]; } y ++; } para sa (unsigned char pahalang = 0; pahalang <8; pahalang ++) {para sa (unsigned char patayo = 0; patayo <8; patayo ++) {kung (ipinapakita [pahalang] [patayong] == 1) // Hukom kung ang ilaw ay nasa. {strip.setPixelColor (ilaw [pahalang] [patayo], c); } iba pa strip.setPixelColor (ilaw [pahalang] [patayo], 0); }} strip.show (); // Magpadala ng pagkaantala ng data (5000); K = 0; // Reset Joystick direction sx [0] = 2; sx [1] = 1; sx [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // I-reset ang iskor ng coordinate ng ahas = 0; // Reset speed game scoreS = 400; // Ang paunang bilis ng ahas} walang bisa ang pag-setup () {Serial.begin (9600); // Initialize library strip.begin (); // Magpadala ng data. Default ang kulay ng bawat punto bilang 0. Kaya't ang bawat punto ay hindi naiilawan sa simula. strip.show (); K = 0; // I-reset ang direksyon ng Joystick sx [0] = 2; sx [1] = 1; sx [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // I-reset ang iskor ng coordinate ng ahas = 0; // I-reset ang marka ng laro Kulay [0] = random (3, 18); // Set color. Parameter ay R G B, saklaw 0-255. Kulay [1] = random (3, 18); Kulay [2] = random (3, 18); c = strip. Kulay (Kulay [1], Kulay [0], Kulay [2]); // Green Red Blue // Itakda ang kulay para sa (number = 0; number <24; number ++) {strip.setPixelColor (go [number], c); } strip.show (); // Magpadala ng pagkaantala ng data (2000); RANDOM (); // Gumawa ng pagkain} walang bisa ang mobile () {KEY = K; // Ang bawat paggalaw ng ahas ay nagbabago ng direksyon nang isang beses. kung (KEY == 8) // Snake pataas na paggalaw {para sa (int i = 2 + iskor; i> 0; i--) {sx = sx [i - 1]; sy = sy [i - 1]; } sy [0] = sy [0] - 1; kung (sy [0] <0) // Lumampas sa hangganan at magpatuloy sa kabilang panig sy [0] = 7; } iba pa kung (KEY == 5) // Snake pababang paggalaw {para sa (int i = 2 + iskor; i> 0; i--) {sx = sx [i - 1]; sy = sy [i - 1]; } sy [0] = sy [0] + 1; kung (sy [0]> 7) // Lumampas sa hangganan at magpatuloy sa kabilang panig sy [0] = 0; } iba pa kung (KEY == 4) // Snake left kilusan {para (int i = 2 + iskor; i> 0; i--) {sx = sx [i - 1]; sy = sy [i - 1]; } sx [0] = sx [0] - 1; kung (sx [0] <0) // Lumampas sa hangganan at magpatuloy sa kabilang panig sx [0] = 7; } iba pa kung (KEY == 6) // Snake right kilusan {para (int i = 2 + iskor; i> 0; i--) {sx = sx [i - 1]; sy = sy [i - 1]; } sx [0] = sx [0] + 1; kung (sx [0]> 7) // Lumampas sa hangganan at magpatuloy sa kabilang panig sx [0] = 0; } // Ilipat ang katawan ng ahas na may pindutan} mga walang bisa na pagpapakita () {para sa (number = 0; number <64; number ++) // I-clear ang screen {strip.setPixelColor (number, 0); } strip.show (); Kulay [0] = 40; // Itakda ang kulay. Ang parameter ay R G B, saklaw ng 0-255. Kulay [1] = 0; Kulay [2] = 0; c = strip. Kulay (Kulay [1], Kulay [0], Kulay [2]); // Green Red Blue // Set color x = light [FX] [FY]; // Display food strip.setPixelColor (x, c); Kulay [0] = random (3, 18); // Itakda ang kulay. Ang parameter ay R G B, saklaw ng 0-255. Kulay [1] = random (3, 18); Kulay [2] = random (3, 18); c = strip. Kulay (Kulay [1], Kulay [0], Kulay [2]); // Green Red Blue // Itakda ang kulay para sa (int i = 2 + iskor; i> 0; i--) // Ipakita ang katawan ng ahas {x = light [sx [sy ; strip.setPixelColor (x, c); } Kulay [0] = 0; // Itakda ang kulay. Ang parameter ay R G B, saklaw ng 0-255. Kulay [1] = 40; Kulay [2] = 0; c = strip. Kulay (Kulay [1], Kulay [0], Kulay [2]); // Green Red Blue // Set color x = light [sx [0] [sy [0]; // Ipakita ang strip ng ulo ng ahas.setPixelColor (x, c); strip.show (); // Magpadala ng data} void loop () {mobile (); myDelay (bilisS); // Sa loob ng () ay oras ng pagkaantala. ipinapakita (); SX = sx [0]; SY = sy [0]; // Kumuha ng koordinasyon ng ulo ng ahas para sa (int i = 1; i <= 2 + iskor; i ++) {if (SX == sx && SY == sy ) gameover (); } // Hukom kung hinawakan ng ulo ng ahas ang katawan nito. Kung hinawakan, pagkatapos ay ipasa ang GameOver. kung (SY == FY && SX == FX) {RANDOM (); puntos ++; Kulay [0] = 40; // Itakda ang kulay. Ang parameter ay R G B, saklaw ng 0-255. Kulay [1] = 0; Kulay [2] = 0; c = strip. Kulay (Kulay [1], Kulay [0], Kulay [2]); // Green Red Blue // Set color x = light [FX] [FY]; // Display strip ng pagkain.setPixelColor (x, c); strip.show (); // Magpadala ng data kung (! (puntos% 5)) {// I-accerlerate ang bilis ng ahas ayon sa iskor. Ang bawat 5 pagkain na kinakain, accerlerate 100ms. bilisS = bilisS - 50; kung (speedS <150) // Ang ilalim na limitasyon ay 200ms. Kung ang bilis na mas mababa sa 200ms, ang bilis ay mananatili ng 200ms. bilisS = 150; }} // Hukom kung kinakain ang pagkain. Kung ang ahas ay kumain ng pagkain, pagkatapos ay magdagdag ng mga marka at muling buhayin ang pagkain nang sapalaran. }
Resulta ng Eksperimento
Hakbang 4: Resulta ng Eksperimento
Mga Kamag-anak na Pagbasa:
FreaksBot Bluetooth Car
Banayad ang Unang Bead sa 8 * 8 NeoPixels Matrix kasama si Arduino
Micro: bit Eksperimento 05: RGB LED - Elecfreaks Mirco: bit Starter Kit Course
Biyernes ng Produkto ng Produkto: LED Music Frequency Spectrum Display Soldering Kit
Gumamit ng ElecFreaks Micro: bit Tinker Kit upang Gumawa ng Isang Smart Light
Inirerekumendang:
Ahas: ang Makina na Walang Magagamit: 5 Hakbang
Ahas: ang Useless Machine: Alam mo noong bata ka at naglalaro ka ng ahas sa iyong Nokia? Sa isang tiyak na punto ay magsisimulang habulin ng ahas ang sarili nitong buntot, at doon mo nalamang malapit na matapos ang laro. Napagpasyahan naming gawin iyon sa isang robot, ang laro ay hindi kailanman
Laro ng Ahas: 4 na Hakbang
Laro ng Ahas: Kamusta Mga Lalaki, Ngayon ay ipapakita ko sa iyo kung paano gumawa ng isang pangunahing laro ng ahas sa Python at humanga ang mga kaibigan sa bakasyong ito. Ito ay napaka-simpleng kailangan mo lang ay sawa ng 3 at pag-install ng pygame. Sa itinuturo na ito nagdagdag ako ng video kung paano mag-install ng pygame. Pagkatapos
Laro ng Ahas sa C: 8 Mga Hakbang
Laro ng Ahas sa C: Ang laro ng Ahas ay popular sa mga lumang mobile phone na maaaring napakadali na ibigay gamit ang c program. Upang maitayo ang proyektong ito kailangan mo ng pangunahing pag-unawa sa c syntax. Halimbawa: para sa loop, habang loop, atbp. Sa pagbuo ng ganitong uri ng laro sa proyekto ang iyong programmin
Paano Mag-upload ng Mga Laro sa Arduboy at 500 Mga Laro sa Flash-cart: 8 Hakbang
Paano Mag-upload ng Mga Laro sa Arduboy at 500 Mga Laro sa Flash-cart: Gumawa ako ng ilang gawang-bahay na Arduboy na may memorya ng Serial Flash na maaaring mag-imbak ng max 500 na laro upang maglaro sa kalsada. Inaasahan kong ibahagi kung paano mag-load ng mga laro dito, kasama ang kung paano mag-imbak ng mga laro sa serial flash memory at lumikha ng iyong sariling pinagsama-samang package ng laro
Paano Suriin Kung Tumatakbo ang isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: 4 Mga Hakbang
Paano Suriin Kung Tumatakbo ang Isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: Kamakailan-lamang na nakuha ko ang Tawag ng Tanghalan 4 mula sa isang kaibigan (nang libre ay maaari kong idagdag) dahil hindi tatakbo sa kanyang computer. Sa gayon, ang kanyang computer ay medyo bago, at ikinagulat ako nito kung bakit hindi ito tatakbo. Kaya pagkatapos ng ilang oras na paghahanap ng internet, napag-alaman ko