Indholdsfortegnelse:

Retro lydchip med en Arduino - SAA1099: 16 trin (med billeder)
Retro lydchip med en Arduino - SAA1099: 16 trin (med billeder)

Video: Retro lydchip med en Arduino - SAA1099: 16 trin (med billeder)

Video: Retro lydchip med en Arduino - SAA1099: 16 trin (med billeder)
Video: Upgrading a Casio MX-10: Part 1 2024, November
Anonim
Image
Image
Ledninger - SAA1099
Ledninger - SAA1099

I denne instruktive vil jeg vise dig, hvordan du bruger en Arduino Uno med en vintage lydsyntesechip, til at afspille midifiler i firkantet bølget godhed!

Hvis du bare vil have et hurtigt overblik over, hvad dette projekt gør, kan du se ovenstående video. Ellers fortsæt!

Trin 1: Video

Image
Image

Hvis du foretrækker alle dine instruktioner i klare, præcise videoer, har vi dækket dig!

For os andre kan du fortsætte, lidt mere detaljeret og skriftlige instruktioner.

Trin 2: Dele og materialer

Til dette skal du bruge disse ting:

(Linkene er til eBay -varer)

  • En Arduino (Uno, Nano, Leonardo, de burde alle arbejde)
  • I hvert fald et mellemstort brødbræt
  • SAA1099 Stereo Sound Generator -chip
  • Breadboard jumperwires (Alternativt kan jeg godt lide at bruge dupont hun til hun jumpere, med 20 mm headerstifter indsat i hver ende- Meget mere robust)
  • 8Mhz TTL Oscillator (AliExpress link som leveret af zweigelt)
  • Stereo (eller mono) lydstik
  • 2 x 1K modstande (lot på 100)
  • 1 x 10K modstand (parti med 50)
  • 2 x 100pF kondensatorer
  • (Valgfrit) Nogle lysdioder, mindst 1 (enhver farve, her er 100 forskellige farver for en dollar!)

Ved hjælp af de medfølgende links er den samlede pris $ 23,25 inklusive forsendelse. Selvfølgelig kommer det meste fra halvvejs i hele verden, så forsendelse tager normalt omkring en måned. Hvis du vil have hurtigere forsendelse, skal du sandsynligvis betale lidt mere.

Trin 3: Ledningsføring - SAA1099

Ledninger - SAA1099
Ledninger - SAA1099
Ledninger - SAA1099
Ledninger - SAA1099

Hvis skemaer er din ting, så skal du gå! Vi andre kan enten gå trin for trin igennem eller se videoen.

  • Placer SAA1099 for enden af brødbrættet, med hakket på chippen mod enden.
  • Nu, magt. VDD (pin 18) på SAA1099 går til strøm, derefter pin VSS (pin 9) til jorden.
  • Sæt derefter en ledning mellem CS (pin 2) og jord, for at holde den trukket lavt

Jeg vil også anbefale at tage et kig på databladet, som jeg har vedhæftet.

Trin 4: Ledningsføring - TTL -oscillator

Ledninger - TTL Oscillator
Ledninger - TTL Oscillator
Ledninger - TTL Oscillator
Ledninger - TTL Oscillator
  • Vi sætter TTL -oscillatoren på brødbrættet ved siden af brødbrættet, så urudgangsstiften er tættest på urindgangen på SAA1099 (Pin 8)
  • Du kan fortsætte med at tilslutte strøm og jord til TTL -oscillatoren. (Jeg ventede til senere i min video, så jeg har ikke et billede). Ovenstående billede viser hvilke stifter der er hvilke.

Trin 5: Ledningsføring - Iref og Chip -grænseflade

Ledningsføring - Iref og Chip Interface
Ledningsføring - Iref og Chip Interface
Ledningsføring - Iref og Chip Interface
Ledningsføring - Iref og Chip Interface
  • Tilslut 10K modstanden mellem Iref (pin 6) og 5V.
  • Tilslut digital pin 8 til WR (pin 1) på SAA1099.
  • Tilslut digital pin 9 til A0 (pin 3) på SAA1099.

Trin 6: Kabelføring - lydkomponenter

Kabelføring - lydkomponenter
Kabelføring - lydkomponenter
Kabelføring - lydkomponenter
Kabelføring - lydkomponenter
Kabelføring - lydkomponenter
Kabelføring - lydkomponenter
  • Tilslut en 100pF kondensator mellem OUTR (pin 4) og GND
  • Tilslut en 1K modstand mellem OUTR (pin 4) og 5V
  • Vi gør det samme for OUTL (pin 5)
  • Tilslut en 100pF kondensator mellem OUTL (pin 5) og GND
  • Tilslut en 1K modstand mellem OUTL (pin 5) og 5V

Bemærk! Sørg for, at ingen af ledningerne fra modstandene/kondensatorerne rører, ellers fungerer ting ikke og kan (foreløbig) potentielt sprænge i dit ansigt.

Trin 7: Ledningsføring - lydstik

Ledningsføring - lydstik
Ledningsføring - lydstik
Ledningsføring - lydstik
Ledningsføring - lydstik
Ledningsføring - lydstik
Ledningsføring - lydstik
  • Tilslut en lille jumperledning mellem 5V og en tom række på brødbrættet.
  • Placer dit lydstik, så jumperen fra 5V forbinder til "Sleeve" -stiften på lydstikket
  • Tilslut L og R (eller lydstift, hvis du har et Mono -stik) til henholdsvis OUTL (pin 5) og OUTR (pin 4) på SAA1099.

Bemærk! På Mono -lydstik er det virkelig ligegyldigt, hvad der foregår, så længe en pin forbindes til 5V, og en til OUTL eller OUTR. Det lyder helt fint. Medmindre det ikke gør det, kan du i så fald kontrollere din ledning igen.

Trin 8: Kabelføring - Strøm til brødbræt

Kabelføring - Strøm til brødbræt
Kabelføring - Strøm til brødbræt
Kabelføring - Strøm til brødbræt
Kabelføring - Strøm til brødbræt
  • Tilslut begge sider af Breadboard powerbussen til hinanden ved hjælp af jumperwires.
  • Tilslut den ene side til 5V- og GND -benene på Arduino, og sørg for, at du ikke har blandet ledningerne op nogen steder. Hvis du gjorde det, kan den magiske røg slippe ud.

Trin 9: Kabelføring - datalinjer

Kabelføring - datalinjer
Kabelføring - datalinjer

Tilslut D0 til D7 på Arduino til D0 (pin 10) til D7 (pin 17) på SAA1099, i rækkefølge

Jeg finder ud af, at DuPont hun-hun-jumper-tråde, med 15-20MM headerstifter i hver ende, fungerer meget bedre end han-han-dupont-ledningerne. Plus du kan også bruge dem som kvinde-kvinde eller mand-kvinde. Begge findes let på eBay i store mængder, til små ændringer. En god julegave til den håbefulde Arduino -junkie!

Trin 10: Valgfri LED (er)

Valgfri LED (er)
Valgfri LED (er)
Valgfri LED (er)
Valgfri LED (er)

Jeg vil ikke gå trin for trin over, hvordan man bygger alt her, men der er flere gode steder at tilføje lysdioder. Først og fremmest tilsluttede jeg en 3 mm rød LED mellem WR (pin 1) og GND, for at vise hver gang Arduino sender en kommando til SAA1099.

Jeg har også før forbundet LED'er til datalinjerne, hvilket giver dig mulighed for at se de faktiske binære data på hver linje. Jeg brugte denne opsætning i min "Arduino og SAA1099 - Fireflies" video, samt 6 flere lysdioder og lidt ekstra kode til at tænde hver LED for hver kanal, der var aktiv.

Jo flere lysdioder, jo køligere ser det ud!

Trin 11: Kode

Kode!
Kode!
Kode!
Kode!

Nu hvor du har bygget kredsløbet, skal du dobbelttjekke forbindelserne! Du vil ikke sprænge din dyre arduino og Soundchip! (Hvis du gør det, ja. Det er ikke min sag)

Forudsat at du er fornuftig og har kontrolleret alt, kan vi begynde at programmere det.

  • Biblioteket er på
  • Du vil have SAATunes.zip -filen, så fortsæt og download den.
  • Åbn nu Arduino IDE.
  • Klik på "Tilføj.zip -bibliotek" under "Skitse", "Inkluder bibliotek".
  • Naviger til det sted, hvor du downloadede SAATunes -biblioteket. (Jeg er ligeglad med, om det var dit skrivebord, downloads eller (indsæt noget pinligt) mappe- Find det bare)
  • Vælg det, og klik på "Åbn"
  • Det skulle fortælle dig, at det er blevet føjet til dine biblioteker.

Trin 12: Test det

Test det!
Test det!
Test det!
Test det!
  • Åbn eksempelet SAATunes-program under "Fil", "Eksempler", "SAATunes", "SAATunes-Uno".
  • Slut din Arduino til computeren og til en slags højttaler.
  • Upload programmet til Arduino.

Du burde høre en akkord, derefter Beethovens vrede over en tabt krone. Hvis Klassisk ikke er din ting, skal du ikke være bange, for vi lærer snart, hvordan vi bruger MIDI -filer efter eget valg med det.

Hvis du ikke hører noget, skal du kontrollere et par ting: Først er din højttaler tændt? Vend det helt op. Så er arduinoen virkelig tændt? Uploadede programmet korrekt? Kontroller alle ledninger med skematisk og datablad, og prøv derefter igen.

Trin 13: Brug af dine egne MIDI -filer - konverteringsprogram

Brug af dine egne MIDI -filer - konverteringsprogram
Brug af dine egne MIDI -filer - konverteringsprogram

Klar til at prøve noget andet end Beethoven? Godt, her går du.

For at konvertere MIDI -filer til C ++ Bytestreams skal vi bruge et program af Len Shustek. Han er skaberen af biblioteket, jeg baserede min kode på, og mit bibliotek bruger det samme bytestream -format, som han gør.

  • Du kan finde programmet på
  • Det program, du ønsker, er "miditones.exe". Fortsæt og download det.

Trin 14: Konvertering af MIDI -filer

Konvertering af MIDI -filer
Konvertering af MIDI -filer
Konvertering af MIDI -filer
Konvertering af MIDI -filer
Konvertering af MIDI -filer
Konvertering af MIDI -filer

Advarsel! Her er der ascii -drager! Du finder det måske lettere at se videoen, hvor du kan se præcis, hvad jeg taler om. Hvis du tør komme ind, så fortsæt!

For at bruge konverteringsprogrammet MIDI til Bytestream skal du åbne et kommandopromptvindue. Beklager Mac- og Linux -brugere, du skal muligvis finde en løsning.

  • Åbn startmenuen, og skriv "CMD", og tryk derefter på enter.
  • Vi skal lære lidt MS-DOS magi nu. Brug kommandoen "CD" til at navigere til det sted, hvor du downloadede filen "miditones.exe". I de fleste tilfælde vil kommandoerne være "cd -downloads".
  • Kør programmet "miditones.exe" ved at skrive "miditones". Det skulle vise dig en hjælpeliste, der viser de mest almindelige kommandoer.

Nu skal vi bruge en MIDI -fil til at konvertere. Find et sted på interwebs, helst uden slagtøj eller specielle effekter udover insturments/hastighed. (Hvis du ikke ved, hvad det er, skal du ikke bekymre dig, det går godt)

  • Download din MIDI -fil det samme sted, hvor du har "miditones" -programmet.
  • Brug nu kommandopromptvinduet til at skrive "miditones -d -v [filnavn]" (Erstat [filnavn] med hvad navnet på din MIDI -fil er).
  • miditones vil generere en. C -fil med C ++ bytestream i den samme mappe, med samme navn som MIDI -filen.

Trin 15: Brug af din konverterede MIDI -fil

Brug af din konverterede MIDI -fil
Brug af din konverterede MIDI -fil
Brug af din konverterede MIDI -fil
Brug af din konverterede MIDI -fil
Brug af din konverterede MIDI -fil
Brug af din konverterede MIDI -fil

Nu hvor du har konverteret din MIDI -fil, lad os fodre den i små bytes til arduinoen!

  • Forudsat at du allerede har SAATunes-Uno-eksemplet åbent, lad os gå videre og "gemme som" noget andet, så vi kan redigere det.
  • Når du har gemt det, skal du klikke på det lille "pil ned" -ikon i øverste højre hjørne.
  • Klik på "ny fane", og navngiv det "[navn].h" (Erstat [navn] med navnet på din MIDI -sang, eller hvad du nu vil)
  • Åbn nu. C -filen, som miditones oprettede tidligere. Du kan bruge notesblok til at åbne den.
  • Brug CNTRL/A til at vælge alt, og kopier det derefter.
  • Indsæt det i din nye "[navn].h" fane i arduino -editoren.

Alt er godt her, så lad os vende tilbage til programmet.

  • Find, hvor der står "#include" RagePenny.h "", og kopier/indsæt det på en ny linje herunder.
  • Skift "RagePenny.h" til hvad du har navngivet din nye fil.
  • Kommenter nu "#include" RagePenny.h "" ved at tilføje to skråstreger (//) foran den.
  • Upload programmet!

Hvis alt gik godt, skulle det afspille din egen MIDI -fil. Hvis ikke, skal du kontrollere igen for at sikre, at navnene på den nye fane og det navn, du ændrede i "#include" RagePenny.h "" er de samme. Kontroller de andre trin, og sørg for, at du gjorde alt rigtigt. Nogle MIDI -filer virker bare ikke, men de er sjældne.

Trin 16: Fin

Fin!
Fin!

Forhåbentlig er alt gået godt med dig, og du jammer ud til MIDI -filer på et gammelt stykke teknologi givet nyt liv!

Men hvis du ikke er det, skal du ikke give op! Send en kommentar på min måde, så hjælper jeg gerne. Selvfølgelig er du velkommen til at give mig forslag i kommentarerne.

Glade chiptunes!

Anbefalede: