Satura rādītājs:
- 1. darbība: komponentu saraksts:
- 2. darbība. Aparatūras savienojums
- 3. solis: programmēšana
- 4. darbība. Eksperimenta rezultāts
Video: NeoPixels Matrix : Čūsku spēle: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Vai jūs vēl atceraties čūsku spēli, ko mēs bērnībā spēlējām spēļu kastē vai mobilajā telefonā? Šodien mēs iemācīsimies izveidot čūsku spēli ar 8*8 NeoPixels Matrix. Mēs izvēlamies Arduino uno kā vadības centru un kursorsviru izlaušanās moduli, lai kontrolētu čūsku.
1. darbība: komponentu saraksts:
Aparatūra:
1 X Freaduino UNO Rev.2.2 MB_EFUNO
1 X elastīga 64 RGB LED 8*8 NeoPixels Matrix
1 X Kursorsviras izlaušanās modulis BKOUT_MD01
3 X Vadlīnija
Programmatūra:
Arduino IDE
2. darbība. Aparatūras savienojums
Savienojiet NeoPixels ar tapu D2.
"X" kursorsviras izlaušanās modulī savieno tapu A0 uz Arduino UNO plates, "Y" savieno tapu A1, "K" savieno tapu A2.
3. solis: programmēšana
P#ietver
#define PIN 2 // Output Pin #define MAX_LED 64 // lodītes daudzums uint32_t c; int a = 0, skaitlis; neparakstīts char huan = 0, ci = 0; neparakstīts simbols u = 40; // Vārdu grupas fonta lielums unsigned char x = 0; neparakstīta zīme Krāsa [3]; neparakstīts simbols = {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 neparakstīti simboli [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] = // Iestatiet nosūtāmo vārdu {{0, 1, 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, 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}, {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}, {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}, {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 },}; neparakstīts simbols displaycore [8] [8]; int ātrumsS = 400; // Čūskas sākotnējais ātrums int score; // Spēles rezultāts int xValue; // JoyStick-X int yValue; // JoyStick-Y int zValue; // JoyStick-Z int FX, FY; // Ēdienu koordinātas SX, SY; // Čūskas galvas koordināta int KEY, K; int Iespējots; // Iespējot restartēt spēli char sx [64]; // Čūskas ķermeņa koordināta char sy [64]; Adafruit_NeoPixel strip = Adafruit_NeoPixel (MAX_LED, PIN, NEO_RGB + NEO_KHZ800); void RANDOM () {A: FX = nejaušs (0, 7); FY = nejaušs (0, 7); par (int i = 0; i <3+score; i ++) // Novērst pārtikas parādīšanu uz čūskas ķermeņa {if (FX == sx && FY == sy ) goto A; }} void myDelay (unsigned int Time) {// Čūskas kustības aizkavēšanās periodā mums ir jādara kaut kas līdzīgs pārtikas spīdumam un jāizlasa kursorsviras virziens (int t = 1; t 950 && KEY! = 5) { K = 8; } cits if (yValue <50 && KEY! = 8) {K = 5; } cits if (xVertība 950 && KEY! = 4) {K = 6; }} // Šeit jūs varat salīdzināt, vai tastatūras virziens ir pretējs čūskas kustības virzienam. Ja tas ir pretējs, atmetiet tastatūru. /************************************************ ************************************************* ************************************************* ************************************************* ********/ void gameover () {// Kad Gameover programma ir apstājusies, nospiediet centrālo pogu, lai restartētu spēli. neparakstīta simbolu vērtība, y; Krāsa [0] = nejauša (3, 18); // Iestatīt krāsu. Parametrs ir R G B, diapazons 0-255. Krāsa [1] = nejauša (3, 18); Krāsa [2] = nejauša (3, 18); c = sloksne. Krāsa (krāsa [1], krāsa [0], krāsa [2]); vērtība = rezultāts / 10; vērtība = vērtība * 4; y = 0; par (numurs = vērtība; skaitlis <vērtība+4; skaitlis ++) {par (neparakstīts simbols vertikāli = 0; vertikāli <8; vertikāli ++) {displaycore [y] [vertical] = rakstzīme [skaitlis] [vertikāli]; } y ++; } vērtība = rezultāts % 10; vērtība = vērtība * 4; par (numurs = vērtība; skaitlis <vērtība+4; skaitlis ++) {par (neparakstīts simbols vertikāli = 0; vertikāli <8; vertikāli ++) {displaycore [y] [vertical] = rakstzīme [skaitlis] [vertikāli]; } y ++; } par (neparakstīts simbols horizontāli = 0; horizontāli <8; horizontāli ++) {par (neparakstīts simbols vertikāli = 0; vertikāli <8; vertikāli ++) {ja (displejs [horizontāli] [vertikāli] == 1) // Nosakiet, vai gaisma ir ieslēgts. {strip.setPixelColor (gaišs [horizontāls] [vertikāls], c); } cits strip.setPixelColor (gaišs [horizontāls] [vertikāls], 0); }} strip.show (); // Datu nosūtīšanas aizkave (5000); K = 0; // Atiestatīt kursorsviru virzienu sx [0] = 2; sx [1] = 1; sx [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // Atiestatīt čūskas koordinātu rezultātu = 0; // Atiestatīt spēles rezultātu speedS = 400; // Čūskas sākotnējais ātrums} void setup () {Serial.begin (9600); // Initialize library strip.begin (); // Sūtīt datus. Pēc noklusējuma katra punkta krāsa ir 0. Tātad katrs punkts sākumā nav izgaismots. strip.show (); K = 0; // Atiestatīt kursorsviras virzienu sx [0] = 2; sx [1] = 1; sx [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // Atiestatīt čūskas koordinātu rezultātu = 0; // Spēles rezultātu atiestatīšana Krāsa [0] = nejauša (3, 18); // Iestatīt krāsu. Parametrs ir R G B, diapazons 0-255. Krāsa [1] = nejauša (3, 18); Krāsa [2] = nejauša (3, 18); c = sloksne. Krāsa (krāsa [1], krāsa [0], krāsa [2]); // Zaļš Sarkans Zils // Iestatiet krāsu (numurs = 0; skaitlis <24; skaitlis ++) {strip.setPixelColor (iet [numurs], c); } strip.show (); // Datu nosūtīšanas aizkave (2000); RANDOM (); // Ražot pārtiku} void mobile () {KEY = K; // Katra čūskas kustība vienreiz maina virzienu. ja (KEY == 8) // Čūskas kustība augšup {uz (int i = 2 + rezultāts; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] - 1; if (sy [0] <0) // Iziet aiz robežas un turpināt otrā pusē sy [0] = 7; } cits ja (KEY == 5) // Čūskas kustība uz leju {par (int i = 2 + rezultāts; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] + 1; if (sy [0]> 7) // Iziet aiz robežas un turpināt otrā pusē sy [0] = 0; } cits ja (KEY == 4) // Čūska pa kreisi kustība {par (int i = 2 + rezultāts; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] - 1; if (sx [0] <0) // Iziet aiz robežas un turpināt otrā pusē sx [0] = 7; } cits ja (KEY == 6) // Čūskas labā kustība {par (int i = 2 + rezultāts; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] + 1; if (sx [0]> 7) // Iziet aiz robežas un turpināt otrā pusē sx [0] = 0; } // Pārvietot čūskas ķermeni ar pogu} void display () {for (number = 0; number <64; number ++) // Notīrīt ekrānu {strip.setPixelColor (skaitlis, 0); } strip.show (); Krāsa [0] = 40; // Iestatīt krāsu. Parametrs ir R G B, diapazons 0-255. Krāsa [1] = 0; Krāsa [2] = 0; c = sloksne. Krāsa (krāsa [1], krāsa [0], krāsa [2]); // Zaļš Sarkans Zils // Iestatīt krāsu x = gaišs [FX] [FY]; // Parādīt pārtikas sloksni.setPixelColor (x, c); Krāsa [0] = nejauša (3, 18); // Iestatīt krāsu. Parametrs ir R G B, diapazons 0-255. Krāsa [1] = nejauša (3, 18); Krāsa [2] = nejauša (3, 18); c = sloksne. Krāsa (krāsa [1], krāsa [0], krāsa [2]); // Zaļš Sarkans Zils // Iestatīt krāsu (int i = 2 + score; i> 0; i--) // Parādīt čūskas ķermeni {x = gaišs [sx [sy ; strip.setPixelColor (x, c); } Krāsa [0] = 0; // Iestatīt krāsu. Parametrs ir R G B, diapazons 0-255. Krāsa [1] = 40; Krāsa [2] = 0; c = sloksne. Krāsa (krāsa [1], krāsa [0], krāsa [2]); // Zaļš Sarkans Zils // Iestatīt krāsu x = gaiša [sx [0] [sy [0]; // Parādīt čūskas galvas sloksni.setPixelColor (x, c); strip.show (); // Sūtīt datus} void loop () {mobile (); myDelay (speedS); // (ietvaros) ir aizkavēšanās laiks. displeji (); SX = sx [0]; SY = sy [0]; // Iegūstiet čūskas galvas koordinātu (int i = 1; i <= 2+score; i ++) {if (SX == sx && SY == sy ) gameover (); } // Spriediet, vai čūskas galva pieskārās tās ķermenim. Ja pieskaras, pārsūtiet uz GameOver. ja (SY == FY && SX == FX) {RANDOM (); rezultāts ++; Krāsa [0] = 40; // Iestatīt krāsu. Parametrs ir R G B, diapazons 0-255. Krāsa [1] = 0; Krāsa [2] = 0; c = sloksne. Krāsa (krāsa [1], krāsa [0], krāsa [2]); // Zaļš Sarkans Zils // Iestatīt krāsu x = gaiša [FX] [FY]; // Parādīt pārtikas sloksni.setPixelColor (x, c); strip.show (); // Sūtīt datus, ja (! (rezultāts % 5)) {// Saskaņot čūskas ātrumu atbilstoši rezultātam. Katrs 5 apēstais ēdiens ir 100 ms. ātrumsS = ātrumsS - 50; ja (speedS <150) // Apakšējā robeža ir 200 ms. Ja ātrums ir mazāks par 200 ms, ātrums paliek 200 ms. ātrumsS = 150; }} // Spriediet, vai ēdiens ir apēsts. Ja čūska ēda pārtiku, tad plus punktus un atjauno pārtiku nejauši. }
Eksperimenta rezultāts
4. darbība. Eksperimenta rezultāts
Relatīvie rādījumi:
FreaksBot Bluetooth automašīna
Iededziet pirmo lodīti uz 8*8 NeoPixels matricas ar Arduino
Micro: bit Eksperiments 05: RGB LED - Elecfreaks Mirco: bit Starter Kit Course
Piektdienas produkta ziņojums: LED mūzikas frekvenču spektra displeja lodēšanas komplekts
Lai izveidotu gudru gaismu, izmantojiet ElecFreaks Micro: bit Tinker Kit
Ieteicams:
DIY SMART LED MATRIX (ESP8266 + WS2812 / NeoPixels): 7 soļi (ar attēliem)
DIY SMART LED MATRIX (ESP8266 + WS2812 / NeoPixels): Šeit ir mans ievads projektā, kuru es ļoti priecājos jums parādīt. Tas ir par DIY viedo LED matricu, kas ļaus jums tajā parādīt datus, piemēram, YouTube statistiku, jūsu viedās mājas statistiku, kā temperatūra, mitrums, var būt vienkāršs pulkstenis vai vienkārši
Simona spēle - jautra spēle!: 5 soļi
Simona spēle - jautra spēle !: Atsauce: šeitPēc garas nedēļas nogales jums patiešām ir jācenšas izpildīt visus uzdevumus un darbu, par kuru esat atbildīgs. Mums ir pienācis laiks trenēt smadzenes, vai ne? Bez šīm garlaicīgajām un bezjēdzīgajām spēlēm ir arī spēle ar nosaukumu Simona spēle
Čūsku spēle: 4 soļi
Čūsku spēle: Sveiki, puiši, šodien es jums parādīšu, kā izveidot pamata čūsku spēli Python un pārsteigt draugus šajās brīvdienās. Tas ir ļoti vienkārši, jums vienkārši nepieciešams instalēt python 3 un instalēt pygame. Šajā pamācībā esmu pievienojis video par to, kā instalēt pygame. Pēc
Arduino OLED čūsku spēle: 3 soļi
Arduino OLED čūsku spēle: Sveiki un laipni gaidīti, mūsu instrukcijās par to, kā izveidot un arduino OLED spēli, šis projekts radās, kad mēs mēģinājām izveidot savu pirmo spēli ar arduino, tāpēc mēs domājām, kur labāk sākt nekā nokia klasiskā čūska (vismaz
Kā savienot miksēšanas dēli un mikrofona čūsku ar skaņas sistēmu: 3 soļi
Kā savienot miksēšanas dēli un mikrofona čūsku ar skaņas sistēmu: Video aptver pamatus, kā savienot audio mikseri (miksēšanas dēli vai konsoli) ar skaņas sistēmu, izmantojot mikrofona čūskas kabeli. Tas aptver mikrofonu un nosūta savienojumus. Vairāk informācijas: http://proaudiotraining.com