Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Προετοιμασία του USB Mini Host Shield για οδήγηση μιας συσκευής Midi 5V
- Βήμα 2: Συνδέστε το USB Mini Shield με το Arduino Nano σας
- Βήμα 3: Τσιπς κανείς; Προσθήκη SN76489 Με 4MHz Osc. και 595 Shift Register
- Βήμα 4: Απλώς προσθέστε κώδικα - Προσθήκη βιβλιοθηκών, μεταγλώττιση και μεταφόρτωση του κώδικα
- Βήμα 5: Συνδέστε έναν ενισχυτή και ένα ηχείο, συνδέστε το πληκτρολόγιο USB Midi και δοκιμάστε
- Βήμα 6: Ολοκληρώστε το κύκλωμα με ρυθμιστή τάσης 5V, συνδετήρα 12V, διακόπτη ενεργοποίησης/απενεργοποίησης και LED λειτουργίας
- Βήμα 7: Κλείστε σε ένα κουτί, ζωγραφίστε και απολαύστε το νέο σας Synth
Βίντεο: Ας δημιουργήσουμε ένα SN76489 USB MIDI Synth με Arduino Nano: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Θέλατε ποτέ να φτιάξετε το δικό σας συνθεσάιζερ βασισμένο σε παλιά chip-tune από τη δεκαετία του '80; Παίξτε απλές πολυφωνικές μελωδίες που ακούγονται ακριβώς όπως αυτά τα παλιά Sega Master System και Megadrive βιντεοπαιχνίδια;
Έχω, λοιπόν, παρήγγειλα μερικές μάρκες SN76489 από το ebay και μια διεπαφή midi host και του έδωσα μια ευκαιρία. Λοιπόν, δεν ήταν μια βόλτα στο πάρκο για μένα, αλλά, απόλαυσα κάθε στιγμή.
Πρώτα έμαθα πώς να διασυνδέω απευθείας το SN76489 και να κάνω λίγο θόρυβο με αυτό. Υπήρχαν κάποια μπερδεμένα στοιχεία σε αυτό, αλλά, με τη βοήθεια του The Oddbloke Geek Blog και μερικά άλλα παραδείγματα, μαζί με το έγγραφο προδιαγραφών τσιπ, μπόρεσα να αναπτύξω μια απλή βιβλιοθήκη arduino.
Στη συνέχεια, έπρεπε να μάθω πώς να διασυνδέω ένα πληκτρολόγιο midi με μια ασπίδα mini host USB. Αυτό δεν ήταν τόσο δύσκολο, καθώς υπάρχει κάποια διαθέσιμη τεκμηρίωση και υπάρχουν καλές βιβλιοθήκες με σαφή παραδείγματα.
Μόλις κατάλαβα πώς να ελέγξω το τσιπ και πώς να διασυνδέσω το πληκτρολόγιο midi USB μου, το μόνο που μου έμεινε ήταν να γράψω κάποιον κώδικα που θα τα έβγαζε όλα μαζί και θα μου επέτρεπε να χρησιμοποιήσω το πληκτρολόγιο για τον έλεγχο του τσιπ.
Στην πορεία, έμαθα ότι ήχοι με συχνότητα χαμηλότερες από αυτούς που προσπάθησα να δημιουργήσω για σημειώσεις midi 0x2f δεν ακούγονταν σωστά, οπότε αποφάσισα να το χρησιμοποιήσω για να επιτρέψω την αποστολή θορύβου στη γεννήτρια θορύβου για τυχόν σημειώσεις midi μεταξύ 0x28 και 0x2f και επιτρέπουν επίσης νότες αναπαραγωγής με ανατολίτικη αραβική πινελιά σε αυτό για οτιδήποτε χαμηλότερο από midi 0x28.
Κοιτάζοντας προς τα πίσω, ήταν πολύ διασκεδαστικό και πολύ ενδιαφέρον για κατασκευή.
Ελπίζω να σας φανεί τόσο διασκεδαστικό όσο και ενδιαφέρον όπως εγώ και ότι αν φτιάξετε ένα μόνοι σας, θα είχατε την καλοσύνη να μοιραστείτε μερικές φωτογραφίες του.
Αν σας άρεσε αυτό το έργο, ψηφίστε το παρακάτω για να κερδίσετε τον διαγωνισμό στον οποίο συμμετέχει
Προμήθειες
Έχω προσθέσει συνδέσμους σε υλικό που μπορείτε να αγοράσετε για αυτό το έργο, ωστόσο, θα μπορούσατε να βρείτε πολλά διαθέσιμα αντικείμενα που μπορείτε να αποκόψετε από παλιά ηλεκτρονικά.
Αυτοί οι σύνδεσμοι είναι σύνδεσμοι συνεργατών, οπότε, αν αγοράσετε αφού κάνετε κλικ σε αυτούς, παίρνω ένα μικρό μέρος (όχι περιουσία) και παίρνετε ένα προϊόν που είναι κατάλληλο για αυτό το έργο. Δεν υπάρχει καμία χρέωση ή επιπλέον κόστος για τη χρήση τους, ωστόσο, μπορείτε να βρείτε παρόμοια αντικείμενα που μπορούν να τα αντικαταστήσουν αρκετά εύκολα.
ebay.us/svA4z4 | 1 x πίνακας επιδόσεων
ebay.us/ZyEFNp | 1 x arduino nano
ebay.us/t1zy0v | 1 x μίνι ασπίδα USB
ebay.to/2QrHl1C | 1 x τσιπ ήχου SN76489
ebay.us/aaaj8p | 1 x μητρώο βάρδιας 595
ebay.us/DSvTHO | 1 x ταλαντωτής κρυστάλλων 4MHz
ebay.us/XQeM0Q | 1 x ρυθμιστής τάσης 5V 7805
ebay.us/6R6Fpf | 1 x ψύκτρα για τον ρυθμιστή τάσης
ebay.us/xkLbn4 | Πυκνωτές 3 x 10uF
ebay.us/pnm2BH | καλώδια
ebay.us/PMbUfY | 1 x κόκκινο LED για ισχύ
ebay.us/zokHtc | 1 x 220 ohm αντίσταση για περιορισμό της ροής ρεύματος LED
ebay.us/qjbesJ | 1 x βύσμα τροφοδοσίας για τροφοδοσία 12v
ebay.us/cS0wwv | 1 x διακόπτης ενεργοποίησης/απενεργοποίησης
ένα κατάλληλο κουτί (έχτισα το δικό μου από ένα παλιό συρτάρι που αναπαυόταν στην αποθήκη μου για χρόνια)
Βήμα 1: Προετοιμασία του USB Mini Host Shield για οδήγηση μιας συσκευής Midi 5V
Δεδομένου ότι η θύρα USB mini host λειτουργεί σε 3.3V και τα πληκτρολόγια USB midi που χρησιμοποιώ απαιτούν 5V, απαιτείται η προσαρμογή της τάσης εξόδου της ασπίδας κόβοντας τη γραμμή 3,3V που πηγαίνει στο USB out Vcc, ώστε, αργότερα να μπορούμε να τη συνδέσουμε έως 5V
Υπάρχουν πολλά σεμινάρια για το πώς να το κάνετε αυτό και αποδείχθηκε ότι ήταν αρκετά απλό:
Απλώς κόψτε τη γραμμή μεταξύ της αντίστασης 2k2 και της γραμμής Vcc (δείτε τη συνημμένη εικόνα). Χρησιμοποίησα ένα κατσαβίδι για να χαράξω αυτήν τη γραμμή και δοκίμασα αν λειτουργεί με μετρητή συνέχειας.
Βήμα 2: Συνδέστε το USB Mini Shield με το Arduino Nano σας
Ευτυχώς, υπάρχουν πολλές πληροφορίες για το πώς να το κάνετε αυτό, οπότε, κάνοντας googling για το "Arduino Nano and mini USB host shield" προσγειώθηκα σε αυτό το νήμα
Περιέγραψε πώς να συνδέσετε την ασπίδα USB mini v2.0 και αφού την ακολούθησα πήγα κατευθείαν για να δοκιμάσω μερικά παραδείγματα midi USB.
Καλωδίωση:
Arduino Host ασπίδα
10--------------5
11--------------6
12--------------7
13--------------8
2----------------2
5V -------------- 1
3.3V ------------ 9
GND ----------- 3
RST ------------ 4
Σε αυτό το νήμα, αναφέρθηκε επίσης ότι έκοψαν το καλώδιο 3.3V, ώστε το USB να μπορεί να πάρει 5V από το VBUS.
Αυτή η περιγραφή και οι συνημμένες εικόνες προέρχονται από αυτό το νήμα.
BTW, υπάρχει ένα λάθος στην εκτύπωση σε αυτόν τον πίνακα, οπότε αυτό ήταν λίγο μπερδεμένο, ωστόσο, μπορείτε να δείτε τα σχόλιά μου για αυτό (tyrkelko) και από πού το έμαθα.
Βήμα 3: Τσιπς κανείς; Προσθήκη SN76489 Με 4MHz Osc. και 595 Shift Register
Τώρα ήρθε η ώρα να προσθέσω το τσιπ που κάνει αυτόν τον εκπληκτικό ήχο.
Έχω ήδη αναπτύξει μια βιβλιοθήκη για τη διασύνδεση του arduino με αυτό το τσιπ και έπρεπε μόνο να ακολουθήσω τις οδηγίες μου.
Η βιβλιοθήκη κυκλοφορεί σε github υπό GPLv3 (η πρώτη μου έκδοση ανοιχτού κώδικα).
github.com/tyrkelko/sn76489
Η σύνδεση των 76489 και 595 ήταν όπως στη συνημμένη εικόνα που καταγράφεται από το αρχείο readme.txt της βιβλιοθήκης
Το Write Enable on Low (NotWE) του 76489 συνδέθηκε με τον ακροδέκτη 3 του nano και μπορεί να αλλάξει στον κώδικα.
#define PIN_NotWE 3
Το 595 συνδέθηκε με το nano ως εξής και μπορεί επίσης να ρυθμιστεί με την επεξεργασία των αριθμών pin:
#define PIN_SER 7
#define PIN_LATCH 6
#define PIN_CLK 5
Ο ταλαντωτής που χρησιμοποίησα ήταν ένας ταλαντωτής κρυστάλλων 4MHz με 4 πόδια.
Διαμορφώθηκε στον κώδικα ως εξής και μπορείτε να προσαρμόσετε την τιμή του σε οποιαδήποτε συχνότητα ταλαντωτή μεταξύ 500kHz και 4MHz:
#define FREQUENCY 4000000.0
Η σύνδεση του ταλαντωτή που χρησιμοποίησα ήταν η εξής:
ακίδα 1 - δεν είναι συνδεδεμένο
καρφίτσα 7 - γείωση
ακίδα 8 - συνδεδεμένη με 76489 ακίδα 14 - ρολόι osc
Βήμα 4: Απλώς προσθέστε κώδικα - Προσθήκη βιβλιοθηκών, μεταγλώττιση και μεταφόρτωση του κώδικα
Οι βιβλιοθήκες που χρησιμοποιούνται σε αυτό το έργο πρέπει να προστεθούν στο Arduino IDE ως εξής:
Ανοίξτε το Arduino IDE
Κατεβάστε τις ακόλουθες βιβλιοθήκες στο φάκελο βιβλιοθήκης του IDE σας (ελπίζω να τις δείτε στο μενού "Διαχείριση Βιβλιοθηκών …" στο μενού IDE "Εργαλεία" σύντομα):
github.com/felis/USB_Host_Shield_2.0
github.com/tyrkelko/sn76489
Χρησιμοποιήστε τον κώδικα από το ακόλουθο έργο github:
github.com/tyrkelko/usb_midi_tone
Κατεβάστε το usb_midi_tone.ino, μεταγλωττίστε και ανεβάστε στο Arduino nano σας.
Βήμα 5: Συνδέστε έναν ενισχυτή και ένα ηχείο, συνδέστε το πληκτρολόγιο USB Midi και δοκιμάστε
Τώρα ήρθε η ώρα να δοκιμάσουμε ότι όλα λειτουργούν.
Για να το κάνουμε αυτό χρειαζόμαστε:
1. Ενισχυτής και ηχείο
2. Ένα πληκτρολόγιο midi USB
Συνδέστε τον SN76489 pin 7, έξοδο ήχου, στον ήχο του ενισχυτή.
Ενεργοποιήστε τον ενισχυτή και, στη συνέχεια, ενεργοποιήστε το arduino nano. Θα πρέπει τώρα να ακούσετε τον ήχο δοκιμής ενεργοποίησης για ένα κλάσμα του δευτερολέπτου.
Συνδέστε το πληκτρολόγιο midi USB και δοκιμάστε.
Εάν όλα λειτουργούν σωστά, θα πρέπει να μπορείτε να αναπαράγετε 3 τόνους ταυτόχρονα και επίσης να αναπαράγετε 8 τύπους θορύβου και ακόμη και έναν τέταρτο τόνου 24 EDO-Scale.
Εάν δεν λειτουργεί, περάστε τα βήματα για να δείτε τι μπορεί να έχει πάει στραβά.
Εάν πιστεύετε ότι αυτό προκύπτει από ασαφείς οδηγίες, στείλτε μου μια σημείωση, ώστε να ενημερώσω τις οδηγίες για να το διορθώσω.
Βήμα 6: Ολοκληρώστε το κύκλωμα με ρυθμιστή τάσης 5V, συνδετήρα 12V, διακόπτη ενεργοποίησης/απενεργοποίησης και LED λειτουργίας
Σε αυτό το βήμα θα πρέπει να είστε σε θέση να ολοκληρώσετε το κύκλωμα αφού το δοκιμάσετε για να λειτουργήσει σωστά.
1. Προσθέστε έναν ρυθμιστή ισχύος με LM7805 και δύο πυκνωτές 10uF και 0.1uF. Υπάρχουν πολλά σεμινάρια σχετικά με αυτό, μπορείτε να χρησιμοποιήσετε τα παρακάτω εκπαιδευτικά για να το επιτύχετε-https://www.instructables.com/id/7805-Regulator-5V…
2. Προσθέστε μια υποδοχή τροφοδοσίας 12V με το Vcc να περνά μέσω διακόπτη on/off
3. Προσθέστε μια λυχνία LED με περιοριστική αντίσταση ρεύματος για να υποδείξετε πότε είναι ενεργοποιημένη.
Βήμα 7: Κλείστε σε ένα κουτί, ζωγραφίστε και απολαύστε το νέο σας Synth
Μόλις δοκιμαστεί το κύκλωμα και λειτουργεί σύμφωνα με τις προτιμήσεις σας, δεν μένουν πολλά να κάνετε εκτός από την κατασκευή ενός ωραίου περιβόλου, βάψτε το με φοβερά χρώματα και παίξτε λίγη μουσική.
Ελπίζω να σας άρεσε να διαβάζετε αυτό το διδακτικό και ότι σας ενέπνευσε να φτιάξετε το δικό σας synth ή να προχωρήσετε σε ένα άλλο έργο στο οποίο εργάζεστε.
Παρακαλούμε σχολιάστε παρακάτω με τυχόν ερωτήσεις και αν έχετε δημιουργήσει κάτι παρόμοιο με βάση αυτό το σεμινάριο, θα ήταν υπέροχο αν μοιραζόσασταν αυτό που φτιάξατε στο "Έφτιαξα αυτό!" περιοχή ή στην ενότητα σχολίων.
Συνιστάται:
Δημιουργήστε ένα ερασιτεχνικό ραδιόφωνο APRS RX Only IGate χρησιμοποιώντας ένα Raspberry Pi και ένα RTL-SDR Dongle σε λιγότερο από μισή ώρα: 5 βήματα
Δημιουργήστε ένα ερασιτεχνικό ραδιόφωνο APRS RX Only IGate χρησιμοποιώντας ένα Raspberry Pi και ένα RTL-SDR Dongle σε λιγότερο από μισή ώρα: Λάβετε υπόψη ότι αυτό είναι τώρα αρκετά παλιό, οπότε ορισμένα μέρη είναι λανθασμένα και παλιά. Τα αρχεία που πρέπει να επεξεργαστείτε έχουν αλλάξει. Έχω ενημερώσει τον σύνδεσμο για να σας δώσω την πιο πρόσφατη έκδοση της εικόνας (χρησιμοποιήστε το 7-zip για να την αποσυμπιέσετε) αλλά για πλήρη εγκατάσταση
Πώς να φτιάξετε ένα CubeSat με ένα Arduino με ένα Arducam: 9 βήματα
Πώς να φτιάξετε ένα CubeSat με ένα Arduino με ένα Arducam: Στην πρώτη εικόνα, έχουμε ένα Arduino και ονομάζεται " Arduino Uno. &Quot; Στη δεύτερη εικόνα, έχουμε ένα Arducam, και ονομάζεται " Arducam OV2640 Μίνι 2MP. &Quot; Μαζί με τη δεύτερη εικόνα, υπάρχουν τα υλικά που θα χρειαστείτε για
Μετατρέψτε ένα παλιό λιμάνι παιχνιδιού Joystick σε ένα usb Flight Stick με Arduino: 5 βήματα
Μετατρέψτε ένα παλιό Joystick Θύρας Παιχνιδιού σε ένα Usb Flight Stick Με Arduino: Γρήγορη αποποίηση ευθυνών: Το θέμα αυτού του έργου δεν είναι να κάνετε μια φτηνή μετατροπή του χειριστηρίου θύρας παιχνιδιού. Το θέμα αυτού του έργου είναι να φτιάξει ένα ευέλικτο και προσαρμόσιμο χειριστήριο το οποίο θα μπορούσε εύκολα να τροποποιηθεί. ο λόγος που επέλεξα το Arduino ήταν
MIDI 5V LED Strip Light Controller for the Spielatron or Other MIDI Synth: 7 βήματα (με εικόνες)
MIDI 5V LED Strip Light Controller for the Spielatron or Other MIDI Synth: Αυτός ο ελεγκτής αναβοσβήνει με τρία χρώματα φώτα LED για 50mS ανά νότα. Μπλε για G5 έως D#6, κόκκινο για E6 έως B6 και πράσινο για C7 έως G7. Ο ελεγκτής είναι μια συσκευή ALSA MIDI, ώστε το λογισμικό MIDI να μπορεί να εξάγεται στις λυχνίες LED ταυτόχρονα με μια συνθετική συσκευή MIDI
Μετατρέψτε ένα Trackpad από ένα σπασμένο φορητό υπολογιστή σε ένα ποντίκι PS/2: 6 βήματα
Μετατρέψτε ένα Trackpad από ένα σπασμένο φορητό υπολογιστή σε ένα ποντίκι PS/2: Ένας φίλος μου έδωσε ένα σπασμένο φορητό υπολογιστή HP Pavilion. Με λίγη δουλειά, μπορείτε να αφαιρέσετε το trackpad και να συνδεθείτε σε σειριακή θύρα PS/2 ή 9-pin. Συνδεθείτε στον υπολογιστή σας και χρησιμοποιήστε το ως απλό ποντίκι, ή ακόμα και ως καλώδιο σε Arduino για μια μοναδική διεπαφή για το