Inhoudsopgave:

Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano - Ajarnpa
Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano - Ajarnpa

Video: Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano - Ajarnpa

Video: Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano - Ajarnpa
Video: YM2413 op Arduino Uno 2024, Juli-
Anonim
Image
Image
Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano
Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano
Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano
Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano

Altijd al je eigen synthesizer willen bouwen op basis van oude chiptunes uit de jaren 80? Speel eenvoudige polyfone deuntjes die net zo klinken als deze oude Sega Master System en Megadrive-videogames?

Ik heb dus een paar SN76489-chips besteld van ebay en een midi-hostinterface en heb het geprobeerd. Nou, het was geen wandeling in het park voor mij, maar ik heb genoten van elk moment.

Eerst leerde ik hoe ik de SN76489 rechtstreeks kon koppelen en er wat lawaai mee kon maken. Dit had wat verwarrende elementen, maar met de hulp van The Oddbloke Geek Blog en een paar andere voorbeelden, samen met het chipspecificatiedocument, was ik in staat om een eenvoudige arduino-bibliotheek te ontwikkelen.

Vervolgens moest ik leren hoe ik een midi-toetsenbord moest koppelen aan een USB mini-hostschild. Dit was niet zo moeilijk, aangezien er enige documentatie beschikbaar is en er goede bibliotheken bestaan met duidelijke voorbeelden.

Toen ik eenmaal begreep hoe ik de chip moest bedienen en hoe ik mijn USB midi-toetsenbord moest aansluiten, hoefde ik alleen nog maar een code te schrijven die dit alles zou samenvatten en me in staat zou stellen het toetsenbord te gebruiken om de chip te besturen.

Onderweg leerde ik dat geluiden met een lagere frequentie dan die ik probeerde te genereren voor 0x2f midi-noten niet goed klonken, dus besloot ik dat te gebruiken om ruis naar de ruisgenerator te sturen voor alle midi-noten tussen 0x28 en 0x2f en laat ook noten spelen met een oosters arabisch tintje voor alles lager dan midi 0x28.

Terugkijkend was het erg leuk en erg interessant om te bouwen.

Ik hoop dat je het net zo leuk en interessant vindt als ik en dat als je er zelf een bouwt, je zo vriendelijk zou zijn om er wat foto's van te delen.

Als je dit project leuk vond, stem dan hieronder om de wedstrijd waaraan het deelneemt te helpen winnen

Benodigdheden

Ik heb links toegevoegd naar materiaal dat je voor dit project kunt kopen, maar je kunt veel beschikbare items vinden die je van oude elektronica kunt schrapen.

Deze links zijn gelieerde links, dus als je koopt nadat je erop hebt geklikt, krijg ik een klein deel (geen fortuin) en krijg je een product dat geschikt is voor dit project. Er zijn geen kosten of extra kosten verbonden aan het gebruik van deze, maar u kunt vergelijkbare items vinden die deze vrij gemakkelijk kunnen vervangen.

ebay.us/svA4z4 | 1 x prestatiebord

ebay.us/ZyEFNp | 1 x arduino nano

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

ebay.to/2QrHl1C | 1 x SN76489 geluidschip

ebay.us/aaaj8p | 1 x schuifregister 595

ebay.us/DSvTHO | 1 x kristaloscillator van 4MHz

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

ebay.us/6R6Fpf |1 x koellichaam voor de spanningsregelaar

ebay.us/xkLbn4 | 3 x 10uF condensatoren

ebay.us/pnm2BH | draden

ebay.us/PMbUfY | 1 x rode LED voor stroom

ebay.us/zokHtc | 1 x 220 ohm weerstand om de LED-stroom te beperken

ebay.us/qjbesJ | 1 x stroomaansluiting voor 12v voeding

ebay.us/cS0wwv |1 x aan/uit schakelaar

een geschikte doos (ik heb de mijne gebouwd van een oude lade die jaren in mijn opslag heeft gestaan)

Stap 1: Het USB Mini Host Shield voorbereiden om een 5V Midi-apparaat aan te sturen

Het USB Mini Host Shield voorbereiden om een 5V Midi-apparaat aan te sturen
Het USB Mini Host Shield voorbereiden om een 5V Midi-apparaat aan te sturen

Aangezien het USB-minihost-schild werkt op 3,3 V en de USB-midi-toetsenborden die ik gebruik 5 V nodig hebben, is het vereist om de uitgangsspanning van het schild aan te passen door de 3,3 V-lijn die naar de USB-uitgang Vcc gaat door te snijden, zodat we deze later kunnen aansluiten naar 5V.

Er zijn tal van tutorials over hoe dat te doen en het bleek vrij eenvoudig te zijn:

Knip gewoon de lijn tussen de 2k2-weerstand en de Vcc-lijn door (zie bijgevoegde afbeelding). Ik heb een schroevendraaier gebruikt om deze lijn te krassen en getest of het werkte met een continuïteitsmeter.

Stap 2: Verbind het USB Mini Shield met uw Arduino Nano

Verbind het USB Mini Shield met uw Arduino Nano
Verbind het USB Mini Shield met uw Arduino Nano
Verbind het USB Mini Shield met uw Arduino Nano
Verbind het USB Mini Shield met uw Arduino Nano

Gelukkig is er veel informatie over hoe je dat moet doen, dus door te googelen naar "Arduino Nano en mini USB host shield" kwam ik op deze thread https://forum.arduino.cc/index.php?topic=603476.0 terecht

Het beschreef hoe ik het USB mini v2.0-schild moest aansluiten en nadat ik het had gevolgd, ging ik meteen door om enkele USB-midi-voorbeelden te testen.

bedrading:

Arduino Host-schild

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

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

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

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

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

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

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

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

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

In deze thread werd ook vermeld dat ze de 3.3V-kabel hebben doorgesneden zodat de USB 5V van VBUS kan krijgen.

Deze beschrijving en bijgevoegde afbeeldingen kwamen uit deze thread.

Tussen haakjes, er is een fout in de print op dit bord, dus dit was een beetje verwarrend, maar je kunt mijn feedback daarop zien (tyrkelko) en waar ik het van geleerd heb.

Stap 3: Chips iemand? SN76489 toevoegen met 4MHz Osc. en 595 Ploegenregister

Chips iemand? SN76489 toevoegen met 4MHz Osc. en 595 Ploegenregister
Chips iemand? SN76489 toevoegen met 4MHz Osc. en 595 Ploegenregister

Nu was het tijd om de chip toe te voegen die dit geweldige geluid maakt.

Ik heb al een bibliotheek ontwikkeld om arduino met deze chip te koppelen en hoefde alleen mijn instructies te volgen.

De bibliotheek is uitgebracht in github onder GPLv3 (mijn eerste open source-release).

github.com/tyrkelko/sn76489

De verbinding van 76489 en 595 was zoals in de bijgevoegde afbeelding die is vastgelegd uit het readme.txt-bestand van de bibliotheek

De Write Enable on Low (NotWE) van 76489 was verbonden met pin 3 van de nano en kan in de code worden gewijzigd.

#define PIN_NotWE 3

De 595 was als volgt verbonden met de nano en is ook aan te passen door de pinnummers te bewerken:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

De oscillator die ik gebruikte was een 4MHz kristaloscillator met 4 poten.

Het is als volgt in de code geconfigureerd en u kunt de waarde ervan aanpassen aan elke oscillatorfrequentie tussen 500 kHz en 4 MHz:

#define FREQUENTIE 4000000,0

Het aansluiten van de oscillator die ik gebruikte was als volgt:

pin 1 - niet aangesloten

pin 7 - aarde

pin 8 - aangesloten op 76489 pin 14 - klok osc

Stap 4: Voeg gewoon code toe - De bibliotheken toevoegen, de code compileren en uploaden

Bibliotheken die in dit project worden gebruikt, moeten als volgt aan de Arduino IDE worden toegevoegd:

Open de Arduino IDE

Download de volgende bibliotheken naar de bibliotheekmap van uw IDE (hoop deze binnenkort te zien onder het menu "Bibliotheken beheren…" in het menu "Extra's" van de IDE):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Gebruik de code van het volgende github-project:

github.com/tyrkelko/usb_midi_tone

Download usb_midi_tone.ino, compileer en upload naar je Arduino nano.

Stap 5: Sluit een versterker en luidspreker aan, sluit uw USB Midi-toetsenbord aan en test

Nu is het tijd om te testen of alles werkt.

Om dat te doen hebben we nodig:

1. Een versterker en luidspreker

2. Een USB midi-toetsenbord

Sluit SN76489 pin 7, audio uit, aan op de audio-ingang van de versterker.

Zet de versterker aan en zet vervolgens de Arduino nano aan. U zou nu het opstarttestgeluid een fractie van een seconde moeten horen.

Sluit het USB midi-toetsenbord aan en test.

Als alles correct werkt, zou je 3 tonen tegelijk moeten kunnen spelen, en ook 8 soorten ruis en zelfs een kwarttoon van 24 EDO-schaal.

Als het niet werkt, overloop dan de stappen om te zien wat er mis is gegaan.

Als je denkt dat dit het gevolg is van onduidelijke instructies, stuur me dan een bericht zodat ik de instructies bijwerk om het probleem op te lossen.

Stap 6: Voltooi het circuit met een 5V-spanningsregelaar, 12V-connector, aan/uit-schakelaar en voedings-LED

In deze stap zou u het circuit moeten kunnen afronden nadat u het hebt getest om correct te werken.

1. Voeg een vermogensregelaar toe met LM7805 en twee 10uF-condensatoren en 0.1uF. Er zijn tal van tutorials hierover, je kunt de volgende instructable gebruiken om dat te bereiken -

2. Voeg een 12V-voedingsconnector toe waarbij de Vcc via een aan / uit-schakelaar gaat

3. Voeg een LED toe met een stroombegrenzingsweerstand om aan te geven wanneer de stroom is ingeschakeld.

Stap 7: Omsluiten in een doos, schilderen en genieten van je nieuwe synth

Als het circuit eenmaal is getest en naar wens werkt, valt er niet veel meer te doen, behalve het bouwen van een mooie behuizing, het schilderen met geweldige kleuren en wat muziek spelen.

Ik hoop dat je deze instructable met plezier hebt gelezen en dat het je heeft geïnspireerd om je eigen synth te bouwen of aan de slag te gaan met een ander project waaraan je werkt.

Reageer hieronder met eventuele vragen en als je iets soortgelijks hebt gebouwd op basis van deze tutorial, zou het geweldig zijn als je zou delen wat je hebt gemaakt in de "Ik heb dit gemaakt!" gebied of in het feedbackgedeelte.

Aanbevolen: