Låt oss bygga en SN76489 USB MIDI Synth med Arduino Nano: 7 steg
Låt oss bygga en SN76489 USB MIDI Synth med Arduino Nano: 7 steg
Anonim
Image
Image
Låt oss bygga en SN76489 USB MIDI Synth med Arduino Nano
Låt oss bygga en SN76489 USB MIDI Synth med Arduino Nano
Låt oss bygga en SN76489 USB MIDI Synth med Arduino Nano
Låt oss bygga en SN76489 USB MIDI Synth med Arduino Nano

Har du någonsin velat bygga din egen synthesizer baserad på gamla chips från 80-talet? Spela enkla polyfoniska låtar som låter precis som dessa gamla Sega Master System- och Megadrive -videospel lät som?

Jag har, så, jag beställde några SN76489 -chips från ebay och ett midi -värdgränssnitt och gav det ett skott. Tja, det var inte en promenad i parken för mig, men jag njöt av varje ögonblick.

Först lärde jag mig hur man direkt gränssnitt SN76489 och göra lite ljud med det. Det fanns några förvirrande element i detta, men med hjälp av The Oddbloke Geek Blog och några andra exempel kunde jag tillsammans med chipspecifikationsdokumentet utveckla ett enkelt arduino -bibliotek.

Därefter fick jag lära mig att koppla ett midi -tangentbord med en USB mini -värdsköld. Det här var inte så svårt, eftersom det finns viss dokumentation tillgänglig och det finns bra bibliotek med tydliga exempel.

När jag förstod hur jag skulle styra chipet och hur jag skulle ansluta mitt USB midi -tangentbord, var det bara att skriva en kod som skulle slå ihop allt detta och låta mig använda tangentbordet för att styra chipet.

Längs vägen lärde jag mig att ljud med lägre frekvens än de jag försökte generera för 0x2f midi -toner inte lät rätt, så jag bestämde mig för att använda det för att tillåta att skicka brus till brusgeneratorn för alla midi -toner mellan 0x28 och 0x2f och tillåt också spela noter med en orientalisk arabisk touch till det för något lägre än midi 0x28.

Ser jag bakåt var det väldigt roligt och mycket intressant att bygga.

Jag hoppas att du tycker att den är lika rolig och intressant som jag och att om du bygger en själv skulle du vara snäll att dela med dig av några bilder på den.

Om du gillade det här projektet, rösta på det nedan för att hjälpa till att vinna tävlingen som det deltar i

Tillbehör

Jag har lagt till länkar till material som du kan köpa för detta projekt, men du kan hitta många tillgängliga föremål som du kan skrapa från gammal elektronik.

Dessa länkar är affiliate -länkar, så om du köper efter att du klickat på dem får jag en liten del (inte förmögenhet) och du får en produkt som är rätt för detta projekt. Det finns ingen avgift eller extra kostnad för att använda dessa, men du kan hitta liknande artiklar som kan ersätta dessa ganska enkelt.

ebay.us/svA4z4 | 1 x prestandakort

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x USB mini -skärm

ebay.to/2QrHl1C | 1 x SN76489 ljudchip

ebay.us/aaaj8p | 1 x skiftregister 595

ebay.us/DSvTHO | 1 x kristalloscillator på 4 MHz

ebay.us/XQeM0Q | 1 x 5V spänningsregulator 7805

ebay.us/6R6Fpf | 1 x kylfläns för spänningsregulatorn

ebay.us/xkLbn4 | 3 x 10uF kondensatorer

ebay.us/pnm2BH | trådar

ebay.us/PMbUfY | 1 x röd LED för ström

ebay.us/zokHtc | 1 x 220 ohm motstånd för att begränsa LED -strömflödet

ebay.us/qjbesJ | 1 x strömkontakt för 12V strömförsörjning

ebay.us/cS0wwv | 1 x strömbrytare

en lämplig låda (jag byggde min från en gammal låda som vilade i mitt förvar i flera år)

Steg 1: Förbered USB Mini Host Shield för att driva en 5V Midi -enhet

Förbereder USB Mini Host Shield för att driva en 5V Midi -enhet
Förbereder USB Mini Host Shield för att driva en 5V Midi -enhet

Eftersom USB mini -värdskölden fungerar på 3,3V och USB -midi -tangentborden jag använder kräver 5V, är det nödvändigt att justera sköldens utspänning genom att klippa av 3,3V -linjen som går till USB out Vcc, så att vi senare kan ansluta den till 5V.

Det finns gott om självstudier om hur man gör det och det visade sig vara ganska enkelt:

Klipp bara linjen mellan 2k2 -motståndet och Vcc -linjen (se bifogad bild). Jag använde en skruvmejsel för att repa den här linjen och testade om den fungerade med en kontinuitetsmätare.

Steg 2: Anslut USB Mini Shield med din Arduino Nano

Anslut USB Mini Shield med din Arduino Nano
Anslut USB Mini Shield med din Arduino Nano
Anslut USB Mini Shield med din Arduino Nano
Anslut USB Mini Shield med din Arduino Nano

Lyckligtvis finns det mycket information om hur man gör det, så genom att googla efter "Arduino Nano och mini USB värdsköld" landade jag på den här tråden

Den beskrev hur man ansluter USB mini v2.0 -skärmen och efter att ha följt den gick jag rakt fram för att testa några USB -midi -exempel.

Kabeldragning:

Arduino värdsköld

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

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

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

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

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

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

3.3V ------------ 9

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

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

I den här tråden nämndes det också att de klippte 3,3V -kabeln så att USB kan få 5V från VBUS.

Denna beskrivning och bifogade bilder kom från den här tråden.

BTW, det finns ett misstag på utskriften på det här kortet, så det här var lite förvirrande, men du kan se min feedback om det (tyrkelko) och var jag lärde mig det.

Steg 3: Chips någon? Lägger till SN76489 med 4MHz Osc. och 595 skiftregister

Chips någon? Lägger till SN76489 Med 4MHz Osc. och 595 skiftregister
Chips någon? Lägger till SN76489 Med 4MHz Osc. och 595 skiftregister

Nu var det dags att lägga till chipet som gör detta fantastiska ljud.

Jag har redan utvecklat ett bibliotek för att koppla arduino med detta chip och var bara tvungen att följa mina instruktioner.

Biblioteket släpps i github under GPLv3 (min första open source -version).

github.com/tyrkelko/sn76489

Anslutningen mellan 76489 och 595 var som i den bifogade bilden som fångas från biblioteket readme.txt -fil

Write Enable on Low (NotWE) av 76489 var ansluten med pin 3 på nano och kan ändras i koden.

#define PIN_NotWE 3

595 var ansluten till nano enligt följande och kan också justeras genom att redigera stiftnumren:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

Oscillatorn jag använde var en 4MHz kristalloscillator med 4 ben.

Den konfigurerades i koden enligt följande och du kan justera dess värde till valfri oscillatorfrekvens mellan 500 kHz och 4 MHz:

#define FREKVENS 4000000.0

Anslutningen av oscillatorn jag använde var följande:

stift 1 - ej ansluten

stift 7 - slipat

stift 8 - ansluten till 76489 stift 14 - klocka osc

Steg 4: Lägg bara till kod - Lägg till bibliotek, kompilera och ladda upp koden

Bibliotek som används i detta projekt måste läggas till i Arduino IDE enligt följande:

Öppna Arduino IDE

Ladda ner följande bibliotek till bibliotekets mapp på din IDE (hoppas att se dessa under menyn "Hantera bibliotek …" i menyn IDE "Verktyg" snart):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Använd koden från följande github -projekt:

github.com/tyrkelko/usb_midi_tone

Ladda ner usb_midi_tone.ino, kompilera och ladda upp till din Arduino nano.

Steg 5: Anslut en förstärkare och högtalare, anslut ditt USB Midi -tangentbord och testa

Nu är det dags att testa allt fungerar.

För att göra det behöver vi:

1. En förstärkare och högtalare

2. Ett USB midi -tangentbord

Anslut SN76489 stift 7, ljudutgång, till förstärkarens ljudingång.

Slå på förstärkaren och slå sedan på arduino nano. Du bör nu höra testljudet för uppstart i en sekund.

Anslut USB midi -tangentbordet och testa.

Om allt fungerar korrekt bör du kunna spela 3 toner samtidigt och även spela 8 typer av brus och till och med en kvartton på 24 EDO-skala.

Om det inte fungerar, gå igenom stegen för att se vad som kan ha gått fel.

Om du känner att detta beror på oklara instruktioner, vänligen skriv till mig så jag uppdaterar instruktionerna för att fixa det.

Steg 6: Slutför kretsen med en 5V spänningsregulator, 12V kontakt, strömbrytare och strömlampa

I detta steg bör du kunna avsluta kretsen efter att ha testat att den fungerar korrekt.

1. Lägg till en effektregulator med LM7805 och två 10uF kondensatorer och 0.1uF. Det finns gott om självstudier om detta, du kan använda följande instruerbara för att åstadkomma det-https://www.instructables.com/id/7805-Regulator-5V…

2. Lägg till en 12V strömkontakt med Vcc via en på/av -omkopplare

3. Lägg till en lysdiod med ett begränsande strömmotstånd för att indikera när strömmen är på.

Steg 7: Lägg i en låda, måla och njut av din nya synt

När kretsen är testad och fungerar efter eget tycke, är det inte mycket kvar att göra förutom att bygga ett fint hölje, måla det med fantastiska färger och spela lite musik.

Jag hoppas att du tyckte om att läsa detta instruerbara och att det inspirerade dig att bygga din egen synth eller komma igång med ett annat projekt du arbetar med.

Kommentera nedan med eventuella frågor och om du har byggt något liknande baserat på denna handledning skulle det vara bra om du delar med dig av vad du har gjort i "Jag gjorde det här!" område eller i feedbackavsnittet.