Բովանդակություն:
- Քայլ 1: ԿԱՐՈՆԵՐ
- Քայլ 2: SCHEMA
- Քայլ 3: ԿՈԴ
- Քայլ 4. ԿՈԴԻՐ BITMAP
- Քայլ 5: ՇՆՈՐՀԱԿԱԼՈ VIԹՅՈ FORՆ ԴԻՏԵԼՈ ՀԱՄԱՐ
Video: Arduino Space Race Game Տարբերակ _1: 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Բարև ընկերներ: Այսօր ես ganna- ն ձեզ ցույց կտամ, թե ինչպես կարող եք տիեզերական մրցավազքի խաղ պատրաստել LCD5110 էկրանով և ուրախացնող: Եկեք նայենք քայլերին…
Քայլ 1: ԿԱՐՈՆԵՐ
Ահա այն մասերի ցանկը, որոնք ես օգտագործել եմ այս նախագիծը պատրաստելու համար.
- Arduino UNO
- Joystick մոդուլ
- Jumper Wires (արականից արական և արականից իգական)
- Breadboard
Քայլ 2: SCHEMA
VCC -> Arduino 5V
BL -> Arduino քորոց 3
GND -> Arduino GND
CLK (SCLK) -> Arduino փին 8
DIN (MOSI) -> Arduino փին 9
DC -> Arduino քորոց 10
CE կամ CS -> Arduino քորոց 12
RST (RESET) -> Arduino քորոց 11
Քայլ 3: ԿՈԴ
Կոդն ունի ծածկագրի գործառույթների բացատրություններ: Դուք հեշտությամբ կհասկանաք դա: Եթե խնդիր ունեք, կարող եք կապվել ինձ հետ:
#ներառում
LCD5110 LCD (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)
int BL = 3;
extern uint8_t SmallFont ; // նկարագրել արտաքին տառատեսակները uint8_t MediumNumbers ; extern uint8_t arac ; // նկարագրել մեր ձևը արտաքին uint8_t dusman_araci ; // նկարագրել թշնամու ձևը const int xpin = A0; // joystick x pin char pozisyon = 2; // նկարագրեք գտնվելու վայրը, մեր ձևի մեկնարկի վայրը 2 բուլյան վերահսկում = ճշմարիտ; բուլյան dusmanOldu = ճշմարիտ; int skor = 0; int hiz = 0; int dusmanKonumu1; // նկարագրել հակառակորդին 1 x տեղադրություն int dusmanKonumu2; // նկարագրել հակառակորդին 2 x տեղադրություն int dusmaninYdeKonumu; // նկարագրեք թշնամիների գտնվելու վայրը
void dusmanAraci (int yer, int asama) {// թշնամու ձևերի տեղադրման վայրեր
եթե (yer == 1) {// եթե գտնվելու վայրը = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // նկարել թշնամու ձևը} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}
void oyunBitti () {// եթե ձախողվենք, խաղը կավարտվի
իսկ (1) {հետաձգում (100); // սպասել 1 միլիարդ վայրկյան lcd.clrScr (); // մաքրել էկրանը lcd.setFont (SmallFont); // սահմանել տառատեսակը lcd.print ("GAME OVER", CENTER, 20); // տպել lcd.update (); // թարմացնել էկրանը}}
void setup () {pinMode (BL, OUTPUT); // հետադարձ լույս թողնել lcd. InitLCD (); // նախաստորագրել lcd էկրանը lcd.setContrast (55); // սահմանել հակադրություն (ամուն 0 -ից մինչև 127 -ը) Serial.begin (9600); // սկսել սերիական հաղորդակցություն}
դատարկ շրջան () {
analogWrite (BL, 200);
// սահմանել խաղի էկրանը lcd.drawRect (0, 0, 47, 47); // մենք նկարում ենք ուղղանկյուն lcd.setFont (SmallFont); // սահմանել տառատեսակ lcd.print ("skor", 53, 0); // printf հաշիվ lcd.setFont (միջին թվեր); // սահմանել տառատեսակը lcd.printNumI (skor, 59, 7); // ստանալ միավոր lcd.setFont (SmallFont); lcd.print («hiz», 56, 25); // տպման արագություն lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // ստանալ արագություն lcd.update (); // թարմացում
// սահմանել joyistick- ի գտնվելու վայրը int x = analogRead (xpin); եթե (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x վիճակ> 600 և վերահսկողությունը ճիշտ է pozisyon ++; // բարձրացնել տեղադրությունը նշանակում է ձևը տեղափոխել աջ kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // x վիճակը սովորելու համար // սահմանեք մեր ձևի գտնվելու վայրը lcd.clrScr (); // մաքրել էկրանը if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // նկարեք մեր նավը, եթե (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}
եթե (դրական = 3) {
lcd.drawBitmap (34, 37, arac, 12, 8);}
եթե (dusmanOldu) {// եթե թշնամու ձևը մեռած է, ստուգեք, արդյոք նրանք մահացած են
dusmanKonumu1 = դրական; // նկարել առաջին թշնամու ձևը dusmanKonumu2 = պատահական (0, 4); // նկարել մեկ այլ թշնամու ձև ինչ -որ տեղ dusmaninYdeKonumu = 0; // բերեք թշնամուն վերևից dusmanOldu = false;} // թշնամին վերստեղծվում է, որպեսզի նրանք մահացած չլինեն dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // նկարել թշնամու առաջին ձևը և ստանալ այն վերևից ներքև dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // գծեք երկրորդ թշնամու ձևը և ստացեք այն վերևից ներքև, եթե (dusmaninYdeKonumu> 22 && (((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// եթե մեր ձևը դիպչում է թշնամուն oyunBitti ();};} // խաղն ավարտված է, եթե (dusmaninYdeKonumu> 40) {// եթե մեր ձևը փախչում է թշնամիներից dusmanOldu = true; // սպանել թշնամու ձևերը skor ++;} // մեկ առ մեկ բարձրացնել հաշիվը // բարձրացնել արագությունը ըստ հաշվի, եթե (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; ուշացում (40); }}
Քայլ 4. ԿՈԴԻՐ BITMAP
Ավելին, դուք պետք է ներառեք bitmap գրաֆիկա ձևերի համար: Այն պետք է լինի.c ֆայլ և նույն անունը `կոդի անունով: Բացի այդ, այն պետք է լինի նույն ֆայլում:
// ---------------------------------------------------- ------------------------------ // LCD օգնականի կողմից ստեղծված ֆայլ // https://en.radzio.dxp.pl /bitmap_converter/// ------------------------------------------------- ------------------------------------- #ներառել // ներառել progmem գործառույթի համար
const unsigned char arac PROGMEM = {// մեր ձևի bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusman_araci PROGMEM = {// թշնամու նավի bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Քայլ 5: ՇՆՈՐՀԱԿԱԼՈ VIԹՅՈ FORՆ ԴԻՏԵԼՈ ՀԱՄԱՐ
Մինչև ես սկսեի կիսվել իմ նախագծերով, ծածկագրված էի թուրքերեն բառերով, այնպես որ ես չէի կարող յուրաքանչյուր բառ անգլերեն պատահական համարել: Ահա այն բառերի թարգմանությունը, որոնք օգտագործում են այս նախագիծը, Օյուն = Խաղ
Arac = Ձև
Դուսման = Թշնամի
վերահսկում = վերահսկողություն
Konum, Yer = Որտեղից
Oyun Bitti = Խաղն ավարտված է
Skor = Հաշիվ
Հիզ = Արագություն
Խորհուրդ ենք տալիս:
Arduino վոլտաչափ (0-100V DC) - տարբերակ 2 (ավելի լավ) ՝ 3 քայլ
Arduino Volt Meter (0-100V DC)-Տարբերակ 2 (ավելի լավ). Այս ուսանելի ծրագրում ես կառուցել եմ վոլտմետր ՝ չափելու բարձր լարման DC (0-100v) հարաբերական ճշգրտությամբ և ճշգրտությամբ ՝ օգտագործելով Arduino Nano և ADS 1115 ADC . Սա վոլտմետրի երկրորդ տարբերակն է, որն օգտագործվել է իմ նախորդ հրահանգով այստեղ ՝ https: // ww
ARDUINO SOLAR CHARGE CONTROLLER (տարբերակ 2.0). 26 քայլ (նկարներով)
ARDUINO SOLAR CHARGE CONTROLLER (տարբերակ 2.0). [Տեսաֆիլմ] Մեկ տարի առաջ ես սկսեցի կառուցել իմ սեփական արևային համակարգը `իմ գյուղի տան էներգիան ապահովելու համար: Սկզբում ես պատրաստեցի LM317 լիցքավորման հսկիչ և էներգաչափիչ `համակարգը վերահսկելու համար: Վերջապես, ես պատրաստեցի PWM լիցքավորման վերահսկիչ: Ապրիում
Space Race Game Տարբերակ 2: 5 քայլ
Տիեզերական մրցավազք խաղ Տարբերակ 2: Բարև բոլորին: Մինչ այս խաղի տարբերակը, ı- ը հրապարակեց խաղի առաջին տարբերակը: Այսօր ı -ը ձեզ ցույց կտա Space Race Game տարբերակը 2. Եկեք նայենք քայլերին
ARDUINO SOLAR CHARGE CONTROLLER (Տարբերակ -1). 11 քայլ (նկարներով)
ARDUINO SOLAR CHARGE CONTROLLER (Տարբերակ -1). [Նվագարկեք տեսանյութը] Իմ նախորդ հրահանգներում ես նկարագրեցի անջատված արևային համակարգի էներգիայի մոնիտորինգի մանրամասները: Ես դրա համար հաղթել եմ նաև 123D շղթաների մրցույթում: Դուք կարող եք տեսնել այս ARDUINO ENERGY METER- ը: .Վերջապես ես տեղադրում եմ իմ նոր տարբերակը -3 լիցքավորումը
Ռոբոտից խուսափելու Arduino խոչընդոտ (բարելավման տարբերակ). 7 քայլ (նկարներով)
Ռոբոտին խոչընդոտող խոչընդոտներից խուսափելը (բարելավման տարբերակ). Այս գրառումը առաջին անգամ հրապարակվում է այս կայքում ՝ https://truescience22.blogspot.com/2018/01/arduino-obstacle-avoiding-robotupgrade.html Բարև ընկերներ, այսօր ես պատրաստեցի Arduino- ի բարելավված տարբերակը Robot- ից խուսափող խոչընդոտ: Սա պարզ է, բայց որոշ առանձնահատկություն, և դուք