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

Arduino Uno Midi Fighter: 5 Βήματα
Arduino Uno Midi Fighter: 5 Βήματα

Βίντεο: Arduino Uno Midi Fighter: 5 Βήματα

Βίντεο: Arduino Uno Midi Fighter: 5 Βήματα
Βίντεο: The World of Wayne Thursday LIVE Stream 2024, Ιούλιος
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Αυτό το διδακτικό δημιουργήθηκε για να εκπληρώσει την απαίτηση έργου του Makecourse στο Πανεπιστήμιο της Νότιας Φλόριντα (www.makecourse.com)

Με βάση το δημοφιλές MidiFighter by DJ Techtools, αυτός ο σπιτικός ελεγκτής Musical Instrument Digital Interface (MIDI) μπορεί να χρησιμοποιηθεί ως συσκευή MIDI σε οποιοδήποτε λογισμικό Digital Audio Workstation (DAW). Ένας ελεγκτής MIDI μπορεί να στέλνει και να λαμβάνει μηνύματα MIDI από έναν υπολογιστή και μπορεί να χρησιμοποιηθεί για τον άμεσο έλεγχο του λογισμικού που χρησιμοποιείται. Επιπλέον, τα χειριστήρια σε ένα χειριστήριο MIDI είναι πλήρως προσαρμόσιμα - πράγμα που σημαίνει ότι κάθε μεμονωμένο κουμπί, ρυθμιστικό και κουμπί μπορούν να αντιστοιχιστούν σε οποιαδήποτε λειτουργία σε ένα DAW. Για παράδειγμα, το πάτημα ενός κουμπιού μπορεί να παίξει μια συγκεκριμένη νότα ή να προγραμματιστεί για να αλλάξει το ρυθμό του ηχητικού έργου σας.

github.com/jdtar/Arduino-Midi-Controller

Βήμα 1: Υλικά

Παρακάτω είναι μια λίστα υλικών και εργαλείων που χρησιμοποιούνται σε αυτό το έργο.

Arduino Uno

Breadboard

4051/4067 Πολυπλέκτης

Καλώδια βραχυκυκλωτήρων

Επιπλέον καλώδιο

2x γραμμικά ποτενσιόμετρα διαφάνειας 10k ohm

Κουμπιά 16x Sanwa 24mm

Συρρίκνωση θερμότητας

Συγκολλητικό σίδερο

Ξυραφάκι

Αντίσταση 4,7 kΩ

Ακρυλικό φύλλο (για καπάκι)

Στέγαση για κουμπιά και Arduino

Τρισδιάστατος εκτυπωτής

Κόφτης λέιζερ

Βήμα 2: Σχεδιασμός

Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο

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

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

Επισυνάπτεται το PDF 1: 1 το οποίο μπορεί να εκτυπωθεί ως 1: 1 και να κοπεί με ηλεκτρικά εργαλεία εάν δεν είναι διαθέσιμος κόφτης λέιζερ.

Βήμα 3: Κατασκευή και καλωδίωση

Κατασκευή και καλωδίωση
Κατασκευή και καλωδίωση
Κατασκευή και καλωδίωση
Κατασκευή και καλωδίωση
Κατασκευή και καλωδίωση
Κατασκευή και καλωδίωση

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

Η καλωδίωση των εξαρτημάτων χρειάστηκε κάποια δοκιμή και σφάλμα, αλλά κατέληξε στο συνημμένο σκίτσο Fritzing. Πρώτα ένωσα τα καλώδια γείωσης και την αντίσταση 4,7kΩ, συγκολλήθηκαν και η θερμότητα συρρίκνωσε τις συνδέσεις στα κουμπιά. Η τοποθέτηση των δύο ποτενσιόμετρων ολίσθησης απαιτούσε οπές τήξης για τις βίδες στο ακρυλικό. Αφού βιδώθηκαν τα δύο ποτενσιόμετρα, συνδέθηκαν με καλώδιο στις αναλογικές ακίδες Α0 και Α1. Αφού ολοκληρώθηκε η καλωδίωση, θυμήθηκα ότι δεν υπήρχαν καπάκια για τα faders μου, οπότε αντί να τα αγοράσω, εκτύπωσα μερικά καλύμματα πόμολων χρησιμοποιώντας έναν τρισδιάστατο εκτυπωτή σκιαγραφώντας το στο Autodesk Fusion 360 και εξάγοντας σε ένα αρχείο STL. De

Το Arduino Uno διαθέτει μόνο 12 διαθέσιμες ψηφιακές ακίδες εισόδου, αλλά 16 κουμπιά επρόκειτο να συνδεθούν. Για να το αντισταθμίσω αυτό, ένωσα ένα 74HC4051 Multiplexer σε ένα breadboard το οποίο χρησιμοποιεί 4 ψηφιακές ακίδες εισόδου και επιτρέπει σε πολλά σήματα να χρησιμοποιούν μια κοινή γραμμή με αποτέλεσμα 8 διαθέσιμες ψηφιακές ακίδες εισόδου για συνολικά 16 ψηφιακές ακίδες διαθέσιμες για χρήση.

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

ΣΗΜΕΙΩΣΗ ΜΑΤΡΙΞ

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN MATRIX (M = MUX INPUT)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Βήμα 4: Προγραμματισμός

Προγραμματισμός
Προγραμματισμός

Μόλις ολοκληρωθεί η συναρμολόγηση, ο προγραμματισμός του Arduino είναι ό, τι απομένει. Το σενάριο που επισυνάπτεται είναι γραμμένο με τέτοιο τρόπο ώστε να προσαρμόζεται εύκολα.

Η αρχή του σεναρίου περιλαμβάνει τη βιβλιοθήκη MIDI.h και μια βιβλιοθήκη ελεγκτή δανεισμένη από το ιστολόγιο Σημειώσεις και Volts, τα οποία και τα δύο περιλαμβάνονται στο αρχείο zip για τον κώδικα. Χρησιμοποιώντας τη βιβλιοθήκη ελεγκτή, μπορούν να δημιουργηθούν αντικείμενα για κουμπιά, ποτενσιόμετρα και κουμπιά πολλαπλής έντασης που περιέχουν τιμές δεδομένων που περιλαμβάνουν τον αριθμό σημείωσης, τις τιμές ελέγχου, την ταχύτητα σημείωσης, τον αριθμό καναλιού MIDI, κ.λπ. Η βιβλιοθήκη MIDI.h επιτρέπει την είσοδο MIDI I/O Οι σειριακές θύρες Arduino που με τη σειρά τους παίρνουν τα δεδομένα από τα αντικείμενα του ελεγκτή, τα μετατρέπουν σε μηνύματα MIDI και στέλνουν τα μηνύματα σε όποια διασύνδεση midi είναι συνδεδεμένη.

Το κενό τμήμα εγκατάστασης του σεναρίου αρχικοποιεί όλα τα κανάλια ως απενεργοποιημένα και επίσης ξεκινά μια σειριακή σύνδεση με 115200 baud, ποσοστό ταχύτερο από το ότι ανταλλάσσονται τα σήματα MIDI.

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

Βήμα 5: Ρύθμιση

Image
Image
Ρύθμιση
Ρύθμιση
Ρύθμιση
Ρύθμιση
Ρύθμιση
Ρύθμιση

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

Στο OSX, η Apple ενσωμάτωσε μια δυνατότητα για τη δημιουργία εικονικών συσκευών midi στις οποίες μπορείτε να έχετε πρόσβαση μέσω της εφαρμογής Audio Midi Setup σε Mac. Μόλις δημιουργηθεί η νέα συσκευή, το Hairless MIDI μπορεί να χρησιμοποιηθεί για τη δημιουργία σειριακής σύνδεσης μεταξύ του Arduino και της νέας εικονικής midi συσκευής. Η σειριακή σύνδεση από το Arduino μέσω του Hairless MIDI λειτουργεί με το ρυθμό baud που ορίζεται στο τμήμα κενής ρύθμισης του σεναρίου και πρέπει να οριστεί ισοδύναμο στις ρυθμίσεις προτίμησης MIDI χωρίς μαλλιά.

Για σκοπούς δοκιμής χρησιμοποίησα το Midi Monitor για να ελέγξω εάν τα σωστά δεδομένα αποστέλλονταν με τη σειρά σειριακής σύνδεσης MIDI. Μόλις διαπίστωσα ότι όλα τα κουμπιά που αποστέλλονταν μέσω των σωστών δεδομένων μέσω των σωστών καναλιών, έθεσα το σήμα MIDI για να δρομολογηθεί στο Ableton Live 9 ως είσοδος MIDI. Στο Ableton μπόρεσα να χαρτογραφήσω κομμένα δείγματα ήχου σε κάθε κουμπί και να παίξω κάθε δείγμα.

Συνιστάται: