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

Pong Tennis With LED Matrix, Arduino and Joysticks: 5 βήματα (με εικόνες)
Pong Tennis With LED Matrix, Arduino and Joysticks: 5 βήματα (με εικόνες)

Βίντεο: Pong Tennis With LED Matrix, Arduino and Joysticks: 5 βήματα (με εικόνες)

Βίντεο: Pong Tennis With LED Matrix, Arduino and Joysticks: 5 βήματα (με εικόνες)
Βίντεο: 🕹️ Build an Arduino LED Pong Game | DIY Project #shorts 2024, Νοέμβριος
Anonim
Pong Tennis With LED Matrix, Arduino και Joysticks
Pong Tennis With LED Matrix, Arduino και Joysticks

Αυτό το έργο απευθύνεται τόσο σε αρχάριους όσο και σε έμπειρους τσιμπητές. Σε ένα βασικό επίπεδο μπορεί να γίνει με ένα breadboard, καλώδια και να κολλήσει σε ένα κομμάτι παλιοσίδερα (χρησιμοποίησα ξύλο) με Blu-Tack και χωρίς συγκόλληση. Ωστόσο, σε πιο προηγμένο επίπεδο, μπορεί να συγκολληθεί σε πλακέτα ή σε προσαρμοσμένο PCB.

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

Βήμα 1: Μέρη

Για να φτιάξετε το παιχνίδι Pong χρειάζεστε.

  • 1x Arduino (οποιοσδήποτε τύπος θα λειτουργήσει)
  • 4x MAX7219 8x8 LED Matrices
  • 2x Joysticks
  • 1x Piezo Buzzer (προαιρετικό)
  • 15x Wemale-Female Jumper Wires (3x ομάδες των 5)
  • 15x Male-Female Jumper Wires (3x ομάδες των 5)
  • 18x καλώδια αρσενικού-αρσενικού άλτη
  • 1x Breadboard
  • 1x Αντίσταση 220Ω

Αντί για έναν πίνακα Arduino Uno ή Nano, μπορείτε να χρησιμοποιήσετε ένα Arduino με βάση σανίδες

  • 1x IC ATmega328p 28pin
  • Κρυστάλλινος ταλαντωτής 1x 16kHz
  • Κεραμικοί πυκνωτές 2x 22pF
  • 1x μετατροπέας USB FTDI UART
  • 1x 100uF Ηλεκτρολυτικός πυκνωτής
  • 1x Micro USB Breakout (προαιρετικό)

Εργαλεία;

  • Η / Υ με Arduino IDE (και LedControl Library)
  • Σχετικό καλώδιο USB για το Arduino σας
  • Power Bank για να τροφοδοτήσετε το παιχνίδι μακριά από τον υπολογιστή σας

Βήμα 2: Καλωδίωση

Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση

Η καλωδίωση είναι πολύ απλή καθώς το μόνο που χρειάζεστε είναι καλώδια για να συνδέσετε τις κεφαλίδες των Matrices και Joysticks με το Arduino. Η μόνη επιπλοκή είναι η τροφοδοσία καθώς το Arduino Uno διαθέτει μόνο 3 συνδέσεις GND και μία σύνδεση 5v. Εδώ μπαίνει το breadboard και λειτουργεί ως ράγα διανομής ισχύος για όλα τα εξαρτήματα, Εάν χρησιμοποιείτε NANO, το breadboard θα εξυπηρετήσει τον ίδιο σκοπό, καθώς θα σας επιτρέψει να συνδέσετε τα πάντα.

Για καλωδίωση ακολουθήστε αυτές τις συνδέσεις.

  • Αριστερό Joystick - GND και 5v στις αντίστοιχες ράγες ισχύος. SW - pin 9, VRx - A0, VRy - A1.
  • Right Joystick - GND και 5v στις αντίστοιχες ράγες ισχύος. SW - pin 8, VRx - A2, VRy - A3.
  • Δεξιότερο LED Matrix - GND και 5v στις αντίστοιχες ράγες ισχύος τους. DIN - 13, CS - 11, CLK - 12. (Σύμφωνα με τη γραμμή 25)
  • Όλοι οι άλλοι πίνακες LED μπορούν να είναι αλυσοδεμένοι από την έξοδο του πρώτου πηγαίνοντας από δεξιά προς τα αριστερά, ώστε ο κώδικας να λειτουργεί σωστά.
  • Προαιρετικός βομβητής - Ανόδου (+) έως 220Ω αντίσταση περιορισμού ρεύματος στο pin 10, Cathode (-) - GND.

Βήμα 3: Εναλλακτική καλωδίωση

Εναλλακτική καλωδίωση
Εναλλακτική καλωδίωση
Εναλλακτική καλωδίωση
Εναλλακτική καλωδίωση
Εναλλακτική καλωδίωση
Εναλλακτική καλωδίωση

Αφού το συνδέω με ένα Arduino UNO για εξοικονόμηση χώρου, αποφάσισα να βάλω το Arduino IC από το UNO στο ψωμί με έναν ταλαντωτή κρυστάλλου 16Mhz και ένα ζεύγος πυκνωτών 22pF από κάθε πλευρά στη γείωση. Πιστεύω ότι αυτή ήταν μια αξιόλογη τροποποίηση καθώς κάνει το έργο να φαίνεται πιο προσεγμένο και τελειωμένο, ωστόσο πρέπει να χρησιμοποιήσετε έναν προγραμματιστή USB FTDI για να ενημερώσετε το πρόγραμμα.

Βήμα 4: Κωδικός + Επεξήγηση

Για να ανεβάσετε τον κώδικα στο Arduino, κατεβάστε τη βιβλιοθήκη LedControl από το GitHub εδώ, github.com/wayoda/LedControl και προσθέστε το αρχείο Zip ή προσθέστε το μέσω του Διαχειριστή βιβλιοθήκης στο IDE. Στη συνέχεια, ανοίξτε το συνημμένο σκίτσο, επιλέξτε το Arduino σας στις ρυθμίσεις του πίνακα και της θύρας κάτω από τα εργαλεία και ανεβάστε το στο arduino.

Εξήγηση

Γραμμή 1: Προσθέτει τη βιβλιοθήκη

Γραμμή 5-23: Ορίζει όλες τις μεταβλητές, τις σταθερές και τους αριθμούς ακίδων.

Γραμμή 25: Ρυθμίζει το LED Martix και ορίζει τις ακίδες ελέγχου και πόσες οθόνες.

Γραμμή 27: Ρυθμίζει τη λειτουργία επαναφοράς.

Γραμμή 30-35: Λειτουργία τερματισμού λειτουργίας για να ενεργοποιήσετε/απενεργοποιήσετε όλες τις οθόνες μαζί.

Γραμμή 38-43: Λειτουργία SetIntensity για να ρυθμίσετε τη φωτεινότητα όλων των οθονών μαζί.

Γραμμή 46-51: Λειτουργία ClearAll για να σκουπίσετε όλες τις οθόνες μαζί.

Γραμμή 53-64: joystick Λειτουργία για να λάβετε τη θέση των χειριστηρίων, να τα χαρτογραφήσετε στις 7 πιθανές θέσεις νυχτερίδας για να χτυπήσετε την μπάλα και στη συνέχεια να μετακινήσετε το ρόπαλο στη νέα θέση.

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

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

Γραμμή 813-823: Λειτουργία για την εμφάνιση ενός χαμογελαστού προσώπου, ενός τικ, σταυρού ή ενός ερωτηματικού στην καθορισμένη οθόνη (0 στα δεξιά έως 3 στα αριστερά).

Γραμμή 861-979: Λειτουργία για την εμφάνιση των αριθμών 0-9 στην καθορισμένη οθόνη.

Γραμμή 981-1047: Λειτουργία για την εμφάνιση της βαθμολογίας στην πλευρά κάθε παίκτη της οθόνης.

Γραμμή 1049-1064: Λειτουργία για να ελέγξετε εάν η συσκευή αναπαραγωγής είναι έτοιμη.

Γραμμή 1066-1076: Ρύθμιση Τμήμα του κωδικού για τον κώδικα που εκτελείται μία φορά κατά την εκκίνηση του προγράμματος.

Γραμμή 1078-1136: Κύρια ενότητα Loop για τη λογική του παιχνιδιού όπου χρησιμοποιούνται όλες οι λειτουργίες και όπου αποφασίζεται ποιος κερδίζει και στη συνέχεια επανεκκινεί το πρόγραμμα μετά από 5 δευτερόλεπτα εμφάνισης του σκορ.

Βήμα 5: Ευχαριστώ για την ανάγνωση

Ευχαριστώ για την ανάγνωση
Ευχαριστώ για την ανάγνωση

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

Συνιστάται: