Cuprins:

Să construim un SN76489 USB MIDI Synth cu Arduino Nano: 7 pași
Să construim un SN76489 USB MIDI Synth cu Arduino Nano: 7 pași

Video: Să construim un SN76489 USB MIDI Synth cu Arduino Nano: 7 pași

Video: Să construim un SN76489 USB MIDI Synth cu Arduino Nano: 7 pași
Video: ZFM - Arduino based FM synth using the Mozzi library 2024, Noiembrie
Anonim
Image
Image
Să construim un SN76489 USB MIDI Synth cu Arduino Nano
Să construim un SN76489 USB MIDI Synth cu Arduino Nano
Să construim un SN76489 USB MIDI Synth cu Arduino Nano
Să construim un SN76489 USB MIDI Synth cu Arduino Nano

Ați dorit vreodată să vă construiți propriul dvs. sintetizator bazat pe melodii vechi din anii 80? Redați melodii polifonice simple care sună exact ca vechile jocuri video Sega Master System și Megadrive?

Am, așadar, am comandat câteva cipuri SN76489 de pe eBay și o interfață gazdă midi și i-am dat o lovitură. Ei bine, nu a fost o plimbare în parc pentru mine, dar, m-am bucurat de fiecare moment.

Mai întâi am învățat cum să interfațez direct SN76489 și să fac ceva zgomot cu el. Au existat câteva elemente confuze la acest lucru, dar, cu ajutorul The Oddbloke Geek Blog și câteva alte exemple, împreună cu documentul cu specificațiile cipului am reușit să dezvolt o simplă bibliotecă arduino.

Apoi, a trebuit să învăț cum să interfațez o tastatură midi cu un scut USB mini host. Acest lucru nu a fost atât de greu, deoarece există o documentație disponibilă și există biblioteci bune, cu exemple clare.

Odată ce am înțeles cum să controlez cipul și cum să îmi interacționez tastatura midi USB, singurul lucru rămas de făcut a fost să scriu un cod care să împacheteze toate acestea și să îmi permită să folosesc tastatura pentru a controla cipul.

Pe parcurs, am aflat că sunetele cu frecvență mai mică decât cele pe care am încercat să le generez pentru notele midi 0x2f nu sună bine, așa că am decis să folosesc asta pentru a permite trimiterea zgomotului la generatorul de zgomot pentru orice note midi între 0x28 și 0x2f și permite, de asemenea, să redați note cu o notă arabă orientală pentru orice mai mic decât midi 0x28.

Privind înapoi, a fost foarte distractiv și foarte interesant de construit.

Sper să vi se pară la fel de distractiv și interesant ca mine și că, dacă construiți unul singur, ați fi amabil să împărtășiți câteva imagini cu el.

Dacă ți-a plăcut acest proiect, votează-l mai jos pentru a contribui la câștigarea concursului la care participă

Provizii

Am adăugat linkuri către materialele pe care le puteți achiziționa pentru acest proiect, cu toate acestea, ați putea găsi multe articole disponibile pe care le puteți răci din electronice vechi.

Aceste link-uri sunt linkuri de afiliere, deci, dacă cumpărați după ce faceți clic pe ele, voi primi o mică parte (nu avere) și veți obține un produs potrivit pentru acest proiect. Nu există taxe sau costuri suplimentare în utilizarea acestora, cu toate acestea, puteți găsi orice articole similare care le pot înlocui destul de ușor.

ebay.us/svA4z4 | 1 x placa de performanță

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x mini scut USB

ebay.to/2QrHl1C | 1 x cip de sunet SN76489

ebay.us/aaaj8p | 1 x registru de schimbare 595

ebay.us/DSvTHO | 1 x oscilator de cristal de 4 MHz

ebay.us/XQeM0Q | 1 x 5V regulator de tensiune 7805

ebay.us/6R6Fpf | 1 x radiator pentru regulatorul de tensiune

ebay.us/xkLbn4 | 3 x condensatori 10uF

ebay.us/pnm2BH | fire

ebay.us/PMbUfY | 1 x LED roșu pentru alimentare

ebay.us/zokHtc | 1 x 220 ohm rezistor pentru a limita fluxul de curent LED

ebay.us/qjbesJ | 1 x conector de alimentare pentru alimentare 12V

ebay.us/cS0wwv | 1 x comutator de pornire / oprire

o cutie potrivită (am construit-o pe a mea dintr-un sertar vechi care a stat odihnă de ani buni)

Pasul 1: Pregătirea USB Mini Host Shield pentru a conduce un dispozitiv Midi de 5V

Pregătirea ecranului USB Mini Host pentru a conduce un dispozitiv Midi de 5V
Pregătirea ecranului USB Mini Host pentru a conduce un dispozitiv Midi de 5V

Deoarece ecranul mini USB host funcționează pe 3,3V și tastaturile midi USB pe care le folosesc necesită 5V, este necesar să reglați tensiunea de ieșire a scutului prin tăierea liniei de 3,3V care trece la ieșirea USB Vcc, deci o putem conecta ulterior la 5V.

Există o mulțime de tutoriale despre cum să faceți acest lucru și sa dovedit a fi destul de simplu:

Doar tăiați linia dintre rezistența 2k2 și linia Vcc (a se vedea imaginea anexată). Am folosit un șurubelniță pentru a zgâria această linie și am testat dacă a funcționat cu un contor de continuitate.

Pasul 2: Conectați mini-scutul USB cu Arduino Nano

Conectați mini-scutul USB cu dispozitivul dvs. Arduino Nano
Conectați mini-scutul USB cu dispozitivul dvs. Arduino Nano
Conectați mini-scutul USB cu dispozitivul dvs. Arduino Nano
Conectați mini-scutul USB cu dispozitivul dvs. Arduino Nano

Din fericire, există o mulțime de informații despre cum să faceți acest lucru, așa că, căutând „Arduino Nano și mini USB host shield” am aterizat pe acest fir

A descris cum să conectez scutul USB mini v2.0 și după ce l-am urmat am mers drept înainte pentru a testa câteva exemple midi USB.

Cablare:

Scut gazdă Arduino

10--------------5

11--------------6

12--------------7

13--------------8

2----------------2

5V -------------- 1

3,3V ------------ 9

GND ----------- 3

RST ------------ 4

În acest fir, s-a menționat, de asemenea, că au tăiat cablul de 3,3V, astfel încât USB-ul să poată obține 5V de la VBUS.

Această descriere și imaginile anexate provin din acest fir.

BTW, există o greșeală pe tipărirea de pe această placă, deci acest lucru a fost puțin confuz, totuși, puteți vedea feedback-ul meu despre asta (tyrkelko) și de unde l-am învățat.

Pasul 3: Chips pe cineva? Adăugarea SN76489 cu 4MHz Osc. și 595 Shift Register

Chips pe cineva? Adăugarea SN76489 cu 4MHz Osc. și 595 Shift Register
Chips pe cineva? Adăugarea SN76489 cu 4MHz Osc. și 595 Shift Register

Acum a venit timpul să adăugăm cipul care face acest sunet uimitor.

Am dezvoltat deja o bibliotecă pentru interfața arduino cu acest cip și a trebuit doar să urmez instrucțiunile mele.

Biblioteca este lansată în github sub GPLv3 (prima mea versiune open source).

github.com/tyrkelko/sn76489

Conexiunea 76489 și 595 a fost ca în imaginea anexată care este capturată din fișierul readme.txt al bibliotecii

Activarea scrierii la nivel scăzut (NotWE) din 76489 a fost conectată cu pinul 3 al nano-ului și poate fi modificată în cod.

#define PIN_NotWE 3

595 a fost conectat la nano după cum urmează și poate fi ajustat și prin editarea numerelor de pin:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

Oscilatorul pe care l-am folosit a fost un oscilator de cristal de 4 MHz cu 4 picioare.

A fost configurat în cod după cum urmează și puteți regla valoarea acestuia la orice frecvență a oscilatorului între 500kHz și 4MHz:

#define FREQUENCY 4000000.0

Conectarea oscilatorului pe care l-am folosit a fost după cum urmează:

pinul 1 - nu este conectat

pinul 7 - sol

pinul 8 - conectat la 76489 pinul 14 - ceas osc

Pasul 4: Adăugați doar cod - Adăugarea bibliotecilor, compilarea și încărcarea codului

Bibliotecile utilizate în acest proiect trebuie adăugate la Arduino IDE după cum urmează:

Deschideți ID-ul Arduino

Descărcați următoarele biblioteci în dosarul bibliotecii IDE-ului dvs. (sperăm să le vedeți în meniul „Gestionați bibliotecile …” din meniul „Instrumente” IDE în curând):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Utilizați codul din următorul proiect github:

github.com/tyrkelko/usb_midi_tone

Descărcați usb_midi_tone.ino, compilați și încărcați pe Arduino nano.

Pasul 5: Conectați un amplificator și difuzor, conectați tastatura USB Midi și testați

Acum este timpul să testăm totul funcționează.

Pentru a face acest lucru avem nevoie de:

1. Un amplificator și difuzor

2. O tastatură midi USB

Conectați pinul SN76489 7, ieșire audio, la intrarea audio a amplificatorului.

Porniți amplificatorul și apoi porniți arduino nano. Acum ar trebui să auziți sunetul testului de pornire pentru o fracțiune de secundă.

Conectați tastatura midi USB și testați.

Dacă totul funcționează corect, ar trebui să puteți reda simultan 3 tonuri și, de asemenea, să redați 8 tipuri de zgomot și chiar un ton de sfert de 24 EDO-Scale.

Dacă nu funcționează, parcurgeți pașii pentru a vedea ce s-ar fi putut defecta.

Dacă considerați că acest lucru rezultă din instrucțiuni neclare, trimiteți-mi o notă, așa că actualizez instrucțiunile pentru a remedia problema.

Pasul 6: Finalizați circuitul cu un regulator de tensiune de 5V, conector de 12V, comutator de pornire / oprire și LED de alimentare

În acest pas ar trebui să puteți înfășura circuitul după ce l-ați testat pentru a funcționa corect.

1. Adăugați un regulator de putere cu LM7805 și doi condensatori 10uF și 0,1uF. Există o mulțime de tutoriale în acest sens, puteți utiliza următoarele instructabile pentru a realiza acest lucru -

2. Adăugați un conector de alimentare de 12V cu Vcc activat printr-un comutator de pornire / oprire

3. Adăugați un LED cu un rezistor de curent limitativ pentru a indica când este pornit.

Pasul 7: Închideți într-o cutie, vopsiți și bucurați-vă de noul dvs. sintetizator

Odată ce circuitele sunt testate și funcționează după bunul plac, nu mai rămâne mult de făcut, cu excepția construirii unei incinte frumoase, pictează-o cu culori minunate și redă muzică.

Sper că ți-a plăcut să citești acest instructable și că te-a inspirat să-ți construiești propriul sintetizator sau să începi cu un alt proiect la care lucrezi.

Vă rugăm să comentați mai jos cu orice întrebări și dacă ați construit ceva similar pe baza acestui tutorial, ar fi minunat dacă ați împărtăși ceea ce ați făcut în „Am făcut asta!” sau în secțiunea de feedback.

Recomandat: