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

HX1 -DM - το Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maschine MK2): 4 βήματα
HX1 -DM - το Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maschine MK2): 4 βήματα

Βίντεο: HX1 -DM - το Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maschine MK2): 4 βήματα

Βίντεο: HX1 -DM - το Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maschine MK2): 4 βήματα
Βίντεο: Triflex HX1 | Καθαρισμός κυλίνδρου με βούρτσες, Βήμα 2 2024, Νοέμβριος
Anonim
Image
Image
Η Επισκευή
Η Επισκευή

Το Spec

  • Hybrid Midi controller / drum machine: Arduino DUE powered!
  • 16 επιθέματα ανίχνευσης ταχύτητας με πολύ χαμηλή καθυστέρηση 1> ms
  • 8 πόμολα που μπορούν να αντιστοιχιστούν σε οποιαδήποτε εντολή Midi #CC
  • Ενσωματωμένος ακολουθίας 16 καναλιών (δεν απαιτείται υπολογιστής !!)
  • MIDI in/out/thru λειτουργικότητα (μπορεί να χρησιμοποιηθεί ως USB midi interface!)
  • Μερική υποστήριξη ρολογιού MIDI & MTC (λειτουργεί σε έλεγχο MMC και DAW)

Αυτό είναι σίγουρα ένα από τα πιο περίπλοκα έργα στα οποία έχω δουλέψει, μιλούσα για 17 καταχωρητές βάρδιας εξόδου, 6 καταχωρητές βάρδιας εισόδου, 2x 16 καναλιών πολυπλέκτες που εργάζονταν σε μια πλακέτα κυκλώματος Δεν έχω ιδέα τι είναι και πού συν ποτέ δεν έχω μπερδέψει με καταχωρητές βάρδια / πολυπλέκτες πριν από ……

Ξεκίνησε ως παρορμητική εξαγορά του eBay, ήθελα πολύ ένα Native Instruments Maschine γιατί πάντα μου άρεσαν τα ταμπόν σε σύγκριση με αυτά στο στούντιο MPC που είχα, οπότε όταν είδα ένα ελαττωματικό στο eBay για 40 ευρώ Θα προσπαθούσα να το διορθώσω με το χειρότερο σενάριο να είναι "αν δεν μπορώ να το διορθώσω έχω ένα Arduino DUE και μερικοί ΟΗΕ ψεύδονται, θα μπορούσα πάντα να κάνω κάποιο hack"

Μου αρέσουν πολύ αυτά τα ταμπόν πάντως !!!!

Προμήθειες

1 x ελαττωματικό Native Instruments Maschine MK2

1 x Arduino Due.

17 x SN74HC595 - καταχωρητές αλλαγής εξόδου 8 bit

6 x SN74HC165's - 8 -bit καταχωρητές αλλαγής εισόδου

2 x 74HC4067 - πολυπλέκτες 16 καναλιών.

2 οθόνες OLED 3,2 ιντσών 256x64.

κάποιο επίπεδο καλώδιο (το παλιό καλώδιο δισκέτας θα κάνει)

Βήμα 1: Η επισκευή

Ο πωλητής του eBay ήταν αρκετά ευγενικός για να δώσει μια ιδέα για το τι να περιμένει στην περιγραφή και είχε αφαιρέσει τη θύρα USB. Η πλακέτα είχε υπερβολική τάση και δεν τροφοδοτήθηκε. Δείξτε το πολύμετρο…. Ο πίνακας φάνηκε να έχει ένα κοντό.. «Έχω επισκευάσει αμέτρητες μητρικές με σορτς πριν Πόσο δύσκολο μπορεί να είναι!;!» Αποδείχθηκε ότι αυτό πέρα από την τάση (και πιθανώς εν μέρει το σχέδιο του πίνακα), είχε βγάλει σχεδόν ΚΑΘΕ στοιχείο στον πίνακα συμπεριλαμβανομένου του κύριου επεξεργαστή. Αυτός ο πίνακας ήταν πολύ κακός!

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

Βήμα 2: Το Hack

Το Hack
Το Hack
Το Hack
Το Hack
Το Hack
Το Hack

Γνωρίζοντας ότι θα πρέπει να αντικαταστήσω όλα τα στοιχεία της κύριας CPU (που δεν θα χρειαστούν), στράφηκα στο eBay. Ευτυχώς, όλα όσα χρειάζονταν ήταν φθηνά, οπότε η παραγγελία ενός φορτίου από αυτά ήταν διασκεδαστική.;

17 x SN74HC595 - καταχωρητές αλλαγής εξόδου 8 bit

Οι 17 καταχωρητές μετατόπισης εξόδου χρησιμοποιούνται για τον έλεγχο των πολύχρωμων LED των ντραμς και όλων των LED με κουμπιά (136 για την ακρίβεια !!) Αυτά είναι πραγματικά εύχρηστα και γρήγορα βρήκα μια βιβλιοθήκη χρησιμοποιώντας το Arduino IDE για να σώσω τον εαυτό μου κάνοντας ένα.. είναι αλυσοδεμένοι μεταξύ τους.

6 x SN74HC165's - 8 -bit καταχωρητής αλλαγής εισόδου

Αυτοί οι καταχωρητές αλλαγής εισόδου είναι εξαιρετικοί για πολλαπλές εισόδους σε 1 κανάλι. Υπάρχουν συνολικά 48 κουμπιά.

2 x 74HC4067 - πολυπλέκτες 16 καναλιών

Έχουμε 16 μαξιλάρια και 8 πόμολα που έχουν μείνει και αυτά είναι αναλογικά. Μου φάνηκε πιο εύκολο να τα χρησιμοποιήσω καθώς αυτά στον πίνακα ήταν 8 κανάλια και είχα προβλήματα να βρω πού να συνδέσω τις καρφίτσες των δεδομένων.. cue spaghetti junction….

2 οθόνες OLED 3,2 ιντσών 256x64

Πρέπει να έχει κάποιες οθόνες !!! Δεν μπορούσα να βρω καμία πληροφορία για τις αρχικές οθόνες LCD που ήρθαν στο NI Maschine και δεν μπορούσα να ενοχληθώ να χάσω άλλο χρόνο προσπαθώντας να το κάνω, έτσι αποφάσισα να παραγγείλω μερικά από την Κίνα… Χρησιμοποίησα τη βιβλιοθήκη UG8x8 για να λειτουργήσουν. Οι νέες οθόνες ήταν ελαφρώς μικρότερες από την αρχική, οπότε απενεργοποίησα τα «κακά κομμάτια».

1 x Arduino Due

Το είχα ξαπλωμένο εδώ και αρκετό καιρό περιμένοντας ένα έργο αρκετά άξιο για όλη αυτή τη δύναμη !! Υπήρχε ένα πρόβλημα που συνάντησα, Φαίνεται ότι ορισμένες αναθεωρήσεις αυτών των πινάκων έχουν πρόβλημα επαναφοράς που σήμαινε ότι έπρεπε να πατήσω μερικές φορές το κουμπί επαναφοράς για να λειτουργήσει το πράγμα μετά τη μεταφόρτωση ενός σκίτσου. Αυτό διορθώθηκε εύκολα με μια αντίσταση 10K (υπάρχει μια ανάρτηση στο φόρουμ Arduino σχετικά με αυτό).

Βήμα 3: Ο κώδικας

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

Η έναρξη και η λειτουργία του midi USB ήταν εύκολη και χρειάστηκαν λίγα λεπτά. Οι λυχνίες LED χρειάστηκαν λίγο χρόνο και έπρεπε να δημιουργήσω ένα σκίτσο που ρύθμιζε σταδιακά κάθε πείρο Υ HIGHΟΣ σε διαστήματα 1 δευτερολέπτου και έλαβε μια σημείωση. Έφτιαξα έναν πίνακα που κρατούσε τους αριθμούς PIN για να διευκολύνει την κωδικοποίηση όλων.

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

Iθελα να έχω ένα sequencer και τη δυνατότητα εγγραφής χωρίς την ανάγκη υπολογιστή, βρήκα κάποιες πληροφορίες σχετικά με τον τρόπο μετατροπής του BPM σε ms και βρήκα μια μεγάλη βιβλιοθήκη χρονοδιακόπτη Arduino DUE.

Χρησιμοποιώντας τη βιβλιοθήκη χρονοδιακόπτη μπόρεσα να ορίσω εισόδους ανάγνωσης και πράγματα ανά διαστήματα:

Pads @ 1ms - Βρήκα αυτό για να δώσει την καλύτερη ισορροπία μεταξύ των τεχνουργημάτων απόκρισης / αποπήδησης.

Κουμπιά @ 40ms - Χρησιμοποίησα μια βιβλιοθήκη ουράς, ώστε να μην χάσω κανένα πάτημα.

Η επεξεργασία γίνεται στον κύριο βρόχο, δεν μπορείτε να κάνετε πάρα πολλά όταν βρίσκεστε σε διακοπή καθώς αυτό θα κλειδώσει το Arduino.

Midi stuff @BPM (σε ms) - για την αλληλουχία, στο επιθυμητό BPM ονομάζεται μια συνάρτηση που ενημερώνει τις σημειώσεις ETC που αναπαράγονται και αυξάνει τον μετρητή παλμών.

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

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

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

ΣΥΜΒΟΥΛΕΣ:

Βρήκα πώς να αλλάξω το όνομα USB του DUE επεξεργάζοντας ένα από τα αρχεία κεφαλίδας στο φάκελο Arduino/SAM.

Το MIDI-OX είναι ένα εξαιρετικό εργαλείο για τον έλεγχο της λειτουργικότητας Midi

ΣΥΝΔΕΣΕΙΣ:

www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Μερικές πληροφορίες σχετικά με τον τρόπο μετατροπής του BPM σε ms

travis-ci.com/SMFSW/Queue - Για εισόδους κουμπιών ώστε να μην χάνουμε κανένα πάτημα!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib για οθόνες LED/LCD

github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - Κωδικοποιητής Lib για το μεγάλο κουμπί

shiftregister.simsso.de/ - ShiftIn Register lib - Δημιουργήθηκε από τον Henrik Heine, 24 Ιουλίου 2016

forum.arduino.cc/index.php?topic=57636.0 - Πληροφορίες MIDI Time Code

Συνιστάται: