Πίνακας περιεχομένων:

Arduino Space Race Game Έκδοση _1: 5 Βήματα
Arduino Space Race Game Έκδοση _1: 5 Βήματα

Βίντεο: Arduino Space Race Game Έκδοση _1: 5 Βήματα

Βίντεο: Arduino Space Race Game Έκδοση _1: 5 Βήματα
Βίντεο: Power On: The Story of Xbox | Chapter 6: TV…Or Not TV 2024, Νοέμβριος
Anonim
Image
Image

Γεια σας φίλοι. Σήμερα ı am ganna σας δείχνει πώς μπορείτε να φτιάξετε ένα Space Race Game by LCD5110 οθόνη και joystic. Ας δούμε τα βήματα…

Βήμα 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 pin 12

RST (ΕΠΑΝΑΦΟΡΑ) -> Καρφίτσα 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 boolean kontrol = true; boolean dusmanOldu = αλήθεια; int skor = 0; int hiz = 0; int dusmanKonumu1; // περιγράψτε τον εχθρό1 x θέση int dusmanKonumu2; // περιγράψτε τον εχθρό2x θέση 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 setup () {pinMode (BL, OUTPUT); // ρύθμιση πίσω φωτός Έξοδος lcd. InitLCD (); // προετοιμάστε την οθόνη LCD lcd.setContrast (55); // ρύθμιση αντίθεσης (από 0 έως 127) Serial.begin (9600); // έναρξη σειριακής επικοινωνίας}

void loop () {

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); if (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 = 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 ++;} // αυξήστε ένα προς ένα το σκορ // αυξήστε την ταχύτητα ανάλογα με τη βαθμολογία εάν (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; καθυστέρηση (40)? }}

Βήμα 4: ΚΩΔΙΚΟΣ BITMAP

Επιπλέον, πρέπει να συμπεριλάβετε γραφικά bitmap για σχήματα. Πρέπει να είναι αρχείο.c και το ίδιο όνομα με κωδικό όνομα. Επίσης, πρέπει να βρίσκεται στο ίδιο αρχείο.

// ---------------------------------------------------- ------------------------------ // Αρχείο που δημιουργήθηκε από το LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// ------------------------------------------------- --------------------------------- #Include // include για λειτουργία 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: ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΗΝ ΠΡΟΒΟΛΗ

ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΗΝ ΠΡΟΒΟΛΗ
ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΗΝ ΠΡΟΒΟΛΗ

Πριν ı αρχίσω να μοιράζομαι τα έργα μου, κωδικοποιούμαι σε τουρκικές λέξεις, οπότε δεν μπορούσα να βρω κάθε λέξη στα αγγλικά. Εδώ οι λέξεις μετάφραση που χρησιμοποιούν αυτό το έργο, Oyun = Παιχνίδι

Αράκ = Σχήμα

Dusman = Εχθρός

έλεγχος = έλεγχος

Konum, Yer = Τοποθεσία

Oyun Bitti = Το παιχνίδι τελείωσε

Σκορ = Βαθμολογία

Hiz = Ταχύτητα

Συνιστάται: