Isi kandungan:

Cip Suara Retro Dengan Arduino - Langkah SAA1099: 16 (dengan Gambar)
Cip Suara Retro Dengan Arduino - Langkah SAA1099: 16 (dengan Gambar)

Video: Cip Suara Retro Dengan Arduino - Langkah SAA1099: 16 (dengan Gambar)

Video: Cip Suara Retro Dengan Arduino - Langkah SAA1099: 16 (dengan Gambar)
Video: SAA1099 & Arduino - How to DIY 2024, November
Anonim
Image
Image
Pendawaian - SAA1099
Pendawaian - SAA1099

Dalam arahan ini, saya akan menunjukkan kepada anda bagaimana menggunakan Arduino Uno dengan cip sintesis bunyi vintaj, untuk memainkan fail midi dengan kebaikan bergelombang persegi!

Sekiranya anda hanya mahukan gambaran ringkas mengenai apa yang dilakukan oleh projek ini, tonton video di atas. Jika tidak, teruskan!

Langkah 1: Video

Image
Image

Sekiranya anda memilih semua arahan anda dalam video yang jelas dan ringkas, kami akan membuat anda dilindungi!

Untuk yang lain, anda boleh teruskan, untuk mendapatkan lebih banyak maklumat, dan arahan bertulis.

Langkah 2: Bahagian dan Bahan

Untuk ini, anda memerlukan perkara berikut:

(Pautan untuk item eBay)

  • An Arduino (Uno, Nano, Leonardo, mereka semua harus bekerja)
  • Sekurang-kurangnya papan roti bersaiz sederhana
  • Cip Penjana Bunyi Stereo SAA1099
  • Wayar jumper papan roti (Sebagai alternatif, saya suka menggunakan jumper wanita ke perempuan, dengan pin header 20mm dimasukkan di kedua hujungnya - Jauh lebih kuat)
  • 8Mhz TTL Oscillator (pautan AliExpress seperti yang disediakan oleh zweigelt)
  • Jack Audio Stereo (atau mono)
  • 2 x 1K perintang (Banyak 100)
  • Perintang 1 x 10K (Banyak 50)
  • Kapasitor 2 x 100pF
  • (Pilihan) Sebilangan LED, sekurang-kurangnya 1 (Warna apa pun, inilah 100 warna pelbagai untuk satu dolar!)

Dengan menggunakan pautan yang disediakan, jumlah kos adalah $ 23.25, termasuk penghantaran. Sudah tentu, sebahagian besarnya datang dari separuh dunia, jadi penghantaran biasanya memakan masa sekitar sebulan. Sekiranya anda mahu penghantaran lebih cepat, anda mungkin perlu membayar lebih banyak.

Langkah 3: Pendawaian - SAA1099

Pendawaian - SAA1099
Pendawaian - SAA1099
Pendawaian - SAA1099
Pendawaian - SAA1099

Sekiranya skema adalah perkara anda, ini dia! Kita semua boleh melalui langkah demi langkah, atau menonton video.

  • Letakkan SAA1099 di hujung papan roti, dengan lekukan pada cip menghadap ke hujung.
  • Sekarang, kuasa. VDD (pin 18) pada SAA1099 berfungsi, kemudian pin VSS (pin 9) ke tanah.
  • Seterusnya, letakkan wayar antara CS (pin 2) dan tanah, agar tetap rendah

Saya juga mengesyorkan untuk melihat lembaran data yang telah saya lampirkan.

Langkah 4: Pendawaian - TTL Oscillator

Pendawaian - TTL Oscillator
Pendawaian - TTL Oscillator
Pendawaian - TTL Oscillator
Pendawaian - TTL Oscillator
  • Kami akan meletakkan TTL Oscillator di papan roti di sebelah papan roti, supaya pin output jam paling dekat dengan input jam pada SAA1099 (Pin 8)
  • Anda boleh terus maju dan sambungkan kuasa dan arde ke pengayun TTL. (Saya menunggu sehingga kemudian dalam video saya, jadi saya tidak mempunyai gambar). Gambar di atas menunjukkan pin mana.

Langkah 5: Pendawaian - Antaramuka Iref dan Cip

Pendawaian - Antaramuka Iref dan Cip
Pendawaian - Antaramuka Iref dan Cip
Pendawaian - Antaramuka Iref dan Cip
Pendawaian - Antaramuka Iref dan Cip
  • Sambungkan perintang 10K antara Iref (pin 6) dan 5V.
  • Sambungkan pin digital 8 ke WR (pin 1) pada SAA1099.
  • Sambungkan pin digital 9 ke A0 (pin 3) pada SAA1099.

Langkah 6: Pendawaian - Komponen Bunyi

Pendawaian - Komponen Bunyi
Pendawaian - Komponen Bunyi
Pendawaian - Komponen Bunyi
Pendawaian - Komponen Bunyi
Pendawaian - Komponen Bunyi
Pendawaian - Komponen Bunyi
  • Sambungkan kapasitor 100pF antara OUTR (pin 4) dan GND
  • Sambungkan perintang 1K antara OUTR (pin 4) dan 5V
  • Kami akan melakukan perkara yang sama untuk OUTL (pin 5)
  • Sambungkan kapasitor 100pF antara OUTL (pin 5) dan GND
  • Sambungkan perintang 1K antara OUTL (pin 5) dan 5V

Catatan! Pastikan tidak ada kabel dari perintang / kapasitor yang menyentuh, jika tidak, barang tidak akan berfungsi, dan mungkin (sementara) berpotensi meletup di wajah anda.

Langkah 7: Pendawaian - Jack Audio

Pendawaian - Jack Audio
Pendawaian - Jack Audio
Pendawaian - Jack Audio
Pendawaian - Jack Audio
Pendawaian - Jack Audio
Pendawaian - Jack Audio
  • Sambungkan wayar pelompat kecil antara 5V dan barisan kosong di papan roti.
  • Letakkan bicu audio anda, sehingga pelompat dari 5V menyambung ke pin "Sleeve" pada Jack Audio
  • Sambungkan pin L dan R (Atau pin Audio, jika anda mempunyai jack Mono) ke pin OUTL (pin 5) dan OUTR (pin 4) pada SAA1099, masing-masing.

Catatan! Pada bicu audio Mono, ia tidak menjadi masalah, selagi satu pin disambungkan ke 5V, dan satu ke OUTL atau OUTR. Kedengarannya baik. Kecuali tidak, sekiranya anda mungkin ingin memeriksa semula pendawaian anda.

Langkah 8: Pendawaian - Kuasa ke Papan Roti

Pendawaian - Kuasa ke Papan Roti
Pendawaian - Kuasa ke Papan Roti
Pendawaian - Kuasa ke Papan Roti
Pendawaian - Kuasa ke Papan Roti
  • Sambungkan kedua-dua sisi bas kuasa Breadboard antara satu sama lain, menggunakan wayar jumper.
  • Sambungkan satu sisi ke pin 5V dan GND di Arduino, pastikan anda tidak mencampurkan wayar di mana sahaja. Sekiranya anda melakukannya, asap sihir akan terlepas.

Langkah 9: Pendawaian - Garis Data

Pendawaian - Garisan Data
Pendawaian - Garisan Data

Sambungkan D0 hingga D7 di Arduino ke D0 (pin 10) hingga D7 (pin 17) pada SAA1099, mengikut urutan

Saya dapati wayar pelompat wanita-wanita DuPont, dengan pin header 15-20MM di kedua-dua hujungnya, berfungsi jauh lebih baik daripada wayar dupont lelaki-lelaki. Anda juga boleh menggunakannya sebagai wanita-wanita, atau lelaki-wanita. Kedua-duanya mudah dijumpai di eBay dalam jumlah besar, untuk sedikit perubahan. Hadiah Krismas yang baik untuk peminat arduino yang bercita-cita tinggi!

Langkah 10: LED Pilihan

LED Pilihan
LED Pilihan
LED Pilihan
LED Pilihan

Saya tidak akan selangkah demi selangkah bagaimana membina semuanya di sini, tetapi terdapat beberapa tempat yang bagus untuk menambahkan LED. Pertama sekali, saya menyambungkan LED merah 3mm antara WR (pin 1) dan GND, untuk menunjukkan setiap kali Arduino menghantar arahan ke SAA1099.

Saya juga pernah menghubungkan LED ke garis data sebelumnya, yang membolehkan anda melihat data binari sebenar pada setiap baris. Saya menggunakan persediaan ini dalam video "Arduino dan SAA1099 - Fireflies" saya, serta 6 LED lagi dan beberapa kod tambahan untuk menyalakan setiap LED untuk setiap saluran yang aktif.

Semakin banyak LED, semakin sejuk!

Langkah 11: Kod

Kod!
Kod!
Kod!
Kod!

Setelah membina litar, periksa sambungan semula! Anda tidak mahu meletupkan arduino dan Soundchip anda yang mahal! (Sekiranya anda melakukannya, baik. Itu bukan urusan saya)

Dengan andaian anda waras dan telah memeriksa semuanya, kita boleh mula memprogramkannya.

  • Perpustakaan terdapat di
  • Anda mahukan fail SAATunes.zip, jadi teruskan dan muat turunnya.
  • Sekarang, buka Arduino IDE.
  • Di bawah "Sketsa", "Sertakan Perpustakaan", klik "Tambahkan pustaka.zip"
  • Navigasi ke mana sahaja anda memuat turun perpustakaan SAATunes. (Saya tidak peduli sama ada itu desktop, muat turun, atau folder (masukkan sesuatu yang memalukan) - Cari sahaja)
  • Pilihnya, dan klik "Buka"
  • Ia harus memberitahu anda bahawa ia telah ditambahkan ke perpustakaan anda.

Langkah 12: Uji

Uji Ia!
Uji Ia!
Uji Ia!
Uji Ia!
  • Buka contoh program SAATunes, di bawah "Fail", "Contoh", "SAATunes", "SAATunes-Uno".
  • Pasang Arduino anda ke dalam Komputer, dan ke pembesar suara semacam itu.
  • Muat naik program ke Arduino.

Anda harus mendengar Chord, kemudian Beethoven's Rage atas Penny yang hilang. Sekiranya Klasik bukan perkara anda, jangan takut, kerana kami akan segera belajar bagaimana menggunakan fail MIDI pilihan kami sendiri dengannya.

Sekiranya anda tidak mendengar apa-apa, periksa beberapa perkara: Pertama, adakah pembesar suara anda dihidupkan? Naikkan semuanya. Lalu, adakah arduino itu benar-benar menyala? Adakah program memuat naik dengan betul? Periksa semua pendawaian dengan skematik dan lembaran data, kemudian cuba lagi.

Langkah 13: Menggunakan Fail MIDI Anda Sendiri - Program Penukaran

Menggunakan Fail MIDI Anda Sendiri - Program Penukaran
Menggunakan Fail MIDI Anda Sendiri - Program Penukaran

Bersedia untuk mencuba sesuatu selain Beethoven? Baiklah, ini dia.

Untuk menukar fail MIDI menjadi C ++ Bytestreams, kami memerlukan program oleh Len Shustek. Dia adalah pencipta perpustakaan yang saya kodkan berdasarkan kod saya, dan perpustakaan saya menggunakan format bytestream yang sama.

  • Anda boleh mendapatkan program di
  • Program yang anda mahukan adalah "miditones.exe". Teruskan dan muat turun itu.

Langkah 14: Menukar Fail MIDI

Menukar Fail MIDI
Menukar Fail MIDI
Menukar Fail MIDI
Menukar Fail MIDI
Menukar Fail MIDI
Menukar Fail MIDI

Amaran! Di sini ada naga ascii! Anda mungkin lebih senang menonton video, di mana anda dapat melihat dengan tepat apa yang saya bicarakan. Sekiranya anda berani masuk, teruskan!

Untuk menggunakan program penukaran MIDI ke Bytestream, anda perlu membuka tetingkap command prompt. Maaf pengguna Mac dan Linux, anda mungkin perlu mencari jalan penyelesaian.

  • Buka menu mula, dan ketik "CMD", kemudian tekan enter.
  • Kita akan belajar sedikit sihir MS-DOS sekarang. Dengan menggunakan arahan "CD", arahkan ke mana sahaja anda memuat turun fail "miditones.exe" ke. Untuk kebanyakan kes, arahannya adalah "muat turun cd".
  • Jalankan program "miditones.exe" dengan menaip "miditones". Ia akan menunjukkan senarai bantuan yang menunjukkan arahan yang paling biasa.

Sekarang, kita memerlukan fail MIDI untuk menukar. Cari di suatu tempat di interweb, lebih baik tanpa perkusi atau kesan khas selain keadaan / halaju. (Sekiranya anda tidak tahu apa itu, jangan risau, anda akan baik-baik saja)

  • Muat turun fail MIDI anda ke tempat yang sama dengan program "miditones".
  • Sekarang, menggunakan tetingkap command prompt, ketik "miditones -d -v [filename]" (Ganti [nama fail] dengan apa sahaja nama fail MIDI anda).
  • miditones akan menghasilkan fail. C dengan bytestream C ++ dalam folder yang sama, dengan nama yang sama dengan fail MIDI.

Langkah 15: Menggunakan Fail MIDI yang Ditukar Anda

Menggunakan Fail MIDI yang Ditukar Anda
Menggunakan Fail MIDI yang Ditukar Anda
Menggunakan Fail MIDI yang Ditukar Anda
Menggunakan Fail MIDI yang Ditukar Anda
Menggunakan Fail MIDI yang Ditukar Anda
Menggunakan Fail MIDI yang Ditukar Anda

Sekarang setelah anda menukar fail MIDI anda, mari masukkannya dalam bait kecil ke arduino!

  • Dengan andaian anda telah membuka contoh SAATunes-Uno, mari teruskan dan "simpan sebagai" sesuatu yang lain, jadi kami dapat mengeditnya.
  • Setelah menyimpannya, klik ikon "anak panah ke bawah" kecil di sudut kanan atas.
  • Klik "tab baru", dan beri nama "[name].h" (Ganti [nama] dengan nama lagu MIDI anda, atau apa sahaja yang anda mahukan)
  • Sekarang, buka fail. C yang dibuat miditones sebelumnya. Anda boleh menggunakan notepad untuk membukanya.
  • Gunakan CNTRL / A untuk memilih semuanya, dan kemudian salin.
  • Tampalkannya ke tab "[name].h" baru anda di editor arduino.

Semuanya baik di sini, jadi mari kita kembali ke program ini.

  • Cari di mana tertera "#include" RagePenny.h "", dan salin / tampalkannya ke baris baru di bawah.
  • Tukar "RagePenny.h" kepada apa sahaja yang anda namakan fail baru anda.
  • Sekarang, komen "#include" RagePenny.h "", dengan menambahkan dua garis miring ke depan (//) di hadapannya.
  • Muat naik program!

Sekiranya semuanya berjalan dengan baik, semestinya memainkan fail MIDI anda sendiri. Sekiranya tidak, periksa semula untuk memastikan nama tab baru dan nama yang anda ubah dalam "#include" RagePenny.h "" sama. Periksa langkah lain, dan pastikan anda melakukan semuanya dengan betul. Sebilangan fail MIDI tidak berfungsi, tetapi fail tersebut jarang berlaku.

Langkah 16: Sirip

Sirip!
Sirip!

Semoga semuanya berjalan lancar dengan anda, dan anda memasukkan fail MIDI pada sekeping teknologi kuno yang diberi kehidupan baru!

Namun, jika tidak, jangan menyerah! Hantarkan komen dengan cara saya, dan dengan senang hati saya akan membantu. Sudah tentu, sila beri saya cadangan dalam komen.

Selamat mencuba!

Disyorkan: