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

Micro Midi Synthesizer: 5 βήματα (με εικόνες)
Micro Midi Synthesizer: 5 βήματα (με εικόνες)

Βίντεο: Micro Midi Synthesizer: 5 βήματα (με εικόνες)

Βίντεο: Micro Midi Synthesizer: 5 βήματα (με εικόνες)
Βίντεο: Tutorials | MicroFreak - Episode 6: Vocoder Mode 2024, Νοέμβριος
Anonim
Συνθετικό Micro Midi
Συνθετικό Micro Midi
Συνθετικό Micro Midi
Συνθετικό Micro Midi
Συνθετικό Micro Midi
Συνθετικό Micro Midi

Αυτό το εκπαιδευτικό δείχνει τη χρήση του τσιπ VLSI VS1053b Audio και Midi DSP στη λειτουργία Midi σε πραγματικό χρόνο. Σε αυτήν τη λειτουργία λειτουργεί ως πολυφωνικός συνθέτης GM (General Midi) 64 φωνής Midi. Ένα αυτόνομο μικρό Arduino Uno ελέγχει μια οθόνη OLED, τρία κουμπιά (Επιλογή λειτουργίας και επάνω ή κάτω, και περνά τη ροή δεδομένων Midi στον ηχητικό DSP. Ο πίνακας μουσικής που επιλέχθηκε ήταν ο πίνακας ξεμπλοκαρίσματος κωδικοποιητή Adafruit VS1053, αλλά ένας πίνακας Sparkfun breakout μουσικής Οι βιβλιοθήκες Adafruit VS1053b χρησιμοποιήθηκαν αντί της πολύ μεγαλύτερης Βιβλιοθήκης SFEMP3 (προτείνεται από τον Sparkfun, παρόλο που έχουν και τις δικές τους βιβλιοθήκες), επειδή βρήκα ευκολότερο να κατανοήσω τον κώδικα Adafruit.

Ο περισσότερος κώδικας που χρησιμοποιείται για τον έλεγχο του ήχου/midi DSP αναπτύχθηκε χρησιμοποιώντας ένα Arduino Uno συνδεδεμένο με την πλακέτα ήχου/midi breakout μέσω ενός breadboard. Αφού διαπιστώθηκε ότι οι λειτουργίες λειτουργούσαν ικανοποιητικά, το Uno χρησιμοποιήθηκε ως προγραμματιστής για ένα αυτόνομο ATmega 328 το οποίο στη συνέχεια τοποθετήθηκε σε ένα μικρό Veroboard μεγέθους 30x20 μαζί με το οπτικό-απομονωτικό IC 6N139 που απαιτείται στην υποδοχή εισόδου Midi (ένα DIN 5 ακίδων) Το Επίσης συνδεδεμένη ήταν μια μικρή ασπίδα OLED (64x48), τρία κουμπιά, ένα LED Midi δραστηριότητας και ένας σύνδεσμος κάννης +5 volt για τροφοδοσία και προστέθηκε η υποδοχή στερεοφωνικής εξόδου ήχου. Οι απαιτήσεις ισχύος είναι πολύ μικρές - περίπου 20 mA στα 5 volt.

Βήμα 1: Λίστα μερών

ATmega328 Micro 28 pin DIP + 28 pin DIP socket6N138 or 6N139 optoisolator + 4 pin DIP socketWemos 64x48 I2C OLED Display or similarAdafruit VS1053b Codec breakout board3 miniature pushbuttons5 pin DIN Midi socket PCrel mount πρίζα για σύνδεση σε ενισχυτή ή ακουστικά Αντίσταση: 7 x 10k, 2 x 470 ohm, 2 x 220 ohm Πυκνωτές: 0.1uF 50v πλαστικοί, 10uf 25v ηλεκτρολυτικοί, κεραμικοί 2 x 27 pF Μικρά κομμάτια Veroboard (30 λωρίδες με 20 στήλες και 4 λωρίδες) με 16 στήλες), πλαστικό περίβλημα ABS περίπου 85x55x25mm, καλωδίωση και μερικές βίδες παξιμάδια και ροδέλες.

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

Κατασκευή
Κατασκευή
Κατασκευή
Κατασκευή
Κατασκευή
Κατασκευή

Το καπάκι του περιβλήματος φιλοξενεί την οθόνη OLED, τα τρία κουμπιά που είναι τοποθετημένα σε ένα άλλο μικρό κομμάτι του Veroboard και το βύσμα τροφοδοσίας του βαρελιού. Η κύρια πλακέτα κυκλώματος Vero έχει δύο οπές για να στερεώσει την πλακέτα Music breakout πάνω από το ATmega328. Για λεπτομέρειες σύνδεσης, ανατρέξτε στο διάγραμμα του πίνακα λωρίδων Fritzing.

Το προγραμματισμένο ATmega328 (ανατρέξτε στην επόμενη ενότητα για τον κωδικό) στη συνέχεια εισάγεται στην υποδοχή του, ακολουθούμενο από το 6N139 και όλα συνδέονται.

Το LED χρησιμοποιείται ως δείκτης δραστηριότητας Midi και τοποθετήθηκε στην μπροστινή πλευρά του περιβλήματος. Συνδέεται στην έξοδο D2 του ATmega328 μέσω αντίστασης 470 ohm.

Η οθόνη OLED χρησιμοποιεί έξοδο 3,3 volt από την πλακέτα Adafruit για ισχύ - απαιτεί λιγότερα από 20 mA.

Δοκιμάστε να αλλάξετε τις δύο συνδέσεις Midi Din εάν δεν ακούτε ήχο όταν χρησιμοποιείτε για πρώτη φορά το synth.

Βήμα 3: Λογισμικό

Λεπτομέρειες για το σκίτσο που πρέπει να ανεβάσετε στο ATmega328 δίνονται στο MidA.ino. Υπάρχουν επτά διαθέσιμες λειτουργίες:

Επιλογή P: Αλλαγή προγράμματος - αλλάξτε το GM Midi Instrument από 1 σε 128 (χρησιμοποίησα 0 σε 127) όπως ήχο πιάνου ή Synth. Επιλογή Β: Αλλάξτε την τράπεζα οργάνων μεταξύ Melodic (Bank 0) και Percussion (Bank 1). Επιλογή V: Ρυθμίστε την ένταση από το 1 στο 10. Επιλογή Γ: Αλλάξτε το κανάλι Midi στο οποίο θα ανταποκριθεί το Synth. Οι επιλογές είναι κανάλι 0, κανάλι 1, κανάλι 9 (κρουστά), κανάλι 0 και 9 και κανάλι 1 και 9. Επιλογή R: Ενεργοποιήστε ή απενεργοποιήστε το εφέ Reverb. Επιλογή S: Αποθηκεύστε τις τρέχουσες παραμέτρους στη μνήμη Eeprom (επάνω) ή Διαβάστε το (Κάτω) πίσω από τη μνήμη Eeprom. Αυτό συμβαίνει επειδή οι ρυθμίσεις κατά τα άλλα δεν αποθηκεύονται κατά την απενεργοποίηση. Επιλογή X: Στείλτε ένα μήνυμα απενεργοποίησης όλων των σημειώσεων (Midi Reset).

Μια όγδοη επιλογή δεν έχει ακόμη εφαρμοστεί - αυτό θα παρακάμψει το ATmega ως φίλτρο Midi και θα συνδέσει την έξοδο του οπτικοαπομονωτή απευθείας στην ακίδα Rx της πλακέτας DSP.

Σημειώστε ότι το VS1053b εκκινεί σε λειτουργία Midi σε πραγματικό χρόνο φορτώνοντας μια συμπιεσμένη ενημερωμένη έκδοση κώδικα 1039 byte κατά την εκκίνηση - αυτό αυξάνει επίσης το μέγεθος του buffer Midi και φιλτράρει τα αποκλειστικά byte δεδομένων Midi του συστήματος. Λεπτομέρειες για αυτό το έμπλαστρο μπορείτε να βρείτε στον ιστότοπο VLSI.

Μια ελαφρώς τροποποιημένη έκδοση της βιβλιοθήκης Adafruit Graphics είχε χρησιμοποιηθεί για να καλύψει την ανάλυση 64x48 pixel της οθόνης OLED - ανατρέξτε στους συνδέσμους που δίνονται στο τέλος για τον κ. Mcauser. Στον κώδικα σκίτσου παρέχεται μια λίστα με τις απαιτούμενες βιβλιοθήκες.

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

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

Βήμα 4: Σύνδεσμοι

VLSI:

Adafruit:

Github VS1053b:

Github Graphics:

Oled:

Sparkfun:

Βήμα 5: Χρήση του πίνακα Sparkfun With the Adafruit Libraries

Χρήση του πίνακα Sparkfun With the Adafruit Libraries
Χρήση του πίνακα Sparkfun With the Adafruit Libraries

Ο πίνακας στην εικόνα εξηγεί τον τρόπο σύνδεσης είτε των Adafruit είτε των Sparkfun Music Boards για να χρησιμοποιήσετε μια άλλη βιβλιοθήκη.

Συνιστάται: