» Ηλεκτρονικά »Μινιατούρα κονσόλα παιχνιδιών με παιχνίδι Pong

Μινιατούρα κονσόλα παιχνιδιών με παιχνίδι Pong

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


Απαραίτητα υλικά και εξαρτήματα:








Αυτό το εγχειρίδιο λήφθηκε από το κανάλι YouTube του AlexGyver. Ο μικροελεγκτής για αυτό το έργο χρειάζεται αυτό:


Αυτό είναι το Attiny85 στο πακέτο DIP, θα είναι αρκετό για εμάς. Για να μην το συγκολλήσουμε, παίρνουμε τη λεγόμενη πρίζα.

Χρειαζόμαστε επίσης μια οθόνη με Aliexpress, OLED με ανάλυση 128 με 32 pixels.


Οι καρφίτσες έρχονται επίσης χρήσιμες.

Τα κουμπιά που θα χρησιμοποιήσουμε εδώ είναι:

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

Και θα συναρμολογήσουμε την κονσόλα παιχνιδιών μας με ένα breadboard (εάν το επιθυμείτε, μπορείτε να φτιάξετε ένα σκάφος μόνοι σας). Θα αναβοσβήσουμε τον προγραμματιστή USBasp, αλλά κάθε AVR θα κάνει.

Διάγραμμα συνδεσμολογίας Τα στοιχεία θα είναι τα εξής:

Η οθόνη συνδέεται με τους ακροδέκτες του διαύλου I2C του μικροελεγκτή. Συνδέουμε κουμπιά σε άλλες ελεύθερες καρφίτσες. Επίσης, προσθέστε ένα διακόπτη για να ενεργοποιήσετε / απενεργοποιήσετε το σύστημα. Και βασικά αυτό είναι όλο, παραμένει η σύνδεση της εξουσίας.
Το υλικολογισμικό φορτώνεται στον μικροελεγκτή από τον προγραμματιστή σύμφωνα με το ακόλουθο σχήμα:
Μινιατούρα κονσόλα παιχνιδιών με παιχνίδι Pong

Τώρα ας ξεκινήσουμε από τη συναρμολόγηση και κανονίσουμε όλα τα στοιχεία στο breadboard. Ας προσπαθήσουμε να συγκεντρώσουμε και να δούμε πώς φαίνεται όλα.


Αποδείχθηκε αρκετά ασκητική. Δεν είναι κακό. Το υπερβολικό μέρος του breadboard μπορεί να αποκοπεί.


Τώρα διορθώνουμε όλα τα εξαρτήματα μόνο με την συγκόλληση των ποδιών τους.



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

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

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

Στη συνέχεια προχωρήστε στη στεγανοποίηση του διαμερίσματος μπαταρίας και του διακόπτη. Το διαμέρισμα πρέπει επίσης να στερεωθεί με ένα πυροβόλο όπλο.


Λοιπόν, αυτό είναι όλο, το σύστημα είναι συναρμολογημένο, μένει να κατεβάσετε το υλικολογισμικό. Θα αναβοσβήνουμε ξεχωριστά την "πέτρα" συνδέοντάς την με τον προγραμματιστή στο breadboard.


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

Δεν θα εξετάσουμε λεπτομερώς τη λήψη, αν κάτι δεν είναι σαφές, τότε μπορείτε πάντα να δείτε τις λεπτομερείς οδηγίες για τον συγγραφέα.
Για firmware, απλά εγκαταστήστε Arduino εγκαταστήστε τον πυρήνα για να εργαστείτε με μικροελεγκτές σειράς Attiny, επιλέξτε μια πλακέτα, επιλέξτε έναν προγραμματιστή.


Στη συνέχεια επιλέγουμε τη συχνότητα των 8 ή 16 MHz, ανοίξτε την καρτέλα "Εργαλεία", βρείτε και επιλέξτε "Εγγραφή φορτωτή".

Δεν υπάρχει φορτωτής, αλλά ο μικροελεγκτής θα συντονιστεί στην απαιτούμενη συχνότητα. Στη συνέχεια επιλέξτε την καρτέλα "Σκίτσο" - "λήψη μέσω του προγραμματιστή". Και περιμένουμε μέχρι το σκίτσο να φορτωθεί στον μικροελεγκτή.

Τώρα βγάζουμε την "πέτρα" και την τοποθετούμε στην καρδιά της κονσόλας μίνι παιχνιδιών.


Όπως μπορείτε να δείτε, λειτουργεί! Και τώρα ας ρίξουμε μια πιο προσεκτική ματιά στο τι έχουμε στο firmware. Το ATtiny85 είναι ένας μικροελεγκτής με 512 bytes μνήμης RAM, ο οποίος είναι πολύ μικρός. Το 99% των βιβλιοθηκών που εργάζονται με μια τέτοια οθόνη χρησιμοποιούν ένα buffer στην πλευρά του μικροελεγκτή για να αναδιαμορφώσουν σωστά την εικόνα, επειδή αυτή η οθόνη δεν μπορεί να διαβάσει τα δεδομένα από το δικό της buffer και είναι εκεί έξω.

Το buffer για αυτήν την εμφάνιση 128 * 32 pixel θα πάρει 512 byte, αν θέλουμε να θυμηθούμε την κατάσταση κάθε bit, δηλαδή, ένα pixel.
Εκτός από το buffer, πρέπει επίσης να αποθηκεύσουμε άλλα δεδομένα, οπότε αυτή η επιλογή σίγουρα δεν ταιριάζει στη μνήμη ενός τέτοιου μεγέθους.

Ως εκ τούτου, αποφασίστηκε να μειωθεί η ανάλυση της οθόνης σε 64 * 16 pixel με την αποθήκευση τετραγώνων 4 pixels.

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


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

Ο υπολογισμός των συντεταγμένων είναι απλώς η προσθήκη τιμών ταχύτητας στις συντεταγμένες στο σύστημα απεικόνισης.
Όταν η σφαίρα ξεπεράσει τους οριζόντιους τοίχους, απλώς αναπηδά, μεταβάλλοντας το κάθετο συστατικό της ταχύτητας στο αντίθετο, δηλαδή με το σύμβολο μείον (-).

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

Η κίνηση της ρακέτας του παίκτη υλοποιείται με τον ίδιο τρόπο όπως και η κίνηση της μπάλας, δηλαδή η παλιά ρακέτα σβήνεται και μία νέα σχεδιάζεται ήδη με νέες συντεταγμένες. Οι συντεταγμένες αλλάζουν όταν κάνετε κλικ στο κουμπί.
Έτσι, αποδεικνύεται πολύ πιο γρήγορα από τον καθαρισμό ολόκληρης της οθόνης και την επαναφορά όλων των στοιχείων.


Τώρα για τη ρακέτα του αντιπάλου. Ελέγχεται από το AI (τεχνητή νοημοσύνη).

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

Επίσης στο παιχνίδι που εφαρμόζεται η μηχανική της αυξανόμενης πολυπλοκότητας. Κάθε 10 πόντους υπέρ του παίκτη αυξάνεται η ταχύτητα της μπάλας. Μαζί με αυτό, η ταχύτητα αντίδρασης του ΑΙ (αντίπαλος) αυξάνεται επίσης.

Ως αποτέλεσμα, εδώ είναι ένα τόσο απλό Pong. Όχι για τίποτα, αυτό το βιντεοπαιχνίδι αναπτύχθηκε για πρώτη φορά, γιατί ακόμη και ένας αρχάριος προγραμματιστής μπορεί να το γράψει. Αλλά παρά την φαινομενική απλότητα του έργου, η φασαρία με την κινεζική οθόνη χρειάστηκε περίπου 20 ώρες καθαρού χρόνου από τον συγγραφέα. Παράλληλα, δεν έλαβε υπόψη τον χρόνο που πέρασε γράφοντας τον κώδικα του ίδιου του παιχνιδιού και άλλες ροές εργασίας που σχετίζονταν με την αποσφαλμάτωση και τη δημιουργία του κυκλώματος.



Σε αυτό το πράγμα, το ίδιο το buzz είναι η διαδικασία συναρμολόγησης, όχι η εφαρμογή.Η ανάπτυξη παιχνιδιών, ακόμη και εκείνων που είναι απλές, μπορεί να είναι πολύ ενδιαφέρουσα. Ειδικά όταν προσπαθείτε να τα ωθήσετε σε πολύ μικροσκοπικό μικροελεγκτή. Και όταν η κινεζική οθόνη σας περιμένει γύρω από τη γωνία ...

Αυτό είναι όλο. Σας ευχαριστώ για την προσοχή σας. Θα σας δω σύντομα!

Βίντεο του συγγραφέα:
6.5
5.5
5.5

Προσθέστε ένα σχόλιο

    • χαμόγελοχαμογελάειxaxaΕντάξειdontknowyahoonea
      αφεντικόξυστάανόητοςναιναι-ναιεπιθετικήμυστικό
      Συγγνώμηχορόςdance2dance3συγχώρησηβοήθειαποτά
      σταματήστεφίλουςκαλόgoodgoodσφυρίχτρασυρρέουνγλώσσα
      καπνόςπαλαμάκιαcrayδηλώστεαπογοητευτικήdon-t_mentionκατεβάστε
      θερμότηταςirefulγέλιο1mdaσυνάντησηmoskingαρνητική
      not_iποπ κορντιμωρίαδιαβάστετρομάξτεφοβίζειαναζήτηση
      χλευάζωthank_youαυτόto_clueumnikοξείασυμφωνώ
      κακόbeeeblack_eyeblum3ρουζκαυχηθείτεπλήξη
      λογοκρισίαευχαρίστησηsecret2απειλήσουννίκηyusun_bespectacled
      shokrespektlolπροβλέπουνκαλωσορίστεkrutoyya_za
      ya_dobryiβοηθόςne_huliganne_othodifludαπαγόρευσηκοντά
1 σχόλιο
κέτσαπ
αντί να καταλαβαίνεις ότι θα ήταν καλύτερο να βρεις το δικό σου

Σας συμβουλεύουμε να διαβάσετε:

Κάντε το για το smartphone ...