POING! - Arduino Arcade Game!: 3 βήματα
POING! - Arduino Arcade Game!: 3 βήματα

Βίντεο: POING! - Arduino Arcade Game!: 3 βήματα

Βίντεο: POING! - Arduino Arcade Game!: 3 βήματα
Βίντεο: Обыгрываю 5 Мошеннических Игровых Автоматов с Наукой 2025, Ιανουάριος
Anonim
Image
Image
POING! - Arduino Arcade Game!
POING! - Arduino Arcade Game!

Θα χτίσουμε ένα παιχνίδι arcade στυλ PONG που χρησιμοποιεί τμήματα από το κιτ "The Most Complete Starter Kit UNO R3 Project" από την Elegoo Inc.

Πλήρης αποκάλυψη - Τα περισσότερα από τα μέρη που παρέχονται για αυτό το Εγχειρίδιο δόθηκαν στον συγγραφέα από την Elegoo Inc.

I'veθελα να δημιουργήσω ένα έργο χρησιμοποιώντας μια ενότητα LED Matrix. Η βασική οθόνη LED 8x8 απαιτεί τη χρήση πρόσθετων καταχωρητών αλλαγής ταχυτήτων για να μπορέσετε να αντιμετωπίσετε τα μεμονωμένα LED στη μήτρα. Αντ 'αυτού, αυτό το έργο χρησιμοποιεί τη μονάδα LED MAX7219 8x8. Είναι μια πολύ εύκολη ενότητα στη χρήση.

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

Ας αρχίσουμε!

Προμήθειες

Μεταχειρισμένα ανταλλακτικά Elegoo Starter Kit (https://rebrand.ly/dvjb3w8)

  • Μικροελεγκτής UNO R3
  • Μονάδα LED MAX7219 8x8
  • Μονάδα οθόνης LCD 16x2
  • Ποτενσιόμετρο και κουμπί κοπής 10Κ
  • Καλώδια Dupont
  • Αντίσταση 220R
  • Παθητικό Piezo Buzzer
  • Ενότητα τροφοδοσίας
  • Προσαρμογέας 9V 1A - απαιτείται επειδή το UNO δεν μπορεί να παρέχει επαρκές ρεύμα για τη μονάδα LED 8x8
  • Breadboard

Απαιτούνται επιπλέον εξαρτήματα

2 x 10K Γραμμικό Ποτενσιόμετρο - φθηνό και ευρέως διαθέσιμο στο eBay, AliExpress, Banggood κ.λπ.

Βήμα 1: Καλωδίωση του κυκλώματος

Wiring Up the Circuit
Wiring Up the Circuit

Συνδέστε το κύκλωμα σύμφωνα με το διάγραμμα καλωδίωσης. Με την ησυχία σου. Απαιτούνται ΠΟΛΛΕΣ συνδέσεις για τις δύο οθόνες.

Παρατηρήστε στη φωτογραφία του κυκλώματος ότι η μονάδα ισχύος είναι προσαρτημένη στην αριστερή πλευρά του ψωμιού και ο προσαρμογέας 9V 1A DC είναι συνδεδεμένος στη μονάδα τροφοδοσίας, έτσι ώστε να παρέχεται επαρκές ρεύμα στη μήτρα LED. ΔΕΝ υπάρχει σύνδεση μεταξύ του πείρου 5V στο UNO και του breadboard. ΑΛΛΑ, ο πείρος GND στο UNO είναι συνδεδεμένος με τον GND στον πίνακα ψωμιού.

Διπλός και τριπλός έλεγχος της εργασίας σας.

Βήμα 2: Κωδικός Arduino

Αυτό το διδακτικό υποθέτει ότι γνωρίζετε ήδη πώς να προγραμματίζετε στο Arduino.

Κατεβάστε το συνημμένο σκίτσο Arduino. Βεβαιωθείτε ότι έχετε προσθέσει τη βιβλιοθήκη LedControl στις βιβλιοθήκες σας Arduino. Χρησιμοποίησα την έκδοση του Eberhard Fahle. Απλώς αναζητήστε το MAX7219 στο πρόγραμμα περιήγησης Διαχείριση βιβλιοθηκών και θα το βρείτε και θα το εγκαταστήσετε.

Βεβαιωθείτε ότι το αρχείο pitches.h βρίσκεται στο φάκελο του σκίτσου σας. Χρησιμοποιείται για την αναπαραγωγή των ήχων στο παιχνίδι.

Λίγο για το χρονοδιάγραμμα

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

Το πιο σημαντικό είναι ότι η εντολή delay () εκτελείται μόνο στη μέθοδο loop (). Συνήθως δεν εκτελείται όπως αναμένεται σε άλλες μεθόδους. Έτσι, όλες οι χρονικές στιγμές που σχετίζονται με κινούμενα σχέδια γίνονται στη μέθοδο βρόχου ().

Παράδειγμα:

Ορίζουμε ορισμένες μεταβλητές τύπου «μακρύ» και δύο boole και στη συνέχεια τις ορίζουμε στο τέλος της εγκατάστασης ().

bThresh = 80; // ο χρόνος σε χιλιοστά του δευτερολέπτου μεταξύ των ενημερώσεων της μπάλας

ballTime = millis (); // ορίζεται στην τρέχουσα ώρα συστήματος

bon = false? // είναι η λυχνία LED της μπάλας αναμμένη ή απενεργοποιημένη

ballReturn = false? // επιστρέφουμε μια μπάλα μετά από χτύπημα κουπί;

Στο βρόχο () για την κατάρτιση της μπάλας έχουμε:

εάν ((millis () - ballTime> bThresh) && bon == false) {// εάν η μπάλα είναι OFF και έχει περάσει αρκετός χρόνος ballOn (); // ενεργοποιήστε το LED της μπάλας

bon = true? // η μπάλα είναι τώρα ON

ballTime = millis (); // επαναφέρετε το ballTime στην τρέχουσα ώρα

}

εάν ((millis () - ballTime> bThresh) && bon == true) {// εάν η μπάλα είναι ενεργοποιημένη και έχει περάσει αρκετός χρόνος

ballOff (); // σβήστε το LED της μπάλας

bon = false? // η μπάλα είναι τώρα OFF

ballTime = millis (); επαναφέρετε το ballTIme στην τρέχουσα ώρα

}

Υπάρχουν πολλοί τρόποι για να φτιάξετε αυτό το παιχνίδι. Αυτές είναι μόνο οι προτιμήσεις μου.

Το σκίτσο είναι πλήρως τεκμηριωμένο, γι 'αυτό σας καλώ να διαβάσετε τον κώδικα για να δείτε πώς λειτουργεί.

Ελέγξτε, μεταγλωττίστε και ανεβάστε τον κωδικό σας.

Απολαύστε το παιχνίδι σας!

Βήμα 3: Συμπέρασμα

συμπέρασμα
συμπέρασμα
συμπέρασμα
συμπέρασμα

Ευχαριστώ την Elegoo Inc για την παροχή του κιτ εκκίνησης που χρησιμοποιήθηκε σε αυτό το έργο. Είναι ένα κιτ με μεγάλη ποικιλία εξαρτημάτων και μονάδων που θα σας φέρει καλά στον κόσμο του Arduino Maker.