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

ESP8266 VGA Pong: 5 βήματα (με εικόνες)
ESP8266 VGA Pong: 5 βήματα (με εικόνες)

Βίντεο: ESP8266 VGA Pong: 5 βήματα (με εικόνες)

Βίντεο: ESP8266 VGA Pong: 5 βήματα (με εικόνες)
Βίντεο: ESP8266 VGA Pong 2024, Ιούλιος
Anonim
Image
Image
Κατάλογος Υλικών
Κατάλογος Υλικών

Σε αυτό το Instructables θα δείξω πώς να δημιουργήσετε μια αναπαραγωγή του κλασικού παιχνιδιού Pong για μια οθόνη VGA, χρησιμοποιώντας ένα ESP8266 και μερικά άλλα εξαρτήματα.

Αυτό το παιχνίδι είναι δυνατό από τη βιβλιοθήκη EspVGAx που δημοσιεύτηκε πρόσφατα στο GitHub από τον Sandro Maffiodo (γνωστός και ως Smaffer) και, από όσο γνωρίζω, αυτό είναι το πρώτο παιχνίδι που το εκμεταλλεύεται.

Η βιβλιοθήκη υλοποιεί ανάλυση 512 x 480 εικονοστοιχεία, αποθηκευμένη σε ένα framebuffer μέσα στη μνήμη RAM, η οποία απαιτεί 30720 byte. Η ανάλυση είναι τεράστια σε σύγκριση με τα Arduino TVout ή VGAx (128 x 96 και 120 x 60 pixel αντίστοιχα). Ελπίζω αυτό το παιχνίδι να εμπνεύσει άλλους προγραμματιστές να αναπτύξουν ή να αναπαράγουν πιο πολύπλοκα παιχνίδια.

Βήμα 1: Λίστα υλικών

Η βιβλιοθήκη EspVGAx απαιτεί ένα ESP8266 με όλα τα GPIO εκτεθειμένα, όπως ESP-12E, πίνακα NodeMCU-12E ή οποιονδήποτε πίνακα που εκθέτει GPIO5 (D1), GPIO4 (D2) και GPIO13 (D7)

Συγκεκριμένα, χρησιμοποίησα:

  • ένα ESP8266 NodeMCU-12E (σύνδεσμος εδώ)
  • μια υποδοχή DSUB15 (δηλαδή μια θηλυκή υποδοχή VGA)
  • αντίσταση 330 Ohm
  • άλλη αντίσταση (περίπου 1 έως 3 kOhm)
  • δύο Ποτενσιόμετρα 10 kOhm
  • κουμπί ώθησης (ν.ο.)
  • δύο δίοδοι (όπως 1N4007s)
  • μια σανίδα ψωμιού
  • καλώδια

Πήρα την υποδοχή DSUB15 από μια παλιά πλακέτα υπολογιστή VGA. Εναλλακτικά, μπορείτε επίσης να κόψετε ένα παλιό καλώδιο VGA και να συνδέσετε τα καλώδια απευθείας στο breadboard.

Βήμα 2: Βιβλιοθήκη και μεταφόρτωση σκίτσων

Βιβλιοθήκη και μεταφόρτωση σκίτσων
Βιβλιοθήκη και μεταφόρτωση σκίτσων

Υπάρχουν διάφορες μέθοδοι προγραμματισμού και ESP8266. Χρησιμοποίησα το Arduino IDE για να γράψω Pong και να ανεβάσω τον κώδικα.

Λάβετε υπόψη ότι η βιβλιοθήκη EspVGAx λειτουργεί για το Arduino IDE 1.8.1. Εάν έχετε άλλες εκδόσεις, το καλύτερο είναι να κατεβάσετε τα αρχεία.zip και να τα αποσυμπιέσετε σε ειδικό φάκελο. Η έκδοση των Windows είναι εδώ. Οι εκδόσεις για άλλα λειτουργικά συστήματα είναι εδώ.

Μετά από αυτό, πρέπει να κατεβάσετε τη βιβλιοθήκη EspVGAx από τη σελίδα GithHub εδώ (απευθείας σύνδεσμος για την έκδοση zip εδώ) και να την αποσυμπιέσετε στις βιβλιοθήκες φακέλων στο λογισμικό Arduino.

Σημείωση Υπάρχει ένα μικρό σφάλμα στο αρχείο espvgax_draw.h. Για να το διορθώσετε, απλώς αντικαταστήστε τη γραμμή 17:

ενώ (x0%32) {με while (x0%32 && sw> 32) {

Τέλος, μπορείτε να κατεβάσετε το αρχείο ESP8266_Pong.rar στο τέλος αυτού του βήματος.

Μόλις αποσυμπιέσετε, για να το ανεβάσετε στο ESP8266, πρέπει να διαμορφώσετε το Arduino IDE.

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

Μόλις διαμορφωθούν όλα, οι ρυθμίσεις ESP8266 θα πρέπει να μοιάζουν με αυτές που φαίνονται στην παραπάνω εικόνα.

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

Βήμα 3: Σύνδεση των εξαρτημάτων: του συνδετήρα VGA

Σύνδεση εξαρτημάτων: ο συνδετήρας VGA
Σύνδεση εξαρτημάτων: ο συνδετήρας VGA
Σύνδεση εξαρτημάτων: ο συνδετήρας VGA
Σύνδεση εξαρτημάτων: ο συνδετήρας VGA
Σύνδεση εξαρτημάτων: ο συνδετήρας VGA
Σύνδεση εξαρτημάτων: ο συνδετήρας VGA

Συνιστώ να συνδέσω πρώτα τη θύρα VGA, όπως φαίνεται στις παραπάνω εικόνες. Λάβετε υπόψη ότι συνδέοντας τους τρεις ακροδέκτες Κόκκινο, Πράσινο και Μπλε μαζί (δηλαδή τις ακίδες 1, 2 και 3 στην υποδοχή DSUB15), θα έχετε μια εικόνα B&W στην οθόνη σας. Μπορείτε επίσης να έχετε διαφορετικό συνδυασμό χρωμάτων. Δείτε τις λεπτομέρειες στη σελίδα Library GitHub.

Επιπλέον, θα πρέπει να συνδέσετε μια αντίσταση 330 Ohm μεταξύ των ακίδων RGB και του D7 (GPIO13) στο ESP8266. Αυτό μου έδωσε μια γκριζωπή εικόνα στην οθόνη μου, έτσι, μετά από λίγες προσπάθειες, αποφάσισα να την εξαλείψω καθόλου.

Σε αυτό το σημείο, αν όλα λειτουργούν σωστά, μπορείτε ήδη να συνδέσετε την οθόνη και να δείτε την αρχική οθόνη του παιχνιδιού, με το banner "ESP8266 VGAx Pong".

Βήμα 4: Σύνδεση των εξαρτημάτων: τα ποτενσιόμετρα και το κουμπί

Σύνδεση των εξαρτημάτων: τα ποτενσιόμετρα και το κουμπί
Σύνδεση των εξαρτημάτων: τα ποτενσιόμετρα και το κουμπί

Το κουμπί πρέπει να είναι συνδεδεμένο μεταξύ 3.3V και ακίδας D0 (GPIO16). Συνδέστε επίσης την αντίσταση 1 έως 3 kOhm από D0 στη γείωση. Αυτό αποφεύγει το D0 να είναι σε απροσδιόριστη κατάσταση όταν το κουμπί είναι ανοιχτό.

Η σύνδεση των δύο ποτενσιόμετρων είναι λιγότερο ασήμαντη, καθώς στην πραγματικότητα το ESP8266 διαθέτει μόνο αναλογική θύρα εισόδου A0 (ADC0)! Το κόλπο είναι να συνδέσετε και τις δύο εξόδους pot.s στην ίδια θύρα και να τις «πολυπλέξετε». Η πολυπλεξία σημαίνει απλώς ότι θα ενεργοποιήσετε ένα ποτενσιόμετρο, θα το διαβάσετε, μετά θα το απενεργοποιήσετε και θα μεταβείτε στο δεύτερο.

Εάν θέλετε να μάθετε περισσότερα σχετικά με αυτήν τη μέθοδο, μπορείτε να διαβάσετε αυτό το Instructable.

Συνδέστε το ένα ακραίο ποτενσιόμετρο στο GND, το άλλο ακραίο στο D5 για το ποτενσιόμετρο της αριστερής συσκευής αναπαραγωγής και το D6 για το δεξί.

Κάθε κεντρικός πείρος ποτενσιόμετρου πρέπει να συνδέεται με μια μεμονωμένη δίοδο και οι άλλες πλευρές των διόδων πρέπει να συνδέονται με το A0 (ADC0), με την πολικότητα να φαίνεται στην παραπάνω εικόνα.

Βήμα 5: Συμπέρασμα και Ευχαριστίες

Είμαι ευγνώμων στον Sandro Maffiodo - SMAFFER - για τη βιβλιοθήκη ESPVGAX. Αυτό το παιχνίδι δεν θα ήταν δυνατό χωρίς αυτό.

Ελπίζω ότι αυτό το Instructable θα αποτελέσει έμπνευση για άλλους προγραμματιστές να κάνουν αναπαραγωγές πιο πολύπλοκων κλασικών παιχνιδιών arcade με το ESP8266, το οποίο έχει πολύ λιγότερους περιορισμούς από το Arduino.

Τέλος, έγραψα αυτό το Instructable για να το υποβάλω στον Διαγωνισμό Παιχνιδιών: αν σας αρέσει ή το αναπαράγετε, αφιερώστε λίγο χρόνο για να το ψηφίσετε!

Συνιστάται: