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

ESP32 VGA Arcade Games and Joystick: 6 βήματα (με εικόνες)
ESP32 VGA Arcade Games and Joystick: 6 βήματα (με εικόνες)

Βίντεο: ESP32 VGA Arcade Games and Joystick: 6 βήματα (με εικόνες)

Βίντεο: ESP32 VGA Arcade Games and Joystick: 6 βήματα (με εικόνες)
Βίντεο: ESP32 VGA four games & joystick 2024, Νοέμβριος
Anonim
Image
Image
ESP32 VGA Arcade Games και Joystick
ESP32 VGA Arcade Games και Joystick
ESP32 VGA Arcade Games και Joystick
ESP32 VGA Arcade Games και Joystick

Σε αυτό το διδακτικό θα δείξω πώς να αναπαράγετε τέσσερα παιχνίδια 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, Arduino IDE Installation και VGA Library Configuration
Πίνακες ESP32, Arduino IDE Installation και VGA Library Configuration
Πίνακες ESP32, Arduino IDE Installation και VGA Library Configuration
Πίνακες ESP32, Arduino IDE Installation και VGA Library Configuration
Πίνακες ESP32, Arduino IDE Installation και VGA Library Configuration
Πίνακες ESP32, Arduino IDE Installation και VGA Library Configuration

Πρώτα απ 'όλα πρέπει να αγοράσετε μια αναθεώρηση ESP32 1 ή επάνω. Υπάρχουν πολλές διαθέσιμες εκδόσεις, αλλά προτείνω να επιλέξετε μία με πολλές καρφίτσες, κατά προτίμηση ένα μοντέλο όπως αυτό της εικόνας, με 38 ακίδες. Χρησιμοποιώ αυτήν την έκδοση, αλλά νομίζω ότι πολλές άλλες είναι επίσης καλές. Στο ebay μπορείτε να βρείτε αυτό το μοντέλο για λιγότερο από 7 ευρώ, συμπεριλαμβανομένης της παράδοσης.

Μόλις αποκτήσετε τον πίνακα, πρέπει να προχωρήσετε στα ακόλουθα τρία υπο-βήματα:

  1. Εγκαταστήστε το τελευταίο Arduino IDE
  2. Διαμορφώστε το ESP32 στο IDE και
  3. Κατεβάστε και εγκαταστήστε τη βιβλιοθήκη 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

Σύνδεση της θύρας VGA
Σύνδεση της θύρας 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

Συνδέστε το Joystick
Συνδέστε το Joystick
Συνδέστε το Joystick
Συνδέστε το Joystick
Συνδέστε το Joystick
Συνδέστε το 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, επισκεφθείτε τον ιστότοπό του.

Συνιστάται: