Inhoudsopgave:
- Stap 1: Onderdelenlijst
- Stap 2: constructie
- Stap 3: Software
- Stap 4: Koppelingen
- Stap 5: Het Sparkfun-bord gebruiken met de Adafruit-bibliotheken
Video: Micro Midi-synthesizer: 5 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Deze instructable demonstreert het gebruik van de VLSI VS1053b Audio en Midi DSP-chip in de realtime Midi-modus. In deze modus fungeert het als een 64-stemmige polyfone GM (General Midi) Midi-synthesizer. Een Arduino Uno standalone micro bestuurt een OLED-display, drie knoppen (Function Select en Up of Down, en geeft de Midi-gegevensstroom door aan de audio-DSP. Het gekozen muziekbord was het Adafruit VS1053-codec-breakout-bord, maar een Sparkfun-muziekbreakout-bord werd ook met succes getest. De Adafruit VS1053b-bibliotheken werden gebruikt in plaats van de veel grotere SFEMP3-bibliotheek (aanbevolen door Sparkfun hoewel ze ook hun eigen set bibliotheken hebben), omdat ik de Adafruit-code gemakkelijker te begrijpen vond.
De meeste code die wordt gebruikt om de audio/midi-DSP te besturen, is ontwikkeld met behulp van een Arduino Uno die via een breadboard op het audio/midi-breakoutboard is aangesloten. Nadat de functies naar tevredenheid bleken te werken, werd de Uno gebruikt als programmer voor een stand-alone ATmega 328 die vervolgens op een klein 30x20 formaat Veroboard werd geplaatst samen met de 6N139 opto-isolator IC die nodig was op de Midi-ingang (een 5-pins DIN). Er was ook een klein (64x48) OLED-schild, drie knoppen, een Midi-activiteits-LED en een +5 volt barrel-connector voor voeding en de audio-stereo-uitgangsconnector toegevoegd. De stroomvereisten zijn zeer bescheiden - ongeveer 20 mA bij 5 volt.
Stap 1: Onderdelenlijst
ATmega328 Micro 28-pins DIP + 28-pins DIP-socket6N138 of 6N139 opto-isolator + 4-pins DIP-socket Wemos 64x48 I2C OLED-display of vergelijkbaarAdafruit VS1053b Codec breakout board3 miniatuurdrukknoppen5-pins DIN Midi-socket PCB-montage bij voorkeurKleine LED elke kleur. Barrel-type stopcontact voor de 5v voedingStereo audio aansluiting om een versterker of koptelefoon aan te sluiten Weerstanden: 7 x 10k, 2 x 470 ohm, 2 x 220 ohm Condensatoren: 0.1uF 50v plastic, 10uf 25v elektrolytisch, 2 x 27 pF keramiekKleine stukjes Veroboard (30 strips bij 20 kolommen en 4 strips door 16 kolommen), ABS plastic behuizing ongeveer 85x55x25mm, bedrading en een paar schroeven, moeren en ringen.
Stap 2: constructie
Het deksel van de behuizing herbergt het OLED-scherm, de drie knoppen die op een ander klein stukje Veroboard zijn gemonteerd en de stroomconnector. De belangrijkste Vero-printplaat heeft twee gaten om de Music breakout-kaart boven de ATmega328 te bevestigen. Raadpleeg het Fritzing-stripborddiagram voor verbindingsdetails.
De geprogrammeerde ATmega328 (raadpleeg de volgende sectie voor de code) wordt vervolgens in de aansluiting gestoken, gevolgd door de 6N139 en alles is aangesloten.
De LED wordt gebruikt als een Midi-activiteitsindicator en werd aan de voorkant van de behuizing gemonteerd. Het is verbonden met de D2-uitgang van de ATmega328 via een weerstand van 470 ohm.
Het OLED-display gebruikt de 3,3 volt-uitgang van het Adafruit-bord voor stroom - het vereist minder dan 20 mA.
Probeer de twee Midi Din-aansluitingen om te wisselen als u geen geluid hoort wanneer u de synth voor het eerst gebruikt.
Stap 3: Software
Details van de schets die moet worden geüpload naar de ATmega328 worden gegeven in MidA.ino. Er zijn zeven functies beschikbaar:
Optie P: Programma wijzigen - verander het GM Midi Instrument van 1 tot 128 (ik gebruikte 0 tot 127), zoals een piano- of synthgeluid. Optie B: Verander de Instrumentbank tussen Melodic (Bank 0) en Percussion (Bank 1). Optie V: Pas het volume aan van 1 tot 10. Optie C: Verander het Midi-kanaal waarop de Synth zal reageren. De keuzes zijn Kanaal 0, kanaal 1, kanaal 9 (percussie), kanaal 0 en 9, en kanaal 1 en 9. Optie R: Schakel het Reverb-effect in of uit. Optie S: Sla de huidige parameters op in het Eeprom-geheugen (Up) of Lees (omlaag) het terug uit het Eeprom-geheugen. Dit komt omdat instellingen anders niet worden opgeslagen bij het uitschakelen. Optie X: Stuur een all notes off-bericht (Midi Reset).
Een achtste optie is nog niet geïmplementeerd - deze omzeilt de ATmega als een Midi-filter en verbindt de uitgang van de opto-isolator rechtstreeks met de Rx-pin van het DSP-bord.
Merk op dat de VS1053b opstart in een real-time Midi-modus door een gecomprimeerde patch van 1039 bytes te laden tijdens het opstarten - dit vergroot ook de grootte van de Midi-buffer en filtert systeemexclusieve Midi-databytes. Details van deze patch zijn te vinden op de VLSI-website.
Er is een licht gewijzigde versie van de Adafruit Graphics-bibliotheek gebruikt om te voorzien in de 64x48 pixelresolutie van het OLED-scherm - raadpleeg de links aan het einde voor Mr Mcauser. Een lijst van de vereiste bibliotheken wordt gegeven in de schetscode.
Belangrijk is dat wanneer de schets voor de eerste keer wordt uitgevoerd op de ATmega328, of het nu op een Uno of standalone is, de code parameter-presets van de ATmega328 Eeprom laadt die mogelijk niet geldig zijn. In dat geval kunt u ofwel alle nullen naar de Eeprom schrijven met behulp van de X-optie met de omlaag-knop, of commentaar geven op de regel in de void setup-functie die waarden laadt van de Eeprom wanneer deze voor het eerst wordt gestart, uw instrumenten enz. aanpassen aan uw en sla je presets op met de S-optie Up-knop.
Alle genoemde personen en entiteiten worden gecrediteerd voor hun code en bibliotheken.
Stap 4: Koppelingen
VLSI:
Adafruit:
Github VS1053b:
Github-graphics:
Oled:
Sparkfun:
Stap 5: Het Sparkfun-bord gebruiken met de Adafruit-bibliotheken
In de tabel in de afbeelding wordt uitgelegd hoe u de Adafruit- of de Sparkfun-muziekborden kunt aansluiten om een andere bibliotheek te gebruiken.
Aanbevolen:
LEGO WALL-E met Micro:bit: 8 stappen (met afbeeldingen)
LEGO WALL-E Met Micro:bit: we gebruiken een micro:bit samen met een LEGO-vriendelijk bitbord om de twee servomotoren te besturen waarmee WALL-E het gevaarlijke terrein van uw woonkamervloer kan doorkruisen .Voor de code gebruiken we Microsoft MakeCode, een blo
Coronavirus EXTER-MI-NATION Met Micro:bit en Daleks: 4 stappen (met afbeeldingen)
Coronavirus EXTER-MI-NATION Met Micro:bit en Daleks: dit is een tweede project in een serie over coronavirusbescherming van TinkerGen. Het eerste artikel vind je hier. We zijn er vast van overtuigd dat met de collectieve inspanningen van de mensheid, de huidige epidemie spoedig zal eindigen. Maar zelfs nadat COVID-19 voorbij is
Network Rivalry: een spel met lage latentie voor de BBC Micro:bit: 10 stappen (met afbeeldingen)
Netwerkrivaliteit: een spel met lage latentie voor de BBC Micro:bit: In deze tutorial leg ik uit hoe je een basisspel voor meerdere spelers op de BBC micro:bit implementeert met de volgende kenmerken: Een eenvoudige interface Lage latentie tussen het indrukken van knoppen en schermupdates Een flexibel aantal deelnemers Gemakkelijk co
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e