Innholdsfortegnelse:

La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano: 7 trinn
La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano: 7 trinn

Video: La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano: 7 trinn

Video: La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano: 7 trinn
Video: #SanTenChan читает гнома из второй серии книги Сани Джезуальди Нино Фрассики! 2024, November
Anonim
Image
Image
La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano
La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano
La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano
La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano

Har du noen gang ønsket å bygge din egen synthesizer basert på gamle chip-melodier fra 80-tallet? Spill enkle polyfoniske låter som høres ut akkurat som disse gamle Sega Master System- og Megadrive -videospillene hørtes ut som?

Jeg har derfor bestilt noen SN76489 -brikker fra ebay og et midi -vertsgrensesnitt og ga det et skudd. Vel, det var ikke en tur i parken for meg, men jeg likte hvert øyeblikk.

Først lærte jeg å koble SN76489 direkte og lage litt støy med den. Det var noen forvirrende elementer i dette, men ved hjelp av The Oddbloke Geek Blog og noen få andre eksempler, sammen med chipspesifikasjonsdokumentet, var jeg i stand til å utvikle et enkelt arduino -bibliotek.

Deretter måtte jeg lære å koble til et midi -tastatur med et USB mini vertsskjerm. Dette var ikke så vanskelig, siden det er noe dokumentasjon tilgjengelig, og det finnes gode biblioteker med klare eksempler.

Når jeg forsto hvordan jeg skulle kontrollere brikken og hvordan jeg skulle koble til mitt USB -midi -tastatur, var det bare å skrive noen kode som ville pakke alt dette sammen og la meg bruke tastaturet til å kontrollere brikken.

Underveis lærte jeg at lyder med lavere frekvens enn de jeg prøvde å generere for 0x2f midi noter ikke hørtes riktig ut, så jeg bestemte meg for å bruke det for å tillate å sende støy til støygeneratoren for midi notater mellom 0x28 og 0x2f og la også spille notater med et orientalsk arabisk preg på det for noe lavere enn midi 0x28.

Når vi ser bakover, var det veldig gøy og veldig interessant å bygge.

Jeg håper du synes det er like morsomt og interessant som jeg gjorde, og at hvis du bygger et selv, vil du være snill nok til å dele noen bilder av det.

Hvis du likte dette prosjektet, kan du stemme på det nedenfor for å vinne konkurransen det deltar i

Rekvisita

Jeg har lagt til lenker til materiale du kan kjøpe for dette prosjektet, men du kan finne mange tilgjengelige varer som du kan skrape fra gammel elektronikk.

Disse koblingene er tilknyttede lenker, så hvis du kjøper etter å ha klikket på dem, får jeg en liten del (ikke formue), og du får et produkt som passer for dette prosjektet. Det er ingen avgifter eller ekstra kostnader ved bruk av disse, men du kan finne lignende varer som kan erstatte disse ganske enkelt.

ebay.us/svA4z4 | 1 x performance board

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x USB mini -skjerm

ebay.to/2QrHl1C | 1 x SN76489 lydbrikke

ebay.us/aaaj8p | 1 x skiftregister 595

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

ebay.us/XQeM0Q | 1 x 5V spenningsregulator 7805

ebay.us/6R6Fpf | 1 x varmeavleder for spenningsregulatoren

ebay.us/xkLbn4 | 3 x 10uF kondensatorer

ebay.us/pnm2BH | ledninger

ebay.us/PMbUfY | 1 x rød LED for strøm

ebay.us/zokHtc | 1 x 220 ohm motstand for å begrense LED -strømmen

ebay.us/qjbesJ | 1 x strømkontakt for 12v strømforsyning

ebay.us/cS0wwv | 1 x av/på -bryter

en passende eske (jeg bygde min fra en gammel skuff som lå i oppbevaringen i mange år)

Trinn 1: Klargjør USB Mini Host Shield for å drive en 5V Midi -enhet

Forbereder USB Mini Host Shield for å drive en 5V Midi -enhet
Forbereder USB Mini Host Shield for å drive en 5V Midi -enhet

Siden USB mini -vertsskjermen fungerer på 3,3V og USB -midi -tastaturene jeg bruker krever 5V, er det nødvendig å justere skjoldets utgangsspenning ved å kutte 3,3V -linjen som går til USB out Vcc, så vi kan senere koble den til til 5V.

Det er mange opplæringsprogrammer om hvordan du gjør det, og det viste seg å være ganske enkelt:

Bare kutt linjen mellom 2k2 -motstanden og Vcc -linjen (se vedlagte bilde). Jeg brukte en skrutrekker til å klø denne linjen og testet om den fungerte med en kontinuitetsmåler.

Trinn 2: Koble USB Mini Shield til din Arduino Nano

Koble USB Mini Shield til din Arduino Nano
Koble USB Mini Shield til din Arduino Nano
Koble USB Mini Shield til din Arduino Nano
Koble USB Mini Shield til din Arduino Nano

Heldigvis er det mye informasjon om hvordan du gjør det, så ved å google etter "Arduino Nano og mini USB host shield" landet jeg på denne tråden

Den beskrev hvordan du kobler til USB mini v2.0 -skjoldet, og etter å ha fulgt det gikk jeg rett frem for å teste noen USB -midi -eksempler.

Kabling:

Arduino Host -skjold

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

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

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

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

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

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

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

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

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

I denne tråden ble det også nevnt at de kuttet 3,3V ledningen slik at USB kan få 5V fra VBUS.

Denne beskrivelsen og vedlagte bilder kom fra denne tråden.

BTW, det er en feil på utskriften på dette brettet, så dette var litt forvirrende, men du kan se tilbakemeldingen min om det (tyrkelko) og hvor jeg lærte det av.

Trinn 3: Chips noen? Legger til SN76489 med 4MHz Osc. og 595 skiftregister

Chips Noen? Legger til SN76489 med 4MHz Osc. og 595 skiftregister
Chips Noen? Legger til SN76489 med 4MHz Osc. og 595 skiftregister

Nå var det på tide å legge til brikken som lager denne fantastiske lyden.

Jeg har allerede utviklet et bibliotek for å koble arduino til med denne brikken, og måtte bare følge instruksjonene mine.

Biblioteket er utgitt i github under GPLv3 (min første åpen kildekode -utgivelse).

github.com/tyrkelko/sn76489

Tilkoblingen mellom 76489 og 595 var som i det vedlagte bildet som er hentet fra biblioteket readme.txt -fil

Write Enable on Low (NotWE) på 76489 ble koblet til pin 3 på nano og kan endres i koden.

#define PIN_NotWE 3

595 ble koblet til nano som følger og kan også justeres ved å redigere pin -tallene:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

Oscillatoren jeg brukte var en 4MHz krystalloscillator med 4 bein.

Den ble konfigurert i koden som følger, og du kan justere verdien til en hvilken som helst oscillatorfrekvens mellom 500kHz og 4MHz:

#define FREKVENS 4000000.0

Koble til oscillatoren jeg brukte var som følger:

pin 1 - ikke tilkoblet

pinne 7 - bakken

pin 8 - koblet til 76489 pin 14 - clock osc

Trinn 4: Bare legg til kode - Legge til biblioteker, kompilere og laste opp koden

Biblioteker som brukes i dette prosjektet må legges til Arduino IDE på følgende måte:

Åpne Arduino IDE

Last ned følgende biblioteker til bibliotekmappen til IDE -en din (håper å se disse under "Administrer biblioteker …" -menyen i IDE "Verktøy" -menyen snart):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Bruk koden fra følgende github -prosjekt:

github.com/tyrkelko/usb_midi_tone

Last ned usb_midi_tone.ino, kompiler og last opp til Arduino nano.

Trinn 5: Koble til en forsterker og høyttaler, koble til ditt USB Midi -tastatur og test

Nå er det på tide å teste alt fungerer.

For å gjøre det trenger vi:

1. En forsterker og høyttaler

2. Et USB midi -tastatur

Koble SN76489 pin 7, lydutgang, til forsterkerens lydinngang.

Slå på forsterkeren og slå deretter på arduino nano. Du bør nå høre testlyden for oppstart i et sekund.

Koble til USB midi -tastaturet og test.

Hvis alt fungerer riktig, bør du kunne spille 3 toner samtidig, og også spille 8 typer støy og til og med en kvart tone på 24 EDO-skala.

Hvis det ikke fungerer, gå over trinnene for å se hva som kan ha gått galt.

Hvis du føler at dette skyldes uklare instruksjoner, vennligst send meg en melding, så jeg oppdaterer instruksjonene for å fikse det.

Trinn 6: Fullfør kretsen med en 5V spenningsregulator, 12V -kontakt, på/av -bryter og strøm -LED

I dette trinnet bør du kunne avslutte kretsen etter å ha testet den for å fungere korrekt.

1. Legg til en effektregulator med LM7805 og to 10uF kondensatorer og 0.1uF. Det er mange opplæringsprogrammer om dette, du kan bruke følgende instrukser for å oppnå det-https://www.instructables.com/id/7805-Regulator-5V…

2. Legg til en 12V strømkontakt mens Vcc går via en av/på -bryter

3. Legg til en LED med en begrensende strømmotstand for å indikere når strømmen er på.

Trinn 7: Sett i en eske, mal og nyt din nye syntese

Når kretsen er testet og fungerer etter din smak, er det ikke mye igjen å gjøre bortsett fra å bygge et fint kabinett, male det med flotte farger og spille litt musikk.

Jeg håper du likte å lese dette instruerbare, og at det inspirerte deg til å bygge din egen synth eller komme i gang med et annet prosjekt du jobber med.

Kommenter nedenfor med spørsmål, og hvis du har bygget noe lignende basert på denne opplæringen, ville det være flott hvis du ville dele det du har laget i "Jeg har laget dette!" området eller i tilbakemeldingsdelen.

Anbefalt: