Πώς να φτιάξετε έναν φτηνό ελεγκτή MIDI με βάση το Arduino με τα χέρια σας. Πώς να φτιάξετε ένα φτηνό ελεγκτή MIDI με βάση το Arduino με τα χέρια σας Διαβάζοντας τις θέσεις του ποτενσιόμετρου

Ήθελα από καιρό να ξυπνήσω τον συνθέτη μέσα μου και να αρχίσω να δημιουργώ τη δική μου ηλεκτρονική μουσική. Ωστόσο, με αποθάρρυνε (για να το θέσω ήπια) οι υψηλές τιμές των χειριστηρίων MIDI. Αλλά αφού έψαξα στο Διαδίκτυο, μου ήρθε η ιδέα να δημιουργήσω το δικό μου χειριστήριο χρησιμοποιώντας Arduino Uno και αγώγιμα χρώματα!

Ας αρχίσουμε)

Βήμα 1: Επιλογή εξαρτημάτων

Μπορείτε να αποκλίνετε ελαφρώς από το υλικό που παρουσιάζεται και ο ελεγκτής MIDI που συναρμολογήσατε θα εξακολουθεί να λειτουργεί (με το "deviate small" εννοώ ότι μπορείτε να εγκαταστήσετε μια αντίσταση με ελαφρώς διαφορετική τιμή ή να αφήσετε μια από τις ακίδες αποσυνδεδεμένη).

Από ηλεκτρονικά χρειαζόμαστε:

  • 1 Arduino Uno με καλώδιο USB.

  • 1 βάζο αγώγιμου χρώματος.

  • 1 πλάκα στήριξης διαστάσεων 5x7 cm.

  • 3 κουμπιά?

  • αντιστάσεις με αντίσταση 2,2 kOhm.

  • 1 LED;

  • αντιστάσεις με αντίσταση 10 kOhm.

  • 1 αισθητήρας LDR;

  • αντιστάσεις με αντίσταση 4,7 kOhm.

  • 1 jumper?

  • 12 τμχ Αντιστάσεις 2,7 MΩ.

  • 30 ευθείες καρφίτσες.

  • 12 λυγισμένες καρφίτσες.

  • 12 προσαρμογείς?

  • 12 συνδετήρες.

Εκτός από τα ηλεκτρονικά, θα χρειαστείτε επίσης τα ακόλουθα εργαλεία:

  • Συγκολλητικό σίδερο και κολλητήρι.
  • Συρματοκόπτης;
  • Βάση για συγκόλληση εξαρτημάτων (τρίτο χέρι).
  • Πολύμετρο;
  • Πολλά σύρματα και/ή λεπτό μεταλλικό σύρμα.

Βήμα 2: Συγκολλήστε τις ακίδες

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

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

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

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

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

Βήμα 3: Συγκολλήστε τους βραχυκυκλωτήρες

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

  • Γεμίστε όλες τις απαραίτητες τρύπες με συγκόλληση και, στη συνέχεια, συνδέστε τις μεταξύ τους.
  • Χρησιμοποιήστε λεπτό σύρμα.

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

  • Η κόκκινη κουκκίδα σημαίνει κολλήστε το καλώδιο στην τρύπα.
  • Κίτρινη κουκκίδα - συνδέστε το λεπτό καλώδιο με τον πείρο στην άλλη πλευρά του πίνακα (όπως στην τρίτη εικόνα).

Όπως βλέπετε, μπέρδεψα λίγο την κάτω αριστερή γωνία όταν έβαλα πολύ κόλληση, οπότε προσοχή!

Συμβουλή: Εάν δεν έχετε λεπτό σύρμα, χρησιμοποιήστε υπολείμματα των καλωδίων των αντιστάσεων που χρησιμοποιείτε.

Βήμα 4: Συγκολλήστε τις χωρητικές αντιστάσεις αφής

Εγκαθιστούμε τα εξαρτήματα, δηλαδή 2.7 MOhmαντιστάσεις, το οποίο θα εκτελεί αισθητηριακές-χωρητικές λειτουργίες.

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

Ας τοποθετήσουμε ένα 2.7 MOhmαντίστασηαπό το κάτω μέρος του δεξιότερου λυγισμένου πείρου και σπρώξτε τα πόδια μέσα από τις τρύπες (όπως στην πρώτη εικόνα). Τώρα ας αναποδογυρίσουμε την πλακέτα και ας σπρώξουμε ένα καλώδιο αντίστασης πίσω στην επόμενη τρύπα (όπως φαίνεται στη δεύτερη εικόνα). Συγκολλήστε το κάτω πόδι της αντίστασης στην οπή και το πάνω πόδι της αντίστασης στον ακροδέκτη πείρου. Στη συνέχεια θα επισυνάψουμε 7 cm σύρμασε αυτήν την καρφίτσα (όπως φαίνεται από την τρίτη εικόνα).

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

Συμβουλή: Επιλέξτε εναλλασσόμενα χρώματα για τα καλώδια - αυτό θα διευκολύνει τις συνδέσεις στα επόμενα βήματα.

Βήμα 5: Συγκολλήστε τα κουμπιά

Ας ξεκινήσουμε τοποθετώντας τα κουμπιά και τις αντιστάσεις στον πίνακα, όπως στην πρώτη και στη δεύτερη εικόνα. Στην περίπτωσή μου χρησιμοποίησα 2.2 Αντιστάσεις kOhm, αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε αντίσταση με τιμή μεταξύ 2kOhm και 10KOhm.

Ας αναποδογυρίσουμε την πλακέτα και ας κολλήσουμε τα πάντα στη θέση τους. Η εικόνα 3 εξηγεί τις διάφορες συνδέσεις που θα χρειαστεί να κάνετε:

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

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

Βήμα 6: Συγκολλήστε το LDR και το LED

Αφού συγκολληθούν τα κουμπιά, συνεχίζουμε την εγκατάσταση των LDR, LED και αντίστοιχων αντιστάσεων. Πριν το κάνετε αυτό, θα ήταν συνετό να πειραματιστείτε με τις τιμές των αντιστάσεων που θα πάνε στο LED. Ίσως η βαθμολογία μου είναι πολύ υψηλή για να ενεργοποιήσω το LED σας. Πειραματιστείτε λίγο για να βρείτε τη σωστή τιμή αντίστασης.

Συμβουλή: Οποιαδήποτε αντίσταση μεταξύ 330Ωμ και 5kOhmθα ήταν μια καλή λύση για 5mmLED.

Τώρα θα τακτοποιήσουμε το LED, το LDR και τις αντιστάσεις ( 4.7 Κ γιαLDR) στα σωστά σημεία. Ας αναποδογυρίσουμε την πλακέτα και ας κολλήσουμε τα πάντα. Η τρίτη εικόνα θα εξηγήσει τις διαφορετικές συνδέσεις που πρέπει να γίνουν:

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

Σημείωση: Πριν κολλήσετε το LED, βεβαιωθείτε ότι η πολικότητα του LED είναι σωστή. Ο θετικός ακροδέκτης του LED θα πρέπει να συνδεθεί σε μια αντίσταση και ο αρνητικός ακροδέκτης στη γείωση.

Βήμα 7: Δοκιμάστε όλες τις συνδέσεις

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

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

Βήμα 8: Ολοκλήρωση του πίνακα

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

Ας αναποδογυρίσουμε την σανίδα και ας κόψουμε τα καλώδια στο απαιτούμενο μήκος. Κολλήστε τα στις ακίδες που μπαίνουν στους συνδέσμους Arduino. Πριν ξεκινήσετε τη χρήσηΕλεγκτής MIDI, πρώτα πρέπει να δοκιμάσετε τις συνδέσεις του χρησιμοποιώντας ένα δοκιμαστικό σκίτσο. Ανεβάστε το σκίτσο, ανοίξτε τη σειριακή θύρα και αγγίξτε τις «ευαίσθητες» ακίδες στον πίνακα. Αν δείτε το κείμενο "Η σημείωση x είναι ενεργή" για κάθε καρφίτσα όταν την αγγίζετε, όλες οι ακίδες λειτουργούν σωστά.

Βήμα 9: Μετατρέψτε το Arduino σε συσκευή MIDI

Μόλις η πλακέτα είναι έτοιμη, ήρθε η ώρα να μετατρέψετε το Arduino σε ελεγκτή MIDI που θα αναγνωρίζεται από μουσικά προγράμματα όπως το Ableton και το Fl Studio ή ακόμα και άλλες συσκευές MIDI. Η διαδικασία αποτελείται από δύο βήματα:

  1. Αλλάξτε το τρέχον υλικολογισμικό του Arduino Uno σε προγράμματα συμβατά με MIDI.
  2. Ανεβάστε σκίτσο MIDI στο Arduino.

Ας ξεκινήσουμε από το πρώτο σημείο. Φορτώνεται στο Arduino κατά συνθήκη υλικολογισμικόΣειριακή θύρα USB, που επιτρέπει στο Arduino να ανταλλάσσει μηνύματα με τον υπολογιστή και το Arduino IDE. Με νέο πρόγραμμα DualMoco, θα προστεθεί μια δεύτερη λειτουργία, η οποία θα επιτρέψει στο Arduino να λειτουργεί ως Συσκευές MIDI.

Θα χρησιμοποιήσουμε το πρόγραμμα FLIP και θα ακολουθήσουμε τις οδηγίες για να αλλάξουμε το υλικολογισμικό του Arduino. Θα βρείτε ένα αρχείο εργασίας στο αρχείο στο φάκελο Firmware - το αρχείο DualMoco.hex.

Μετά τη λήψη του νέου υλικολογισμικού, επανασυνδέστε το Arduino στον υπολογιστή. Εάν όλα πάνε καλά, το Arduino δεν θα πρέπει να εντοπιστεί από το Arduino IDE επειδή το νέο πρόγραμμα βρίσκεται σε ( MIDIτρόπος). Ανοίξτε ένα μουσικό πρόγραμμα που έχει δυνατότητα εγγραφής MIDI και ελέγξτε ότι το Arduino έχει το όνομα MIDI/ MOCOΓιαLUFAεμφανίστηκε πάνω από τις ρυθμίσεις MIDI, όπως μπορείτε να δείτε στην 1η εικόνα.

Βήμα 10: Κάνοντας τις τελικές προετοιμασίες

Ιδιορρυθμία DualMocoείναι ότι έχει μια δεύτερη λειτουργία - Σειριακή θύρα USB, το οποίο σας επιτρέπει να ανεβάζετε σκίτσα από το Arduino IDE, όπως και με το κανονικό υλικολογισμικό. Για να βάλετε το Arduino στη δεύτερη λειτουργία, συνδέστε δύο ακίδες ISCP μαζί όπως φαίνεται στην εικόνα 1 και 2. Μπορείτε να χρησιμοποιήσετε είτε ένα κομμάτι σύρμα είτε ένα μικρό συρματόσχοινο όπως φαίνεται στις εικόνες. Τώρα αποσυνδέστε το καλώδιο USB από το Arduino για λίγα δευτερόλεπτα και επανασυνδέστε το, το Arduino θα πρέπει να εμφανιστεί στο Arduino IDE.

Σημείωση: Όταν θέλετε να αλλάξετε από τη λειτουργίαusb-σειριακή θύραVΛειτουργία MIDI, αφαιρέστε το βραχυκυκλωτήρα απόISCP καρφίτσες όπως φαίνεται στην τρίτη εικόνα και επανασυνδέστεArduino σε υπολογιστή.

Ήρθε η ώρα να ανεβάσετε το τρέχον σκίτσο στο Arduino, Arduino_Τελικός_Κώδικας. Κατεβάστε το, μετατρέψτε το Arduino σε usbσειριακή θύρα mode και κατεβάστε τον κώδικα. Εάν χρειάζεται να ρυθμίσετε με ακρίβεια το όριο, πειραματιστείτε με τις τιμές ΚΑΤΩΦΛΙΚαι ΑΠΕ. Μόλις όλα λειτουργήσουν όπως αναμένεται, αλλάξτε την τρέχουσα γραμμή 17, από:

boolean midiMode = false; // εάν midiMode = false, το Arduino θα λειτουργήσει ως συσκευή USB-to-Serial

boolean midiMode = true;// εάν midiMode = true, το Arduino θα λειτουργεί ως εγγενής συσκευή MIDI.

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

  1. Ας ανεβάσουμε τον τελικό κώδικα στο Arduino.
  2. Ας αφαιρέσουμε το καλώδιο USB από το Arduino.
  3. Αλλάξτε το Arduino σε λειτουργία MIDI αφαιρώντας το jumper από τις ακίδες ISCP.
  4. Ας εγκαταστήσουμε το καλώδιο USB στο Arduino.

Αν όλα πήγαν καλά, ανοίξτε το πρόγραμμα μουσικής και αρχίστε να αγγίζετε τις καρφίτσες. Πρέπει να ακούγονται μαγικοί ήχοι...

Βήμα 11: Συγκολλήστε συνδετήρες στους βραχυκυκλωτήρες

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

Η διαδικασία συγκόλλησης συνδετήρων σε σύρματα είναι αρκετά απλή:

  1. Κόψτε το βύσμα στη μία πλευρά του καλωδίου.
  2. Απογυμνώνουμε το καλώδιο της μόνωσης κατά 5 mm.
  3. Συγκολλήστε το απογυμνωμένο σύρμα σε ένα συνδετήρα.
  4. Επαναλάβετε και για τους 12 συνδετήρες.

Σημείωση: Οι συνδετήρες δεν πρέπει να επικαλύπτονται με καμία επίστρωση (βαφή ή πλαστικό).

Βήμα 12: Ζωγραφική του προτύπου

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

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

Σας ευχαριστώ για την προσοχή σας!)

Το πληκτρολόγιο έχει σχεδιαστεί για σύνδεση με εξωτερική μονάδα ήχου ή υπολογιστή (εάν υπάρχει κατάλληλη διεπαφή) χρησιμοποιώντας το πρωτόκολλο MIDI - για εγγραφή μουσικής σε πρόγραμμα sequencer ή ζωντανή απόδοση. Ο αριθμός των πλήκτρων στην προτεινόμενη έκδοση είναι 48, αλλά μπορεί να αυξηθεί σε 64 χωρίς να αλλοιωθεί το κύκλωμα Ένα χαρακτηριστικό γνώρισμα του προτεινόμενου πληκτρολογίου είναι η ευαισθησία του στη δύναμη πρόσκρουσης στο πλήκτρο.

Ιστορικό της συσκευής

Πριν από λίγο καιρό, σε σχέση με την αγορά ενός διαμερίσματος, αναγκάστηκα να χάσω ένα πολυτελές όργανο που χρησίμευε ως πληκτρολόγιο MIDI για μένα - ήταν το θρυλικό YAMAHA DX-7. Όταν η θλίψη υποχώρησε, γεννήθηκε το ερώτημα σε όλη της τη σοβαρότητα και την ασχήμια: τι να δουλέψουμε; Ήταν αυτή τη στιγμή που, μέσω των προσπαθειών του φίλου μου, ένα μισοσυναρμολογημένο κύκλωμα για τον KR1816BE39 (στον αντίπαλο, αυτός ο επεξεργαστής λέγεται 8048) έπεσε στα χέρια μου. Το κύκλωμα συναρμολογείται και ρυθμίζεται εύκολα και, το πιο σημαντικό, ήρθε στο χέρι την κατάλληλη στιγμή. Συναρμολόγησα το πληκτρολόγιο με τη μορφή μήτρας 8x6 χρησιμοποιώντας KR1533ID7 και KR1533KP7. Υπήρχε επίσης μια μύγα στην αλοιφή - δύο μειονεκτήματα αυτού του σχεδίου σκοτώνουν όλα τα πλεονεκτήματά του μέχρι θανάτου: η έλλειψη ευαισθησίας στην ταχύτητα πληκτρολόγησης (ηχεία) και ο τροχός PITCH WEEL. Λοιπόν, κάποτε προγραμματίστηκα στο Z-80 (και μάλιστα έφτιαξα ένα λειτουργικό sequencer) και αποφάσισα να αποτινάξω τα παλιά. Απέρριψα αποφασιστικά το Z-80 ως CPU ως ηθικά απαρχαιωμένο. Επιπλέον, δεν ήθελα να κάνω πολλές κολλήσεις και αποφάσισα να πάρω αυτή την ίδια συσκευή στο KR1816BE39 ως βάση, εξοπλίζοντάς την με έναν άλλο πολυπλέκτη για τις επαφές (επάνω) των κλειδιών. Βρήκα τεκμηρίωση (δεν θα το πιστέψετε - στη βιβλιοθήκη, το βιβλίο "Σχεδίαση ψηφιακών συσκευών σε μικροεπεξεργαστές ενός τσιπ") για το assembler KR1816BE39 και έγραψα ένα πρόγραμμα... Και μετά αποδείχθηκε ότι ο προγραμματιστής ROM ενός φίλου είχε πέθανε, και απλά δεν υπήρχε τίποτα για να αναβοσβήνει το πρόγραμμα... Από θλίψη έχασα τελείως το μυαλό μου και αποφάσισα να ξαναγράψω τον ίδιο αλγόριθμο για το PIC. Σε μισή μέρα συγκολλήθηκε ο προγραμματιστής (LUDIPIPO), μετά φτιάχτηκε ένα πρωτότυπο από πρίζα, KR1533ID7 και ζεύγος KR1533KP7 και όλη η εγκατάσταση έγινε από την MGTF χωρίς καμία σφραγίδα. Και η διαδικασία ξεκίνησε...

Αρχικά κυκλοφόρησε μια μη δυναμική έκδοση του προγράμματος (το παρουσιάζω και για όσους έχουν πληκτρολόγιο με μία επαφή ανά πλήκτρο). Στη συνέχεια ξεκίνησε η δυναμική έκδοση. Και τότε ήρθε η ιδέα να προσθέσουμε κουμπιά και μια ένδειξη. Το γεγονός είναι ότι είχα ένα WAVEBLASTER (ένα θυγατρικό συνθεσάιζερ wavetable για πολύ παλιά ηχητικά συστήματα) που βρισκόταν σε αδράνεια για μεγάλο χρονικό διάστημα. Συνδέοντάς το με τη δημιουργία μου, πήρα κάτι που μπορείτε να παίξετε (στο μέτρο των δυνατοτήτων και του ταλέντου σας) χωρίς υπολογιστή, κάτι που μερικές φορές είναι αρκετά βολικό. Αυτό καθόρισε το σύνολο των λειτουργιών στα κουμπιά - μπορεί να είναι χρήσιμο κατά τη σύνδεση σε μονάδες ήχου κατά τη διάρκεια της "ζωντανής" αναπαραγωγής. Οι λειτουργίες των κουμπιών αλλάζουν εύκολα γράφοντας τους δικούς σας χειριστές και χρησιμοποιώντας τις διαδικασίες ψηφοφορίας και εμφάνισης μου. Κάπως έτσι, το πληκτρολόγιο που συναρμολογήθηκε σε μια σιδερένια θήκη αποδείχθηκε πιο βολικό από το YAMAHA PSS (ακόμα πλήκτρα πλήρους μεγέθους, ένα πεντάλ και, το πιο σημαντικό, δυναμική!). Στη μέση της δημιουργικής διαδικασίας, προέκυψε μια δύσκολη επιθυμία να γίνει μια έκδοση του πληκτρολογίου MIDI αποκλειστικά για τον υπολογιστή - η ένδειξη και τα κουμπιά είναι προαιρετικά, αλλά χρειάζονται οι τροχοί PITCH WEEL και MODULATION. Το πάλεψα για λίγο, αλλά τελικά τα παράτησα και άνοιξα ξανά το κολλητήρι. Τα ηλεκτρονικά δεν είναι δύσκολο να συναρμολογηθούν, αλλά η μηχανική είναι κάπως πιο δύσκολη και άρχισα να ζαρώνω το μέτωπό μου πάνω από το σχέδιο του τροχού. Μετά από λίγη σκέψη, αποφάσισα να εγκαταλείψω τον δεύτερο τροχό - ούτως ή άλλως, ποτέ δεν περιστρέφω και τα δύο ταυτόχρονα, συνήθως γράφω σημειώσεις και πίνω πρώτα και μετά προσθέτω διαμόρφωση. Το λιγότερο σημαντικό ήταν η μείωση στο μισό του όγκου της μηχανικής εργασίας που μου άρεσε τόσο πολύ. Για τους λιγότερο τεμπέληδες, θα σας εξηγήσω παρακάτω πώς να φτιάξετε δύο τροχούς σχεδόν χωρίς πολυπλοκότητα. Για να μπορώ ακόμα να γράφω διαμόρφωση, αποφάσισα να οργανώσω τρεις τρόπους λειτουργίας του τροχού: βήμα για 2 ημιτόνια, βήμα για 1 ημίτονο (βολικό) και διαμόρφωση. Μπορείτε να αλλάξετε όλα αυτά με ένα κουμπί και να υποδείξετε τη λειτουργία με ένα ζευγάρι LED. Για να απλοποιήσω το κύκλωμα, εξάλειψα τα εναπομείναντα κουμπιά και τους δείκτες, όλα αυτά δεν χρειάζονται για να δουλέψουμε με σύγχρονα προγράμματα ακολουθίας.

Ο τροχός φυσικά πρέπει να μπει στον άξονα του ποτενσιόμετρου, αυτό είναι κατανοητό, αλλά με τι πρέπει να συνδεθεί; Η πρώτη μου σκέψη ήταν να χρησιμοποιήσω μια βολή στο χρονόμετρο 555, αλλά οι υπολογισμοί έδειξαν ότι θα ήταν δύσκολο να επιτευχθεί ακρίβεια και σταθερότητα στη μέτρηση του πλάτους παλμού όταν προσπαθούσαμε να παράσχω έναν αποδεκτό ρυθμό δειγματοληψίας τροχού, καθώς ο επεξεργαστής είναι απασχολημένος κυρίως με τη μέτρηση. ο χρόνος εναλλαγής των επαφών του πληκτρολογίου. Ο μόνος τρόπος που απομένει είναι να χρησιμοποιήσετε έναν μετατροπέα αναλογικού σε ψηφιακό (ADC). Εφόσον χρησιμοποίησα ένα Pic16F84 χωρίς ενσωματωμένο ADC, θυμήθηκα το μηχανολογικό μου υπόβαθρο (και το εγγενές εργοστάσιό μου) και έφτιαξα ένα ADC από πολλές αντιστάσεις με έναν συγκριτή (και ένα κομμάτι προγράμματος). Αποδείχθηκε απλό, φθηνό και αρκετά ακριβές.

Παρουσιάζω και τα δύο διαγράμματα - και με κουμπιά και με τροχό, καθώς και προγράμματα για αυτά. Εάν είναι επιθυμητό, ​​και τα δύο κυκλώματα μπορούν να συνδυαστούν εύκολα αλλάζοντας ελαφρά τις διευθύνσεις των εξωτερικών συσκευών, απλά πρέπει να θυμάστε ότι η λειτουργία CHORUS (STEREO) χρησιμοποιεί τον τόνο για να επιτύχει τον αποσυντονισμό και πρέπει είτε να το αφαιρέσετε είτε να ανησυχείτε για τη μετάδοση του τόνου με τον αποσυντονισμό. σε όλα τα κανάλια.

Έτσι - το πραγματικό πληκτρολόγιο

Διάγραμμα συσκευής

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

Χρησιμοποίησα τον PIC16F84 ως επεξεργαστή για διάφορους λόγους: αυτό το τσιπ είναι διαθέσιμο, φθηνό και εύκολο στον προγραμματισμό, και ήταν αυτό που είχα στη διάθεσή μου. Προσοχή: Το PIC16C84 δεν είναι κατάλληλο - έχει μόνο 36 κελιά μνήμης RAM και το πρόγραμμα δεν θα λειτουργήσει. Ωστόσο, το κύκλωμα του τροχού χρησιμοποιεί λιγότερες κυψέλες RAM και το πρόγραμμά του μπορεί να συμπιεστεί στο PIC16C84 μειώνοντας μερικά ακόμη κελιά, για παράδειγμα MIDCH (αναθέτοντας ένα σταθερό κανάλι MIDI σε όλα τα μεταδιδόμενα δεδομένα).

Το διάγραμμα ενός δυναμικού πληκτρολογίου με ένδειξη φαίνεται παρακάτω:

Το κύκλωμα είναι παραδοσιακό από πολλές απόψεις - είναι δύσκολο να εφευρεθεί εκ νέου ένα ποδήλατο χωρίς πεντάλ και τροχούς. Το πιο σημαντικό bit χρησιμοποιείται για την έξοδο δεδομένων MIDI σε σειριακό κώδικα - η μετατροπή και η έξοδος γίνονται σε λογισμικό. Επομένως, ο κρύσταλλος πρέπει να είναι στα 4 MHz, εκτός αν θέλετε να ξαναγράψετε τη ρουτίνα εξόδου byte MIDI. Τα δύο λιγότερο σημαντικά bit της θύρας A λειτουργούν για λήψη - λαμβάνουν σήματα από τους πολυπλέκτης των επαφών πλήκτρων "απελευθερωμένη" και "πατημένη" και τα τρία πιο σημαντικά bit καθορίζουν τη διεύθυνση της εξωτερικής συσκευής (μέσω ενός άλλου αποκωδικοποιητή KR1533ID7). Στο κύκλωμα με τον τροχό, εγκατέλειψα τον αποκωδικοποιητή διευθύνσεων της εξωτερικής συσκευής για να απλοποιήσω το κύκλωμα και να ελευθερώσω το υψηλό bit της θύρας PA4 για εισαγωγή δεδομένων από τον συγκριτή, επομένως οι διευθύνσεις του πληκτρολογίου και των κουμπιών είναι διαφορετικές. Κατά τον συνδυασμό των κυκλωμάτων, αυτό το μικροκύκλωμα θα πρέπει να επιστραφεί, για να αποκρυπτογραφήσει τη διεύθυνση, να χρησιμοποιήσει τα bits θύρας PA2 και PA3 και να διευθύνει συσκευές 4: πληκτρολόγιο, κουμπιά, καταχωρητής δεδομένων δυναμικής ένδειξης και καταχωρητής εξοικείωσης δυναμικής ένδειξης. Η ένδειξη λειτουργίας τροχού θα πρέπει να ξαναγραφτεί.

Το κύκλωμα με τον τροχό PITCH WEEL / MODULATION μοιάζει με αυτό:

Μια δίοδος είναι εγκατεστημένη σε κάθε κλειδί για αποσύνδεση. Οι αντιστάσεις στις εισόδους των πολυπλέκτη δεν πρέπει να είναι περισσότερες από 8k, διαφορετικά είναι πιθανές δυσλειτουργίες λόγω της χωρητικότητας τοποθέτησης. Ένδειξη - οποιαδήποτε με κοινή άνοδο για 3 ψηφία, εάν οι ακροδέκτες των τμημάτων κάθε ψηφίου εξάγονται χωριστά, πρέπει να συνδυαστούν οι ακροδέκτες των τμημάτων με το ίδιο όνομα - η ένδειξη είναι δυναμική και τα ψηφία ανάβουν διαδοχικά. Οποιαδήποτε κουμπιά, χωρίς κλείδωμα, η αναπήδηση επαφής ελέγχεται από λογισμικό. Οι λυχνίες LED είναι εγκατεστημένες κοντά στα κουμπιά με το ίδιο όνομα και υποδεικνύουν την ενεργοποίηση των αντίστοιχων λειτουργιών, τα κουμπιά "+" και "-" δεν έχουν LED. Τα τρανζίστορ στον δείκτη είναι οποιασδήποτε αντίστροφης αγωγιμότητας χαμηλής ισχύος και υψηλής συχνότητας. Δύο καταχωρητές KR1533IR23 χρησιμοποιούνται για την εναλλακτική μανδάλωση της διεύθυνσης και του κωδικού του τρέχοντος ψηφίου ένδειξης (τα LED ομαδοποιούνται επίσης σε δύο σχεδόν ψηφία). Χρησιμοποίησα ένα τυπικό πληκτρολόγιο από σοβιετικά ηλεκτρικά όργανα με 48 πλήκτρα (παράγεται επίσης ξεχωριστά ως σχεδιαστής ραδιοφώνου "START" και είναι αρκετά διαδεδομένο). Για να μειωθεί το ύψος του πληκτρολογίου και το πάχος του οργάνου, έμειναν δύο από τις έξι ομάδες επαφών κάτω από κάθε πλήκτρο και το όλο πράγμα κόπηκε και ξανακολλήθηκε. Σε γενικές γραμμές, μια ομάδα μεταγωγής ανά κλειδί είναι αρκετή, αλλά ήταν πιο βολικό να το κολλήσετε με αυτόν τον τρόπο. Οι ράβδοι διαύλου των επαφών "απελευθέρωση" και "πιεσμένων" έχουν μήκος 8 πλήκτρων. Εάν θέλετε, μπορείτε επίσης να χρησιμοποιήσετε ένα πληκτρολόγιο όπου, αντί για μια ομάδα εναλλαγής επαφών, χρησιμοποιούνται δύο ζεύγη επαφών κλεισίματος - το ένα ζεύγος κλείνει στην αρχή της κίνησης του πλήκτρου, το άλλο στο τέλος (όπως στα όργανα YAMAHA). Σε αυτήν την περίπτωση, το σήμα στο PA0 πρέπει να παρέχεται από την αντίστροφη έξοδο του πολυπλέκτη (ακίδα 6). Χωρίς αλλαγές στο κύκλωμα, μπορείτε να χρησιμοποιήσετε ένα πληκτρολόγιο με 64 πλήκτρα (κανονικό – 61, δηλαδή 5 οκτάβες). Εάν είναι απαραίτητο, ο αριθμός των κλειδιών μπορεί να αυξηθεί σε τουλάχιστον 127 για να γίνει αυτό, πρέπει να εισαγάγετε έναν άλλο αποκωδικοποιητή KR1533ID7 στο κύκλωμα.

Είναι πολύ σημαντικό να ρυθμίσετε καλά τη μηχανική - οι επάνω επαφές ΠΡΕΠΕΙ να κλείνουν όταν απελευθερωθούν τα κλειδιά. Εάν αυτό δεν γίνει, το πρόγραμμα θεωρεί ότι τέτοια πλήκτρα πρέπει να πατηθούν και προσπαθεί να τα επεξεργαστεί, οπότε το να πατήσετε ξανά αυτά τα πλήκτρα δεν παράγει ήχο. Επιπλέον, ο μέγιστος αριθμός νότων που μπορούν να παιχτούν ταυτόχρονα είναι 10 (αν κάποιος έχει μεγαλώσει περισσότερα δάχτυλα στα χέρια του, αυτός ο αριθμός μπορεί εύκολα να αλλάξει) και η μη απελευθέρωση των πλήκτρων μειώνει αυτόν τον αριθμό. Για τους ίδιους λόγους, ο αριθμός των πλήκτρων που καθορίζεται στη διαδικασία ψηφοφορίας με πληκτρολόγιο πρέπει ΠΡΕΠΕΙ να ταιριάζει με τον αριθμό των πραγματικών πλήκτρων. Η αναπήδηση επαφής καταστέλλεται από λογισμικό.

Για μια μήτρα αντίστασης R-2R ADC, συνιστάται να επιλέξετε αντιστάσεις με ακρίβεια 1–2%, και οι απόλυτες τιμές μπορεί να είναι διαφορετικές, η αναλογία είναι σημαντική. Ωστόσο, δεν θα πρέπει να αυξήσετε πολύ την ονομαστική τιμή, αυτό θα αυξήσει τον χρόνο μετατροπής λόγω της χωρητικότητας εισόδου του συγκριτή. Χρησιμοποίησα αντιστάσεις SMD χωρίς να ταιριάζουν, αν και οι μετρήσεις έδειξαν ότι σε μία λωρίδα στερέωσης οι αντιστάσεις συνήθως ταιριάζουν με ακρίβεια άνω του 1%. Είμαι σίγουρος ότι το κύκλωμα θα λειτουργήσει με ανακριβείς αντιστάσεις, αλλά η γραμμικότητα του χαρακτηριστικού θα επιδεινωθεί. Ο ίδιος ο τροχός είναι κατασκευασμένος από μια λαβή μιας παλιάς τηλεόρασης και έχει ένα ελατήριο στον άξονα του ποτενσιόμετρου που τον επαναφέρει στη μεσαία θέση. Για τη διευκόλυνση της ρύθμισης των μηχανικών, όταν ενεργοποιείτε την τροφοδοσία με πατημένο το κουμπί λειτουργίας, ενεργοποιείται ένα πρόγραμμα εντοπισμού σφαλμάτων που ανάβει το LED όταν ο τροχός βρίσκεται στη μεσαία θέση, αυτό σας επιτρέπει να ρυθμίσετε με ακρίβεια τη θέση μηδέν του τροχού στον άξονα του ποτενσιόμετρου. Εάν υπάρχει ανάγκη και επιθυμία να κατασκευαστεί ένας ξεχωριστός τροχός MODULATION, πρέπει να συνδεθεί σε ένα ελεύθερο στοιχείο σύγκρισης (υπάρχουν τέσσερα από αυτά) και η μήτρα R-2R είναι κοινή και για τους δύο τροχούς. Για να αλλάξετε τις εξόδους των συγκριτών, είναι καλύτερο να χρησιμοποιήσετε ένα πρόσθετο μικροκύκλωμα και να χρησιμοποιήσετε το PA2 ως σήμα ελέγχου.

Εάν θέλετε, μπορείτε να συναρμολογήσετε μια δυναμική έκδοση του πληκτρολογίου χωρίς ένδειξη, κουμπιά και τροχό PITCH WEEL / MODULATION - απλά χωρίς να συναρμολογήσετε το αχρησιμοποίητο τμήμα του κυκλώματος. Όλες οι μεταβαλλόμενες παράμετροι θα οριστούν στις προεπιλογές όταν ενεργοποιηθεί η τροφοδοσία...

Όλα αυτά μπορούν να τροφοδοτηθούν από οτιδήποτε, η κατανάλωση ρεύματος εξαρτάται από τον συγκεκριμένο δείκτη και δεν υπερβαίνει τα 100 mA. Έχω σταθεροποιητή 7805 ακριβώς πάνω στην πλακέτα χωρίς ψύκτρα (φαίνεται καθαρά στη φωτογραφία). Χρειάζεται ένα μικρό καλοριφέρ εάν τροφοδοτούνται περισσότερα από 9v. Ο συγκριτής τροφοδοτείται από τάση 9 - 12 v, κατά προτίμηση σταθεροποιημένη. Ναι, χρησιμοποίησα μικροκυκλώματα σοβιετικής κατασκευής από παλιά αποθέματα - υπάρχει μεγάλος αριθμός σύγχρονων αναλόγων τους, η αντικατάσταση είναι δυνατή και ακόμη και επιθυμητή - τα σύγχρονα ανάλογα έχουν χαμηλότερη κατανάλωση.

Πρόγραμμα

Ο αλγόριθμος για την επεξεργασία πατημένων πλήκτρων προέρχεται από αυτόν που προτείνεται στο περιοδικό «Microprocessor Tools and Systems» Νο. 5, 1986. Ήταν αυτή η δημοσίευση (ή μάλλον, ένα σφάλμα στο προτεινόμενο πρόγραμμα) που με ώθησε να μελετήσω το assembler. Στην πραγματικότητα, η μόνη ιδέα που ελήφθη από εκεί ήταν να καταγραφεί ο αριθμός κάθε πατημένου πλήκτρου σε μια ειδικά εκχωρημένη περιοχή της RAM (CHAN), έτσι ώστε όταν το πληκτρολόγιο πληκτρολογηθεί ξανά, να μην επεξεργαστεί ξανά το ήδη επεξεργασμένο πλήκτρο. Έχω δύο κελιά RAM που έχουν εκχωρηθεί για καθένα από τα πατημένα πλήκτρα (όχι περισσότερα από 10 συνολικά): στο πρώτο καταγράφεται ο αριθμός του πατημένου πλήκτρου, στο δεύτερο - η VELOCITY του (ταχύτητα πατήματος). Επαναλαμβάνω - υπάρχουν μόνο 20 από αυτά τα κελιά και η αρχική διεύθυνση δίνεται με το όνομα CHAN. Το σύμβολο ενός ελεύθερου ζεύγους είναι το πιο σημαντικό κομμάτι του πρώτου κελιού. Το πιο σημαντικό bit του δεύτερου κελιού που έχει οριστεί σημαίνει ότι το NOTE ON για αυτό το κλειδί έχει ήδη μεταδοθεί και δεν χρειάζεται περαιτέρω επεξεργασία.

Δεν θα περιγράψω λεπτομερώς ολόκληρο το πρόγραμμα, ο πηγαίος κώδικας είναι γεμάτος με σχόλια και είναι αρκετά προσβάσιμος σε ένα εκπαιδευμένο άτομο. Για τα υπόλοιπα, δίνω αμέσως έτοιμο firmware στα αρχεία Dinamic.hex και Pitchmod.hex. Θα εξηγήσω μόνο μερικά μη προφανή σημεία. Λοιπόν, πρώτα απ 'όλα, σχετικά με τη δυναμική: τη στιγμή που ανοίγουν οι επάνω επαφές ενός κλειδιού, ο αριθμός του γράφεται στο πρώτο κελί του πρώτου ελεύθερου ζεύγους από την περιοχή CHAN, επαναφέροντας ταυτόχρονα το σύμβολο ελεύθερου ζεύγους. Η αρχική τιμή VELOCITY = 127 γράφεται στο δεύτερο κελί Η ευαισθησία του πληκτρολογίου καθορίζεται από τη συχνότητα διακοπής, καθώς η επεξεργασία διακοπής μειώνει τις τιμές VELOCITY για όλα τα πλήκτρα για τα οποία δεν έχει μεταδοθεί ακόμη η ΣΗΜΕΙΩΣΗ ON. Οι διακοπές προκαλούνται από ένα ενσωματωμένο χρονόμετρο. Τη στιγμή που οι κάτω επαφές του κλειδιού είναι κλειστές, το σύμβολο «μεταφερθεί» τοποθετείται στο αντίστοιχο κελί CHAN και το NOTE ON μεταδίδεται με την τρέχουσα VELOCITY. Για τη βελτίωση της καμπύλης ευαισθησίας, οι τιμές VELOCITY μειώνονται σύμφωνα με τον λογαριθμικό νόμο: το 1/16 του τμήματός του, μειωμένο κατά 1, αφαιρείται από την τρέχουσα τιμή VELOCITY, ενώ το κλειδί μετακινείται από την επάνω επαφή στην κάτω πρώτον, η τιμή VELOCITY στο αντίστοιχο κελί CHAN μειώνεται σύμφωνα με τον λογαριθμικό νόμο και όσο πιο γρήγορα κινείται το κλειδί, τόσο μεγαλύτερη είναι η VELOCITY τη στιγμή που κλείνουν οι χαμηλότερες επαφές του κλειδιού και μεταδίδεται η ΣΗΜΕΙΩΣΗ ON. Οι διακοπές ελέγχουν επίσης τη δυναμική οθόνη, αυτό γίνεται για να εξαλειφθεί το τρεμόπαιγμα της ένδειξης.
Λειτουργίες κουμπιού: TRANSPOSE - όλα τα πλήκτρα μειώνονται στα αγαπημένα σας ελάσσονα: εύρος +/- 15 ημιτόνια. Το PRG εκχωρεί ένα ηχόχρωμο (όργανο) σε μια δεδομένη προεπιλογή (UP1-UP5) και το VOL εκχωρεί την ένταση του ήχου. Η τρέχουσα παράμετρος εμφανίζεται στην ένδειξη και μπορεί να αλλάξει χρησιμοποιώντας τα κουμπιά "+" και "-" Το TWIN εμφανίζει ένα "διπλό" ηχόχρωμα - μία από τις προεπιλογές (UP1-UP5) και, ταυτόχρονα, την προεπιλογή LOWER. ήχος ταυτόχρονα. Το STEREO εξάγει τον ήχο της τρέχουσας προεπιλογής στα δεξιά και στα αριστερά στερεοφωνικά κανάλια με ένα ελαφρύ «αποσυντονισμό» (εφέ «ρεφρέν»). Το κουμπί SPLIT δεν είναι ενεργοποιημένο. Το πεντάλ SUSTAIN έχει σχεδιαστεί κυκλικά καθώς ένα από τα κουμπιά δεν πρέπει να είναι πολύ μεγάλη. Οι διευθύνσεις των χειριστηρίων κουμπιών συλλέγονται σε έναν πίνακα στην αρχή του προγράμματος όταν αλλάζετε τις λειτουργίες των κουμπιών, μπορείτε να αντικαταστήσετε τις δικές σας.

Το ADC του τροχού είναι μισό λογισμικό, λειτουργεί χρησιμοποιώντας έναν διαδοχικό αλγόριθμο προσέγγισης, ο πίνακας R-2R εκτελεί τη μετατροπή ψηφιακού σε αναλογικό. Πρώτον, ένα 1 στο πιο σημαντικό ψηφίο εφαρμόζεται στον πίνακα R-2R και ο συγκριτής καθορίζει αν είναι πολύ ή λίγο. Αν είναι λίγο, το 1 παραμένει στο πιο σημαντικό bit, αν είναι πολύ - 0. Τότε το ίδιο συμβαίνει με κάθε επόμενο bit χαμηλής τάξης (6 βήματα συνολικά) και παίρνουμε έναν αριθμό έξι bit που αντιστοιχεί στο γωνία περιστροφής του τροχού. Αυτή η ακρίβεια μου φαίνεται επαρκής, αλλά μπορείτε να προσθέσετε ένα ακόμα bit αυξάνοντας τη μήτρα και το πρόγραμμα μετατροπής.

Σχέδιο

Ως το πραγματικό πληκτρολόγιο, χρησιμοποίησα ένα σοβιετικό κατασκευαστή "Start" τώρα, ίσως είναι πιο εύκολο να βρω ένα παλιό, μη λειτουργικό Yamaha ή Casio, αυτό θα λύσει επίσης το πρόβλημα της κατασκευής της υπόθεσης - εάν, φυσικά, το παλιό όργανο είναι σχετικά άθικτο...

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

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

Λοιπόν, εν ολίγοις, αυτό είναι όλο. Δημιουργική επιτυχία!

Κατάλογος ραδιοστοιχείων

Ονομασία Τύπος Ονομασία Ποσότητα ΣημείωσηΚατάστημαΤο σημειωματάριό μου
Σχέδιο Νο. 1.
ΜικροελεγκτήςPIC16F841 Στο σημειωματάριο
ΠατατακιKR1533ID71 Στο σημειωματάριο
ΠατατακιKR1533KP71 Στο σημειωματάριο
Γραμμικός ρυθμιστής

LM7805

1 Στο σημειωματάριο
Δίοδος

KD522A

64 Στο σημειωματάριο
Πυκνωτής22 pF2 Στο σημειωματάριο
Πυκνωτής0,1 μF2 Στο σημειωματάριο
100 μF2 Στο σημειωματάριο
Αντίσταση

220 Ohm

2 Στο σημειωματάριο
Αντίσταση

6,8 kOhm

8 Στο σημειωματάριο
Αντηχείο χαλαζία4 MHz1 Στο σημειωματάριο
Κουμπί πληκτρολογίου 64 Στο σημειωματάριο
Σχέδιο Νο. 2.
ΜικροελεγκτήςPIC16F841 Στο σημειωματάριο
ΠατατακιKR1533ID72 Στο σημειωματάριο
ΠατατακιKR1533KP72 Στο σημειωματάριο
ΠατατακιKR1533IR232 Στο σημειωματάριο
Γραμμικός ρυθμιστής

LM7805

1 Στο σημειωματάριο
Διπολικό τρανζίστορ

KT315A

5 Στο σημειωματάριο
Δίοδος

KD522A

80 Στο σημειωματάριο
Πυκνωτής22 pF2 Στο σημειωματάριο
Πυκνωτής0,1 μF2 Στο σημειωματάριο
Ηλεκτρολυτικό πυκνωτή100 μF2 Στο σημειωματάριο
Αντίσταση

180 Ohm

7 Στο σημειωματάριο
Αντίσταση

220 Ohm

2 Στο σημειωματάριο
Αντίσταση

6,8 kOhm

16 Στο σημειωματάριο
Αντίσταση

8 kOhm

1 Στο σημειωματάριο
Αντηχείο χαλαζία4 MHz1 Στο σημειωματάριο
Ψηφιακή ένδειξη LED 3 ψηφίων, με κοινές ανόδους. 1 Στο σημειωματάριο
Δίοδος εκπομπής φωτόςτο κόκκινο12 Στο σημειωματάριο
Διακόπτης με κλειδί 64 Στο σημειωματάριο
Κουμπί 16 Στο σημειωματάριο
Σχέδιο Νο. 3.
ΜικροελεγκτήςPIC16F841 Στο σημειωματάριο
ΠατατακιKR1533ID71 Στο σημειωματάριο
ΠατατακιKR1533KP72 Στο σημειωματάριο
Συγκριτής

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

Λόγω του γεγονότος ότι πολλοί μουσικοί ανησυχούν πολύ για την ποιότητα των προϊόντων τους, τίθεται το ερώτημα: πώς να επιλέξετε έναν ελεγκτή τύπου MIDI; Αυτό το άρθρο θα περιγράψει συμβουλές και βασικά κριτήρια επιλογής.

Τι είναι ένας ελεγκτής MIDI;

Πίσω στη δεκαετία του 1980, μια συσκευή που ονομάζεται ελεγκτής χρησιμοποιήθηκε για να επιτρέψει σε έναν μουσικό να ελέγχει τη λειτουργία πολλών συνθεσάιζερ ταυτόχρονα χρησιμοποιώντας ένα πληκτρολόγιο. Αυτή η ιδέα ήταν επιτυχημένη, έτσι συσκευές αυτού του τύπου έγιναν αμέσως ευρέως διαδεδομένες. Αν τότε δεν μπορούσαν να τα αγοράσουν όλοι, τότε αυτή τη στιγμή οι ελεγκτές έχουν μειωθεί πολύ στην τιμή. Μουσικοί, μηχανικοί ήχου, τραγουδοποιοί, ερμηνευτές, DJs - όλοι χρησιμοποιούν τέτοιες συσκευές.

Τι είναι μια συσκευή που έχει πληκτρολόγιο; Είναι παρόμοιο με τα πλήκτρα πιάνου και συνθεσάιζερ. Έχει προσθέσει πόμολα, διάφορα κουμπιά και ρυθμιστικά. Κατά την αλληλεπίδραση μαζί τους, η μελωδία μεταδίδεται σε μονάδες ήχου, οι οποίες έχουν εξωτερικό τύπο. Μιλάμε για φορητούς υπολογιστές και άλλες συσκευές. Με άλλα λόγια, οι ελεγκτές (οι περισσότεροι από αυτούς) δεν είναι ικανοί να παράγουν ήχο από μόνοι τους. Έχουν σχεδιαστεί για να ρυθμίζουν bits, νότες και άλλες παραμέτρους που αναπαράγονται από μια εξωτερική συσκευή (μονάδα ήχου).

Ποια είναι τα πλεονεκτήματα ενός ελεγκτή MIDI; Το πιο προφανές: είναι ευέλικτο και φορητό. Χάρη σε αυτό, μπορείτε να εφαρμόσετε όλα τα εικονικά εφέ και να ελέγξετε το σύγχρονο λογισμικό. Μπορεί να μεταφερθεί εύκολα χρησιμοποιώντας, για παράδειγμα, μια τσάντα φορητού υπολογιστή.

Τι να προσέξετε κατά την αγορά;

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

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

Ένα μικρό χειριστήριο MIDI θα κάνει μια χαρά για έναν DJ. Δεν είναι καθόλου δύσκολο να το φτιάξετε με τα χέρια σας αν κάποιος καταλαβαίνει τα ηλεκτρονικά. Αυτό σημαίνει ότι οι DJ χρησιμοποιούν συχνά σπιτικό εξοπλισμό. Μπορείτε να διαβάσετε περισσότερα για αυτό παρακάτω. Πρέπει να αγοράσετε μια τέτοια συσκευή λαμβάνοντας υπόψη το γεγονός ότι χρειάζεστε επίσης λαβές και ρυθμιστικά. Χωρίς αυτά, το πρόγραμμα (ο ελεγκτής MIDI λειτουργεί μόνο παράλληλα με αυτό) δεν θα εκτελέσει τις επιθυμητές λειτουργίες.

Εάν ένας μουσικός επεξεργάζεται κομμάτια στο κρεβάτι, σε αεροπλάνο, σε αυτοκίνητο ή σε άλλο μέρος, τότε το κύριο μέλημα κατά την επιλογή θα είναι η φορητότητα. Λαμβάνοντας υπόψη ότι η συσκευή τροφοδοτείται, πρέπει να δώσετε προσοχή σε αυτά που μπορούν να φορτιστούν από το δίαυλο USB.

Ελεγκτές MIDI από την Pioneer

Το χειριστήριο MIDI της Pioneer είναι μια συσκευή που ήταν πάντα περιζήτητη. Αυτός ο κατασκευαστής είναι από καιρό μεταξύ των τριών κορυφαίων ηγετών στην αγορά τέτοιου εξοπλισμού. Τι διακρίνει τα «σχετικά» μοντέλα της Pioneer μεταξύ τους; Μόνο η παρουσία πρόσθετων λειτουργιών που μοιάζουν με συνηθισμένα μηχανικά κουμπιά στον πίνακα ελέγχου. Οποιοδήποτε χειριστήριο αυτής της μάρκας έχει εξαιρετικούς τροχούς οδήγησης. Η εμφάνιση είναι σοβαρή και κομψή. Το εντυπωσιακό μέγεθος της συσκευής αντισταθμίζεται από τη μέγιστη λειτουργικότητά της.

Δεν χρειάζεται να αναρωτιέστε ποιο μοντέλο να επιλέξετε. Θα πρέπει αμέσως να ρίξετε μια πιο προσεκτική ματιά στο DDJ-T1. Η συσκευή προτείνεται από πολλούς Η σχέση τιμής-ποιότητας είναι αρκετά καλή. Ο πίνακας ελέγχου είναι βολικός, τα κουμπιά μπορούν να πατηθούν χωρίς προβλήματα και η συσκευή είναι εύκολη στη μεταφορά.

Novation Launchpad Controller

Ο ελεγκτής Novation Launchpad MIDI έχει σχεδιαστεί ειδικά για να λειτουργεί με το Ableton Live. Η συσκευή είναι κατάλληλη τόσο για δραστηριότητες σκηνής όσο και για δραστηριότητες στο στούντιο στο σπίτι. Θα είναι επίσης εύκολο να κρατάτε ντίσκο με αυτό. Το πλέγμα συσκευών αποτελείται από 64 κουμπιά. Είναι εξοπλισμένο με πρόσθετα εφέ, καθώς και λειτουργίες για εργασία με λογισμικό. Η συσκευή μπορεί να συνδεθεί σε υπολογιστή και λειτουργεί τόσο με την οικογένεια των Windows όσο και με ορισμένα άλλα λειτουργικά συστήματα.

Ελεγκτής DIY MIDI - πραγματικότητα ή μύθος;

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

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

Μοντέλο μάρκας Akai

Η Akai κυκλοφόρησε πρόσφατα ένα νέο χειριστήριο που ονομάζεται MPC Touch. Σε αντίθεση με τις σχετικές συσκευές, αυτή έχει οθόνη 7 ιντσών. Αυτό κάνει την εργασία μαζί του πολύ πιο εύκολη. Με βάση τις κριτικές, πρέπει να ειπωθεί ότι είναι το μοντέλο που περιγράφεται που χρησιμοποιείται ως παράδειγμα όταν πρόκειται για επαγγελματίες ελεγκτές. Κοιτάζοντας το και λαμβάνοντας υπόψη τη λειτουργικότητα, το ερώτημα πώς να επιλέξετε μια τέτοια συσκευή εξαφανίζεται αμέσως. Το λογισμικό λειτουργεί αρκετά γρήγορα και αποτελεσματικά, δεν προκύπτουν προβλήματα και οι αποτυχίες είναι εξαιρετικά σπάνιες.

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

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

Η σύγχρονη αγορά προσφέρει έναν τεράστιο αριθμό διαφορετικών ελεγκτών MIDI για ηλεκτρονικές εγκαταστάσεις, που διαφέρουν σε διάφορα κριτήρια, όπως τιμή, ποιότητα, τεχνικά χαρακτηριστικά κ.λπ. Υπάρχουν επίσης αρκετές ολοκληρωμένες συσκευές χρήστη που υλοποιούνται ως εμπορικά έργα (eDrum, megaDrum). Αλλά, παρ 'όλα αυτά, η επιθυμία να δημιουργήσετε μια τέτοια συσκευή με τα χέρια σας εξακολουθεί να ζει στο μυαλό των σύγχρονων Kulibins.

Έτσι, πριν από μερικά χρόνια, λίγο καθυστερημένα, με ενδιαφέρει να δημιουργήσω μια τέτοια συσκευή, καθώς συμμετείχα σε ένα βαρύ μουσικό γκρουπ. Παίζαμε hard rock, ή μάλλον κάτι σαν brutaldeath, goregrind, grindcore. Έπαιζα ηλεκτρική κιθάρα. Λίγο νωρίτερα, αγοράσαμε ένα σετ τυμπάνων Sonor και κάναμε θόρυβο τα βράδια στο γκαράζ. Αργότερα μας ρώτησε το γκαράζ και προέκυψε η ερώτηση για τις εγκαταστάσεις. Αφού δεν βρήκαμε τίποτα αξιόλογο, αποφασίσαμε να κάνουμε πρόβες στο σπίτι, κάτι που οδήγησε αμέσως σε σύγκρουση με τους γείτονες. Εδώ προέκυψε το ζήτημα των ηλεκτρονικών ντραμς.

Παράλληλα με το παίξιμο ζωντανών οργάνων, έγραφα ηλεκτρονική μουσική και χρησιμοποιώντας ειδικά όργανα VST και πρόσθετα, για να δημιουργήσω εξαρτήματα τυμπάνων, προτιμούσα τα Addictive drums και ezDrums, τα οποία έχουν τη δυνατότητα να λειτουργούν με διεπαφή MIDI. Χωρίς καν να γκουγκλάρω αυτό το θέμα, βυθίστηκα ασταμάτητα στην ανάπτυξη του δικού μου ελεγκτή MIDI σε έναν προσιτό μικροελεγκτή ATMega32 σε πακέτο DIP, ο οποίος είχε 8 κανάλια ADC. Δεν ήθελα να περιφράξω το κύκλωμα και αποφάσισα να περιοριστώ σε 8 εισόδους. Επειδή το ATMega32 δεν διαθέτει USB υλικού, χρησιμοποίησα μια τυπική σύνδεση με τον υπολογιστή μέσω εικονικού usb. Αφού ασχολήθηκα με τον προγραμματισμό για αρκετές μέρες, κατάφερα να ξεκινήσω τη συσκευή. Φανταστείτε την έκπληξή μου όταν στο Διαδίκτυο ανακάλυψα μια έτοιμη συσκευή με διάγραμμα κυκλώματος και υλικολογισμικό (MegaDrum). Αλλά όλα όσα δεν γίνονται είναι προς το καλύτερο.


Πλήρες USB

Στο επάγγελμα είμαι προγραμματιστής, αλλά στο επάγγελμα είμαι προγραμματιστής ηλεκτρονικών, υποψήφιος τεχνικών επιστημών και όπως έλεγε ο πρώην προϊστάμενός μου, είμαι Ελβετός, θεριστής και τρομπετίστας. Όπως συμβαίνει συχνά, προσηλώθηκα στα AVR, όχι επειδή είχα συναισθήματα για αυτά, αλλά επειδή ήμουν απόλυτα ικανοποιημένος με την απόδοσή τους με τα τεχνικά χαρακτηριστικά τους. Ήρθε όμως η στιγμή που δεν έφταναν πια. Και στη συνέχεια ήρθε να το αντικαταστήσει το stm32, μεταξύ άλλων, έχοντας μια ολοκληρωμένη διεπαφή usb στο σκάφος. Εδώ ήρθε η ιδέα να φτιάξουμε έναν ολοκληρωμένο ελεγκτή MIDI. Επιπλέον, είχα ήδη εμπειρία εργασίας με διεπαφή MIDI.

Από πού να ξεκινήσω; Δεν είχαμε stm32 σε πακέτα DIP (αν υπάρχουν καν στη φύση), οπότε η ιδέα της συγκόλλησης στην πλακέτα κυκλώματος εξαφανίστηκε αμέσως. Τότε άρχισαν να εμφανίζονται φθηνές πλακέτες ανάπτυξης βασισμένες σε μικροελεγκτές stm32, όπως το DISCOVERY. Και τώρα είμαι ο ευτυχής κάτοχος της πλακέτας εντοπισμού σφαλμάτων STM32F407DISCOVERY, η οποία περιλαμβάνει επίσης έναν προγραμματιστή ST-Link. Ο επεξεργαστής STM32F407 έχει 16 κανάλια ADC, αν και 4 κανάλια καταλαμβάνονται από περιφερειακά, με τα οποία η πλακέτα εντοπισμού σφαλμάτων είναι απλά γεμάτη. Αλλά για τους σκοπούς μου, 12 κανάλια ήταν αρκετά.


Έχοντας αφιερώσει λίγο χρόνο μελετώντας το περιβάλλον προγραμματισμού Keil, την αρχιτεκτονική του μικροεπεξεργαστή STM32F407, καθώς και τυπικές περιφερειακές βιβλιοθήκες για εργασία με USB, δημιούργησα ένα πρόγραμμα για τη μέτρηση όλων των καναλιών ADC χρησιμοποιώντας ένα κανάλι άμεσης πρόσβασης μνήμης, καθώς και ένα σύνθετο USB συσκευή που περιλαμβάνει MIDI Audio Device και HID για να αλλάξετε τις ρυθμίσεις της συσκευής.

Ως αισθητήρες για τα τύμπανα, χρησιμοποίησα μια πιεζοκαμπάνα ZP-1, η οποία μπορούσε να αγοραστεί σε ένα κατάστημα σε φθηνή τιμή.


Πήρα το διάγραμμα καλωδίωσης από το MegaDrum.


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


Η συσκευή δοκιμάστηκε τόσο σε Windows όσο και σε Linux χρησιμοποιώντας τον ιχνηλάτη Renoise. Δεν βρέθηκαν ιδιαίτερα προβλήματα στην εργασία.
Αλλά αποφάσισα να μην σταματήσω σε αυτό το αποτέλεσμα. Ο STM32F407 είναι ένας αρκετά εξελιγμένος επεξεργαστής, επομένως είναι σχετικά ακριβός. Ήταν φθηνότερο να φτιάξεις μια συσκευή χρησιμοποιώντας STM32F103. Το eBay ήρθε στη διάσωση. Αγόρασα μια πλακέτα ανάπτυξης με STM32F103RBT6 επί του σκάφους.


Είναι αλήθεια ότι δεν έχει ενσωματωμένο προγραμματιστή. Ήμουν τυχερός γιατί είχα ακόμα προγραμματιστή ST-Link από την προηγούμενη δουλειά μου.


Έπρεπε να ξαναγράψω εντελώς το firmware, αφού οι αρχές λειτουργίας των επεξεργαστών 407 και 103, αν και όχι ριζικά, είναι διαφορετικές.
Στη συνέχεια, βρήκα μια πλακέτα εντοπισμού σφαλμάτων στο Διαδίκτυο, η οποία στην πραγματικότητα κόστιζε μια δεκάρα, και αποφάσισα ότι με αυτόν τον τρόπο θα μπορούσα να μειώσω το κόστος των εξαρτημάτων στο ελάχιστο.

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

Ωστόσο, όλες οι νέες μητρικές πλακέτες διαθέτουν ενσωματωμένο ελεγκτή ήχου και οι κάρτες ήχου συχνά δεν διαθέτουν τη δυνατότητα σύνδεσης συσκευών MIDI.
Το μόνο που μένει είναι είτε να αγοράσετε ένα σύγχρονο πληκτρολόγιο MIDI, κονσόλα DJ κ.λπ. με έξοδο USB για σύνδεση σε υπολογιστή, ή αγορά/συγκόλληση προσαρμογέα ή αγορά ειδικής κάρτας ήχου με δυνατότητα σύνδεσης συσκευών MIDI. Η αγορά, φυσικά, δεν είναι πρόβλημα, αλλά δεν είναι αυτός ο λόγος που ήρθαμε σε αυτόν τον ιστότοπο, σωστά;

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

Χρησιμοποίησα λοιπόν:
Ελεγκτής Arduino UNO
8 τεμ. κουμπιά
8 αντιστάσεις 10 kOhm
περιστροφικός κωδικοποιητής 25LB22-Q
breadboard και jumpers

Το διάγραμμα σύνδεσης έχει ως εξής:

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

Λογισμικό Arduino

Δεν θα εξετάσω τη δομή των δεδομένων MIDI, γιατί... αυτό περιγράφεται στο άρθρο:

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

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

Τα δεδομένα MIDI από τον κωδικοποιητή, από το Arduino, αποστέλλονται με την ακόλουθη γραμμή:
noteOn(0xB0, 0x01, encoder0Pos);
όπου 0xB0 είναι το μήνυμα του ελεγκτή (αλλαγή ελέγχου)
0x01 - κωδικός ελεγκτή (στην περίπτωσή μας Διαμόρφωση)
encoder0Pos - τιμή ελεγκτή (στην περίπτωσή μας 0-127).
Αλλάζοντας τους κωδικούς ελεγκτών, μπορείτε να χρησιμοποιήσετε τον τροχό κύλισης (κωδικοποιητής) για μια ποικιλία ελεγκτών.

Αξίζει επίσης να αναφερθεί το Pitch Bend. Από την προδιαγραφή MIDI προκύπτει ότι είναι απαραίτητο να στείλετε ένα μήνυμα τριών byte: 0xE0 (κωδικός Pitch Bend), MSB (high byte), LSB (low byte).

Τα δύο εξωτερικά byte αποθηκεύουν μια τιμή βήματος 14-bit που μπορεί να κυμαίνεται από 0...16383 (0x3FFF). Η μέση είναι 0x2000, οτιδήποτε πάνω από αυτήν την τιμή προκαλεί την αλλαγή του τόνου προς τα πάνω, εάν είναι χαμηλότερη, το βήμα αλλάζει προς τα κάτω.
Στον κώδικα του προγράμματος, σχολίασα τις γραμμές εάν ξαφνικά θέλετε να χρησιμοποιήσετε το Pitch Bend αντί για διαμόρφωση (μέση τιμή, αποσύνθεση σε 2 byte, κ.λπ.)

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

Εάν (buttonState_C == HIGH && note_C_send_on == false) // Πατήθηκε το πλήκτρο ( noteOn(0x90, note_C, 0x7F); note_C_send_on = true; // Note On εντολή εστάλη note_C_send_off = false; // Σημείωση Off εάν η εντολή δεν έχει σταλεί) (buttonState_C == HIGH && note_C_send_on == true) // Εάν το κλειδί είναι κρατημένο ( noteOn(0x00, note_C, 0x7F); note_C_send_on = true; note_C_send_off = false; ) αλλιώς εάν (buttonState_C_send &_OW =false) // Εάν το κλειδί απελευθερωθεί ( noteOn(0x90, note_C, 0x00); note_C_send_on = false; note_C_send_off = true; encoder0Pos = 0; // Επαναφέρετε τη θέση του τροχού στο μηδέν ....... ..... .. ... .... // Λειτουργία για την αποστολή μηνύματος MIDI στη σειριακή θύρα void noteOn(int cmd, int pitch, int velocity) ( Serial.write(cmd); Serial.write(pitch); Serial. εγγραφή (ταχύτητα)

Λάβετε υπόψη ότι εάν χρησιμοποιείται το pitch bend, τότε το encoder0Pos θα πρέπει να επιστραφεί όχι στο μηδέν, αλλά στο 0x2000 (ή είναι καλύτερα να ορίσετε τον ορισμό στην αρχή του προγράμματος).

Έτσι, το κύκλωμα συναρμολογείται, το σκίτσο φορτώνεται στον ελεγκτή, εκκινούμε το Serial Monitor, αλλάζουμε την ταχύτητα μετάδοσης σε 115200 και πατάμε τα πλήκτρα ή περιστρέφουμε τον κωδικοποιητή και κοιτάμε τις τιμές.
Εάν όλα είναι καλά, τότε προχωρήστε στο επόμενο μέρος. Θα πω αμέσως ότι για μένα αποδείχθηκε ότι ήταν το πιο προβληματικό και αν δεν είχα βρει έναν εικονικό μετατροπέα USB -> Midi, αυτό το άρθρο δεν θα υπήρχε.

Λογισμικό υπολογιστή (Windows)

Για να λαμβάνετε δεδομένα μέσω μιας εικονικής θύρας USB COM από το Arduino και να τα μεταφέρετε σε οποιοδήποτε πρόγραμμα MIDI sequencer, χρειάζεστε ένα ειδικό βοηθητικό πρόγραμμα: Serial MIDI Converter V2D (site office)

Το πρόγραμμα είναι πολλαπλών πλατφορμών, λειτούργησε σε μένα στα Windows 7 x64, αν και με κάποια προβλήματα.

Το εκκινούμε, επιλέγουμε τη θύρα USB, το baud rate (115200) και τη θύρα εισόδου MIDI και τη θύρα εξόδου MIDI.

Τώρα, όλα τα δεδομένα MIDI που έρχονται στην εικονική θύρα COM 12 USB ανακατευθύνονται στη θύρα MIDI Yoke 6 (χρησιμοποίησα το πρόγραμμα MIDI Yoke για να δημιουργήσω εικονικές θύρες MIDI). Μπορείτε να τα ανακατευθύνετε σε Microsoft GS Wavetable Synth και σε άλλες θύρες.
Το πρόγραμμα πρέπει να είναι πάντα ενεργοποιημένο. Όταν πατάτε πλήκτρα ή περιστρέφετε το κουμπί του κωδικοποιητή, η ένδειξη Serial RX στο κάτω μέρος πρέπει να αναβοσβήνει.

Για την οπτική εμφάνιση των εισερχόμενων δεδομένων MIDI από τη θύρα, βρήκα πολύ χρήσιμο το πρόγραμμα MIDI-OX (ιστότοπος γραφείου):

Σημειώστε ότι στις ρυθμίσεις MIDI Devices πρέπει να ρυθμίσετε τη θύρα εισόδου MIDI.

Τώρα, όταν πατάτε τα πλήκτρα σημειώσεων ή περιστρέφετε τον τροχό, θα βλέπετε δεδομένα MIDI στο Monitor-Output.

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

Παρακάτω μπορείτε να κατεβάσετε το σκίτσο INO, το Serial MIDI Converter V2D, το MIDI-OX και το MIDI Yoke