Sommario:

Chip audio retrò con un Arduino - SAA1099: 16 passaggi (con immagini)
Chip audio retrò con un Arduino - SAA1099: 16 passaggi (con immagini)

Video: Chip audio retrò con un Arduino - SAA1099: 16 passaggi (con immagini)

Video: Chip audio retrò con un Arduino - SAA1099: 16 passaggi (con immagini)
Video: Commander X16 - Proto #2 - Design Updates and Next Steps 2024, Novembre
Anonim
Image
Image
Cablaggio - SAA1099
Cablaggio - SAA1099

In questo tutorial, ti mostrerò come utilizzare un Arduino Uno con un chip di sintesi del suono vintage, per riprodurre file midi in una bontà quadrata!

Se vuoi solo una rapida panoramica di ciò che fa questo progetto, guarda il video sopra. Altrimenti continua!

Passaggio 1: video

Image
Image

Se preferisci tutte le tue istruzioni in video chiari e concisi, abbiamo quello che fa per te!

Per il resto di noi, puoi continuare, per un po' più di dettagli e istruzioni scritte.

Passaggio 2: parti e materiali

Per questo, avrai bisogno di queste cose:

(I link sono per gli articoli eBay)

  • Un Arduino (Uno, Nano, Leonardo, dovrebbero funzionare tutti)
  • Almeno una breadboard di medie dimensioni
  • Il chip del generatore di suoni stereo SAA1099
  • Fili per ponticelli breadboard (in alternativa, mi piace usare ponticelli da femmina a femmina dupont, con pin di intestazione da 20 mm inseriti in entrambe le estremità - molto più robusti)
  • Oscillatore TTL 8Mhz (collegamento AliExpress fornito da zweigelt)
  • Jack audio stereo (o mono)
  • 2 x 1K resistori (lotto di 100)
  • 1 x 10K resistore (lotto di 50)
  • 2 condensatori da 100 pF
  • (Facoltativo) Alcuni LED, almeno 1 (qualsiasi colore, ecco 100 colori assortiti per un dollaro!)

Utilizzando i link forniti, il costo totale è di $ 23,25, inclusa la spedizione. Naturalmente, la maggior parte proviene da mezzo mondo, quindi la spedizione di solito richiede circa un mese. Se desideri una spedizione più rapida, probabilmente dovrai pagare un po' di più.

Passaggio 3: cablaggio - SAA1099

Cablaggio - SAA1099
Cablaggio - SAA1099
Cablaggio - SAA1099
Cablaggio - SAA1099

Se gli schemi sono la tua passione, ecco qua! Il resto di noi può seguire passo passo o guardare il video.

  • Posiziona SAA1099 all'estremità della breadboard, con la tacca sul chip rivolta verso l'estremità.
  • Ora, potere. VDD (pin 18) sul SAA1099 va all'alimentazione, quindi il pin VSS (pin 9) a massa.
  • Quindi, metti un filo tra CS (pin 2) e terra, per tenerlo basso

Consiglierei anche di dare un'occhiata alla scheda tecnica, che ho allegato.

Passaggio 4: cablaggio - oscillatore TTL

Cablaggio - Oscillatore TTL
Cablaggio - Oscillatore TTL
Cablaggio - Oscillatore TTL
Cablaggio - Oscillatore TTL
  • Metteremo l'oscillatore TTL sulla breadboard accanto alla breadboard, in modo che il pin di uscita del clock sia il più vicino all'ingresso del clock sul SAA1099 (Pin 8)
  • Puoi andare avanti e collegare l'alimentazione e la massa all'oscillatore TTL. (Ho aspettato fino a più tardi nel mio video, quindi non ho una foto). L'immagine sopra mostra quali sono i pin.

Passaggio 5: cablaggio - Interfaccia Iref e Chip

Cablaggio - Interfaccia Iref e Chip
Cablaggio - Interfaccia Iref e Chip
Cablaggio - Interfaccia Iref e Chip
Cablaggio - Interfaccia Iref e Chip
  • Collegare la resistenza da 10K tra Iref (pin 6) e 5V.
  • Collegare il pin digitale 8 a WR (pin 1) sul SAA1099.
  • Collegare il pin digitale 9 ad A0 (pin 3) sul SAA1099.

Passaggio 6: cablaggio - Componenti audio

Cablaggio - Componenti audio
Cablaggio - Componenti audio
Cablaggio - Componenti audio
Cablaggio - Componenti audio
Cablaggio - Componenti audio
Cablaggio - Componenti audio
  • Collegare un condensatore da 100pF tra OUTR (pin 4) e GND
  • Collegare una resistenza da 1K tra OUTR (pin 4) e 5V
  • Faremo la stessa cosa per OUTL (pin 5)
  • Collegare un condensatore da 100pF tra OUTL (pin 5) e GND
  • Collegare una resistenza da 1K tra OUTL (pin 5) e 5V

Nota! Assicurati che nessuno dei fili dei resistori/condensatori si tocchi, altrimenti le cose non funzioneranno e potrebbero (provvisoriamente) potenzialmente esplodere in faccia.

Passaggio 7: cablaggio - Jack audio

Cablaggio - Jack audio
Cablaggio - Jack audio
Cablaggio - Jack audio
Cablaggio - Jack audio
Cablaggio - Jack audio
Cablaggio - Jack audio
  • Collegare un piccolo ponticello tra 5V e una riga vuota sulla breadboard.
  • Posiziona il tuo jack audio, in modo che il jumper da 5V si colleghi al pin "Sleeve" sul jack audio
  • Collegare i pin L e R (o audio, se si dispone di un jack Mono) ai pin OUTL (pin 5) e OUTR (pin 4) sull'SAA1099, rispettivamente.

Nota! Sui jack audio Mono, non importa cosa succede, purché un pin si colleghi a 5V e uno a OUTL o OUTR. Suonerà bene. A meno che non lo sia, nel qual caso potresti voler controllare di nuovo il cablaggio.

Passaggio 8: cablaggio - alimentazione a breadboard

Cablaggio - Alimentazione a breadboard
Cablaggio - Alimentazione a breadboard
Cablaggio - Alimentazione a breadboard
Cablaggio - Alimentazione a breadboard
  • Collegare entrambi i lati del bus di alimentazione Breadboard tra loro, utilizzando i cavi dei ponticelli.
  • Collega un lato ai pin 5V e GND sull'Arduino, assicurandoti di non aver mischiato i fili da nessuna parte. Se lo hai fatto, il fumo magico potrebbe fuoriuscire.

Passaggio 9: cablaggio - linee dati

Cablaggio - Linee dati
Cablaggio - Linee dati

Collega D0 a D7 su Arduino a D0 (pin 10) a D7 (pin 17) su SAA1099, in ordine

Trovo che i cavi jumper femmina-femmina DuPont, con pin di testata da 15-20MM a entrambe le estremità, funzionino molto meglio dei cavi dupont maschio-maschio. Inoltre puoi anche usarli come femmina-femmina o maschio-femmina. Entrambi si trovano facilmente su eBay in grandi quantità, per piccole quantità di cambiamento. Un buon regalo di Natale per l'aspirante drogato di Arduino!

Passaggio 10: LED opzionali

LED opzionali
LED opzionali
LED opzionali
LED opzionali

Non esaminerò passo passo come costruire tutto qui, ma ci sono molti buoni posti per aggiungere i LED. Per prima cosa ho collegato un LED rosso da 3mm tra WR (pin 1) e GND, per mostrarlo ogni volta che Arduino invia un comando al SAA1099.

Ho anche collegato i LED alle linee dati in precedenza, il che consente di vedere i dati binari effettivi su ciascuna linea. Ho usato questa configurazione nel mio video "Arduino e SAA1099 - Fireflies", così come altri 6 LED e un codice extra per illuminare ogni LED per ogni canale attivo.

Più LED, più fresco sembra!

Passaggio 11: codice

Codice!
Codice!
Codice!
Codice!

Ora che hai costruito il circuito, ricontrolla i collegamenti! Non vuoi far saltare in aria il tuo costoso arduino e Soundchip! (Se lo fai, beh. Non sono affari miei)

Supponendo che tu sia sano di mente e abbia controllato tutto, possiamo iniziare a programmarlo.

  • La libreria è su
  • Avrai bisogno del file SAATunes.zip, quindi vai avanti e scaricalo.
  • Ora apri l'IDE Arduino.
  • In "Schizzo", "Includi libreria", fai clic su "Aggiungi libreria.zip"
  • Vai al punto in cui hai scaricato la libreria SAATunes. (Non mi interessa se fosse la cartella del desktop, dei download o (inserisci qualcosa di imbarazzante) - trovala e basta)
  • Selezionalo e fai clic su "Apri"
  • Dovrebbe dirti che è stato aggiunto alle tue librerie.

Passaggio 12: provalo

Provalo!
Provalo!
Provalo!
Provalo!
  • Apri il programma SAATunes di esempio, sotto "File", "Esempi", "SAATunes", "SAATunes-Uno".
  • Collega il tuo Arduino al computer e a un altoparlante di qualche tipo.
  • Carica il programma su Arduino.

Dovresti sentire un accordo, poi la rabbia di Beethoven per un Penny perduto. Se la classica non fa per te, non temere, perché impareremo presto come utilizzare i file MIDI di nostra scelta con essa.

Se non senti nulla, controlla alcune cose: Primo, il tuo altoparlante è acceso? Alzalo fino in fondo. Allora, l'arduino è davvero acceso? Il programma è stato caricato correttamente? Controllare tutti i cablaggi con lo schema e la scheda tecnica, quindi riprovare.

Passaggio 13: utilizzo dei propri file MIDI - Programma di conversione

Utilizzo dei propri file MIDI - Programma di conversione
Utilizzo dei propri file MIDI - Programma di conversione

Pronto a provare qualcosa di diverso da Beethoven? Molto bene, ecco qua.

Per convertire i file MIDI in C++ Bytestream, avremo bisogno di un programma di Len Shustek. È il creatore della libreria su cui ho basato il mio codice e la mia libreria usa lo stesso formato di flusso di byte che usa lui.

  • Puoi trovare il programma su
  • Il programma che vuoi è "miditones.exe". Vai avanti e scaricalo.

Passaggio 14: conversione di file MIDI

Conversione di file MIDI
Conversione di file MIDI
Conversione di file MIDI
Conversione di file MIDI
Conversione di file MIDI
Conversione di file MIDI

Avvertimento! Qui ci sono draghi ascii! Potresti trovare più facile guardare il video, dove puoi vedere esattamente di cosa sto parlando. Se hai il coraggio di entrare, allora continua!

Per utilizzare il programma di conversione da MIDI a Bytestream, dovrai aprire una finestra del prompt dei comandi. Spiacenti utenti Mac e Linux, potrebbe essere necessario trovare una soluzione alternativa.

  • Apri il menu di avvio e digita "CMD", quindi premi invio.
  • Ora impareremo un po' di magia MS-DOS. Usando il comando "CD", vai alla posizione in cui hai scaricato il file "miditones.exe". Nella maggior parte dei casi, i comandi saranno "download da cd".
  • Esegui il programma "miditones.exe" digitando "miditones". Dovrebbe mostrarti un elenco di aiuto che mostra i comandi più comuni.

Ora abbiamo bisogno di un file MIDI da convertire. Trovane uno da qualche parte su internet, preferibilmente senza percussioni o effetti speciali oltre a strumenti/velocità. (Se non sai cosa sono, non preoccuparti, starai bene)

  • Scarica il tuo file MIDI nello stesso posto in cui hai il programma "miditones".
  • Ora, usando la finestra del prompt dei comandi, digita "miditones -d -v [nome file]" (Sostituisci [nome file] con qualunque sia il nome del tuo file MIDI).
  • miditones genererà un file. C con il flusso di byte C++ nella stessa cartella, con lo stesso nome del file MIDI.

Passaggio 15: utilizzo del file MIDI convertito

Utilizzo del file MIDI convertito
Utilizzo del file MIDI convertito
Utilizzo del file MIDI convertito
Utilizzo del file MIDI convertito
Utilizzo del file MIDI convertito
Utilizzo del file MIDI convertito

Ora che hai convertito il tuo file MIDI, inseriscilo in piccoli byte su arduino!

  • Supponendo che tu abbia già aperto l'esempio SAATunes-Uno, andiamo avanti e "salviamo come" qualcos'altro, in modo da poterlo modificare.
  • Dopo averlo salvato, fai clic sulla piccola icona "freccia giù" nell'angolo in alto a destra.
  • Fai clic su "nuova scheda" e chiamalo "[nome].h" (sostituisci [nome] con il nome della tua canzone MIDI o come preferisci)
  • Ora, apri il file. C che i miditone hanno creato in precedenza. Puoi usare il blocco note per aprirlo.
  • Usa CNTRL/A per selezionare tutto, quindi copialo.
  • Incollalo nella tua nuova scheda "[nome].h" nell'editor di arduino.

Va tutto bene qui, quindi torniamo al programma.

  • Trova dove dice "#include "RagePenny.h"" e copia/incollalo su una nuova riga in basso.
  • Cambia "RagePenny.h" con il nome che hai chiamato il tuo nuovo file.
  • Ora, commenta "#include "RagePenny.h"", aggiungendo due barre in avanti (//) davanti ad esso.
  • Carica il programma!

Se tutto è andato bene, dovrebbe riprodurre il tuo file MIDI. In caso contrario, ricontrolla per assicurarti che i nomi della nuova scheda e il nome che hai modificato in "#include "RagePenny.h"" siano gli stessi. Controlla gli altri passaggi e assicurati di aver fatto tutto bene. Alcuni file MIDI semplicemente non funzionano, ma sono rari.

Passaggio 16: pinna

Fin!
Fin!

Spero che tutto sia andato bene con te e che tu stia suonando su file MIDI su un antico pezzo di tecnologia a cui è stata data nuova vita!

Tuttavia, se non lo sei, non arrenderti! Invia un commento a modo mio e sarò felice di aiutarti. Certo, sentiti libero di darmi suggerimenti nei commenti.

Buon chiptunes!

Consigliato: