תוכן עניינים:

מרוץ החלל Arduino Space Version _1: 5 שלבים
מרוץ החלל Arduino Space Version _1: 5 שלבים

וִידֵאוֹ: מרוץ החלל Arduino Space Version _1: 5 שלבים

וִידֵאוֹ: מרוץ החלל Arduino Space Version _1: 5 שלבים
וִידֵאוֹ: Next Level Racing Motion Platform V3 Jump in AC 2024, יולי
Anonim
Image
Image

היי חברים. היום אני גאנה מראה לך איך אתה יכול להכין משחק מירוץ שטח על ידי מסך LCD5110 וג'ויסטיק. בואו נסתכל על שלבים …

שלב 1: צרכים

סכֵימָה
סכֵימָה

להלן רשימה של חלקים בהם השתמשתי לצורך ביצוע הפרויקט:

  • ארדואינו UNO
  • מודול ג'ויסטיק
  • חוטי מגשר (זכר לזכר וזכר לנקבה)
  • לוח לחם

שלב 2: סכמה

VCC -> Arduino 5V

BL -> סיכת ארדואינו 3

GND -> Arduino GND

CLK (SCLK) -> סיכת ארדואינו 8

DIN (MOSI) -> סיכת ארדואינו 9

DC -> סיכת ארדואינו 10

CE או CS -> סיכת Arduino 12

RST (איפוס) -> סיכת ארדואינו 11

שלב 3: CODE

קוד
קוד

הקוד כולל הסברים על פונקציות הקוד. אתה תבין את זה בקלות. אם יש לך בעיה אתה יכול ליצור איתי קשר.

#לִכלוֹל

LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

חיצוני uint8_t SmallFont ; // תאר את הגופנים extern uint8_t MediumNumbers ; חיצוני uint8_t arac ; // לתאר את צורתנו החיצונית uint8_t dusman_araci ; // תאר את צורת האויב const int xpin = A0; // ג'ויסטיק x סיכה char pozisyon = 2; // תאר את המיקום, צורת התחלת המיקום שלנו 2 בוליאני kontrol = true; dusmanOldu בוליאני = true; int skor = 0; int hiz = 0; int dusmanKonumu1; // תאר את האויב 1 x מיקום int dusmanKonumu2; // תאר את האויב 2 x מיקום int dusmaninYdeKonumu; // תאר את מיקום האויבים

void dusmanAraci (int yer, int asama) {// קבע מיקומים לצורות אויב

if (yer == 1) {// if location = 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 () {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 score lcd.setFont (MediumNumbers); // הגדר 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 state> 600 והשליטה היא pozisyon ++ אמיתית; // להגדיל את המיקום המשמעות היא להעביר צורה לאופן הנכון kontrol = false; } אחרת אם (x> 300 && x <600) {kontrol = true; } Serial.println (x); // ללמידת x מצב // הגדר את המיקום הצורה שלנו lcd.clrScr (); // נקה את המסך אם (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // צייר את הספינה שלנו אם (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

אם (pozisyon == 3) {

lcd.drawBitmap (34, 37, arac, 12, 8);}

אם (dusmanOldu) {// אם צורת האויב מתה, בדוק האם הם מתים

dusmanKonumu1 = pozisyon; // צייר צורת אויב ראשונה 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> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; עיכוב (40); }}

שלב 4: BITMAP CODE

יתר על כן, עליך לכלול גרפיקת מפת סיביות לצורות. זה חייב להיות קובץ.c ואותו שם עם שם קוד. כמו כן, הוא חייב להיות באותו קובץ.

// ------------------------------------------------ ------------------------------ // קובץ שנוצר על ידי LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include עבור פונקציית התוכנה

const uns sign char arac PROGMEM = {// מפת הסיביות של הצורה שלנו

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusman_araci PROGMEM = {// מפת סיביות של ספינת אויב

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

שלב 5: תודה על הצפייה

תודה על הצפייה
תודה על הצפייה

לפני שהתחלתי לשתף את הפרויקטים שלי, אני מקודד במילים טורקיות, כך שלא יכולתי לסבול כל מילה לאנגלית. כאן המילים לתרגום אשר אני משתמש בפרויקט זה, Oyun = משחק

Arac = צורה

דושמן = אויב

שליטה = שליטה

Konum, Yer = מיקום

Oyun Bitti = המשחק נגמר

סקור = ציון

Hiz = מהירות

מוּמלָץ: