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

ESP32 Handheld Game Console: 21 βήματα (με εικόνες)
ESP32 Handheld Game Console: 21 βήματα (με εικόνες)

Βίντεο: ESP32 Handheld Game Console: 21 βήματα (με εικόνες)

Βίντεο: ESP32 Handheld Game Console: 21 βήματα (με εικόνες)
Βίντεο: ESP32 Handheld Console Assembly Part 1 2024, Νοέμβριος
Anonim
Image
Image
Προετοιμασία υλικού
Προετοιμασία υλικού

Αυτές οι οδηγίες δείχνουν πώς να χρησιμοποιήσετε ένα ESP32 και ATtiny861 για να δημιουργήσετε μια κονσόλα παιχνιδιών εξομοιωτή NES.

Βήμα 1: Προετοιμασία υλικού

Προετοιμασία υλικού
Προετοιμασία υλικού
Προετοιμασία υλικού
Προετοιμασία υλικού

ESP32 Πίνακας Dev

Αυτή τη φορά χρησιμοποιώ έναν πίνακα dev TTGO T8 ESP32. Αυτός ο πίνακας έχει ενσωματωμένο κύκλωμα φόρτισης και ρύθμισης Lipo, μπορεί να βοηθήσει στη μείωση των επιπλέον εξαρτημάτων.

Απεικόνιση

Αυτή τη φορά χρησιμοποιώ LCD IPS 2,4 . Ο ελεγκτής προγράμματος οδήγησης είναι ST7789V και η ανάλυση είναι 320 x 240. Αυτή η ανάλυση ταιριάζει καλύτερα για τον εξομοιωτή NES 252 x 224.

Μπαταρία

Αυτή τη φορά χρησιμοποιώ μια μπαταρία 454261 Lipo. Το πάχος της πλακέτας ESP32 dev είναι 4,5 mm και το πλάτος της σανίδας 61 mm.

Κεφαλίδα καρφιτσών

Μια κεφαλίδα στρογγυλής καρφίτσας με 4 καρφίτσες και μια γυναικεία κεφαλίδα με 4 ακίδες για σύνδεση I2C gamepad.

Πιάτο PETG

Μια μικρή πλάκα PET/PETG για υποστήριξη της πλακέτας dev και της μπαταρίας Lipo, μπορείτε εύκολα να τη βρείτε στη συσκευασία προϊόντων.

PCB πολλαπλών χρήσεων

Απαιτείται 2 PCB, 1 πάχος 0,4 mm για τη στήριξη της οθόνης, 1 1,2 mm πάχος για ένα gamepad I2C.

Κουμπιά

Ένα κουμπί 5 κατευθύνσεων, 2 μικρά κουμπιά για επιλογή και έναρξη και 2 για κουμπιά Α και Β.

Ελεγκτής I2C Gamepad

Αυτή τη φορά χρησιμοποιώ έναν μικροελεγκτή ATtiny861 ως ελεγκτή παιχνιδιού I2C.

Οι υπολοιποι

1 αντίσταση SMD 12 Ohm, προγραμματιστής ISP (π.χ. TinyISP)

Βήμα 2: Προετοιμασία λογισμικού

Προετοιμασία λογισμικού
Προετοιμασία λογισμικού
Προετοιμασία λογισμικού
Προετοιμασία λογισμικού
Προετοιμασία λογισμικού
Προετοιμασία λογισμικού

Arduino IDE

Λήψη και εγκατάσταση του Arduino IDE εάν όχι ακόμα:

Υποστήριξη ATTinyCore

Ακολουθήστε τα βήματα εγκατάστασης για να προσθέσετε υποστήριξη ATTinyCore αν όχι ακόμα:

ESP-IDF

Ακολουθήστε τον οδηγό έναρξης ESP-IDF για να ρυθμίσετε το περιβάλλον ανάπτυξης, αν όχι ακόμα:

Βήμα 3: Τρισδιάστατη εκτύπωση

Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση

Κατεβάστε και εκτυπώστε τη θήκη:

Βήμα 4: Υποστήριξη LCD

Υποστήριξη LCD
Υποστήριξη LCD
Υποστήριξη LCD
Υποστήριξη LCD

Κόψτε ένα PCB 24 x 27 οπών 0,4 mm για υποστήριξη LCD. Θυμηθείτε κρατήστε λίγο χώρο για πτυσσόμενο LCD FPC. Στη συνέχεια, χρησιμοποιήστε μια κολλητική ταινία διπλής όψης, στερεώστε την οθόνη LCD στο PCB.

Βήμα 5: Προετοιμάστε την πλάκα PETG

Προετοιμάστε το πιάτο PETG
Προετοιμάστε το πιάτο PETG
Προετοιμάστε το πιάτο PETG
Προετοιμάστε το πιάτο PETG

Κόψτε μια πλάκα PETG 62 mm x 69 mm για πλακέτα dev και υποστήριξη μπαταρίας Lipo.

Βήμα 6: Διορθώστε την πλακέτα ESP32 Dev

Διορθώστε τον πίνακα ESP32 Dev
Διορθώστε τον πίνακα ESP32 Dev

Χρησιμοποιήστε κολλητική ταινία διπλής όψης για να στερεώσετε την πλακέτα dev στην πλάκα PETG.

Βήμα 7: Διορθώστε την μπαταρία Lipo

Διορθώστε την μπαταρία Lipo
Διορθώστε την μπαταρία Lipo

Χρησιμοποιήστε κολλητική ταινία διπλής όψης για να στερεώσετε την μπαταρία Lipo εκτός από την πλακέτα dev.

Βήμα 8: Συνδέστε το Battery & Devboard

Συνδέστε το Battery & Dev Board
Συνδέστε το Battery & Dev Board

Βήμα 9: Προετοιμάστε καρφίτσες οθόνης

Προετοιμάστε καρφίτσες οθόνης
Προετοιμάστε καρφίτσες οθόνης

Οι οθόνες LCD έχουν πολλές παραλλαγές από διαφορετικούς προμηθευτές. Αποκτήστε το σωστό φύλλο δεδομένων και διαβάστε το πριν από οποιαδήποτε ενημέρωση κώδικα και σύνδεση.

Ορισμένες καρφίτσες προορίζονται για οθόνη αφής. Δεδομένου ότι αυτή η οθόνη LCD δεν διαθέτει οθόνη αφής, απλά κόψτε αυτές τις ακίδες μπορεί να μειώσει την ενόχληση.

Βήμα 10: Συνδέστε τις καρφίτσες GND

Συνδέστε καρφίτσες GND
Συνδέστε καρφίτσες GND
Συνδέστε καρφίτσες GND
Συνδέστε καρφίτσες GND

Στις περισσότερες περιπτώσεις, υπάρχουν λίγες ακίδες που απαιτούν σύνδεση με το GND. Για να μειώσω την προσπάθεια συγκόλλησης, έκοψα ένα σχήμα χάλκινης ταινίας για να φτάσω σε όλες τις καρφίτσες GND και στη συνέχεια συγκόλληση εντελώς.

Βήμα 11: Συνδέστε τις καρφίτσες Vcc

Συνδέστε τις καρφίτσες Vcc
Συνδέστε τις καρφίτσες Vcc

Απαιτούνται 2 ακίδες για σύνδεση με Vcc, τροφοδοσία LCD και ισχύ LED. Σύμφωνα με το δελτίο δεδομένων, η τροφοδοσία LCD μπορεί να συνδεθεί απευθείας στην πλακέτα dev 3.3 V, αλλά η ισχύς LED λειτουργεί λίγο χαμηλότερα από τα 3,3 V. Έτσι, είναι καλύτερα να προσθέσετε μια αντίσταση SMD στη μέση, π.χ. Αντίσταση 12 Ohm.

Βήμα 12: Συνδέστε την υποστήριξη της πλακέτας LCD & Dev

Συνδέστε την υποστήριξη LCD & Dev Board
Συνδέστε την υποστήριξη LCD & Dev Board

χρησιμοποιήστε ταινία σύνδεσης υποστήριξης LCD και υποστήριξης πλακέτας dev μαζί. Και τα δύο στηρίγματα πρέπει να διατηρούν κενό περίπου 5 mm για αναδίπλωση.

Βήμα 13: Συνδέστε τις καρφίτσες SPI

Συνδέστε τις καρφίτσες SPI
Συνδέστε τις καρφίτσες SPI

Ακολουθεί η περίληψη της σύνδεσης:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> μη συνδεδεμένο Vcc -> 3,3 V LED+ -> Αντίσταση 12 Ohm -> LED 3,3 V - -> GND

Βήμα 14: Πρόγραμμα Flash

Πρόγραμμα Flash
Πρόγραμμα Flash
Πρόγραμμα Flash
Πρόγραμμα Flash
Πρόγραμμα Flash
Πρόγραμμα Flash
Πρόγραμμα Flash
Πρόγραμμα Flash
  1. Κατεβάστε τον πηγαίο κώδικα στο GitHub:
  2. Κάτω από τον φάκελο πηγαίου κώδικα, εκτελέστε "make menuconfig"
  3. Επιλέξτε "Διαμόρφωση ειδική για το Nofrendo ESP32"
  4. Επιλέξτε "Υλικό για εκτέλεση" -> "Προσαρμοσμένο υλικό"
  5. Επιλέξτε "Τύπος LCD" -> "ST7789V LCD"
  6. Συμπληρώστε τις ρυθμίσεις καρφιτσών: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, οπίσθιος φωτισμός -> -1, IPS -> Y
  7. Έξοδος και αποθήκευση
  8. Εκτέλεση "make -j5 flash"
  9. Εκτέλεση "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Βήμα 15: Συνδετήρας I2C

Συνδετήρας I2C
Συνδετήρας I2C
Συνδετήρας I2C
Συνδετήρας I2C
Συνδετήρας I2C
Συνδετήρας I2C

Ξεκλείδωμα των ακίδων I2C, οι προεπιλεγμένες ακίδες I2C ESP32 είναι:

Καρφίτσα 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (χωρίς ισχύ 5 V ενώ τροφοδοτείται από μπαταρία Lipo) Pin 4 (GND) -> GND

Βήμα 16: Συναρμολόγηση Μέρος 1

Image
Image

Ακολουθήστε τα βήματα βίντεο για να διπλώσετε και να πιέσετε όλα τα μέρη στη θήκη.

Βήμα 17: Πρωτότυπο I2C Gamepad

Πρωτότυπο I2C Gamepad
Πρωτότυπο I2C Gamepad
Πρωτότυπο I2C Gamepad
Πρωτότυπο I2C Gamepad

Το πρόγραμμα για το I2C Gamepad είναι πολύ απλό, μόνο 15 γραμμές κώδικα. Αλλά είναι λίγο δύσκολο να επαναπρογραμματίσετε το ATtiny861 μετά τη συγκόλληση, οπότε είναι καλύτερα να το δοκιμάσετε πρώτα στο breadboard.

Κατεβάστε, μεταγλωττίστε και αναβοσβήνετε το πρόγραμμα από το GitHub:

Βήμα 18: Δημιουργήστε το Gamepad I2C

Κατασκευή I2C Gamepad
Κατασκευή I2C Gamepad
Κατασκευή I2C Gamepad
Κατασκευή I2C Gamepad
Κατασκευή I2C Gamepad
Κατασκευή I2C Gamepad

Ακολουθεί η περίληψη της σύνδεσης:

Κουμπί ATtiny861

GND -> Όλα τα κουμπιά μία καρφίτσα Pin 20 (PA0) -> Πάνω κουμπί Pin 19 (PA1) -> Πλήκτρο κάτω κουμπιού 18 (PA2) -> Αριστερό κουμπί Pin 17 (PA3) -> Δεξί κουμπί Pin 14 (PA4) -> Επιλέξτε κουμπί Pin 13 (PA5) -> Κουμπί έναρξης Pin 12 (PA6) -> A κουμπί Pin 11 (PA7) -> B κουμπί Pin 6 (GND) -> I2C αρσενικό pin pin header 4 Pin 5 (Vcc) -> I2C αρσενικό pin pin header 3 Pin 3 (SCL) -> I2C αρσενικό pin pin header 1 Pin 1 (SDA) -> I2C αρσενικό pin pin header 2

Βήμα 19: Συναρμολόγηση Μέρος 2

Image
Image
Προαιρετικά: Καρφίτσες Audio Breakout
Προαιρετικά: Καρφίτσες Audio Breakout

Ακολουθήστε τα βήματα βίντεο για να εγκαταστήσετε το εξώφυλλο και το gamepad I2C στο κύριο σώμα.

Βήμα 20: Προαιρετικό: Καρφίτσες Audio Breakout

Image
Image
Προαιρετικά: Καρφίτσες Audio Breakout
Προαιρετικά: Καρφίτσες Audio Breakout

Ο πίνακας ESP32 dev Pin 25 και 26 εξάγει το αναλογικό ηχητικό σήμα, είναι πολύ εύκολο να ξεσπάσετε αυτούς τους 2 ακροδέκτες και επίσης ακίδες τροφοδοσίας (3,3 V και GND) στην κορυφή. Στη συνέχεια, μπορείτε να επιδιορθώσετε ένα ακουστικό για να το συνδέσετε. Or ακόμη μπορείτε να προσθέσετε μια μονάδα ενισχυτή ήχου με ηχείο για να την ακούτε δυνατά.

Βήμα 21: Τι ακολουθεί;

Τι έπεται?
Τι έπεται?

Ο εξομοιωτής NES δεν είναι το μόνο ενδιαφέρον πράγμα που μπορείτε να φτιάξετε με το ESP32. Π.χ. μπορείτε να δημιουργήσετε μια κονσόλα micro python με αυτό. Το μόνο στοιχείο που πρέπει να αλλάξετε είναι από το gamepad του I2C στο πληκτρολόγιο I2C. Νομίζω ότι δεν είναι τόσο δύσκολο να το φτιάξεις με έναν ελεγκτή ATtiny88. Μπορείτε να ακολουθήσετε το twitter μου για να δείτε την κατάσταση.

Συνιστάται: