İçindekiler:

Arduino ile Retro Ses Çipi - SAA1099: 16 Adım (Resimlerle)
Arduino ile Retro Ses Çipi - SAA1099: 16 Adım (Resimlerle)

Video: Arduino ile Retro Ses Çipi - SAA1099: 16 Adım (Resimlerle)

Video: Arduino ile Retro Ses Çipi - SAA1099: 16 Adım (Resimlerle)
Video: SAA1099 & Arduino - How to DIY 2024, Kasım
Anonim
Image
Image
Kablolama - SAA1099
Kablolama - SAA1099

Bu talimatta, midi dosyalarını kare dalgalı iyilikte oynatmak için eski bir ses sentez çipi ile bir Arduino Uno'nun nasıl kullanılacağını göstereceğim!

Bu projenin ne yaptığına hızlı bir genel bakış istiyorsanız, yukarıdaki videoyu izleyin. Aksi takdirde, devam edin!

1. Adım: Video

Image
Image

Tüm talimatlarınızı net, özlü videolarda tercih ediyorsanız, sizi koruduk!

Geri kalanımız için, biraz daha fazla ayrıntı ve yazılı talimatlar için devam edebilirsiniz.

Adım 2: Parçalar ve Malzemeler

Bunun için şu şeylere ihtiyacınız olacak:

(Bağlantılar eBay ürünleri içindir)

  • Bir Arduino (Uno, Nano, Leonardo, hepsi çalışmalı)
  • En az orta boy bir breadboard
  • SAA1099 Stereo Ses Üreteci çipi
  • Breadboard jumper kabloları (Alternatif olarak, her iki uca 20mm başlık pimleri yerleştirilmiş dupont dişi-dişi jumperları kullanmayı seviyorum - Çok daha sağlam)
  • 8Mhz TTL Osilatörü (zweigelt tarafından sağlanan AliExpress bağlantısı)
  • Stereo (veya mono) Ses Jakı
  • 2 x 1K direnç (100'lü Lot)
  • 1 x 10K direnç (50 adet)
  • 2 x 100pF Kondansatör
  • (İsteğe bağlı) Bazı LED'ler, en az 1 (Herhangi bir renk, işte bir dolar için 100 çeşit renk!)

Sağlanan bağlantıları kullanarak, nakliye dahil toplam maliyet 23,25 ABD dolarıdır. Tabii ki, çoğu dünyanın diğer ucundan geliyor, bu nedenle nakliye genellikle yaklaşık bir ay sürer. Daha hızlı nakliye istiyorsanız, muhtemelen biraz daha fazla ödemeniz gerekecek.

Adım 3: Kablolama - SAA1099

Kablolama - SAA1099
Kablolama - SAA1099
Kablolama - SAA1099
Kablolama - SAA1099

Şemalar sizin işinizse, işte burada! Geri kalanımız ya adım adım ilerleyebilir ya da videoyu izleyebilir.

  • SAA1099'u, çip üzerindeki çentik uca bakacak şekilde devre tahtasının sonuna yerleştirin.
  • Şimdi, güç. SAA1099'daki VDD (pim 18) güce gider, ardından pim VSS (pim 9) toprağa gider.
  • Ardından, düşük çekilmesini sağlamak için CS (pim 2) ile toprak arasına bir kablo koyun

Ayrıca eklediğim veri sayfasına bir göz atmanızı tavsiye ederim.

Adım 4: Kablolama - TTL Osilatörü

Kablolama - TTL Osilatörü
Kablolama - TTL Osilatörü
Kablolama - TTL Osilatörü
Kablolama - TTL Osilatörü
  • TTL Osilatörünü devre tahtasının yanındaki devre tahtasına koyacağız, böylece saat çıkış pini SAA1099'daki saat girişine en yakın olacak (Pin 8)
  • Devam edebilir ve gücü ve toprağı TTL osilatörüne bağlayabilirsiniz. (Videomda daha sonraya kadar bekledim, o yüzden resim yok). Yukarıdaki resimde hangi pinlerin hangileri olduğu görülmektedir.

Adım 5: Kablolama - Iref ve Chip Arayüzü

Kablolama - Iref ve Chip Arayüzü
Kablolama - Iref ve Chip Arayüzü
Kablolama - Iref ve Chip Arayüzü
Kablolama - Iref ve Chip Arayüzü
  • 10K direncini Iref (pin 6) ile 5V arasına bağlayın.
  • Dijital pim 8'i SAA1099'daki WR'ye (pim 1) bağlayın.
  • Dijital pim 9'u SAA1099'daki A0'a (pim 3) bağlayın.

Adım 6: Kablolama - Ses Bileşenleri

Kablolama - Ses Bileşenleri
Kablolama - Ses Bileşenleri
Kablolama - Ses Bileşenleri
Kablolama - Ses Bileşenleri
Kablolama - Ses Bileşenleri
Kablolama - Ses Bileşenleri
  • OUTR (pin 4) ve GND arasına 100pF'lik bir kapasitör bağlayın
  • OUTR (pin 4) ve 5V arasına 1K direnç bağlayın
  • Aynı şeyi OUTL için de yapacağız (pin 5)
  • OUTL (pin 5) ve GND arasına 100pF'lik bir kapasitör bağlayın
  • OUTL (pin 5) ve 5V arasına 1K direnç bağlayın

Not! Dirençlerden/kapasitörlerden gelen kabloların hiçbirinin birbirine değmediğinden emin olun, aksi takdirde işler çalışmaz ve (geçici olarak) potansiyel olarak yüzünüzde patlayabilir.

7. Adım: Kablolama - Ses Jakı

Kablolama - Ses Jakı
Kablolama - Ses Jakı
Kablolama - Ses Jakı
Kablolama - Ses Jakı
Kablolama - Ses Jakı
Kablolama - Ses Jakı
  • 5V ile devre tahtasındaki boş bir sıra arasına küçük bir atlama teli bağlayın.
  • Ses jakınızı, 5V'den gelen atlama kablosu Ses Jakı üzerindeki "Sleeve" pinine bağlanacak şekilde yerleştirin.
  • L ve R'yi (veya Mono jakınız varsa Ses pinini) sırasıyla SAA1099'daki OUTL (pin 5) ve OUTR (pin 4) pinlerine bağlayın.

Not! Mono ses jaklarında, bir pin 5V'a ve diğeri OUTL veya OUTR'a bağlandığı sürece, ne olduğu gerçekten önemli değil. Kulağa hoş gelecek. Olmazsa, bu durumda kablolamanızı tekrar kontrol etmek isteyebilirsiniz.

Adım 8: Kablolama - Breadboard'a Güç

Kablolama - Breadboard'a Güç
Kablolama - Breadboard'a Güç
Kablolama - Breadboard'a Güç
Kablolama - Breadboard'a Güç
  • Jumper kabloları kullanarak Breadboard güç veri yolunun her iki tarafını birbirine bağlayın.
  • Bir tarafı Arduino'daki 5V ve GND pinlerine bağlayın, kabloları hiçbir yerde karıştırmadığınızdan emin olun. Bunu yaptıysanız, sihirli duman kaçabilir.

Adım 9: Kablolama - Veri Hatları

Kablolama - Veri Hatları
Kablolama - Veri Hatları

Arduino'daki D0'ı D7'ye sırasıyla SAA1099'daki D0'a (pim 10) D7'ye (pim 17) bağlayın

Her iki ucunda 15-20 MM başlık pimleri bulunan DuPont dişi-dişi atlama tellerinin, erkek-erkek dupont tellerinden çok daha iyi çalıştığını görüyorum. Ayrıca kadın-bayan veya erkek-bayan olarak da kullanabilirsiniz. Her ikisi de küçük miktarlarda değişiklik için eBay'de büyük miktarlarda kolayca bulunur. Kalkınan Arduino bağımlısı için iyi bir Noel hediyesi!

Adım 10: Opsiyonel LED(ler)

Opsiyonel LED(ler)
Opsiyonel LED(ler)
Opsiyonel LED(ler)
Opsiyonel LED(ler)

Burada her şeyi nasıl inşa edeceğimi adım adım anlatmayacağım, ancak LED'leri eklemek için birkaç iyi yer var. Her şeyden önce, Arduino'nun SAA1099'a her komut gönderdiğinde göstermek için WR (pin 1) ve GND arasına 3mm kırmızı bir LED bağladım.

Ayrıca LED'leri daha önce veri hatlarına bağladım, bu da her satırdaki gerçek ikili verileri görmenizi sağlar. Bu kurulumu "Arduino ve SAA1099 - Ateşböcekleri" videomda ve ayrıca aktif olan her kanal için her bir LED'i yakmak için 6 LED ve bazı ekstra kodlarda kullandım.

Daha fazla LED, daha havalı görünüyor!

Adım 11: Kodlayın

Kod!
Kod!
Kod!
Kod!

Artık devreyi kurduğuna göre, bağlantıları iki kez kontrol et! Pahalı arduino ve Soundchip'inizi havaya uçurmak istemezsiniz! (Yaparsan, peki. Bu benim işim değil)

Aklınızın yerinde olduğunu ve her şeyi kontrol ettiğinizi varsayarsak, onu programlamaya başlayabiliriz.

  • Kütüphane https://github.com/Bobcatmodder/SAATunes adresindedir.
  • SAATunes.zip dosyasını isteyeceksiniz, bu yüzden devam edin ve indirin.
  • Şimdi Arduino IDE'yi açın.
  • "Çizim", "Kitaplığı Dahil Et" altında, ".zip kitaplığı ekle"yi tıklayın
  • SAATunes kitaplığını indirdiğiniz yere gidin. (Masaüstünüz, indirmeleriniz veya (utanç verici bir şey ekleyin) klasörünüz olması umurumda değil - Sadece bulun)
  • Seçin ve "Aç" ı tıklayın
  • Size kütüphanelerinize eklendiğini söylemelidir.

Adım 12: Test Edin

Dene!
Dene!
Dene!
Dene!
  • "Dosya", "Örnekler", "SAATunes", "SAATunes-Uno" altında örnek SAATunes programını açın.
  • Arduino'nuzu Bilgisayara ve bir tür hoparlöre takın.
  • Programı Arduino'ya yükleyin.

Bir Akor duymalısın, ardından Beethoven'ın Kayıp Penny'ye Karşı Öfkesi. Klasik sizin işiniz değilse, korkmayın, çünkü yakında kendi seçtiğimiz MIDI dosyalarını onunla nasıl kullanacağımızı öğreneceğiz.

Hiçbir şey duymuyorsanız, birkaç şeyi kontrol edin: İlk olarak, hoparlörünüz açık mı? Tamamen yukarı çevirin. O zaman, arduino gerçekten açık mı? Program doğru yüklendi mi? Tüm kabloları şematik ve veri sayfasıyla kontrol edin, ardından tekrar deneyin.

Adım 13: Kendi MIDI Dosyalarınızı Kullanma - Dönüştürme Programı

Kendi MIDI Dosyalarınızı Kullanma - Dönüştürme Programı
Kendi MIDI Dosyalarınızı Kullanma - Dönüştürme Programı

Beethoven'dan başka bir şey denemeye hazır mısınız? Çok iyi, buyrun.

MIDI dosyalarını C++ Bytestreams'e dönüştürmek için Len Shustek'e ait bir programa ihtiyacımız olacak. Kodumu temel aldığım kitaplığın yaratıcısı ve kitaplığım da onun yaptığı aynı bayt akışı biçimini kullanıyor.

  • Programı https://github.com/LenShustek/miditones adresinde bulabilirsiniz.
  • İstediğiniz program "miditones.exe"dir. Devam edin ve bunu indirin.

Adım 14: MIDI Dosyalarını Dönüştürme

MIDI Dosyalarını Dönüştürme
MIDI Dosyalarını Dönüştürme
MIDI Dosyalarını Dönüştürme
MIDI Dosyalarını Dönüştürme
MIDI Dosyalarını Dönüştürme
MIDI Dosyalarını Dönüştürme

Uyarı! Burada ascii ejderhaları var! Tam olarak neden bahsettiğimi görebileceğiniz videoyu izlemeniz daha kolay olabilir. İçeri girmeye cesaretiniz varsa, devam edin!

MIDI'den Bytestream'e dönüştürme programını kullanmak için bir komut istemi penceresi açmanız gerekir. Üzgünüm Mac ve Linux kullanıcıları, bir geçici çözüm bulmanız gerekebilir.

  • Başlat menüsünü açın ve "CMD" yazın, ardından enter tuşuna basın.
  • Şimdi biraz MS-DOS büyüsü öğreneceğiz. "CD" komutunu kullanarak "miditones.exe" dosyasını indirdiğiniz yere gidin. Çoğu durumda, komutlar "cd indirmeleri" olacaktır.
  • "Miditones" yazarak "miditones.exe" programını çalıştırın. Size en yaygın komutları gösteren bir yardım listesi göstermelidir.

Şimdi, dönüştürmek için bir MIDI dosyasına ihtiyacımız var. Enstrüman/hız dışında tercihen perküsyon veya herhangi bir özel efekt olmadan interweb'de bir yer bulun. (Bunların ne olduğunu bilmiyorsan merak etme, iyi olacaksın)

  • MIDI dosyanızı "miditones" programınızın olduğu yere indirin.
  • Şimdi, komut istemi penceresini kullanarak "miditones -d -v [dosyaadı]" yazın ([dosya adı] yerine MIDI dosyanızın adı ne olursa olsun).
  • miditones, aynı klasörde, MIDI dosyasıyla aynı ada sahip C++ bayt akışıyla bir. C dosyası oluşturur.

Adım 15: Dönüştürülen MIDI Dosyanızı Kullanma

Dönüştürülen MIDI Dosyanızı Kullanma
Dönüştürülen MIDI Dosyanızı Kullanma
Dönüştürülen MIDI Dosyanızı Kullanma
Dönüştürülen MIDI Dosyanızı Kullanma
Dönüştürülen MIDI Dosyanızı Kullanma
Dönüştürülen MIDI Dosyanızı Kullanma

Artık MIDI dosyanızı dönüştürdüğünüze göre, onu küçük baytlar halinde arduinoya besleyelim!

  • SAATunes-Uno örneğinin zaten açık olduğunu varsayarsak, devam edelim ve düzenleyebilmemiz için başka bir şey "farklı kaydet".
  • Kaydettikten sonra, sağ üst köşedeki küçük "aşağı ok" simgesine tıklayın.
  • "Yeni sekme"yi tıklayın ve "[ad].h" olarak adlandırın ([ad]'ı MIDI şarkınızın adıyla veya istediğiniz herhangi bir şeyle değiştirin)
  • Şimdi miditonların daha önce oluşturduğu. C dosyasını açın. Açmak için not defterini kullanabilirsiniz.
  • Her şeyi seçmek için CNTRL/A'yı kullanın ve ardından kopyalayın.
  • Arduino düzenleyicideki yeni "[name].h" sekmenize yapıştırın.

Burada her şey yolunda, o yüzden programa geri dönelim.

  • "#include "RagePenny.h"" yazan yeri bulun ve aşağıdaki yeni satıra kopyalayın/yapıştırın.
  • "RagePenny.h" dosyasını yeni dosyanıza ne ad verdiyseniz öyle değiştirin.
  • Şimdi, önüne iki eğik çizgi (//) ekleyerek "#include "RagePenny.h"" ifadesini yorumlayın.
  • Programı yükleyin!

Her şey yolunda giderse, kendi MIDI dosyanızı çalıyor olmalı. Değilse, yeni sekmenin adları ile "#include "RagePenny.h" içinde değiştirdiğiniz adların aynı olduğundan emin olmak için yeniden kontrol edin. Diğer adımları kontrol edin ve her şeyi doğru yaptığınızdan emin olun. Bazı MIDI dosyaları çalışmıyor, ancak bunlar nadirdir.

Adım 16: Bitirin

Fin!
Fin!

Umarım her şey yolunda gitmiştir ve yeni bir hayat verilmiş eski bir teknoloji parçasının MIDI dosyalarını karıştırıyorsunuzdur!

Ancak, değilseniz, pes etmeyin! Benim yolumdan bir yorum gönderin, yardımcı olmaktan memnuniyet duyarım. Tabii ki, yorumlarda bana önerilerde bulunmaktan çekinmeyin.

Mutlu chiptunes!

Önerilen: