Πίνακας περιεχομένων:
- Βήμα 1: Πίνακες ESP32, Arduino IDE Installation και VGA Library Configuration
- Βήμα 2: Μεταφόρτωση "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"
- Βήμα 3: Σύνδεση της θύρας VGA
- Βήμα 4: Συνδέστε τα τέσσερα κουμπιά
- Βήμα 5: Συνδέστε το Joystick
- Βήμα 6: Συμπέρασμα και αναγνώριση
Βίντεο: ESP32 VGA Arcade Games and Joystick: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Σε αυτό το διδακτικό θα δείξω πώς να αναπαράγετε τέσσερα παιχνίδια arcade - Tetris - Snake - Breakout - Bomber - χρησιμοποιώντας ένα ESP32, με την έξοδο για μια οθόνη VGA.
Η ανάλυση είναι 320 x 200 pixels, σε 8 χρώματα. Έχω κάνει στο παρελθόν μια έκδοση με Arduino Uno (δείτε εδώ), αλλά η ανάλυση ήταν μόνο 120 x 60 pixel, 4 χρώματα και η μνήμη Arduino ήταν σχεδόν γεμάτη. Χάρη στις μεγαλύτερες επιδόσεις του ESP32, τόσο η ανάλυση όσο και η δυνατότητα αναπαραγωγής είναι υψηλότερες. Επιπλέον, υπάρχει ακόμα αρκετή διαθέσιμη μνήμη, οπότε η προσθήκη νέων παιχνιδιών στο μέλλον θα είναι απλή.
Θα δείξω επίσης ζεστό για σύνδεση ενός απλού χειριστηρίου μέσω καλωδίου RS232. Χρησιμοποιώ το ίδιο pinout του Commodore 64.
Αυτό το έργο καθίσταται δυνατό χάρη στη φοβερή βιβλιοθήκη ESP32 VGA που γράφτηκε από τον Fabrizio Di Vittorio. Δείτε εδώ για περισσότερες λεπτομέρειες.
Βήμα 1: Πίνακες ESP32, Arduino IDE Installation και VGA Library Configuration
Πρώτα απ 'όλα πρέπει να αγοράσετε μια αναθεώρηση ESP32 1 ή επάνω. Υπάρχουν πολλές διαθέσιμες εκδόσεις, αλλά προτείνω να επιλέξετε μία με πολλές καρφίτσες, κατά προτίμηση ένα μοντέλο όπως αυτό της εικόνας, με 38 ακίδες. Χρησιμοποιώ αυτήν την έκδοση, αλλά νομίζω ότι πολλές άλλες είναι επίσης καλές. Στο ebay μπορείτε να βρείτε αυτό το μοντέλο για λιγότερο από 7 ευρώ, συμπεριλαμβανομένης της παράδοσης.
Μόλις αποκτήσετε τον πίνακα, πρέπει να προχωρήσετε στα ακόλουθα τρία υπο-βήματα:
- Εγκαταστήστε το τελευταίο Arduino IDE
- Διαμορφώστε το ESP32 στο IDE και
- Κατεβάστε και εγκαταστήστε τη βιβλιοθήκη VGA
Υπο-βήμα 1. Υπάρχουν διάφορες μέθοδοι για τον προγραμματισμό του ESP32, αλλά εδώ πρέπει να χρησιμοποιήσετε το Arduino IDE (παρεμπιπτόντως χρησιμοποιώ την έκδοση 1.8.9). Για να το εγκαταστήσετε, μπορείτε να μεταβείτε στη σελίδα Arduino IDE και να ακολουθήσετε τις οδηγίες.
Υπο-βήμα 2. Μόλις ολοκληρωθεί η προηγούμενη λειτουργία, πρέπει να διαμορφώσετε το ESP32 στο Arduino IDE. Αυτό δεν είναι ασήμαντο, αφού το ESP32 δεν είναι (ακόμα;) εγγενές σε αυτό. Μπορείτε να ακολουθήσετε αυτό το σεμινάριο ή τα ακόλουθα βήματα.
1) ανοίξτε το Arduino IDE
2) ανοίξτε το παράθυρο προτιμήσεων, Αρχείο/Προτίμηση, εναλλακτικά πατήστε "Ctrl+κόμμα"
3) μεταβείτε στις "Πρόσθετες διευθύνσεις URL διαχειριστή πίνακα", αντιγράψτε και επικολλήστε το ακόλουθο κείμενο:
https://dl.espressif.com/dl/package_esp32_index.js…
και κάντε κλικ στο κουμπί OK.
4) Άνοιγμα διαχειριστή πινάκων. Μεταβείτε στο Tools/Board/Boards Manager…
5) Αναζητήστε το ESP32 και πατήστε το κουμπί εγκατάστασης για το "ESP32 by Espressif Systems":
6) Σε αυτό το σημείο, όταν συνδέετε για πρώτη φορά το ESP32 σας, θα πρέπει να επιλέξετε το σωστό μοντέλο στη μεγάλη λίστα των διαθέσιμων πλακετών ESP32 (δείτε την εικόνα σε αυτό το βήμα). Σε περίπτωση αμφιβολιών για το μοντέλο, απλώς επιλέξτε το γενικό, δηλαδή το πρώτο. Μου κάνει.
7) το σύστημα θα πρέπει επίσης να επιλέξει τη σωστή θύρα USB (COM) και την ταχύτητα μεταφόρτωσης (συνήθως 921600). Σε αυτό το σημείο θα πρέπει να δημιουργηθεί η σύνδεση μεταξύ του υπολογιστή σας και της πλακέτας ESP32.
Υπο-βήμα 3. Τέλος, πρέπει να εγκαταστήσετε τη βιβλιοθήκη FabGL VGA. Κάντε κλικ εδώ για να κατεβάσετε το πλήρες συμπιεσμένο αρχείο. Αποσυμπιέστε το και αντιγράψτε τον φάκελο που προκύπτει (FabGL-master) στο φάκελο βιβλιοθηκών Arduino IDE, ο οποίος μοιάζει με:
"… / Arduino-1.8.12 / βιβλιοθήκες".
Βήμα 2: Μεταφόρτωση "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"
Κάντε λήψη του ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip στο κάτω μέρος αυτού του βήματος. Αποσυμπιέστε και ανοίξτε το με το Arduino IDE και, στη συνέχεια, ανεβάστε το στο ESP32. Εάν δεν έχετε μηνύματα σφάλματος, ο κώδικας θα πρέπει να λειτουργεί ήδη και απλά πρέπει να συνδέσετε τη θύρα και τα κουμπιά VGA (ή το joystick).
Βήμα 3: Σύνδεση της θύρας VGA
Χρειάζεστε τα ακόλουθα μέρη:
- έναν συνδετήρα DSUB15, δηλαδή έναν θηλυκό σύνδεσμο VGA ή ένα καλώδιο VGA που πρόκειται να κοπεί.
- τρεις αντιστάσεις 270 Ohm.
Συνδέστε τον ακροδέκτη ESP32 GPIO 2, 15 και 21 στο VGA Red, Green και Blue αντίστοιχα, μέσω των αντιστάσεων 270 Ohm.
Συνδέστε τα VGA Hsync και Vsync στις καρφίτσες ESP32 GPIO 17 και 4 αντίστοιχα.
Συνδέστε τους ακροδέκτες σύνδεσης DSUB15 5, 6, 7, 8 και 10 στο ESP32 GND.
Για τον ορισμό των ακίδων σύνδεσης VGA DSUB15, δείτε την εικόνα σε αυτό το βήμα. Σημείωση, αυτή είναι η πλευρά συγκόλλησης του θηλυκού συνδετήρα.
Βήμα 4: Συνδέστε τα τέσσερα κουμπιά
Εάν δεν έχετε χειριστήριο C64, μπορείτε να συνδέσετε τέσσερα κουμπιά μετά από αυτό το βήμα. Εάν έχετε το joystick, μπορείτε να παραλείψετε αυτό το βήμα και να μεταβείτε στο επόμενο, αλλά ούτως ή άλλως μπορείτε να συνδέσετε τόσο τα κουμπιά όσο και το joystick (είναι ούτως ή άλλως "παράλληλα").
Το σχηματικό σε αυτό το βήμα δείχνει πώς να συνδέσετε ένα μόνο κουμπί (Κανονικά ανοιχτό) από +5V στον δεδομένο πείρο ESP32.
Σημειώστε ότι πρέπει επίσης να συνδέσετε τον πείρο ESP που έχει δοθεί στο GND μέσω αντίστασης 1 έως 5 kOhm. Με αυτόν τον τρόπο όταν το κουμπί απελευθερώνεται (ανοίγει) ο πείρος ESP είναι ακριβώς στα μηδενικά Volt. Πιο συγκεκριμένα, πρέπει να συνδέσετε τέσσερα κουμπιά με την ακόλουθη σειρά:
- Καρφιτσώστε το κουμπί 12 προς τα δεξιά
- Κουμπίστε το κουμπί 25 στο επάνω
- Καρφίτσωμα 14 στο αριστερό κουμπί
- Καρφίτσωμα 35 στο κουμπί Κάτω
Βήμα 5: Συνδέστε το Joystick
Ένα χειριστήριο C64 έχει το pinout που εμφανίζεται στην πρώτη εικόνα αυτού του βήματος. Για να το συνδέσετε στο ESP32, χρειάζεστε έναν αρσενικό σύνδεσμο DSUB 9 ακίδων (δηλαδή, μια πρίζα), όπως φαίνεται στη δεύτερη εικόνα. Αφαίρεσα ένα με εκτεθειμένες ακίδες από έναν παλιό ηλεκτρονικό πίνακα. Μπορείτε να χρησιμοποιήσετε ένα πιστόλι θερμότητας για να το αφαιρέσετε (αλλά κάντε το σε εξωτερικούς χώρους!).
Πρέπει να συνδέσετε τις ακίδες ακολουθώντας την αριθμητική σειρά σε αυτές τις εικόνες. Σημειώστε ότι το σχηματικό αναφέρεται στην πλευρά του χειριστηρίου, οπότε αντιπροσωπεύει τη σύνδεση του θηλυκού βύσματος. Η πρίζα (αρσενική) για σύνδεση στο ESP32 έχει τις ακίδες με διάταξη "καθρέφτη". Σε περίπτωση αμφιβολίας, θυμηθείτε ότι ο αριθμός καρφιτσών αναφέρεται πάντα στους αρσενικούς και θηλυκούς συνδετήρες, όπως φαίνεται στην τρίτη εικόνα.
Αν θέλετε να ελέγχετε τα παιχνίδια μόνο με το joystick, συνδέστε τον κοινό πείρο του (9) στο ESP32 +5V και τις καρφίτσες του joystick 1, 2, 3, 4 και 6 στις καρφίτσες ESP που δίνονται μετά από την ακόλουθη λίστα.
- ESP pin 12 προς τα δεξιά (RS232 pin 4)
- Κουμπί ESP 14 προς Αριστερά (RS232 pin 3)
- ESP pin 35 to Down button (RS232 pin 2)
- ESP pin 25 to Up button (RS232 pin 1 and 6, ie joystick fire)
ΣΗΜΕΙΩΣΗ οι ακίδες ESP 12, 14, 25 και 35 πρέπει επίσης να συνδεθούν στο GND μέσω αντίστασης 1 έως 5 kOhm. Με αυτόν τον τρόπο όταν το κουμπί απελευθερώνεται (ανοίγει) ο πείρος ESP είναι ακριβώς στα μηδενικά Volt.
Το κουμπί NP2 joystick UP και το κουμπί πυρκαγιάς συνδέονται μεταξύ τους στον πείρο ESP 25-
Έχω συνδέσει τέσσερα κουμπιά στην πλακέτα του υπολογιστή, με αυτόν τον τρόπο δεν χρειάζομαι το χειριστήριο για να παίξω (αν και με το χειριστήριο είναι πολύ πιο αστείο). Και πάλι, ο ακροδέκτης RS232 9 πρέπει να είναι συνδεδεμένος με +5 V και οι ακίδες του χειριστηρίου βρίσκονται παράλληλα με τα κουμπιά.
Βήμα 6: Συμπέρασμα και αναγνώριση
Εάν όλα λειτουργούν σωστά, απλώς συνδέστε την οθόνη VGA και θα μπορείτε να απολαύσετε κάποιο παιχνίδι παλιού στυλ!
Μπορείτε επίσης να σχεδιάσετε ένα σύνολο Mandelbrot με ανάλυση 640 x 350 pixel, μόνο για να δοκιμάσετε τις δυνατότητες της βιβλιοθήκης VGA.
Σημειώστε ότι ο κώδικας είναι γραμμένος με τρόπο που άλλα παιχνίδια μπορούν εύκολα να προστεθούν στο μέλλον (το ESP32 έχει άφθονο χώρο!). Εάν αυτό το έργο έχει αρκετό ενδιαφέρον, μπορεί να το κάνω…
Τέλος, θα ήθελα να εκφράσω τις δεξαμενές μου στον Fabrizio Di Vittorio για τη φοβερή βιβλιοθήκη ESP32 VGA. Για περισσότερες λεπτομέρειες, παραδείγματα και… Space Invaders, επισκεφθείτε τον ιστότοπό του.
Συνιστάται:
Blinds Control With ESP8266, Google Home and Openhab Integration and Webcontrol: 5 βήματα (με εικόνες)
Blinds Control Με ESP8266, Google Home και Openhab Integration και Webcontrol: Σε αυτό το Instructable σας δείχνω πώς πρόσθεσα την αυτοματοποίηση στις περσίδες μου. Wantedθελα να μπορώ να προσθέσω και να αφαιρέσω τον αυτοματισμό, οπότε όλη η εγκατάσταση είναι συνδεδεμένη. Τα κύρια μέρη είναι: Βηματικό μοτέρ Stepper control bij bij ESP-01 Gear and mounting
Τιμόνι DIY PC και πεντάλ από χαρτόνι! (Feedback, Paddle Shifters, Display) για Racing Simulators and Games: 9 Steps
Τιμόνι DIY PC και πεντάλ από χαρτόνι! (Feedback, Paddle Shifters, Display) για Racing Simulators and Games: Hey all! Σε αυτούς τους βαρετούς καιρούς, όλοι τριγυρνάμε αναζητώντας κάτι να κάνουμε. Οι αγώνες αγώνων πραγματικής ζωής ακυρώθηκαν και αντικαταστάθηκαν με προσομοιωτές. Αποφάσισα να φτιάξω έναν φθηνό προσομοιωτή που λειτουργεί άψογα, με
Arduino Arcade Lego Games Box: 19 βήματα (με εικόνες)
Arduino Arcade Lego Games Box: Εάν έχετε παιδιά, πιθανότατα αντιμετωπίζετε τα ίδια προβλήματα με εμάς με τα σετ Lego που αγοράσατε γι 'αυτά. Μαζεύονται και παίζουν μαζί τους, αλλά μετά από λίγο τα σκηνικά μετατρέπονται σε έναν σωρό τούβλα. Τα παιδιά μεγαλώνουν και δεν ξέρετε τι να
Κουμπιά Plug and Play Arcade: 7 βήματα (με εικόνες)
Plug and Play Arcade Buttons: Πρόσφατα άρχισα να χρησιμοποιώ το Arduino για να κάνω τα έργα μου. Ως σχεδιαστής μου αρέσει να φτιάχνω προσαρμοσμένες διεπαφές για τα παιχνίδια/τα διαδραστικά μου έργα. Το μόνο πρόβλημα που συνάντησα είναι ότι η χρήση σειριακής επικοινωνίας είναι αρκετά περίπλοκη και επιρρεπής σε προβλήματα και
Light Up Bow From Saran Wrap and Hot Glue and LED Throwie: 6 βήματα (με εικόνες)
Light Up Bow From Saran Wrap and Hot Glue and LED Throwie: Δημιουργήστε ένα χαριτωμένο, φωτεινό, φωτισμένο τόξο με περιτύλιγμα σαράν, ζεστή κόλλα και μερικές τροποποιημένα πέταλα LED. Ναι, με άκουσες … περιτύλιγμα σαράν και ζεστή κόλλα. Είναι η τέλεια χειροτεχνία διακοπών για τη μαμά και τις κόρες να κάνουν μαζί, χωρίς διάλειμμα