Το Snake Game ήταν πολύ δημοφιλές από την αρχή των κινητών τηλεφώνων. Αρχικά ήρθε σε ασπρόμαυρα κινητά τηλέφωνα, και σύντομα έγινε πολύ διάσημο. Στη συνέχεια, με την πρόοδο των κινητών τηλεφώνων, αυτό το παιχνίδι άλλαξε επίσης πολύ και τώρα υπάρχουν πολλές γραφικές και πολύχρωμες εκδόσεις αυτού του παιχνιδιού.
Το παιχνίδι φιδιών έχει επίσης γίνει πολύ δημοφιλές έργο DIY για Χόμπιτ και μαθητές ηλεκτρονικής. Σήμερα λοιπόν πρόκειται να δείξουμε, το Arduino Snake Game, με όλες τις βασικές λειτουργίες του, διατηρώντας το απλό ταυτόχρονα.
Χρησιμοποιούμενα συστατικά:
- Arduino UNO
- Οθόνη 8x8 LED Dot Matrix
- Shift Register 74HC595
- LCD 16x2
- ΠΟΤ 1Κ
- Κουμπιά
- Σύνδεση καλωδίων
- Πίνακας ψωμιού
- Παροχή ηλεκτρικού ρεύματος
Επεξήγηση εργασίας:
Αυτό είναι λίγο περίπλοκο παιχνίδι που μπορεί να χτιστεί. Αλλά σε αυτό το σεμινάριο, το έχουμε κάνει απλό για εσάς. Για να φτιάξουμε αυτό το έργο, χρησιμοποιήσαμε μια οθόνη Dot matrix 8x8 κόκκινου χρώματος για την εμφάνιση του φιδιού και της κουκίδας φαγητού του, μια οθόνη LCD για την εμφάνιση των πόντων ή του σκορ, 5 κουμπιά για οδηγίες και να ξεκινήσουμε το παιχνίδι και τέλος ένα Arduino UNO για έλεγχο όλη τη διαδικασία. Το διάγραμμα καρφιτσών της 8x8 LED Dot Matrix Display με την αρχική του εικόνα έχει δοθεί παρακάτω:
Όταν ενεργοποιούμε το κύκλωμα, πρώτα δείχνουμε ένα μήνυμα καλωσορίσματος και στη συνέχεια μια ένδειξη "Πατήστε Έναρξη για αναπαραγωγή" στην οθόνη LCD. Μετά από αυτό, η οθόνη LCD δείχνει το σκορ ως μηδέν και η οθόνη κουκκίδων δείχνει δύο κουκκίδες ως φίδι και μία κουκκίδα ως φαγητό.
Τώρα ο χρήστης πρέπει να πατήσει το μεσαίο κουμπί για να ξεκινήσει το παιχνίδι και το φίδι να αρχίσει να κινείται προς τα πάνω από προεπιλογή. Στη συνέχεια, ο χρήστης πρέπει να δώσει κατεύθυνση στο φίδι πατώντας τα «πλήκτρα κατεύθυνσης» γύρω από το μεσαίο κουμπί. Εδώ έχουμε χρησιμοποιήσει πέντε πλήκτρα (πλήκτρα), δηλαδή Αριστερό πλήκτρο, Δεξί πλήκτρο, Πάνω πλήκτρο, Κάτω πλήκτρο και Έναρξη. Κάθε φορά που το φίδι φτάνει στην κουκίδα του φαγητού ή τρώει το φαγητό, η βαθμολογία αυξάνεται κατά 5 πόντους κάθε φορά και το μήκος του φιδιού αυξάνεται κατά μία κουκκίδα (LED) κάθε φορά, καθώς και η ταχύτητα του φιδιού γίνεται ταχύτερη από πριν. Και όποτε το φίδι χτυπήσει σε οποιονδήποτε τοίχο ή φτάσει στο τέλος της μήτρας LED, τότε θα τερματίσει το παιχνίδι ("Game Over"). Στη συνέχεια, ο χρήστης πρέπει να ξεκινήσει ξανά το παιχνίδι πατώντας το πλήκτρο έναρξης.
Επεξήγηση κυκλώματος:
Το κύκλωμα αυτού του έργου Snake Game είναι λίγο περίπλοκο. Εδώ έχουμε συνδέσει την οθόνη dot matrix χρησιμοποιώντας το Shift Register 74HC595. Εδώ χρησιμοποιούνται δύο μηχανισμοί αλλαγής ταχυτήτων, ένας για την οδήγηση των στηλών και ο δεύτερος για την οδήγηση των σειρών. Καρφίτσες ελέγχου και των δύο καταχωρητών, του καταχωρητή αλλαγής στήλης και του καταχωρητή αλλαγής γραμμής (SH, ST),συνδέονται απευθείας με τον αριθμό pin 14 και 16 του Arduino αντίστοιχα. Και ο ακροδέκτης DS του καταχωρητή μετατόπισης στηλών και ο καταχωρητής μετατόπισης σειρών συνδέονται απευθείας με τους αριθμούς ακίδων 15 και 17 του Arduino. Κουμπί έναρξης για έναρξη του παιχνιδιού είναι συνδεδεμένο στον αριθμό pin 3, αριστερό κουμπί κατεύθυνσης στον πείρο 4, κουμπί δεξιάς κατεύθυνσης στον πείρο 6, κουμπί επάνω κατεύθυνσης στον πείρο 2 και κουμπί κατεύθυνσης κάτω στον πείρο 5. Μια LCD είναι επίσης συνδεδεμένη στο υλικό μας για εμφάνιση σκορ. Οι ακίδες RS και EN συνδέονται απευθείας στους ακροδέκτες 13 και 12. Ο ακροδέκτης RW είναι άμεσα γειωμένος. Και οι ακίδες δεδομένων d4-d7 συνδέονται στον ακροδέκτη 11, 10, 9, 8 του Arduino. Το υπόλοιπο της σύνδεσης φαίνεται στο διάγραμμα κυκλώματος.
Επεξήγηση προγραμματισμού:
Για να γράψετε αυτόν τον κωδικό παιχνιδιού φιδιού Arduino, πρώτα απ 'όλα συμπεριλαμβάνουμε αρχεία κεφαλίδας και καθορίζουμε καρφίτσες για LCD. Στη συνέχεια, ορίστε μερικές καρφίτσες για κουμπιά κατεύθυνσης και καρφίτσα δεδομένων για καταχωρητές μετατόπισης.
#περιλαμβάνω
Στη συνέχεια, αρχικοποιούμε όλα τα πράγματα που έχουμε χρησιμοποιήσει στο πρόγραμμα. Στη λειτουργία ρύθμισης αρχικοποιούμε την οθόνη LCD, δίνοντας κατεύθυνση στις εισόδους εξόδου, τραβήξτε τα bit και δείχνοντας μήνυμα καλωσορίσματος στην οθόνη LCD.
άκυρη ρύθμιση () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (έναρξη, ΕΙΣΟΔΟΣ);……………
Και μετά ξεκινάμε το παιχνίδι σε λειτουργία βρόχου .
void show_snake (int temp) {για (int n = 0; n
Εδώ χρησιμοποιήσαμε την παρακάτω συνάρτηση για την ανάγνωση της κατεύθυνσης εισόδου από το κουμπί.
άκυρο read_button () {if (! digitalRead (αριστερά)) {move_r = 0; move_c! = - 1; move_c = -1: move_c = 1; ενώ (! digitalRead (αριστερά));……………
Ελέγξτε τον πλήρη C Code of Snake Game παρακάτω.