Inhoudsopgave:
- Benodigdheden
- Stap 1: Het USB Mini Host Shield voorbereiden om een 5V Midi-apparaat aan te sturen
- Stap 2: Verbind het USB Mini Shield met uw Arduino Nano
- Stap 3: Chips iemand? SN76489 toevoegen met 4MHz Osc. en 595 Ploegenregister
- Stap 4: Voeg gewoon code toe - De bibliotheken toevoegen, de code compileren en uploaden
- Stap 5: Sluit een versterker en luidspreker aan, sluit uw USB Midi-toetsenbord aan en test
- Stap 6: Voltooi het circuit met een 5V-spanningsregelaar, 12V-connector, aan/uit-schakelaar en voedings-LED
- Stap 7: Omsluiten in een doos, schilderen en genieten van je nieuwe synth
Video: Laten we een SN76489 USB MIDI-synth bouwen met Arduino Nano - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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
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
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
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:
Een Arduino MIDI-controller bouwen: 9 stappen (met afbeeldingen)
Een Arduino MIDI-controller bouwen: deze instructable is oorspronkelijk gepubliceerd op mijn blog op 28 juni 2020. Ik vind het leuk om dingen te bouwen die elektronica bevatten, en ik heb altijd al iets willen bouwen met Arduino. Een van de meest voorkomende builds voor beginners die ik vond, was een MIDI-controller
Een computer laten crashen met een batchbestand!: 10 stappen
Elke computer laten crashen met een batchbestand!: Gemakkelijk elke computer of laptop laten crashen
Een Cubesat bouwen met een Arduino en accelerometer: 5 stappen
Hoe maak je een Cubesat bouwen met een Arduino en Accelerometer .: Onze namen zijn Brock, Eddie en Drew. Het belangrijkste doel van onze natuurkundeles is om van de aarde naar Mars te reizen terwijl we de baan rond Mars simuleren met behulp van een Cube Sat en het verzamelen van gegevens. Het doel van onze groep voor dit project is om gegevens te verzamelen met behulp van een accele
Een DIY Arduino bouwen op een PCB en enkele tips voor beginners: 17 stappen (met afbeeldingen)
Een DIY Arduino bouwen op een PCB en enkele tips voor beginners: Dit is bedoeld als een gids voor iedereen die zijn eigen Arduino soldeert uit een kit, die kan worden gekocht bij A2D Electronics. Het bevat veel tips en trucs om het succesvol te bouwen. Je leert ook wat alle verschillende componenten d
Een thuisstudio bouwen met een megabudget: 8 stappen (met afbeeldingen)
Een thuisstudio bouwen met een megabudget: nu het digitale tijdperk ons blijft laten zien hoe technologie de behoefte aan professionele diensten heeft verminderd, wordt het steeds gemakkelijker om goede resultaten te behalen met kunstvormen zoals audio-opname. Het is mijn doel om de meest kosteneffectieve manier van