İçindekiler:
- 1. Adım: Video
- Adım 2: Parçalar ve Malzemeler
- Adım 3: Kablolama - SAA1099
- Adım 4: Kablolama - TTL Osilatörü
- Adım 5: Kablolama - Iref ve Chip Arayüzü
- Adım 6: Kablolama - Ses Bileşenleri
- 7. Adım: Kablolama - Ses Jakı
- Adım 8: Kablolama - Breadboard'a Güç
- Adım 9: Kablolama - Veri Hatları
- Adım 10: Opsiyonel LED(ler)
- Adım 11: Kodlayın
- Adım 12: Test Edin
- Adım 13: Kendi MIDI Dosyalarınızı Kullanma - Dönüştürme Programı
- Adım 14: MIDI Dosyalarını Dönüştürme
- Adım 15: Dönüştürülen MIDI Dosyanızı Kullanma
- Adım 16: Bitirin
Video: Arduino ile Retro Ses Çipi - SAA1099: 16 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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
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
Ş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ü
- 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ü
- 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
- 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ı
- 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üç
- 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ı
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)
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
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
- "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ı
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
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
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
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:
IoT ve AWS ile Alexa Ses Kontrollü Raspberry Pi Drone: 6 Adım (Resimlerle)
IoT ve AWS ile Alexa Ses Kontrollü Raspberry Pi Drone: Merhaba! Benim adım Arman. Massachusetts'ten 13 yaşında bir çocuğum. Bu eğitim, başlıktan da anlaşılacağı gibi, bir Raspberry Pi Drone'un nasıl oluşturulacağını gösterir. Bu prototip, dronların nasıl geliştiğini ve aynı zamanda savaşta ne kadar büyük bir rol oynayabileceklerini gösteriyor
3 KANAL SES MİKSERİ FM Radyo Vericisi ile Entegre: 19 Adım (Resimlerle)
3 KANAL SES MİKSERİ FM Radyo Vericisi ile Entegre: Herkese merhaba, bu yazıda bir FM radyo vericisi ile entegre 3 KANAL SES MİKSERİ oluşturmanız için size rehberlik edeceğim
Cep Çipi: Led Yanıp Söndürme Nasıl Yapılır: 6 Adım
Cep Çipi: Bir Ledin Yanıp Sönmesi Nasıl Yapılır: Herkese selam! ÇİP nedir? CHIP, bir Kickstarter kampanyası tarafından Next Thing tarafından oluşturulan Linux tabanlı en küçük bilgisayardır. Tüm özellikleri görüntülemek için bağlantıya bakın (http://docs.getchip.com/chi
Arduino ve DAC ile Ses Ses Dosyalarını (Wav) Çalma: 9 Adım
Bir Arduino ve bir DAC ile Ses Ses Dosyalarını (Wav) Oynatma: Audino SD kartınızdan wav dosyası Sesini oynatın. Bu Eğitilebilir Tablo, SdCard'ınızdaki bir wav dosyasının basit bir devre aracılığıyla bir hoparlöre nasıl çalınabileceğini size gösterecektir. Wav dosyası 8 bit mono olmalıdır. 44 KHz dosyalarını oynatırken hiç sorun yaşamadım
Elechouse V3 ve Arduino ile Ses Tanımaya Giriş: 4 Adım (Resimlerle)
Elechouse V3 ve Arduino ile Ses Tanımaya Giriş.: Merhaba…!Ses tanıma teknolojisi son birkaç yıldır buradaydı. İlk Siri özellikli iphone ile konuşurken yaşadığımız büyük heyecanı hala hatırlıyoruz. O zamandan beri sesli komut cihazları çok ileri bir seviyeye geldi beyo