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

MIDI2LED - ένα ελεγχόμενο MIDI LED Strip Light Effect: 6 βήματα
MIDI2LED - ένα ελεγχόμενο MIDI LED Strip Light Effect: 6 βήματα

Βίντεο: MIDI2LED - ένα ελεγχόμενο MIDI LED Strip Light Effect: 6 βήματα

Βίντεο: MIDI2LED - ένα ελεγχόμενο MIDI LED Strip Light Effect: 6 βήματα
Βίντεο: НЛО: НАСТОЯЩАЯ ПРАВДА! / ПОЛНЫЙ ДОКУМЕНТАЛЬНЫЙ ФИЛЬМ 2024, Νοέμβριος
Anonim
MIDI2LED - Εφέ με ελαφριά λωρίδα LED με ελεγχόμενο MIDI
MIDI2LED - Εφέ με ελαφριά λωρίδα LED με ελεγχόμενο MIDI

Αυτό είναι το πρώτο μου διδακτικό, οπότε αντέξτε με.

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

Προμήθειες

  • Arduino Uno
  • Arduino protoshield
  • Υποδοχή MIDI
  • Δίοδος 1N4148
  • 6N138 συζεύκτης opto
  • αντιστάσεις: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • Λωρίδα LED WS2812B (60 LED)
  • μερικά καλώδια που περίσσεψαν
  • σωλήνες συρρίκνωσης θερμότητας
  • κατάλληλο περίβλημα για το Arduino (χρησιμοποιώ πλαστικό κουτί διακλάδωσης)

Θα χρειαστείτε επίσης

  • συγκόλληση και συγκόλληση
  • Πληκτρολόγιο MIDI και καλώδιο MIDI

Βήμα 1: Ηλεκτρονικά

Τα Ηλεκτρονικά
Τα Ηλεκτρονικά

Το κύκλωμα είναι αρκετά απλό. Αποτελείται από μια τυπική είσοδο MIDI (αριστερά από το Arduino) και τη σύνδεση με τη λωρίδα LED (δεξιά από το Arduino). Τοποθετήστε όλα τα μέρη στο protoshield, υπάρχει πολύς χώρος. Γενικά συνιστάται η χρήση εξωτερικής τροφοδοσίας για την τροφοδοσία της λωρίδας LED, αλλά διαπίστωσα ότι όταν παίζετε, μόνο λίγα LED είναι αναμμένα ταυτόχρονα, οπότε υπήρχε κανένα πρόβλημα με τη χρήση του Arduino +5V / GND ως έξοδο ισχύος. (Προσπαθήστε να αποφύγετε να χτυπήσετε όλα τα πλήκτρα ταυτόχρονα και με πλήρη ταχύτητα.;-)) Εάν αποφασίσετε να χρησιμοποιήσετε εξωτερική τροφοδοσία, απλώς συνδέστε το στις ακίδες Arduino +5V και GND. Μερικοί άνθρωποι προτείνουν την εισαγωγή ενός πυκνωτή 100uF (δεν φαίνεται στο σχηματικό) μεταξύ αυτών των δύο γραμμών.

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

Βήμα 2: Σύνδεση της λωρίδας LED

Σύνδεση της λωρίδας LED
Σύνδεση της λωρίδας LED

Είναι σημαντικό να συνδέσετε το δεξί άκρο - το άκρο εισόδου - της λωρίδας LED στο κύκλωμα. Η λωρίδα μου έχει θηλυκό σύνδεσμο ως είσοδο και έχει μικρά τρίγωνα που δείχνουν μακριά από την είσοδο. Στην έξοδο, υπήρχε ένας αρσενικός σύνδεσμος (για να μπορέσω να τον συνδέσω σε άλλη λωρίδα, που δεν χρειαζόμαστε), οπότε το έκοψα και το κόλλησα στα τρία καλώδια που προέρχονται από το Arduino. Χρησιμοποιήστε σωλήνες συρρίκνωσης θερμότητας για να συνδέσετε τα τρία καλώδια στη λωρίδα LED μαζί και να τα κάνετε λιγότερο ορατά.

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

Βήμα 3: Προσαρμογή του έργου στο πληκτρολόγιό σας

Προσαρμογή του έργου στο πληκτρολόγιό σας
Προσαρμογή του έργου στο πληκτρολόγιό σας
Προσαρμογή του έργου στο πληκτρολόγιό σας
Προσαρμογή του έργου στο πληκτρολόγιό σας

Σως χρειαστεί να προσαρμόσετε τη λωρίδα LED και τον κωδικό Arduino στο πληκτρολόγιό σας. Το δικό μου έχει 76 πλήκτρα και το μήκος της λωρίδας είναι σχεδόν ακριβώς το πλάτος του πληκτρολογίου. Αν έχετε π.χ. 61 πλήκτρα, μπορεί να χρειαστείτε μια πιο κοντή λωρίδα. Η λωρίδα LED μπορεί να κοπεί μεταξύ δύο LED. Απλά βεβαιωθείτε ότι κόβετε το σωστό μέρος, έχει ένα άκρο εισόδου (με θηλυκό σύνδεσμο) και ένα άκρο εξόδου (με έναν αρσενικό σύνδεσμο), πρέπει να διατηρήσετε το άκρο εισόδου. Στον κώδικα, αλλάξτε τους #defines Για

  • NUMBER_OF_LEDS στον αριθμό των LED που απομένουν στη λωρίδα σας μετά την αποκοπή του τέλους,
  • NUMBER_OF_KEYS στον αριθμό των πλήκτρων στο πληκτρολόγιό σας και
  • MIN_KEY στον αριθμό βήματος MIDI του χαμηλότερου κλειδιού σας. Μπορείτε να το βρείτε στο εγχειρίδιο χρήσης του πληκτρολογίου. ή χρησιμοποιήστε ένα εργαλείο που εμφανίζει τον αριθμό σημειώσεων MIDI, όπως το KMidiMon για Linux ή το Pocket MIDI για Windows ή Mac. ή δοκιμάστε διαφορετικές τιμές έως ότου η συσκευή ανταποκριθεί σε όλα τα πλήκτρα του πληκτρολογίου σας

Βήμα 4: Ο κώδικας Arduino

Ο κώδικας Arduino χρησιμοποιεί τη βιβλιοθήκη MIDI (v4.3.1) από το Forty Seven Effects και τη βιβλιοθήκη Adafruit NeoPixel (v1.3.4) της Adafruit. Εγκαταστήστε αυτές τις βιβλιοθήκες χρησιμοποιώντας το Arduino IDE. Στη συνέχεια, μεταγλωττίστε τον κώδικα και ανεβάστε τον στο Arduino χωρίς να είναι συνδεδεμένη η ασπίδα (το οπτικό ζεύγος είναι συνδεδεμένο με τον πείρο RX, το οποίο εμποδίζει τη μεταφόρτωση). Τροφοδοτήστε το Arduino μέσω καλωδίου USB (χρησιμοποιώ κονδυλώματα τοίχου USB).

Εάν θέλετε να τροποποιήσετε τον κώδικα σύμφωνα με τις προτιμήσεις σας, ακολουθεί μια σύντομη επισκόπηση του τρόπου λειτουργίας του: Σε κάθε βρόχο, η είσοδος MIDI διαβάζεται. Εάν έχει ληφθεί ένα συμβάν Σημείωσης ενεργοποίησης ή Σημείωσης, καλούνται οι συναρτήσεις MyHandleNoteOn ή MyHandleNoteOff. Και οι δύο καλούν τη συνάρτηση updateVelocityArray, η οποία αποθηκεύει την ταχύτητα (δηλ. Πόσο δυνατά έχετε πατήσει το πλήκτρο) του αριθμού κλειδιού. Εάν η ταχύτητα είναι μεγαλύτερη από αυτή που ήταν αποθηκευμένη πριν, το χρώμα της αντίστοιχης λυχνίας LED ορίζεται στο "τρέχον χρώμα". Αφού χειριστούν τα συμβάντα MIDI, καλείται η συνάρτηση updateLedArray. Αυτό ενημερώνει το "τρέχον χρώμα" (οι κόκκινες, πράσινες και μπλε τιμές των οποίων αλλάζουν ανεξάρτητα με γραμμικό τρόπο, έως ότου επιτευχθεί το κάτω ή το άνω άκρο, οπότε η ταχύτητα για τη γραμμική αλλαγή ορίζεται σε έναν τυχαίο αριθμό), μειώνει αργά την ταχύτητα των πιεσμένων σημειώσεων και ενημερώνει τις τιμές χρωμάτων κάθε LED που πρέπει να αλλάξει το χρώμα της (λόγω νέου χτυπήματος σημείωσης ή μείωσης ταχύτητας). Η λειτουργία showLedArray μεταφέρει τα χρώματα στη δομή Adafruit_NeoPixel που ονομάζεται "pixel" και κάνει τα πραγματικά LED να δείχνουν τα χρώματα στη δομή των pixel.

Βήμα 5: Πιθανές βελτιώσεις…

Ένα έργο δεν τελειώνει ποτέ. Πάντα υπάρχει κάτι που μπορεί να γίνει για να βελτιωθεί:

  • Το protoshield περιέχει τόσο λίγα μέρη που είναι πραγματικά απόβλητο. Κάποιος θα μπορούσε εύκολα να επιτύχει το ίδιο αποτέλεσμα με ένα Arduino Nano και ένα PCB 15x7 οπών συν μερικές κεφαλίδες θηλυκών καρφιτσών.
  • Ορισμένα από τα σήματα MIDI χάνονται. Εάν είναι Σημείωση, το αντίστοιχο LED δεν ανάβει. εάν είναι NoteOff, δεν θα σβήσει (γι 'αυτό εισήγαγα τη μείωση της ταχύτητας, η οποία διασφαλίζει ότι τα LED δεν θα παραμείνουν αναμμένα επ' αόριστον). Ακόμα προσπαθώ να καταλάβω τον λόγο. Ενδεχομένως είναι θέμα χρονισμού και το MIDI.read () πρέπει να καλείται συχνότερα.
  • Ορισμένα από τα σήματα MIDI δεν έχουν διαβαστεί σωστά, δηλαδή ανάβουν λάθος LED. Θα μπορούσε να συνδεθεί με το παραπάνω σημείο. Χρειάζεται κάποια έρευνα.
  • Το κύκλωμα έχει σχεδιαστεί για να δίνει ένα ευχάριστο οπτικό αποτέλεσμα χωρίς μεγάλη αλληλεπίδραση του χρήστη (εκτός από την αναπαραγωγή του πληκτρολογίου). Ωστόσο, θα μπορούσα να φανταστώ να προσθέσω ένα ποτενσιόμετρο που διαβάζεται (χρησιμοποιώντας μία από τις αναλογικές εισόδους του Arduino) με το οποίο μπορείτε να αλλάξετε τη μέγιστη ταχύτητα με την οποία αλλάζουν τα χρώματα (επί του παρόντος #ορίζεται ως MAX_COLOR_CHANGE_SPEED = 20). Or μετρήστε τον μέσο χρόνο μεταξύ δύο συμβάντων NoteOn και αλλάξτε ανάλογα MAX_COLOR_CHANGE_SPEED - σε αργά τραγούδια, το χρώμα θα πρέπει να αλλάζει πιο αργά.

Βήμα 6: Τέλος

Τροφοδοτήστε το Arduino μέσω καλωδίου USB (χρησιμοποιώ κονδυλώματα τοίχου USB). Συνδέστε το πληκτρολόγιο MIDI στην υποδοχή MIDI και ξεκινήστε το rockin '. Παρακολουθήστε με να παίζω λίγο ελαφριά μουσική (το λογοπαίγνιο, όσο κακό και αν είναι, προορίζεται).

Συνιστάται: