Taula de continguts:

Xip de so retro amb un Arduino: el SAA1099: 16 passos (amb imatges)
Xip de so retro amb un Arduino: el SAA1099: 16 passos (amb imatges)

Vídeo: Xip de so retro amb un Arduino: el SAA1099: 16 passos (amb imatges)

Vídeo: Xip de so retro amb un Arduino: el SAA1099: 16 passos (amb imatges)
Vídeo: Ai robots taking over ping pong 👀 #shorts 2024, De novembre
Anonim
Image
Image
Cablejat - SAA1099
Cablejat - SAA1099

En aquest instructiu, us mostraré com utilitzar un Arduino Uno amb un xip de síntesi de so vintage, per reproduir fitxers midi amb una bondat quadrada.

Si només voleu una visió general ràpida del que fa aquest projecte, mireu el vídeo anterior. En cas contrari, continueu endavant.

Pas 1: vídeo

Image
Image

Si prefereixes totes les teves instruccions en vídeos clars i concisos, t’oferim cobertura.

Per a la resta de nosaltres, podeu continuar, per obtenir una mica més de detall, i instruccions per escrit.

Pas 2: peces i materials

Per a això, necessitareu aquestes coses:

(Els enllaços són per a articles d'eBay)

  • Un Arduino (Uno, Nano, Leonardo, tots haurien de funcionar)
  • Com a mínim una taula de treball de mida mitjana
  • El xip SAA1099 Stereo Sound Generator
  • Cables de pont de taulers de pa (alternativament, m'agrada utilitzar ponts femella a femella dupont, amb passadors de capçalera de 20 mm inserits als dos extrems, molt més resistents)
  • Oscil·lador TTL de 8Mhz (enllaç AliExpress proporcionat per zweigelt)
  • Jack d’àudio estèreo (o mono)
  • 2 x 1K resistències (lot de 100)
  • 1 x 10K resistència (lot de 50)
  • 2 x condensadors de 100pF
  • (Opcional) Alguns LED, almenys 1 (Qualsevol color, aquí teniu 100 colors variats per un dòlar).

Mitjançant els enllaços proporcionats, el cost total és de 23,25 $, inclòs l’enviament. Per descomptat, la majoria prové de mig món, de manera que l’enviament sol trigar aproximadament un mes. Si voleu un enviament més ràpid, probablement haureu de pagar una mica més.

Pas 3: Cablatge: SAA1099

Cablejat - SAA1099
Cablejat - SAA1099
Cablejat - SAA1099
Cablejat - SAA1099

Si l’esquema és el vostre, aquí teniu! La resta de nosaltres podem fer el pas a pas o veure el vídeo.

  • Col·loqueu el SAA1099 al final de la taula de treball, amb la osca del xip cap al final.
  • Ara, poder. El VDD (pin 18) del SAA1099 s’encén i, a continuació, el pin VSS (pin 9) a terra.
  • A continuació, poseu un cable entre CS (pin 2) i terra, perquè es mantingui baix

També recomanaria fer una ullada al full de dades que he adjuntat.

Pas 4: Cablatge: oscil·lador TTL

Cablatge - Oscil·lador TTL
Cablatge - Oscil·lador TTL
Cablatge - Oscil·lador TTL
Cablatge - Oscil·lador TTL
  • Posarem l’oscil·lador TTL a la taula de suport al costat de la taula de treball, de manera que el pin de sortida del rellotge sigui el més proper a l’entrada del rellotge del SAA1099 (Pin 8)
  • Podeu avançar i connectar l’alimentació i la terra a l’oscil·lador TTL. (Vaig esperar més tard al meu vídeo, així que no tinc cap foto). La imatge superior mostra quins pins són quins.

Pas 5: Cablatge: interfície Iref i xip

Cablejat: interfície Iref i Xip
Cablejat: interfície Iref i Xip
Cablejat: interfície Iref i Xip
Cablejat: interfície Iref i Xip
  • Connecteu la resistència de 10K entre Iref (pin 6) i 5V.
  • Connecteu el pin digital 8 a WR (pin 1) al SAA1099.
  • Connecteu el pin digital 9 a A0 (pin 3) al SAA1099.

Pas 6: Cablejat - Components de so

Cablejat - Components de so
Cablejat - Components de so
Cablejat - Components de so
Cablejat - Components de so
Cablejat - Components de so
Cablejat - Components de so
  • Connecteu un condensador de 100pF entre OUTR (pin 4) i GND
  • Connecteu una resistència de 1K entre OUTR (pin 4) i 5V
  • Farem el mateix per OUTL (pin 5)
  • Connecteu un condensador de 100pF entre OUTL (pin 5) i GND
  • Connecteu una resistència de 1K entre OUTL (pin 5) i 5V

Nota! Assegureu-vos que cap dels cables de les resistències / condensadors es toqui; en cas contrari, les coses no funcionaran i, potencialment, us podrien explotar a la cara.

Pas 7: Cablejat: presa d'àudio

Cablejat: presa d'àudio
Cablejat: presa d'àudio
Cablejat: presa d'àudio
Cablejat: presa d'àudio
Cablejat: presa d'àudio
Cablejat: presa d'àudio
  • Connecteu un petit cable de pont entre 5V i una fila buida a la taula de suport.
  • Col·loqueu la presa d'àudio de manera que el pont de 5V es connecti al pin "Sleeve" de la presa d'àudio
  • Connecteu els pins L i R (O pin d'àudio, si teniu un connector Mono) als pins OUTL (pin 5) i OUTR (pin 4) del SAA1099, respectivament.

Nota! A les preses d’àudio Mono, realment no importa què passin, sempre que es connecti un pin a 5 V i un altre a OUTL o OUTR. Sonarà molt bé. Tret que no ho faci, en aquest cas us recomanem que torneu a comprovar el cablejat.

Pas 8: Cablejat: alimentació de la placa de pa

Cablejat: alimentació a la placa de pa
Cablejat: alimentació a la placa de pa
Cablatge: alimentació de la placa de pa
Cablatge: alimentació de la placa de pa
  • Connecteu els dos costats del bus d'alimentació de la placa de pa entre si, mitjançant cables de pont.
  • Connecteu una cara als pins de 5V i GND de l'Arduino, assegurant-vos que no heu barrejat els cables enlloc. Si ho feu, el fum màgic pot escapar.

Pas 9: Cablejat: línies de dades

Cablejat: línies de dades
Cablejat: línies de dades

Connecteu D0 a D7 a l'Arduino a D0 (pin 10) a D7 (pin 17) al SAA1099, per ordre

Em sembla que els cables jumper DuPont femella-femella, amb pins de capçalera de 15-20 MM a cada extrem, funcionen molt millor que els cables dupont home-home. A més, també podeu utilitzar-los com a dona-dona o home-dona. Tots dos es poden trobar fàcilment a eBay en grans quantitats, per a petites quantitats de canvis. Un bon regal de Nadal per a l’aspirant droguer d’Arduino.

Pas 10: LED opcionals

LED opcionals
LED opcionals
LED opcionals
LED opcionals

No examinaré pas a pas com construir tot aquí, però hi ha diversos bons llocs per afegir LEDs. Primer de tot, vaig connectar un LED vermell de 3 mm entre WR (pin 1) i GND, per mostrar cada vegada que Arduino envia una ordre al SAA1099.

També he connectat LEDs a les línies de dades abans, cosa que us permet veure les dades binàries reals de cada línia. He utilitzat aquesta configuració al meu vídeo "Arduino i SAA1099 - Fireflies", a més de 6 LED més i algun codi addicional per il·luminar cada LED de cada canal que estava actiu.

Com més LED, més fresc es veu!

Pas 11: Codi

Codi!
Codi!
Codi!
Codi!

Ara que ja heu construït el circuit, reviseu les connexions. No voleu explotar el vostre car arduino i Soundchip. (Si ho fas, bé. Això no és cosa meva)

Suposant que esteu sanejat i ho heu comprovat tot, podem començar a programar-lo.

  • La biblioteca es troba a
  • Voldreu el fitxer SAATunes.zip, així que continueu i descarregueu-lo.
  • Ara, obriu l'IDE Arduino.
  • A "Esbós", "Inclou biblioteca", feu clic a "Afegeix una biblioteca.zip"
  • Aneu a qualsevol lloc on hàgiu descarregat la biblioteca SAATunes. (No m'importa si era el vostre escriptori, descàrregues o carpeta (inseriu alguna cosa vergonyosa): només cal que la trobeu)
  • Seleccioneu-lo i feu clic a "Obre"
  • Us hauria de dir que s’ha afegit a les vostres biblioteques.

Pas 12: proveu-ho

Prova-ho!
Prova-ho!
Prova-ho!
Prova-ho!
  • Obriu l'exemple de programa SAATunes a "Fitxer", "Exemples", "SAATunes", "SAATunes-Uno".
  • Connecteu el vostre Arduino a l’ordinador i a un altaveu d’alguna mena.
  • Pengeu el programa a l'Arduino.

Hauríeu d’escoltar un acord, després la ràbia de Beethoven per un cèntim perdut. Si Classical no és el vostre, no tingueu por, ja que en breu aprendrem a utilitzar fitxers MIDI de la nostra elecció.

Si no sentiu res, comproveu algunes coses: primer, el vostre altaveu està activat? Gireu-lo tot amunt. Aleshores, l’arduino està realment encès? El programa s’ha penjat correctament? Comproveu tot el cablejat amb el full de dades i el diagrama de dades, i torneu-ho a provar.

Pas 13: utilitzar els vostres propis fitxers MIDI: programa de conversió

Ús dels vostres propis fitxers MIDI: programa de conversió
Ús dels vostres propis fitxers MIDI: programa de conversió

Esteu a punt per provar alguna cosa que no sigui Beethoven? Molt bé, aquí teniu.

Per convertir fitxers MIDI a C ++ Bytestreams, necessitarem un programa de Len Shustek. Ell és el creador de la biblioteca que he basat el meu codi i la meva biblioteca utilitza el mateix format bytestream que el seu.

  • Podeu trobar el programa a
  • El programa que voleu és "miditones.exe". Endavant i descarregueu-ho.

Pas 14: convertir fitxers MIDI

Conversió de fitxers MIDI
Conversió de fitxers MIDI
Conversió de fitxers MIDI
Conversió de fitxers MIDI
Conversió de fitxers MIDI
Conversió de fitxers MIDI

Atenció! Aquí hi ha dracs ascii! És possible que sigui més fàcil veure el vídeo, on es pot veure exactament de què parlo. Si us animeu a entrar, continueu endavant!

Per utilitzar el programa de conversió MIDI a Bytestream, haureu d'obrir una finestra d'indicadors d'ordres. Disculpeu els usuaris de Mac i Linux, potser haureu de trobar una solució alternativa.

  • Obriu el menú d'inici i escriviu "CMD" i premeu Retorn.
  • Ara aprendrem una mica de màgia MS-DOS. Amb l'ordre "CD", aneu a qualsevol lloc on hàgiu descarregat el fitxer "miditones.exe". En la majoria dels casos, les ordres seran "descàrregues de CD".
  • Executeu el programa "miditones.exe" escrivint "miditones". Us hauria de mostrar una llista d’ajuda amb les ordres més habituals.

Ara necessitem un fitxer MIDI per convertir. Cerqueu-ne un en algun lloc de les interwebs, preferiblement sense percussió ni cap efecte especial a part dels insturments / velocity. (Si no sabeu què són, no us preocupeu, estareu bé)

  • Baixeu-vos el fitxer MIDI al mateix lloc on teniu el programa "miditones".
  • Ara, mitjançant la finestra de l'indicador d'ordres, escriviu "miditones -d -v [nom_fitxer]" (Substitueix [nom_fitxer] per qualsevol que sigui el nom del fitxer MIDI).
  • miditones generarà un fitxer. C amb el bytestream C ++ a la mateixa carpeta, amb el mateix nom que el fitxer MIDI.

Pas 15: utilitzar el fitxer MIDI convertit

Ús del fitxer MIDI convertit
Ús del fitxer MIDI convertit
Ús del fitxer MIDI convertit
Ús del fitxer MIDI convertit
Ús del fitxer MIDI convertit
Ús del fitxer MIDI convertit

Ara que heu convertit el fitxer MIDI, alimentem-lo en petits bytes a l'arduino.

  • Suposant que ja teniu l'exemple de SAATunes-Uno obert, anem endavant i "desem com" una altra cosa per poder-lo editar.
  • Un cop l'hàgiu desat, feu clic a la petita icona de "fletxa cap avall" que hi ha a l'extrem superior dret.
  • Feu clic a "pestanya nova" i anomeneu-la "[nom].h" (Substituïu [nom] pel nom de la vostra cançó MIDI o el que vulgueu)
  • Ara, obriu el fitxer. C que els tons mitjans van crear anteriorment. Podeu utilitzar el bloc de notes per obrir-lo.
  • Utilitzeu CNTRL / A per seleccionar-ho tot i, a continuació, copieu-lo.
  • Enganxeu-lo a la nova pestanya "[nom].h" de l'editor arduino.

Aquí està tot bé, així que tornem al programa.

  • Cerqueu on diu "#include" RagePenny.h "" i copieu-lo / enganxeu-lo en una nova línia a continuació.
  • Canvieu el "RagePenny.h" pel nom que hàgiu anomenat al fitxer nou.
  • Ara, comenteu "#include" RagePenny.h "", afegint dues barres inclinades cap endavant (//) al davant.
  • Carregueu el programa.

Si tot va bé, hauria de reproduir el vostre propi fitxer MIDI. Si no, comproveu de nou per assegurar-vos que els noms de la nova pestanya i el nom que heu canviat a "#include" RagePenny.h "" siguin els mateixos. Consulteu els altres passos i assegureu-vos que ho heu fet tot bé. Alguns fitxers MIDI no funcionen, però són rars.

Pas 16: Aleta

Aleta!
Aleta!

Tant de bo que tot us hagi anat bé i que estigueu bloquejant fitxers MIDI en una antiga tecnologia donada una nova vida.

Tanmateix, si no ho estàs, no et rendeixis. Envia un comentari a la meva manera i estaré encantat d’ajudar-te. Per descomptat, no dubteu a donar-me suggeriments als comentaris.

Felices chiptunes!

Recomanat: