Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Εισαγωγή:
Είμαι νέος στη συνεργασία με το Arduino, αλλά ελπίζω να διευρύνω τις γνώσεις μου διδάσκοντας τους άλλους και λαμβάνοντας σχόλια. Αυτό είναι ένα πολύ βασικό χειριστήριο MIDI με 4 κουμπιά και ποτενσιόμετρο. Το περίγραμμα αυτού του έργου μοιάζει με αυτό:
1. Κατασκευάστε το breadboard
2. Ανεβάστε το Sketch στο Arduino
3. Κατανόηση του Hairless MIDI και του εσωτερικού βρόχου MIDI (loopbe1)
4. δρομολογήστε το MIDI σας σε ένα DAW (Ableton)
Προμήθειες
1 x Arduino Mega 2560
1 x σανίδα ψωμιού
1 x Καλώδιο USB
1 x Ποτενσιόμετρο
4 x κουμπιά τακτικής
4 x αντιστάσεις 120Ohm
14 x καλώδια jumper για breadboard
Βήμα 1: Δημιουργία του Breadboard
Συνδέστε το breadboard σας έτσι ώστε όλα τα στοιχεία να ταιριάζουν με την εικόνα 1 παραπάνω. Κάθε κουμπί πρέπει να μοιάζει με την εικόνα 2. Οι είσοδοι του κουμπιού είναι 2, 3, 4 και 5 στο Arduino και η μεσαία ακίδα του ποτενσιόμετρου συνδέεται με την είσοδο ANALOG A0.
Βήμα 2: Μεταφόρτωση του σκίτσου
Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στο Arduino IDE. Επιλέξτε τον σωστό πίνακα στην ενότητα "εργαλεία" και ανεβάστε το σκίτσο στο Arduino.
byte noteON = 144; // note on commandbyte note; // αποθήκευση για την τρέχουσα αναπαραγωγή της σημείωσης int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroage για τρέχουσα κατάσταση κουμπιού boolean lastState = LOW; // αποθήκευση για την τελευταία κατάσταση κουμπιού void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // αυτή τη φορά θα ορίσουμε τον πείρο ως INPUT Serial.begin (9600); // αρχικοποίηση σειριακής σύνδεσης} void loop () {int PotVal = analogRead (potPin); byte velocity = map (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); εάν (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // ενεργοποιήστε τη σημείωση 60 με 127 ταχύτητα καθυστέρησης (200) LOW && lastState == Υ HIGHΗΛΗ) {MIDImessage (noteON, 60, 0); // απενεργοποιήστε τη σημείωση 60 καθυστέρηση (2), // ακατέργαστη μορφή του κουμπιού που καταργεί} lastState = currentState; currentState = digitalRead (buttonPin2); εάν (currentState == HIGH && lastState == LOW) {// εάν το κουμπί μόλις έχει πατηθεί MIDImessage (σημείωσηON, 61, ταχύτητα); // ενεργοποιήστε τη σημείωση 60 με 127 ταχύτητα καθυστέρησης (200); // ακατέργαστη μορφή κουμπιού debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // απενεργοποιήστε τη σημείωση 60 καθυστέρηση (2), // ακατέργαστη μορφή πλήκτρων κατάργησης κουμπιού} lastState = currentState; currentState = digitalRead (buttonPin3); εάν (currentState == HIGH && lastState == LOW) {// εάν το κουμπί έχει μόλις πατηθεί MIDImessage (σημείωσηON, 62, ταχύτητα); // ενεργοποιήστε τη σημείωση 60 με 127 ταχύτητα καθυστέρησης (200); // ακατέργαστη μορφή κουμπιού debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // απενεργοποιήστε τη σημείωση 60 καθυστέρηση (2), // ακατέργαστη μορφή πλήκτρων κατάργησης κουμπιού} lastState = currentState; currentState = digitalRead (buttonPin4); εάν (currentState == HIGH && lastState == LOW) {// εάν το κουμπί έχει μόλις πατηθεί MIDImessage (noteON, 63, ταχύτητα); // ενεργοποιήστε τη σημείωση 60 με 127 ταχύτητα καθυστέρησης (200); // ακατέργαστη μορφή κουμπιού debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // απενεργοποιήστε τη σημείωση 60 καθυστέρηση (2), // ακατέργαστη μορφή πλήκτρων κατάργησης κουμπιού} lastState = currentState; } // αποστολή μηνύματος MIDI κενό MIDImessage (εντολή byte, δεδομένα byte1, δεδομένα byte2) {Serial.write (εντολή); Serial.write (data1); Serial.write (data2); }
Είμαι ακόμα πολύ νέος στο να γράφω κώδικα γενικά….. όσοι έχουν λίγη περισσότερη εμπειρία πιθανότατα θα μπορούσαν να το καθαρίσουν…
Βήμα 3: Κατανόηση του χωρίς μαλλιά MIDI και του εσωτερικού βρόχου MIDI
Το Arduino πρέπει να τρέξει μέσω μιας σειριακής γέφυρας όπως το Hairless MIDI και στη συνέχεια μέσω ενός εσωτερικού βρόχου MIDI όπως loopbe1 (ή διαύλου IAC για Mac).
Σημείωση: δεν μπορείτε να ανεβάσετε ένα σκίτσο στο Arduino ενώ είναι συνδεδεμένο στη σειριακή γέφυρα MIDI χωρίς μαλλιά.
Επιλέξτε το Arduino σας στη σειριακή θύρα MIDI χωρίς μαλλιά και το loopbe1 ή το IAC Bus στο MIDI out.
Σημείωση: βεβαιωθείτε ότι η σίγαση δεν είναι ενεργοποιημένη όταν χρησιμοποιείτε το loopbe1.
Βήμα 4: Σύνδεση στο DAW σας
Εάν λαμβάνετε σήμα στην εφαρμογή MIDI χωρίς μαλλιά όταν πατάτε ένα κουμπί στο breadboard (τα φώτα θα αναβοσβήνουν) θα πρέπει να μπορείτε να στέλνετε δεδομένα MIDI σε ένα DAW. Χρησιμοποίησα το Ableton αλλά οποιοδήποτε DAW πρέπει να λειτουργεί. Βεβαιωθείτε ότι ο εσωτερικός σας βρόχος MIDI (loopbe1) είναι ενεργοποιημένος στις προτιμήσεις DAW (στο Ableton θέλετε να είναι ενεργοποιημένο το "track"). Στη συνέχεια, επιλέξτε μία από τις εισόδους του κομματιού MIDI στον βρόχο MIDI (loopbe1) όπως φαίνεται στην παραπάνω εικόνα.
Βήμα 5: Παίξτε
Τα κουμπιά θα λειτουργούν τώρα όπως οποιοδήποτε άλλο χειριστήριο MIDI! Το ποτενσιόμετρο θα αλλάξει την ταχύτητα των σημειώσεων που αποστέλλονται στο DAW. Το (πολύ σκοτεινό…) βίντεο παραπάνω δείχνει έναν ήχο πιάνου σε δράση!
Συνιστάται:
Ελεγκτής και ελεγκτής Arduino DMX 512: 19 βήματα
Arduino DMX 512 Tester and Controller: Actualizaciones, ficheros, códigos … Αγγλική έκδοσηFacebookHerramienta para pruebas y control de iluminación de prespectasculos a travelz del πρωτόκολλο DMX-512, ιδανικό για κάθε είδους ροπές και εγκαταστάσεις φωτισμού. Este p
Βασικός υπολογιστής Arduino με έξοδο VGA: 5 βήματα (με εικόνες)
Arduino Basic PC With VGA Output: Στο προηγούμενο Instructable έχω δείξει πώς να φτιάξω έναν ρετρό υπολογιστή 8-bit που λειτουργεί BASIC, μέσω δύο Arduino και με σήμα εξόδου σε B & W για οθόνη τηλεόρασης. Τώρα θα δείξω πώς να φτιάξω τον ίδιο υπολογιστή, αλλά με το σήμα εξόδου σε
Βασικός ελεγκτής τρανζίστορ: 7 βήματα
Basic Transistor Tester: Σε αυτό το διδακτικό θα σας δείξω πώς να δημιουργήσετε ένα Simple Transistor Tester
Βασικός υπολογιστής Arduino με έξοδο τηλεόρασης: 5 βήματα (με εικόνες)
Arduino Basic PC With Output TV: Σε αυτό το Instructables θα δείξω πώς να φτιάξετε έναν ρετρό υπολογιστή 8-bit με BASIC, μέσω δύο Arduino και λίγων άλλων εξαρτημάτων. Μπορείτε να εισαγάγετε τις μεταβλητές και το πρόγραμμα BASIC με ένα πληκτρολόγιο PS2 και η έξοδος εμφανίζεται σε μια οθόνη με
Βασικός ανιχνευτής σεισμών Arduino: 7 βήματα (με εικόνες)
Βασικός ανιχνευτής σεισμών Arduino: Το Tiny9 επέστρεψε και σήμερα θα φτιάξουμε έναν απλό ανιχνευτή σεισμού Arduino. Παρακαλούμε επισκεφθείτε την οδηγία μου για διασύνδεση με το LIS2HH12 του Tiny9 στον παρακάτω σύνδεσμο για να ρυθμίσετε τη συσκευή, οπότε το μόνο που έχετε να κάνετε είναι να προσθέσετε 3 αντιστάσεις και 3 Light Emittin