INHOUDSOPGAWE:

Retro klankskyf met 'n Arduino - die SAA1099: 16 stappe (met foto's)
Retro klankskyf met 'n Arduino - die SAA1099: 16 stappe (met foto's)

Video: Retro klankskyf met 'n Arduino - die SAA1099: 16 stappe (met foto's)

Video: Retro klankskyf met 'n Arduino - die SAA1099: 16 stappe (met foto's)
Video: YM2413 op Arduino Uno 2024, November
Anonim
Image
Image
Bedrading - SAA1099
Bedrading - SAA1099

In hierdie instruksies sal ek jou wys hoe om 'n Arduino Uno met 'n vintage klanksintese -chip te gebruik om midi -lêers in vierkantige golwende goed te speel!

Kyk na die video hierbo as u net 'n vinnige oorsig wil hê van wat hierdie projek doen. Andersins, gaan voort!

Stap 1: Video

Image
Image

As u al u instruksies in duidelike, bondige video's verkies, het ons u gedek!

Vir die res van ons kan u voortgaan met 'n bietjie meer detail en skriftelike instruksies.

Stap 2: Onderdele en materiaal

Hiervoor benodig u hierdie dinge:

(Die skakels is vir eBay -items)

  • 'N Arduino (Uno, Nano, Leonardo, hulle behoort almal te werk)
  • Ten minste 'n mediumgrootte broodbord
  • Die SAA1099 Stereo Sound Generator -chip
  • Brooddraaddraaddraad (Alternatiewelik hou ek daarvan om dupont-vroulike tot vroulike springers te gebruik, met 20 mm-koppenne aan weerskante geplaas- baie stewiger)
  • 8Mhz TTL -ossillator (AliExpress -skakel soos verskaf deur zweigelt)
  • Stereo (of mono) klankaansluiting
  • 2 x 1K weerstande (lot van 100)
  • 1 x 10K weerstand (lot van 50)
  • 2 x 100pF -kondensators
  • (Opsioneel) Sommige LED's, ten minste 1 (enige kleur, hier is 100 verskillende kleure vir 'n dollar!)

Die totale koste is $ 23,25, ingesluit gestuur, met behulp van die skakels. Die meeste daarvan kom natuurlik halfpad regoor die wêreld, so die aflewering duur gewoonlik ongeveer 'n maand. As u vinniger gestuur wil hê, moet u waarskynlik 'n bietjie meer betaal.

Stap 3: Bedrading - SAA1099

Bedrading - SAA1099
Bedrading - SAA1099
Bedrading - SAA1099
Bedrading - SAA1099

As skematika jou ding is, kom maar! Die res van ons kan óf stap vir stap deurloop, óf na die video kyk.

  • Plaas die SAA1099 aan die einde van die broodbord, met die kerf op die chip na die einde.
  • Nou, krag. VDD (pen 18) op die SAA1099 gaan aan, en pen VSS (pen 9) na die grond.
  • Plaas 'n draad tussen CS (pen 2) en grond om dit laag te hou

Ek beveel ook aan om die datablad wat ek aangeheg het, te bekyk.

Stap 4: Bedrading - TTL -ossillator

Bedrading - TTL -ossillator
Bedrading - TTL -ossillator
Bedrading - TTL -ossillator
Bedrading - TTL -ossillator
  • Ons plaas die TTL -ossillator op die broodbord langs die broodbord, sodat die klokuitsetpen die naaste aan die klokinvoer op die SAA1099 is (pen 8)
  • U kan voortgaan en krag en grond aan die TTL -ossillator koppel. (Ek het tot later in my video gewag, so ek het nie 'n prentjie nie). Die foto hierbo toon watter penne is.

Stap 5: Bedrading - Iref en Chip -koppelvlak

Bedrading - Iref en Chip -koppelvlak
Bedrading - Iref en Chip -koppelvlak
Bedrading - Iref en Chip -koppelvlak
Bedrading - Iref en Chip -koppelvlak
  • Koppel die 10K -weerstand tussen Iref (pen 6) en 5V.
  • Koppel digitale pen 8 aan WR (pen 1) op die SAA1099.
  • Koppel digitale pen 9 aan A0 (pen 3) op die SAA1099.

Stap 6: Bedrading - Klankonderdele

Bedrading - Klankonderdele
Bedrading - Klankonderdele
Bedrading - Klankonderdele
Bedrading - Klankonderdele
Bedrading - Klankonderdele
Bedrading - Klankonderdele
  • Koppel 'n 100pF -kondensator tussen OUTR (pen 4) en GND
  • Koppel 'n 1K -weerstand tussen OUTR (pen 4) en 5V
  • Ons sal dieselfde doen vir OUTL (pen 5)
  • Koppel 'n 100pF -kondensator tussen OUTL (pen 5) en GND
  • Koppel 'n 1K -weerstand tussen OUTL (pen 5) en 5V

Let wel! Maak seker dat nie een van die drade van die weerstande/kapasitors raak nie, anders werk dinge nie en kan dit (voorlopig) in u gesig opblaas.

Stap 7: Bedrading - Audio Jack

Bedrading - Audio Jack
Bedrading - Audio Jack
Bedrading - Audio Jack
Bedrading - Audio Jack
Bedrading - Audio Jack
Bedrading - Audio Jack
  • Koppel 'n klein draad tussen 5V en 'n leë ry op die broodbord.
  • Plaas u klankaansluiting sodat die trui van 5V aansluit by die "mou" -pen op die klankaansluiting
  • Koppel die L en R (of klankpen, as u 'n Mono -aansluiting het) aan die OUTL (pen 5) en OUTR (pen 4) se penne op onderskeidelik die SAA1099.

Let wel! Op Mono -klankaansluitings maak dit regtig nie saak wat daar gebeur nie, solank 'n pen aan 5V gekoppel is, en een aan OUTL of OUTR. Dit sal netjies klink. Tensy dit nie die geval is nie, kan u in elk geval die bedrading weer ondersoek.

Stap 8: Bedrading - Krag na broodpaneel

Bedrading - Krag na broodpaneel
Bedrading - Krag na broodpaneel
Bedrading - Krag na broodpaneel
Bedrading - Krag na broodpaneel
  • Verbind beide kante van die Breadboard -kragbus met behulp van jumperdrade.
  • Koppel die een kant aan die 5V- en GND -penne op die Arduino, en maak seker dat u die drade nêrens gemeng het nie. As u dit gedoen het, kan die magiese rook ontsnap.

Stap 9: Bedrading - Data lyne

Bedrading - Data lyne
Bedrading - Data lyne

Koppel D0 tot en met D7 op die Arduino aan D0 (pen 10) tot en met D7 (pen 17) op die SAA1099, in volgorde

Ek vind dat DuPont vroulike-vroulike trui drade, met 15-20MM kopstukke aan weerskante, baie beter werk as die man-man dupont drade. Boonop kan u dit ook as vroulik of vroulik gebruik. Albei kan maklik in groot hoeveelhede op eBay gevind word, vir klein hoeveelhede verandering. 'N Goeie Kersgeskenk vir die aspirant -Arduino -junkie!

Stap 10: Opsionele LED (s)

Opsionele LED (s)
Opsionele LED (s)
Opsionele LED (s)
Opsionele LED (s)

Ek sal nie stap vir stap gaan oor hoe om alles hier te bou nie, maar daar is verskeie goeie plekke om LED's by te voeg. Eerstens het ek 'n 3 mm rooi LED tussen WR (pen 1) en GND verbind, om elke keer te wys dat die Arduino 'n opdrag na die SAA1099 stuur.

Ek het ook al voorheen LED's aan die data lyne gekoppel, waarmee u die werklike binêre data op elke reël kan sien. Ek het hierdie opstelling gebruik in my video "Arduino en SAA1099 - Vuurvliegies", asook nog 6 LED's en 'n paar ekstra kode om elke LED vir elke aktiewe kanaal aan te steek.

Hoe meer LED's, hoe koeler lyk dit!

Stap 11: Kodeer

Kode!
Kode!
Kode!
Kode!

Noudat u die kring gebou het, moet u die verbindings nagaan! U wil nie u duur arduino en Soundchip opblaas nie! (As jy dit doen, wel. Dit is nie my saak nie)

As ons verstandig is en alles nagegaan het, kan ons dit begin programmeer.

  • Die biblioteek is op
  • U wil die SAATunes.zip -lêer hê, en laai dit af.
  • Maak nou die Arduino IDE oop.
  • Onder "Skets", "Sluit biblioteek in", klik op "Voeg.zip -biblioteek by"
  • Gaan na waar u ook al die SAATunes -biblioteek afgelaai het. (Dit gee nie om of dit jou lessenaar, aflaai of lêer is nie (vind iets verleentheid)- vind dit net)
  • Kies dit en klik op "Open"
  • Dit moet u vertel dat dit by u biblioteke gevoeg is.

Stap 12: Toets dit

Toets dit!
Toets dit!
Toets dit!
Toets dit!
  • Maak die voorbeeld SAATunes-program oop onder "File", "Voorbeelde", "SAATunes", "SAATunes-Uno".
  • Koppel jou Arduino aan op die rekenaar en in 'n luidspreker.
  • Laai die program op na die Arduino.

U behoort 'n akkoord te hoor, dan Beethoven's Rage oor 'n verlore sent. As Klassiek nie u ding is nie, moenie bang wees nie, want ons sal binnekort leer hoe om MIDI -lêers van ons eie keuse daarmee te gebruik.

As u niks hoor nie, kyk na 'n paar dinge: Eerstens, is u luidspreker aan? Draai dit heeltemal op. Is die arduino dan regtig aan? Het die program korrek opgelaai? Kontroleer al die bedrading met die skematiese en datablad, en probeer dan weer.

Stap 13: Gebruik u eie MIDI -lêers - omskakelingsprogram

Gebruik u eie MIDI -lêers - omskakelingsprogram
Gebruik u eie MIDI -lêers - omskakelingsprogram

Klaar om iets anders as Beethoven te probeer? Baie goed, hier gaan jy.

Om MIDI -lêers na C ++ Bytestreams om te skakel, benodig ons 'n program van Len Shustek. Hy is die skepper van die biblioteek waarop ek my kode afgemaak het, en my biblioteek gebruik dieselfde bystroom -formaat wat hy doen.

  • U kan die program vind op
  • Die program wat u wil hê, is "miditones.exe". Laai dit af.

Stap 14: Omskakeling van MIDI -lêers

Omskakeling van MIDI -lêers
Omskakeling van MIDI -lêers
Omskakeling van MIDI -lêers
Omskakeling van MIDI -lêers
Omskakeling van MIDI -lêers
Omskakeling van MIDI -lêers

Waarskuwing! Hier is ascii jakkalse! Miskien vind u dit makliker om na die video te kyk, waar u presies kan sien waaroor ek praat. As u dit waag om in te gaan, gaan dan voort!

Om die omskakelingsprogram MIDI na Bytestream te gebruik, moet u 'n opdragvenster oopmaak. Jammer Mac- en Linux -gebruikers, u sal moontlik 'n oplossing moet vind.

  • Maak die beginkieslys oop en tik "CMD" en druk op enter.
  • Ons gaan nou 'n bietjie MS-DOS-magie leer. Gebruik die "CD" -opdrag en gaan na waarheen u die "miditones.exe" -lêer afgelaai het. In die meeste gevalle is die opdragte 'cd -aflaai'.
  • Begin die "miditones.exe" -program deur "miditones" te tik. Dit moet u 'n hulplys wys met die mees algemene opdragte.

Nou moet ons 'n MIDI -lêer omskakel. Soek een iewers op die interwebs, verkieslik sonder perkussie of spesiale effekte behalwe instellings/snelheid. (As u nie weet wat dit is nie, moenie bekommerd wees nie, dit sal goed gaan)

  • Laai u MIDI -lêer af op dieselfde plek waar u die 'miditones' -program het.
  • Tik nou "miditones -d -v [lêernaam]" met die opdragpromptvenster (vervang [lêernaam] met die naam van u MIDI -lêer).
  • miditones sal 'n. C lêer genereer met die C ++ bytestream in dieselfde gids, met dieselfde naam as die MIDI lêer.

Stap 15: Gebruik u omgeskakelde MIDI -lêer

Gebruik u omgeskakelde MIDI -lêer
Gebruik u omgeskakelde MIDI -lêer
Gebruik u omgeskakelde MIDI -lêer
Gebruik u omgeskakelde MIDI -lêer
Gebruik u omgeskakelde MIDI -lêer
Gebruik u omgeskakelde MIDI -lêer

Noudat u u MIDI -lêer omskep het, laat ons dit in klein grepe na die arduino voer!

  • Gestel u het reeds die SAATunes-Uno-voorbeeld oop, laat ons maar iets anders stoor, sodat ons dit kan wysig.
  • Sodra u dit gestoor het, klik op die klein pyltjie -ikoon in die regter boonste hoek.
  • Klik op "nuwe oortjie" en noem dit "[naam].h" (Vervang [naam] met die naam van u MIDI -liedjie, of wat u ook al wil)
  • Maak nou die. C -lêer oop wat die miditones vroeër geskep het. U kan die notaboek gebruik om dit oop te maak.
  • Gebruik CNTRL/A om alles te kies en kopieer dit dan.
  • Plak dit in u nuwe "[naam].h" -oortjie in die arduino -redakteur.

Alles is goed hier, dus laat ons terugkeer na die program.

  • Vind waar dit staan "#include" RagePenny.h "", en kopieer/plak dit op 'n nuwe reël hieronder.
  • Verander die 'RagePenny.h' na wat u ook al u nuwe lêer genoem het.
  • Lewer nou kommentaar op die "#include" RagePenny.h "" deur twee skuinsstrepe (//) voor te voeg.
  • Laai die program op!

As alles goed verloop, moet u u eie MIDI -lêer speel. As dit nie die geval is nie, moet u seker maak dat die name van die nuwe oortjie en die naam wat u in die '#include' RagePenny.h '' dieselfde is. Gaan die ander stappe na en maak seker dat u alles reg gedoen het. Sommige MIDI -lêers werk eenvoudig nie, maar dit is skaars.

Stap 16: Fin

Fin!
Fin!

Hopelik het dit goed gegaan met u, en loop u uit na MIDI -lêers met 'n ou tegnologie wat nuwe lewe gegee het!

As u dit egter nie doen nie, moenie moed opgee nie! Stuur 'n opmerking na my toe, en ek help u graag. U kan my natuurlik voorstelle gee in die kommentaar.

Gelukkige chiptunes!

Aanbeveel: