Агуулгын хүснэгт:
- Алхам 1: Бүрэлдэхүүн хэсгүүдийн жагсаалт:
- Алхам 2: Тоног төхөөрөмжийн холболт
- Алхам 3: Програмчлал
- Алхам 4: Туршилтын үр дүн
Видео: NeoPixels матриц: Могойн тоглоом: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Бага байхдаа тоглоомын хайрцаг эсвэл гар утсан дээрээ тоглож байсан могойн тоглоомыг та одоо хүртэл санаж байна уу? Өнөөдөр бид 8*8 NeoPixels матриц ашиглан могойн тоглоом хийхийг сурах болно. Бид Arduino uno -ийг хяналтын төв болгон сонгож, могойг хянахын тулд Joystick -ийн таслах модулийг сонгоно.
Алхам 1: Бүрэлдэхүүн хэсгүүдийн жагсаалт:
Техник хангамж:
1 X Freaduino UNO Rev2.2 MB_EFUNO
1 X уян хатан 64 RGB LED 8*8 NeoPixels матриц
1 X Joystick таслах модуль BKOUT_MD01
3 X чиглүүлэгч шугам
Програм хангамж:
Arduino IDE
Алхам 2: Тоног төхөөрөмжийн холболт
NeoPixels -ийг D2 зүү рүү холбоно уу.
Joystick таслах модуль дээрх "X" нь Arduino UNO самбар дээрх A0 зүү, "Y" холболтын зүү A1, "K" холболтын зүү А2.
Алхам 3: Програмчлал
P#оруулах
#тодорхойлох PIN 2 // гаралтын зүү #dexine MAX_LED 64 // ирмэгийн тоо хэмжээ uint32_t c; int a = 0, тоо; тэмдэггүй char huan = 0, ci = 0; гарын үсэггүй char u = 40; // Үсгийн үсгийн хэмжээ гарын үсэггүй char x = 0; гарын үсэггүй тэмдэгт өнгө [3]; гарын үсэггүй 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 гарын үсэггүй гэрлийн гэрэл [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},}; гарын үсэггүй char тэмдэгт [8] = // Илгээх үг тохируулах {{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, 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 },}; гарын үсэггүй char дэлгэцийн оноо [8] [8]; int хурдS = 400; // Могойн int онооны анхны хурд; // Тоглоомын оноо int xValue; // JoyStick-X int yValue; // JoyStick-Y int zValue; // JoyStick-Z int FX, FY; // Хоолны координат int SX, SY; // Могойн толгойн солбицол int KEY, K; int Идэвхжүүлсэн; // Тоглоомыг дахин эхлүүлэхийг идэвхжүүлэх char sx [64]; // Могойн биеийн char sy координат [64]; Adafruit_NeoPixel зурвас = Adafruit_NeoPixel (MAX_LED, PIN, NEO_RGB + NEO_KHZ800); хүчингүй RANDOM () {A: FX = санамсаргүй (0, 7); FY = санамсаргүй (0, 7); for (int i = 0; i <3+оноо; i ++) // Могойн биед хоол хүнс харуулахаас урьдчилан сэргийлэх {if (FX == sx && FY == sy ) goto A; }} void myDelay (unsigned int Time) {// Могойн хөдөлгөөн удаашрах үед бид хоол хүнс гялалзуулах гэх мэт зүйлийг хийж, Joystick -ийн чиглэлийг унших ёстой (int t = 1; t 950 && KEY! = 5) { K = 8; } өөр бол (yValue <50 && KEY! = 8) {K = 5; } өөр бол (xValue 950 && KEY! = 4) {K = 6; }} // Эндээс товчлуурын чиглэл нь могойн хөдөлгөөний чиглэлтэй эсрэг байгаа эсэхийг харьцуулж болно. Хэрэв энэ нь эсрэг байвал товчлуураас татгалзаарай. /*********************************************** ************************************************ ************************************************ ************************************************ ********/ void gameover () {// Gameover програм зогссоны дараа төв товчийг дарж тоглоомыг дахин эхлүүлнэ үү. гарын үсэг зураагүй char утга, y; Өнгө [0] = санамсаргүй (3, 18); // Өнгийг тохируулна уу. Параметр нь R G B, 0-255 муж. Өнгө [1] = санамсаргүй (3, 18); Өнгө [2] = санамсаргүй (3, 18); c = зурвас Өнгө (Өнгө [1], Өнгө [0], Өнгө [2]); утга = оноо / 10; утга = утга * 4; y = 0; for (number = value; number <value+4; number ++) {for (unsigned char vertical = 0; vertical <8; vertical ++) {displayscore [y] [vertical] = тэмдэгт [тоо] [босоо]; } y ++; } утга = оноо % 10; утга = утга * 4; for (number = value; number <value+4; number ++) {for (unsigned char vertical = 0; vertical <8; vertical ++) {displayscore [y] [vertical] = тэмдэгт [тоо] [босоо]; } y ++; } for (тэмдэггүй char хэвтээ = 0; хэвтээ <8; хэвтээ ++) {for (тэмдэггүй тэмдэг босоо = 0; босоо <8; босоо ++) {if (дэлгэцийн оноо [хэвтээ] [босоо] == 1) // Гэрэл байгаа эсэхийг шүүх асаалттай байна. {strip.setPixelColor (цайвар [хэвтээ] [босоо], в); } else strip.setPixelColor (цайвар [хэвтээ] [босоо], 0); }} strip.show (); // Өгөгдлийн саатал илгээх (5000); K = 0; // Joystick -ийн чиглэлийг дахин тохируулах sx [0] = 2; схем [1] = 1; схем [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // Могойн координатын оноог дахин тохируулах = 0; // Тоглоомын онооны хурдыг дахин тохируулахS = 400; // Могойн анхны хурд} void setup () {Serial.begin (9600); // Номын сангийн зурвасыг эхлүүлэх.begin (); // Мэдээлэл илгээх. Анхаарах цэг бүрийн өнгийг 0 болгоно. Тиймээс цэг бүрийг эхэнд нь гэрэлтүүлдэггүй. strip.show (); K = 0; // Joystick sx -ийн чиглэлийг дахин тохируулах sx [0] = 2; схем [1] = 1; схем [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // Могойн координатын оноог дахин тохируулах = 0; // Тоглоомын оноог дахин тохируулах Өнгө [0] = санамсаргүй (3, 18); // Өнгө тохируулна уу. Параметр нь R G B, 0-255 муж. Өнгө [1] = санамсаргүй (3, 18); Өнгө [2] = санамсаргүй (3, 18); c = зурвас Өнгө (Өнгө [1], Өнгө [0], Өнгө [2]); // Ногоон улаан цэнхэр // Өнгийг тохируулах (тоо = 0; тоо <24; тоо ++) {strip.setPixelColor (явах [тоо], в); } strip.show (); // Өгөгдөл илгээх саатал (2000); САНАМСАРГҮЙ(); // Хоол хүнс үйлдвэрлэх} void mobile () {KEY = K; // Могойн хөдөлгөөн бүр чиглэлээ нэг удаа өөрчилдөг. if (KEY == 8) // Могойн дээш чиглэсэн хөдөлгөөн {for (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] - 1; if (sy [0] <0) // Хил хязгаараас цааш нөгөө талдаа үргэлжлүүл sy [0] = 7; } else if (KEY == 5) // Могойн доош чиглэсэн хөдөлгөөн {for (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] + 1; if (sy [0]> 7) // Хил хязгаараас цааш нөгөө талдаа үргэлжлүүл sy [0] = 0; } if if (KEY == 4) // Могойн зүүн хөдөлгөөн {for (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] - 1; if (sx [0] <0) // Хилийн цаана гараад нөгөө талдаа үргэлжлүүлээрэй sx [0] = 7; } else if (KEY == 6) // Могойн баруун хөдөлгөөн {for (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] + 1; if (sx [0]> 7) // Хилийн цаана гараад нөгөө талдаа үргэлжлүүлээрэй sx [0] = 0; } // Могойн биеийг} товчлуураар хөдөлгө} void display () {for (number = 0; number <64; number ++) // Дэлгэцийг цэвэрлэх {strip.setPixelColor (тоо, 0); } strip.show (); Өнгө [0] = 40; // Өнгийг тохируулах. Параметр нь R G B, 0-255 хооронд байна. Өнгө [1] = 0; Өнгө [2] = 0; c = зурвас Өнгө (Өнгө [1], Өнгө [0], Өнгө [2]); // Ногоон Улаан Цэнхэр // Өнгийг тохируулах x = гэрэл [FX] [FY]; // Хоолны зурвасыг харуулах.setPixelColor (x, c); Өнгө [0] = санамсаргүй (3, 18); // Өнгийг тохируулах. Параметр нь R G B, 0-255 хооронд байна. Өнгө [1] = санамсаргүй (3, 18); Өнгө [2] = санамсаргүй (3, 18); c = зурвас Өнгө (Өнгө [1], Өнгө [0], Өнгө [2]); // Ногоон Улаан Цэнхэр // Өнгийг тохируулах (int i = 2 + оноо; i> 0; i--) // Могойн биеийг харуулах {x = light [sx [sy ; strip.setPixelColor (x, c); } Өнгө [0] = 0; // Өнгийг тохируулах. Параметр нь R G B, 0-255 хооронд байна. Өнгө [1] = 40; Өнгө [2] = 0; c = зурвас Өнгө (Өнгө [1], Өнгө [0], Өнгө [2]); // Ногоон Улаан Цэнхэр // Өнгийг тохируулах x = гэрэл [sx [0] [sy [0]; // Могойн толгойн зурвасыг харуулна.setPixelColor (x, c); strip.show (); // Өгөгдөл илгээх} void loop () {mobile (); myDelay (speedS); // дотор () нь хойшлуулах хугацаа юм. дэлгэц (); SX = sx [0]; SY = sy [0]; // Могойн толгойн координатыг авах (int i = 1; i <= 2+оноо; i ++) {if (SX == sx && SY == sy ) gameover (); } // Могойн толгой түүний биед хүрсэн эсэхийг шүүнэ үү. Хэрэв хүрвэл GameOver рүү шилжүүлнэ үү. хэрэв (SY == FY && SX == FX) {RANDOM (); оноо ++; Өнгө [0] = 40; // Өнгийг тохируулах. Параметр нь R G B, 0-255 хооронд байна. Өнгө [1] = 0; Өнгө [2] = 0; c = зурвас Өнгө (Өнгө [1], Өнгө [0], Өнгө [2]); // Ногоон Улаан Цэнхэр // Өнгийг тохируулах x = гэрэл [FX] [FY]; // Хоолны зурвасыг харуулах.setPixelColor (x, c); strip.show (); // Хэрэв (! (оноо % 5)) {// онооны дагуу могойн хурдыг хурдасгах бол өгөгдөл илгээх. Идсэн 5 хоол хүнс тутамд 100мм нэмэгддэг. хурдS = хурдS - 50; if (speedS <150) // Доод хязгаар нь 200ms. Хэрэв хурд нь 200 м -ээс бага байвал хурд нь 200 м хэвээр байх болно. хурд S = 150; }} // Хоол идсэн эсэхийг шүүнэ үү. Хэрэв могой хоол идсэн бол оноо нэмж, хоол хүнсээ санамсаргүй байдлаар сэргээдэг. }
Туршилтын үр дүн
Алхам 4: Туршилтын үр дүн
Харьцангуй уншилт:
FreaksBot Bluetooth машин
Ардуинотой 8*8 NeoPixels матриц дээр анхны ирмэгийг асаана уу
Бичил: битийн туршилт 05: RGB LED - Elecfreaks Mirco: bit Starter Kit Course
Баасан гарагийн бүтээгдэхүүний бичлэг: LED хөгжмийн давтамжийн спектрийн дэлгэцийн гагнуурын хэрэгсэл
Ухаалаг гэрэл хийхийн тулд ElecFreaks Micro: bit Tinker Kit -ийг ашиглаарай
Зөвлөмж болгож буй:
Могойн тоглоом: 4 алхам
Могойн тоглоом: Сайн байна уу залуусаа, өнөөдөр би Python дээр могойн үндсэн тоглоомыг хийж, найзуудаа энэ амралтаараа гайхуулах болно. Энэ бол маш энгийн бөгөөд танд python 3 болон pygame суулгах хэрэгтэй. Энэхүү зааварчилгаанд би pygame -ийг хэрхэн суулгах тухай видеог нэмж орууллаа. Дараа
Arduino OLED могойн тоглоом: 3 алхам
Arduino OLED могойн тоглоом: Сайн байна уу, хэрхэн хийх, arduino OLED тоглоомыг хийх зааварчилгаанд тавтай морилно уу, бид анхны тоглоомоо arduino, soooo ашиглан хийхийг оролдож байхдаа nokia -аас хаанаас эхлэх нь дээр гэж бодсон юм. сонгодог могой (наад зах нь
8x16 LED матриц понг тоглоом (Тоглогчийн хувилбар бүрт 2 сэлүүр): 3 алхам
8x16 LED матриц понг тоглоом (Тоглогчийн хувилбар бүрт 2 сэлүүр): 8х8 хэмжээтэй LED матриц ашиглан Arduino дээр хэрэгжүүлсэн сонгодог понг тоглоомын олон хувилбараас санаа авсан. Энэхүү зааварчилгааны хүрээнд би тоглогч бүрт довтлогч, хаалгач гэсэн хоёр сэлүүртэй дуртай Понг хувилбарыг хэрхэн бүтээхийг танд үзүүлэх болно
C: 8 алхам дахь могойн тоглоом
Game in Snake in C: Могой тоглоом нь хуучин гар утсанд түгээмэл хэрэглэгддэг байсан бөгөөд үүнийг c програмыг ашиглан хялбархан шилжүүлж болно. Энэхүү төслийг бүтээхийн тулд c синтаксийн талаархи үндсэн ойлголттой байх шаардлагатай. Жишээ нь: loop, while loop гэх мэт. Энэ төрлийн тоглоомын төслийг бүтээснээр програмист тань
Амьдралын LED матриц тоглоом 32 X 32: 8 алхам
LED Matrix Амьдралын Тоглоом 32 X 32: Би Jptrsn-ийн 16 x16 Амьдралын Тоглоомоос санаа авсан боловч дөрөв дахин том болсон. Bangood.com дээрээс MAX7219 Dot Matrix Module 4-in-1 Display-ийг Bangood.com дээрээс £ 3.50 Тэднийг ирэхэд таслахад маш хэцүү байсан