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

Arduino MIDI Foot Controller: 12 Βήματα
Arduino MIDI Foot Controller: 12 Βήματα

Βίντεο: Arduino MIDI Foot Controller: 12 Βήματα

Βίντεο: Arduino MIDI Foot Controller: 12 Βήματα
Βίντεο: The World of Wayne Thursday LIVE Stream 2024, Νοέμβριος
Anonim
Arduino MIDI Foot Controller
Arduino MIDI Foot Controller

Πρόσφατα σχεδίασα αυτόν τον ελεγκτή MIDI για να λειτουργήσει το looper φράσης που είναι ενσωματωμένο στο πεντάλ καθυστέρησης Boss DD500. Ελέγχω ολόκληρη την κιθάρα μου χρησιμοποιώντας μια πλακέτα Behringer FCB MIDI, και αυτό μου επιτρέπει να αλλάξω μπαλώματα στο πεντάλ καθυστέρησης στον βρόχο εφέ, ενώ αλλάζω κανάλια ενισχυτή ταυτόχρονα.

Το DD500 διαθέτει μια πολύ βασική λειτουργία looper, αλλά ένα από τα μειονεκτήματά του είναι ότι όταν ο βρόχος είναι ενεργός, ελέγχεται από τους διακόπτες ποδιών στο πεντάλ. Αυτό σημαίνει ότι δεν μπορείτε να αλλάξετε μπαλώματα στο πεντάλ ενώ ο βρόχος είναι ενεργός, καθώς ουσιαστικά καταγράφει τις λειτουργίες των ποδοδιακόπτων. Καθώς χρησιμοποιώ το MIDI, αυτός ο περιορισμός δεν υπάρχει, αφού είναι απλώς ένα φυσικό ζήτημα. Αυτό σήμαινε ότι είχα κρατήσει 5 ποδοδιακόπτες στον κύριο ελεγκτή MIDI για το looper, και έτσι αποφάσισα να δημιουργήσω ένα ξεχωριστό χειριστήριο για αυτούς.

Το αρχικό μου σχέδιο ήταν να πάρω ένα μικρό περίβλημα Hammond και να βάλω 5 ποδοδιακόπτες και να μάθω στον εαυτό μου κάποια βασική κωδικοποίηση Arduino. Καθώς άρχισα να μαθαίνω περισσότερα και ο κώδικας μου λειτουργούσε, κατέληξε να με παρακινήσει να δοκιμάσω περισσότερα πράγματα και στη συνέχεια χιονόπτωση έγινε σε κάτι μεγαλύτερο.

Βήμα 1: Έννοιες

Έννοιες
Έννοιες
Έννοιες
Έννοιες

Μία από τις πρώτες ιδέες ήταν να έχουμε μόλις 5 κουμπιά στη σειρά με LED κατάστασης. Wasταν αρκετά απλό να το κοροϊδέψουμε σε μια σανίδα ψωμιού με το Arduino. Η προσθήκη νέων χαρακτηριστικών και υλικού κατέληξε να είναι μια διαδικασία κατά την οποία σχεδίαζα και επανασχεδίαζα συνεχώς τη φυσική διάταξη σε χαρτί και βασίζομαι στο έργο του breadboard. Ακόμη και με πολύ προγραμματισμό, πολλή δουλειά σε αυτό έγινε κάπως εν κινήσει στην αρχή.

Οι 2 παραπάνω εικόνες δείχνουν το πρώτο σχέδιο που δεσμεύτηκα σε χαρτί, το οποίο εκκίνησε την ιδέα αρχικά, ακολουθούμενο από σημειώσεις ενός μήνα μετά από αυτό που διαμόρφωσε τη φυσική διάταξη και τα PCB.

Βήμα 2: Πρωτότυπο Breadboard

Πρωτότυπο Breadboard
Πρωτότυπο Breadboard
Πρωτότυπο Breadboard
Πρωτότυπο Breadboard

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

Το πεντάλ διαθέτει 5 ποδοδιακόπτες, 4 λυχνίες LED κατάστασης, 5 οθόνες LCD I2C και ελέγχεται από ένα Arduino Nano Every. Παίρνει ισχύ από ένα PSU πεντάλ κιθάρας 9V μέσω ενός ξεχωριστού κουτιού ξεμπλοκαρίσματος που μεταφέρει αυτή την ενέργεια στο καλώδιο MIDI χρησιμοποιώντας τις 2 ακίδες που κανονικά δεν χρησιμοποιούνται σε υποδοχή MIDI.

Βήμα 3: Κατασκευή

Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα

Κοίταξα πολλές πιθανές περιπτώσεις για τη στέγαση του έργου, και μάλιστα εξέτασα την ιδέα να προσπαθήσω να λυγίσω τη δική μου θήκη από φύλλα αλουμινίου. Τελικά εγκαταστάθηκα σε ένα περίβλημα Hammond το οποίο ήταν αρκετά μεγάλο για να φιλοξενήσει τις 5 οθόνες LCD 16Χ2 που είχα επιλέξει.

Οι ποδοδιακόπτες ήταν γενικοί στιγμιαίοι διακόπτες με απαλό άγγιγμα.

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

Βήμα 4: Μακέτα και διάταξη CAD

Μακέτα και διάταξη CAD
Μακέτα και διάταξη CAD
Μακέτα και διάταξη CAD
Μακέτα και διάταξη CAD

Από τα χάρτινα σκίτσα μου, χρησιμοποίησα το Inkscape για να τοποθετήσω όλα τα φυσικά στοιχεία και να οριστικοποιήσω τα μεγέθη και τις θέσεις. Σκέφτηκα επίσης τη μέθοδο τοποθέτησης της οθόνης σε αυτό το σημείο. Προκειμένου να ελαχιστοποιηθεί ο αριθμός των ορατών μπουλονιών στο μπροστινό μέρος, αποφάσισα να τοποθετήσω όλες τις οθόνες σε μερικές πλάκες αλουμινίου από πίσω χρησιμοποιώντας αναστολείς και στη συνέχεια θα χρειαστώ μόνο 4 μπουλόνια ανά πλάκα για να τα στερεώσω στο περίβλημα, το οποίο θα κρατούσε επίσης τα στεφάνια της οθόνης στη θέση τους.

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

Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB

Για να δημιουργήσω το PCB, χρησιμοποίησα έναν ιστότοπο που ονομάζεται EasyEDA. Διαθέτει περιβάλλον επεξεργαστή στο οποίο μπορείτε να σχεδιάσετε ένα σχηματικό σχήμα των εξαρτημάτων σας, να το μετατρέψετε σε διάταξη PCB και, στη συνέχεια, να το εξάγετε απευθείας στο JLCPCB. Δεν είχα κάνει ποτέ κάτι παρόμοιο στο παρελθόν, αλλά έχουν έναν εξαιρετικό οδηγό στον ιστότοπο που εξηγεί πώς λειτουργεί ο επεξεργαστής και μέσα σε μια ώρα είχα σχεδιάσει και παραγγείλει τον πίνακα.

Ορισμένες περιοχές στον πίνακα ήταν κακώς σχεδιασμένες εκείνη τη στιγμή λόγω απειρίας, όπως για παράδειγμα η χρήση μίας ράγας 5V για την τροφοδοσία της οθόνης, αντί να δίνεται σε κάθε μία ξεχωριστή τροφοδοσία. Ευτυχώς, οποιαδήποτε πτώση τάσης που συνέβη δεν ήταν αρκετή για να προκαλέσει προβλήματα με τις οθόνες.

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

Βήμα 6: Βάσεις στήριξης οθόνης

Βάσεις στήριξης οθόνης
Βάσεις στήριξης οθόνης
Βάσεις στήριξης οθόνης
Βάσεις στήριξης οθόνης
Βάσεις στήριξης οθόνης
Βάσεις στήριξης οθόνης

Τα πρώτα μέρη που έγιναν ήταν οι βάσεις οθόνης. Χρησιμοποίησα αλουμίνιο 3 χιλιοστών για αυτό και άνοιξα τρύπες για στάσεις. Οι διαστάσεις καθορίστηκαν τοποθετώντας τα πάντα στο γραφείο όπως ήθελα να είναι το τελευταίο πεντάλ και μετρώντας από τις οπές στερέωσης στα PCB της οθόνης. Τοποθέτησα επίσης τους ποδοδιακόπτες για να πάρω τις αποστάσεις για αυτούς.

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

Βήμα 7: Περίβλημα

Περίφραξη
Περίφραξη
Περίφραξη
Περίφραξη
Περίφραξη
Περίφραξη

Το επόμενο ήταν η τροποποίηση της υπόθεσης. Οι ποδοδιακόπτες και οι λυχνίες LED ήταν απλές καθώς ο καθένας απλώς απαιτούσε μια τρύπα 12mm και 5mm αντίστοιχα.

Ο κύριος όγκος της φυσικής εργασίας ήρθε όταν κόψαμε τις τρύπες της οθόνης. Χρησιμοποίησα ένα Dremel με μερικούς δίσκους κοπής βαρέως τύπου και διάφορα αρχεία για να καθαρίσω τις τρύπες μετά. Αυτό το μέρος κράτησε περίπου 2 ώρες.

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

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

Βήμα 8: Ω-Ω

Ωχ
Ωχ
Ωχ
Ωχ
Ωχ
Ωχ

Και μετά ήρθε η συνειδητοποίηση ότι παρά όλο τον προγραμματισμό και τις μετρήσεις μου, είχα κάνει ένα ΤΕΡΑΣΤΙΟ λάθος. Σχεδίασα τη διάταξη του πίνακα και της θήκης ανεξάρτητα το ένα από το άλλο. Στο κεφάλι μου, ο πίνακας θα καθόταν σχεδόν στο ύψος του πάνω τοίχου, με μια σύντομη αναμονή πίσω του. Αλλά δεν υπήρχε απολύτως κανένας τρόπος για να ταιριάξει αυτό. Και δεν υπήρχε ούτε χώρος για να το βάλουμε στο πλάι. Μια τεράστια παραβίαση, αλλά ευτυχώς που μπόρεσα να διορθώσω, καθώς υπήρχε ακόμη λίγος χώρος μεταξύ των στηριγμάτων οθόνης στο πίσω κάλυμμα της θήκης. Λίγες ακόμη τρύπες που έχουν ανοίξει στις βάσεις οθόνης και μερικές αναμονές και επιστρέψουμε στην επιχείρηση, με αρκετό χώρο για να βάλουμε το κάλυμμα.

Βήμα 9: Χρωματίστε

Χρώμα
Χρώμα
Χρώμα
Χρώμα
Χρώμα
Χρώμα

Όλα αποσυναρμολογήθηκαν ξανά και η θήκη ήταν βαμμένη με Metallic Candy Red, ακολουθούμενη από μερικές στρώσεις λάκας. Η θήκη αφέθηκε να θεραπευτεί για μια εβδομάδα, αν και ανακάλυψα ότι η λάκα ήταν ακόμα ελαφρώς μαλακή σε αυτό το σημείο όταν έφτιαχνα τα πάντα. Λίγες μικρές περιοχές του χρώματος υπέστησαν ζημιά εξαιτίας αυτού. Κάτι που σκοπεύω να αποφύγω στο επόμενο έργο μου.

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

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

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

Το τελευταίο μέρος της φυσικής συναρμολόγησης ήταν να συνδέσετε τα πάντα. Και πάλι, τα ζητήματα με τον σχεδιασμό θήκης/σχεδιασμό PCB εμφανίστηκαν ξανά και μερικές από τις θέσεις κεφαλίδας στο PCB σήμαιναν διασταύρωση πολλών καλωδίων μεταξύ τους, κάνοντας τα πράγματα λίγο πιο ακατάστατα από ό, τι ήλπιζα.

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

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

Image
Image

Ως αρχάριος στην κωδικοποίηση Arduino, δίδασκα τον εαυτό μου καθώς προχωρούσα. Ο κώδικας είναι πιθανότατα το ισοδύναμο προγραμματισμού ενός «μεγάλου δρόμου», αλλά ήμουν ευχαριστημένος που λειτούργησε όπως έπρεπε.

Ο βρόχος στο DD500 έχει 5 βασικές λειτουργίες:

  • Looper on/off
  • Εγγραφή/Overdub/Αναπαραγωγή
  • Αναπαραγωγή εγγεγραμμένου βρόχου
  • Διακοπή αναπαραγωγής
  • Διαγραφή εγγεγραμμένου βρόχου

Κάθε μία από αυτές τις λειτουργίες έχει έναν αντίστοιχο ποδοδιακόπτη και, με εξαίρεση το κουμπί διακοπής, ένα LED κατάστασης. Οι οθόνες LCD ενημερώνονται επίσης με σχετικές πληροφορίες για να δείξουν εάν το πεντάλ βρίσκεται σε λειτουργία εγγραφής, υπερβολικής διάρκειας ή αναπαραγωγής καθώς και ποια λειτουργία θα κάνει κάθε ποδοδιακόπτης ανάλογα με το τι συμβαίνει εκείνη τη στιγμή.

Ένα άλλο χαρακτηριστικό που πρόσθεσα ήταν να παρακολουθώ πόσες φορές ενεργοποιήθηκε η δυνατότητα εγγραφής/υπερημερίας. Αυτό παρακολουθείται στον κώδικα αυξάνοντας έναν ακέραιο αριθμό, ο οποίος εμφανίζεται στην οθόνη «buffer», αναφέροντας πόσα κομμάτια έχουν εγγραφεί. Ενώ το DD500 δεν μπορεί να διαγράψει μεμονωμένα κομμάτια, το πρόσθεσα απλώς ως άσκηση κωδικοποίησης για να δω αν θα μπορούσα να το κάνω να λειτουργήσει.

Φαίνεται ότι υπάρχει πρόβλημα με τη μεταφόρτωση αρχείων στο Instructables και έτσι έχω βάλει ένα αντίγραφο του κώδικα στο Pastebin στη διεύθυνση:

Χρησιμοποιήθηκαν 2 βιβλιοθήκες στον κώδικα:

LiquidCrystal_I2C

Βιβλιοθήκη MIDI του FortySevenEffects

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

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

Ένα από τα μεγαλύτερα πράγματα που αφαιρώ από αυτό το έργο είναι ότι ο προγραμματισμός όσο το δυνατόν περισσότερο εκ των προτέρων μπορεί να αποφύγει πιθανά προβλήματα. Τα ζητήματα με την τοποθέτηση του PCB υπογραμμίζουν τη σημασία αυτού. Η διατήρηση καλών σημειώσεων είναι επίσης κάτι που συνιστώ ανεπιφύλακτα. Χωρίς αυτούς, μπορεί να αντιμετώπισα περισσότερα θέματα από ό, τι είχα. Αυτή τη στιγμή χτίζω τον δεύτερο ελεγκτή MIDI μου και αυτή τη φορά έχω καταβάλει μεγαλύτερες προσπάθειες για τον εξορθολογισμό του κώδικα και τον σχεδιασμό του υλικού μου σχετικά με τον τρόπο τοποθέτησης του PCB.

Συνιστάται: