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

PUBG Theme Song+Animation With Arduino !: 13 βήματα (με εικόνες)
PUBG Theme Song+Animation With Arduino !: 13 βήματα (με εικόνες)

Βίντεο: PUBG Theme Song+Animation With Arduino !: 13 βήματα (με εικόνες)

Βίντεο: PUBG Theme Song+Animation With Arduino !: 13 βήματα (με εικόνες)
Βίντεο: CS50 2014 - Week 7 2024, Ιούλιος
Anonim
Image
Image
Συγκέντρωση όλων των μερών
Συγκέντρωση όλων των μερών

Γεια σας και καλώς ήλθατε σε αυτό το διασκεδαστικό διδακτικό! Ελπίζω να είστε όλοι καλά και να είστε υγιείς. Αυτό το μικρό αλλά εκπληκτικό έργο αφορά την αναπαραγωγή του θεματικού τραγουδιού PUBG και τη δημιουργία κινούμενων εικόνων παιχνιδιών χρησιμοποιώντας arduino.

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

Θα σας πρότεινα ανεπιφύλακτα να δείτε το βίντεο για να πάρετε μια ιδέα για το έργο:) Αν σας αρέσει, κάντε like και κοινοποιήστε το βίντεο. Εξετάστε το ενδεχόμενο εγγραφής στο κανάλι μου αν σας αρέσει η κατασκευή μου. Ευχαριστώ!

Έτσι, χωρίς άλλη καθυστέρηση, ας ξεκινήσουμε!

Βήμα 1: Συγκέντρωση όλων των μερών

Συγκέντρωση όλων των μερών
Συγκέντρωση όλων των μερών

Η κατασκευή αποτελείται κυρίως από ένα Arduino Nano που είναι ο κύριος πυρήνας για αυτό το έργο. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε άλλη παραλλαγή Arduino όπως τα δημοφιλή Arduino Uno, Arduino Pro Mini, Arduino Mega κ.λπ. Για να εμφανίσω τις κινούμενες εικόνες και τις εικόνες, αποφάσισα να πάω με μια οθόνη OLED 0,96 ιντσών με ανάλυση 128 επί 64 εικονοστοιχεία. Αυτή η οθόνη μπορεί να είναι διασυνδέσεις με το arduino με το πρωτόκολλο I2C που απαιτεί μόνο δύο καλώδια για δεδομένα και ρολόι, μειώνοντας έτσι τον αριθμό των συνδέσεων και καθιστώντας το έργο πιο συμπαγές. Για την αναπαραγωγή της θεματικής μελωδίας PUBG χρησιμοποίησα έναν βομβητή 5V από τον οποίο συνέδεσα τη θετική καρφίτσα με την ψηφιακή ακίδα 6 του arduino και η γείωση πηγαίνει στη γείωση του Arduino.

Αυτές είναι η λίστα με τα μέρη που απαιτούνται για το έργο:

  1. Arduino Nano (ή οποιαδήποτε άλλη πλακέτα arduino της επιλογής σας)
  2. Μονάδα οθόνης OLED 0,96 ιντσών
  3. Βομβητής 5V
  4. Καλώδια βραχυκυκλωτήρων
  5. Breadboard
  6. Καλώδιο προγραμματισμού Arduino

Βήμα 2: Σύνδεση της οθόνης OLED

Σύνδεση της οθόνης OLED
Σύνδεση της οθόνης OLED
Σύνδεση της οθόνης OLED
Σύνδεση της οθόνης OLED
Σύνδεση της οθόνης OLED
Σύνδεση της οθόνης OLED

Συνολικά χρειάζονται 4 συνδέσεις για να συνδεθεί η οθόνη OLED από το arduino:

Vcc 5V του Arduino

Gnd Gnd του Arduino

SDA A4 του Arduino

SCK A5 του Arduino

Οι ακίδες Α4 και Α5 του arduino εξυπηρετούν πολλαπλούς σκοπούς αναλογικών εισόδων καθώς και ακίδες για επικοινωνία I2C. Εδώ έχουμε χρησιμοποιήσει τις ακίδες για το πρωτόκολλο I2C για διασύνδεση με τη μονάδα οθόνης.

Ο σύνδεσμος προς τη βιβλιοθήκη Adafruit που χρησιμοποιείται σε αυτό το έργο:

Βήμα 3: Σύνδεση του βομβητή

Σύνδεση του βομβητή
Σύνδεση του βομβητή
Σύνδεση του βομβητή
Σύνδεση του βομβητή

Ο βομβητής 5V έχει θετικό και αρνητικό τερματικό τροφοδοσίας.

Θετική καρφίτσα D6 του Arduino (ψηφιακή ακίδα 6) (μπορείτε να χρησιμοποιήσετε οποιαδήποτε ψηφιακή ακίδα του arduino)

Αρνητική καρφίτσα Gnd του Arduino

Θα δημιουργήσουμε τον επιθυμητό τόνο στην ψηφιακή ακίδα D6 στην οποία ο βομβητής θα παίξει τη μελωδία.

Βήμα 4: Όλες οι συνδέσεις υλικού ολοκληρώθηκαν

Όλες οι συνδέσεις υλικού ολοκληρώθηκαν
Όλες οι συνδέσεις υλικού ολοκληρώθηκαν
Όλες οι συνδέσεις υλικού ολοκληρώθηκαν
Όλες οι συνδέσεις υλικού ολοκληρώθηκαν

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

Βήμα 5: Συμπεριλαμβανομένης της βιβλιοθήκης και αρχικοποίησης πρωτοκόλλων εμφάνισης

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

Ολόκληρο το πρόγραμμα έχει χωριστεί σε 3 στοιχεία:

  1. Το κύριο πρόγραμμα αποτελείται από την αρχικοποίηση και τις ακολουθίες προβολής εικόνας και μελωδίας
  2. αρχείο "pitches.h" που αποτελείται από τη λίστα μουσικών νότες και τη σχετική συχνότητα
  3. αρχείο "pictures.h" που αποτελείται από χάρτες bit των εικόνων που θα εμφανιστούν.

Η διαδικασία για τον τρόπο μετατροπής μιας εικόνας σε πίνακα bitmap για οθόνη OLED συζητείται στα επόμενα βήματα.

Θα επισυνάψω επίσης ολόκληρο τον κώδικα μαζί με αυτόν τον οδηγό που μπορείτε να χρησιμοποιήσετε:)

Βήμα 6: Η μελωδία του θεματικού τραγουδιού

Θεματικό τραγούδι Μελωδία
Θεματικό τραγούδι Μελωδία
Θεματικό τραγούδι Μελωδία
Θεματικό τραγούδι Μελωδία

Έψαξα στο διαδίκτυο για τις βασικές νότες που περιλαμβάνει το θεματικό τραγούδι PUBG και στη συνέχεια τις πρόσθεσα στη σειρά μελωδιών.

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

Βήμα 7: Αναπαραγωγή του τραγουδιού κατά την εκκίνηση

Παίζοντας το τραγούδι κατά την εκκίνηση
Παίζοντας το τραγούδι κατά την εκκίνηση

Υπάρχουν συνολικά 63 νότες που χρησιμοποίησα για να φτιάξω την ακολουθία μελωδίας. Χρησιμοποιώντας ένα βρόχο for και επαναλαμβάνοντας τις νότες και τον πίνακα διάρκειας με μια προκαθορισμένη παύση μεταξύ κάθε νότας, ολόκληρη η ακολουθία παίζεται μία φορά, αφού αυτό το κομμάτι κώδικα βρίσκεται στο void setup (). Είναι ενδιαφέρον ότι κανένας από τον κώδικα για αυτό το έργο δεν χρησιμοποιεί τον κενό βρόχο () του κώδικα arduino καθώς σκοπεύω να παίξω και να εμφανίσω εικόνες μόνο μία φορά. Φυσικά αν θέλετε μια επαναλαμβανόμενη ακολουθία τότε αυτή πρέπει να τεθεί στη συνάρτηση void loop ().

Βήμα 8: Μετατροπή των εικόνων σε Bitmaps

Μετατροπή των εικόνων σε Bitmaps
Μετατροπή των εικόνων σε Bitmaps

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

Ο σύνδεσμος για αυτήν την ηλεκτρονική εφαρμογή είναι:

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

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

Βήμα 9: Προσαρμογή της ανάλυσης σύμφωνα με την οθόνη σας

Προσαρμογή της ανάλυσης σύμφωνα με την οθόνη σας
Προσαρμογή της ανάλυσης σύμφωνα με την οθόνη σας

Στο επόμενο βήμα, πρέπει να αλλάξουμε το μέγεθος της εικόνας σύμφωνα με την ανάλυση της οθόνης. Για την οθόνη μας OLED, έχει πλάτος 28 pixels και ύψος 64 pixel, τα οποία έχω προσαρμόσει όπως φαίνεται στην εικόνα. Προσαρμόστε το όριο φωτεινότητας για να βεβαιωθείτε ότι η εικόνα είναι αρκετά καθαρή (εδώ παίζει το πλεονέκτημα της χρήσης εικόνων με σταθερά χρώματα, όσο περισσότερο οι κλίσεις των χρωμάτων, η ποιότητα της εικόνας σε μονόχρωμη οθόνη θα υποβαθμιστεί καθώς ανακατεύεται με το όριο φωτεινότητας).

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

Βήμα 10: Δημιουργία του πίνακα Bitmap

Δημιουργία του πίνακα Bitmap
Δημιουργία του πίνακα Bitmap

Αφού προσαρμόσετε τις παραμέτρους της εικόνας, στο επόμενο βήμα απλώς επιλέξτε τον κώδικα Arduino ως μορφή εξόδου και κάντε κλικ στη δημιουργία για να λάβετε τον επιθυμητό πίνακα bitmap!

Εκεί! μετατρέψατε με επιτυχία την εικόνα σας στον επιθυμητό πίνακα bitmap. Έχω κάνει αυτήν τη διαδικασία για συνολικά 7 εικόνες και τις έχω αποθηκεύσει.

Βήμα 11: Εμφάνιση των εικόνων ως αλληλουχία

Εμφάνιση των εικόνων ως αλληλουχία
Εμφάνιση των εικόνων ως αλληλουχία
Εμφάνιση των εικόνων ως αλληλουχία
Εμφάνιση των εικόνων ως αλληλουχία
Εμφάνιση των εικόνων ως αλληλουχία
Εμφάνιση των εικόνων ως αλληλουχία

Για την εμφάνιση των εικόνων χρησιμοποίησα τη συνάρτηση Arduino millis () για να καλέσω τη συνάρτηση draw (), η οποία είναι βασικά ένα σύνολο εντολών για την εκκαθάριση της οθόνης, σχεδιάστε τον πίνακα bitmap στο OLED και αρχικοποιήστε την οθόνη. Η κύρια λογική είναι ότι μετά από κάθε 3,5 δευτερόλεπτα, η εικόνα αλλάζει και εμφανίζεται η επόμενη εικόνα. Λοιπόν, τα 3,5 δευτερόλεπτα δεν είναι ένας μοναδικός αριθμός, μόλις κατάλαβα ότι αν διαιρέσω ολόκληρη τη διάρκεια της μελωδίας με 7 εικόνες, πήρα περίπου 3,5 δευτερόλεπτα για κάθε οθόνη. Μπορείτε να προσθέσετε περισσότερες εικόνες σε αυτό και να μειώσετε το χρόνο εμφάνισης για κάθε εικόνα, αν θέλετε.

Τα αποσπάσματα κώδικα εξηγούν πώς καλούνται οι συναρτήσεις με βάση τη συνάρτηση millis ().

Ολόκληροι οι πίνακες bitmap των εικόνων αποθηκεύονται στο αρχείο "pictures.h"

Βήμα 12: Ολόκληρος ο κωδικός:

Εδώ μοιράζομαι ολόκληρο τον κώδικα για να παίξετε όλοι και να πειραματιστείτε!

Μόλις όλα φαίνονται καλά, ήρθε η ώρα να το ανεβάσετε στον πίνακα:)

Βήμα 13: Τα αποτελέσματα:

Τα αποτελέσματα
Τα αποτελέσματα
Τα αποτελέσματα
Τα αποτελέσματα
Τα αποτελέσματα
Τα αποτελέσματα
Τα αποτελέσματα
Τα αποτελέσματα

Όπως μπορείτε να δείτε οι εικόνες αποδείχθηκαν υπέροχες! Και το ίδιο και η μελωδία! Ελπίζω να έχετε δει το βίντεο στο οποίο είναι παρούσα όλη η διαδήλωση.

Ελπίζω ότι αυτή η έκδοση του Arduino του PUBG είναι ένα συναρπαστικό έργο για όλους τους λάτρεις του παιχνιδιού και των ηλεκτρονικών.

Μη διστάσετε να μοιραστείτε τα σχόλιά σας στα σχόλια και να μοιραστείτε τυχόν προτάσεις. Επίσης, σκεφτείτε να εγγραφείτε στο κανάλι μου για περισσότερο τέτοιο περιεχόμενο, καθώς αυτό είναι μέρος της σειράς OLED που δουλεύω. Πείτε μου αν χτίζετε αυτό το διασκεδαστικό έργο:)

Μέχρι την επόμενη φορά.

Συνιστάται: