Daftar Isi:

MIDI Sonar "Theremin": 10 Langkah (dengan Gambar)
MIDI Sonar "Theremin": 10 Langkah (dengan Gambar)

Video: MIDI Sonar "Theremin": 10 Langkah (dengan Gambar)

Video: MIDI Sonar
Video: Как собрать терменвокс на Arduino 2024, November
Anonim
MIDI Sonar
MIDI Sonar

Ini adalah alat musik yang menggunakan dua sensor jarak sonar untuk mengontrol nada dan kualitas nada. Ini sebenarnya bukan Theremin, tetapi "Theremin" telah menjadi istilah umum untuk instrumen yang dimainkan dengan melambaikan tangan.

Ini memiliki synthesizer MIDI built-in, amplifier dan speaker. Catatan musik diproduksi oleh chip MIDI - VS1053 - yang memiliki 127 suara (yaitu instrumen yang diduga berbeda). Ini memiliki tingkat polifoni yang tinggi (hingga 64) sehingga dapat memainkan nada tunggal atau akord.

Tangan kanan Anda mengontrol nada yang sedang dimainkan. Dalam mode "diskrit" ruang di sebelah kanan dibagi menjadi "tempat sampah". Saat tangan Anda memasuki tempat sampah, catatan untuk tempat sampah itu dimulai. Saat Anda meninggalkan tempat sampah, nada mungkin berhenti (misalnya organ) atau mati secara alami (misalnya piano).

Dalam mode "berkelanjutan" ruang di sebelah kanan menentukan nada variabel kontinu - seperti Theremin asli. Catatan dimulai ketika tangan Anda memasuki ruang dan berhenti ketika Anda meninggalkan ruang.

Tangan kiri Anda mengontrol kualitas nada yang dimainkan. Itu dapat mengontrol volume, tremolo, vibrato, pitch-bend, reverb, dll.

Layar LCD kecil memiliki menu yang memungkinkan Anda untuk memilih instrumen saat ini, fungsi tangan kiri, skala (atau "kunci") tangan kanan, vibrato, tremolo, dll. Anda dapat menyimpan dan memuat "Pengaturan" yang berbeda. " dan beralih di antara mereka dengan cepat selama pertunjukan.

Seluruh instrumen MIDI "Theremin" beroperasi berdiri sendiri dengan speaker dan baterai isi ulangnya sendiri.

Jika Anda akan menyalin build saya, Anda memerlukan Arduino Nano (£1,50), modul VS1053 (£4,50), layar LCD ST7735 1,44 (£3,50), dua modul HC-SR04 (masing-masing £1) dan beberapa resistor. Anda juga memerlukan beberapa speaker bertenaga dan mungkin sel lithium dan PSU, tetapi detailnya akan tergantung pada bagaimana Anda memutuskan untuk membuatnya. Saya mendapatkan semua tambahan itu dari penjualan boot mobil dan toko amal. Plus Anda akan membutuhkan perlengkapan bengkel elektronik biasa.

Langkah 1: Mengontrol VS1053

Mengontrol VS1053
Mengontrol VS1053
Mengontrol VS1053
Mengontrol VS1053

Saya memilih modul VS1053 yang ditunjukkan pada gambar. (Perhatikan dua regulator SOT223, dua soket jack dan posisi konektor.) Cari di eBay, Alibaba atau pemasok favorit Anda untuk modul VS1053 yang terlihat seperti itu. Mereka tersedia dari Aliexpress di sini dan di sini.

Saya membelinya beberapa tahun yang lalu dan tampaknya tidak lagi tersedia di eBay, hanya di Alibaba. Versi PCB merah sekarang tersedia di eBay. Tampaknya secara fungsional identik tetapi pinoutnya berbeda sehingga Anda harus menyesuaikan skema dan tata letak saya. Saya belum mengujinya. Dalam diskusi (di bawah) Anda dapat menemukan instruksi tentang cara menambahkan resistor ke PCB merah untuk mengaktifkan MIDI "langsung". Atau Anda dapat mengirim perintah tambahan selama penyiapan untuk mengaktifkannya.

VS1053 adalah chip yang bagus tapi agak rumit. Saya hanya menggunakan bagian MIDI saja. Dimungkinkan untuk mengontrol VS1053 melalui antarmuka serial tetapi saya menggunakan bus SPI karena lebih nyaman dengan Arduino Nano. Setiap byte yang Anda kirim melalui bus SPI diperlakukan sebagai perintah MIDI.

Anda akan menemukan daftar perintah MIDI di web. VS1053 merespons beberapa tetapi tidak semuanya. Program Miditheremin0.exe menunjukkan yang saya tahu berfungsi.

Anda dapat mengunduh lembar data VS1053 dari web. Ini adalah dokumen besar dan sulit berjalan. Bagian "8.9 Format MIDI yang Didukung" hampir semuanya mengatakan tentang MIDI. Bagian "10.10 Real-Time MIDI" berbicara tentang penggunaan GPIO0 dan GPIO1 untuk mengaktifkan MIDI tetapi papan yang saya miliki tidak memerlukan pengaktifan khusus. Anda juga dapat mengunduh daftar pesan MIDI (tidak semuanya didukung oleh VS1053).

Hubungkan modul VS1053 ke Arduino Nano seperti yang ditunjukkan dan unggah file INO ke Arduino. Saya menggunakan papan tempat memotong roti tanpa solder. Saya tidak memiliki fotonya pada tahap ini tetapi Anda dapat melihat papan tempat memotong roti dengan komponen lain pada langkah di bawah ini.

Sketsa INO menerima satu byte dari PC melalui jalur serial dan mengirimkan byte tersebut ke VS1053. Ini adalah program yang sangat sederhana yang memungkinkan Anda untuk menguji VS1053. Sambungkan soket jack output ke headphone atau speaker komputer.

Program Windows Miditheremin0.exe (unduh Step1.zip dari github) mengirimkan perintah ke VS1053. Klik tombol "90 not vel" untuk memainkan not. Atau Anda bisa menulis program Windows Anda sendiri. Atau gunakan salah satu dari banyak program terminal yang tersedia di web.

Modul VS1053 memiliki pin berikut:

  • bus SPI memiliki MISO, MOSI, dan SCLK yang biasa
  • jika XRST rendah, chip akan diatur ulang
  • XDCS tidak melakukan apa pun dalam mode SPI jadi ikat ke XCS
  • XCS adalah Pilihan Chip
  • DREQ memberitahu Anda ketika chip siap untuk perintah baru.

XCS harus disetel rendah saat Anda mengirim satu byte; lalu tinggi. Dengan begitu, Anda yakin telah menyinkronkan bit pertama setiap byte. Membaca DREQ memberitahu Anda bahwa chip siap menerima perintah baru.

Setelah Arduino mengirim satu byte, ia harus mengirim byte tiruan untuk mengaktifkan jam dan mengizinkan VS1053 mengirim satu byte kembali sebagai tanggapan. Fungsi SPItransfer() menunjukkan caranya.

Modul merah yang tersedia di eBay menyertakan slot kartu SD sehingga memiliki beberapa pin tambahan. Abaikan mereka.

Sekarang Anda yakin dapat membuat VS1053 bekerja, kami akan mengubahnya menjadi lebih dari alat musik.

Langkah 2: Menggunakan Sonar

Menggunakan Sonar
Menggunakan Sonar
Menggunakan Sonar
Menggunakan Sonar

Hubungkan modul HC-SR04 ke Arduino Nano seperti yang ditunjukkan dan unggah file INO ke Arduino.

Perhatikan dalam skema bahwa DC3 - kapasitor decoupling untuk modul HC-SR04 - harus dihubungkan dekat dengan modul HC-SR04. Mereka mengambil arus yang cukup saat mereka mentransmisikan yang DC3 bantu suplai.

Pada tahap proyek ini, PC Windows masih mengirimkan perintah ke VS1053 tetapi VS1053 juga dikendalikan oleh sensor sonar HC-SR04 (unduh Step2.zip dari github).

Perintah baru semuanya dimulai dengan 0xFF dan ditafsirkan oleh sketsa Arduino (bukan dikirim langsung ke VS1053). Byte non "FF-command" dikirim ke VS1053.

Ada perintah untuk mengubah instrumen, mengubah skala, menambahkan vibrato dan tremolo, dll. Program ini dapat dijalankan dalam mode "diskrit" di mana ada nada terpisah (seperti piano) atau dalam mode "berkelanjutan" di mana satu nada berada membungkuk ke atas dan ke bawah (seperti theremin).

Ia melakukan dengan cukup baik semua yang akan dilakukan instrumen terakhir tetapi dikendalikan oleh PC.

Sensor sonar HC-SR04 kanan memilih titinada nada yang dimainkan. Dalam mode "diskrit" ruang di sebelah kanan dibagi menjadi "tempat sampah". Saat tangan Anda memasuki tempat sampah, catatan untuk tempat sampah itu dimulai. Saat Anda meninggalkan tempat sampah, nada mungkin berhenti (misalnya organ) atau mati secara alami (misalnya piano). Saat tangan Anda memasuki nampan, nampan sedikit mengembang sehingga Anda tidak gelisah di tepinya.

Fungsi GetSonar() mengembalikan waktu yang dibutuhkan hingga gema pertama. Ini mengabaikan gema yang sangat cepat (durasi < 10) yang terkadang dilaporkan oleh HC-SR04. Jika tidak ada gema yang diterima oleh maxDuration, ia mengembalikan maxDuration. Durasi tidak diukur dalam satuan tertentu - itu hanya angka.

Dalam mode Diskrit, durasi difilter terlebih dahulu untuk menghilangkan dropout sesekali (bila tidak ada gema yang diterima). Tangan diasumsikan hadir hanya setelah 10 sampel maxDuration diterima. Kemudian durasi difilter menggunakan median filter. Filter median bagus dalam menghilangkan noise "impulsif" (yaitu lonjakan sesekali). Durasi yang difilter digunakan untuk memilih bin.

Dalam mode Berkelanjutan, durasi difilter lagi untuk menghapus putus sekolah sesekali. Kemudian dihaluskan menggunakan filter eksponensial. Durasi yang difilter digunakan untuk mengatur frekuensi nada menggunakan "pitch bend".

Langkah 3: Menambahkan Tampilan

Menambahkan Tampilan
Menambahkan Tampilan
Menambahkan Tampilan
Menambahkan Tampilan
Menambahkan Tampilan
Menambahkan Tampilan

Layarnya adalah layar LCD TFT berwarna 1,44 dengan pengontrol ST7735, 128x128 piksel. Ada banyak layar yang tersedia di eBay, misalnya Anda mungkin lebih suka mengembangkan instrumen Anda dengan layar sentuh yang lebih besar. Saya tidak menggunakan ST7735 controller dan ingin mencobanya.

Saya mendapatkan milik saya dari pemasok ini. Modul yang sama dijual secara luas di eBay - dapatkan yang terlihat sama dengan foto.

LCD memiliki pin berikut:

  • tanah GND
  • VCC 3.3V
  • SCL SPI bus SCLK
  • SDA SPI bus MOSI dari Arduino
  • RES ulang
  • Data/perintah DC
  • Pilih chip CS
  • lampu belakang BL

Modul berjalan pada 3.3V sehingga Anda tidak harus menghubungkannya langsung ke Arduino 5V Anda. Saya telah menggunakan resistor 1k untuk menjatuhkan tegangan. Itu bukan praktik yang baik (secara umum, seseorang harus menggunakan pembagi potensial atau chip penetes tegangan) tetapi bekerja dengan sangat baik di sirkuit ini. Aku sedang malas.

Layar ini didukung oleh 3.3V yang disediakan oleh Arduino. Regulator Arduino tampaknya cukup senang.

Adafruit dengan baik hati menerbitkan perpustakaan ST7735 dan beberapa perpustakaan lain tersedia di Github dan di tempat lain. Saya mencoba beberapa dan tidak menyukai salah satu dari mereka. Beberapa tidak berfungsi dan semuanya besar. Anda menulis sketsa Arduino yang menggambar garis dan beberapa teks dan Anda menemukan memori Anda jika 75% penuh. Jadi saya menulis perpustakaan saya sendiri.

Pustaka SimpleST7735 dapat diunduh (unduh Step3.zip dari github).

Ini memiliki seperangkat perintah menggambar standar yang sangat mirip dengan semua perpustakaan semacam itu.

Beberapa perpustakaan "cepat" yang dapat Anda unduh menggunakan loop waktu khusus dan terganggu ketika perangkat lain, mungkin lebih lambat, digunakan pada bus yang sama. SimpleST7735 ditulis dalam C daripada assembler sehingga tidak secepat mungkin tetapi jauh lebih portabel dan berbagi bus SPI dengan sopan dengan perangkat lain. Program Windows dapat diunduh yang memungkinkan Anda membuat font dan ikon sendiri.

Anda dapat mengunduh lembar data ST7735 dari web. Anda berbicara dengannya dengan

  • setel CS rendah
  • setel DC rendah
  • kirim byte perintah
  • setel DC tinggi
  • kirim nol atau lebih byte data
  • setel CS tinggi

Anda dapat melihat bagaimana saya melakukannya di fungsi spiSend_TFT_CW() di perpustakaan. Bytes data dapat berupa seluruh baris piksel atau pengaturan untuk register kontrol.

Fungsi ST7735Begin() di perpustakaan menunjukkan kepada Anda set perintah inisialisasi yang saya pilih. Anda mungkin ingin mengubah perintah jika Anda memilih tampilan ST7735 yang berbeda (misalnya dengan lebih banyak piksel) atau menginginkan orientasi yang berbeda. Saya harap kode saya mudah bagi Anda untuk melihat cara mengubahnya jika perlu.

Skema menunjukkan tombol kontrol "SW1" dan pedal kaki SW2". Tombol kontrol memilih "Pengaturan" yang berbeda (lihat langkah berikutnya) atau memilih mode Menu. Pedal kaki adalah opsional dan hanya memilih Pengaturan yang berbeda - Saya tidak memasang sendiri pedal kaki. Penyetelan berguna selama pertunjukan saat Anda ingin mengganti kunci atau instrumen dengan cepat.

Langkah 4: Sistem Menu

Sistem Menu
Sistem Menu
Sistem Menu
Sistem Menu

Sketsa Arduino Miditheremin3.ino ini menambahkan sistem menu ke Theremin MIDI dan mengontrol instrumen lengkap akhir.

Theremin MIDI biasanya berjalan dalam mode "Play". Tangan kanan Anda memilih nada mana dan tangan kiri Anda mengontrol kualitas nada. LCD menampilkan keyboard piano dengan nada saat ini disorot.

Jika Anda menahan tombol kontrol selama satu detik, program akan masuk ke mode "Menu". Dalam mode Menu, jika Anda menahan tombol kontrol selama satu detik, program akan kembali ke mode "Putar".

Menu memiliki struktur pohon dengan item utama dan sub-item. Item menu saat ini disorot. Anda memindahkan pilihan ke atas/bawah melalui sonar kiri. Sub-menu untuk item utama hanya diperluas ketika item utama dipilih.

Setelah memilih sub-menu, saat Anda mengklik tombol, nilai item tersebut akan disorot. Tangan kiri sekarang menambah atau mengurangi nilainya. Klik tombol lagi untuk kembali memilih sub menu.

Dalam mode Diskrit, pohon menu adalah

  • Instrumen

    • 0: Piano Besar
    • Tukar Tangan: normal
  • Tangan kanan

    Modus: diskrit

  • Tangan kiri

    • Modus: Getar
    • Kedalaman Maks: 10
  • Skala
    • Skala: Heptatonic mayor
    • Oktaf: 2
    • Nada terendah: 60 C
  • akord

    • Chord: Triad utama
    • Inversi: 0
    • Polifoni: 1
  • Getaran

    • Ukuran: 20
    • Periode: 10
  • getar

    • Ukuran: 20
    • Periode: 10

Instrumennya bisa berupa "Grand Piano", "Organ Gereja", "Biola", dll. Ada 127 instrumen di VS1053, banyak di antaranya terdengar identik dan banyak yang konyol seperti "tembakan". Sub-menu Tukar Tangan memungkinkan Anda untuk menukar fungsi tangan kiri dan kanan - mungkin Anda lebih suka seperti itu atau mungkin Anda ingin pembicara menghadap penonton.

Tangan Kanan bisa "Discrete" atau "Continuous". Lihat di bawah untuk menu "berkelanjutan".

Tangan Kiri dapat mengontrol "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" atau "ChordSize".

"Volume" sudah jelas. "Tremolo" adalah variasi volume yang cepat; tangan kiri mengontrol ukuran variasi; periode diatur oleh item menu yang berbeda. "Vibrato" adalah variasi nada yang cepat; tangan kiri mengontrol ukuran variasi; periode diatur oleh item menu yang berbeda. "PitchBendUp" dan "PitchBendDown" mengubah nada nada yang sedang dimainkan; tangan kiri mengontrol ukuran tikungan. "Reverb" agak tidak mengesankan di VS1053; tangan kiri mengontrol ukuran reverb. "Polyphony" mengontrol berapa banyak not yang dimainkan sekaligus hingga maksimum yang ditetapkan oleh menu Polyphony (lihat di bawah). "ChordSize" berarti tangan kiri mengontrol berapa banyak nada dari sebuah akor (lihat di bawah) yang dimainkan.

Dalam musik, "skala" atau "kunci" adalah bagian dari not yang Anda gunakan. Misalnya, jika Anda membatasi diri pada skala Heptatonic dari C Major, Anda hanya akan memainkan nada putih dari piano. Jika Anda memilih C# Major Pentatonic maka Anda hanya akan menggunakan nada hitam (misalnya untuk lagu rakyat Skotlandia).

Menu Skala memilih not mana yang sesuai dengan ruang tangan kanan dan berapa oktaf yang dicakup oleh ruang tangan kanan. Jadi jika Anda memilih 1 oktaf E Major maka ruang tangan kanan dibagi menjadi 8 bin dengan E pada nada terendah dan E satu oktaf di atas pada nada tertinggi.

Menu Skala memungkinkan Anda untuk memilih banyak skala "musik non-Barat" yang tidak biasa tetapi mengasumsikan semua nada berasal dari keyboard yang memiliki temper - begitulah cara kerja MIDI, Anda tidak dapat dengan mudah menentukan frekuensi nada. Jadi jika Anda ingin, katakanlah, skala nada seperempat Arab, Anda akan berada dalam masalah.

Sub-menu Oktaf memungkinkan Anda untuk memilih berapa banyak oktaf dari skala yang Anda inginkan. Dan nada terendah mengatakan di mana skala dimulai.

Biasanya ketika sebuah nada dimainkan, hanya nada itu yang dibunyikan. Menu Chord memungkinkan Anda memainkan beberapa not sekaligus. Akord Triad Utama berarti 'memainkan nada yang dipilih ditambah nada empat seminada lebih tinggi, ditambah nada tujuh semi nada lebih tinggi'.

Sub-menu Inversi memberi Anda inversi akor. Itu berarti ia memindahkan beberapa nada akord ke satu oktaf di bawahnya. Pembalikan Pertama memindahkan semua not "ekstra" ke bawah satu oktaf, Pembalikan kedua menurunkan satu not tambahan, dan seterusnya.

Sub-menu Polyphony mengatakan berapa banyak nada yang dimainkan sekaligus; jika polifoni adalah 1 maka ketika satu nada dimulai, nada sebelumnya dihentikan; jika polifoni lebih besar maka beberapa nada dapat tumpang tindih - coba dengan organ gereja.

Menu Tremolo menentukan kedalaman setiap tremolo dan periode siklus tremolo. Periode "100" berarti satu siklus per detik. Jika tangan kiri mengendalikan tremolo maka submenu Size disembunyikan.

Menu Vibrato menentukan ukuran vibrato dan periode siklus vibrato. Jika tangan kiri mengendalikan vibrato maka sub-menu Ukuran disembunyikan.

Program ini memungkinkan Anda untuk menyimpan dan memuat hingga 5 "Pengaturan" yang berbeda. A Setup menyimpan semua nilai yang dapat Anda atur dalam menu. Saat Anda keluar dari mode Menu, pengaturan saat ini disimpan. Setup disimpan ke EEPROM.

Dalam mode Putar, mengklik tombol berubah ke pengaturan berikutnya. Jika Anda menahan tombol selama satu detik, menu akan muncul. Menekan pedal kaki juga mengubah pengaturan berikutnya; pedal kaki tidak pernah memilih menu.

Dalam mode Berkelanjutan, pohon menu adalah

  • Instrumen

    • 0: Piano Besar
    • Tukar Tangan: normal
  • Tangan kanan

    Modus: terus menerus

  • Jangkauan

    • Angka seminada: 12
    • Catatan tengah: 60 C
  • Tangan kiri

    • Modus: Tremolo
    • Kedalaman Maks: 10
  • Getaran

    • Ukuran: 20
    • Periode: 10
  • getar

    • Ukuran: 20
    • Periode 10

Menu Rentang memilih rentang frekuensi yang ditentukan tangan kanan: jumlah seminada yang dicakup dan not tengah.

Tangan Kiri hanya dapat mengontrol "Volume", "Tremolo" dan "Vibrato".

Langkah 5: Menyoldernya Bersama

Menyoldernya Bersama-sama
Menyoldernya Bersama-sama
Menyoldernya Bersama-sama
Menyoldernya Bersama-sama
Menyoldernya Bersama-sama
Menyoldernya Bersama-sama

Saya membangun sirkuit di stripboard. Saya tidak dapat melihat gunanya membuat PCB untuk sekali pakai hanya dengan 4 resistor tetapi saya menyadari beberapa orang tidak menyukai stripboard.

Tata letak stripboard saya ditunjukkan di atas. Empat papan - Arduino, VS1053, display dan stripboard - membentuk sandwich. Dalam tata letak, garis besar Arduino berwarna kuning, VS1053 berwarna biru, layar berwarna hijau dan stripboard berwarna oranye.

Garis cyan adalah strip tembaga dari stripboard - pastikan Anda meletakkan jeda di tempat yang diperlukan. Garis merah adalah tautan di sisi komponen papan strip atau kabel yang menuju ke tempat lain.

Saya menggunakan pin ekstra panjang untuk papan VS1053 karena berdiri di atas Arduino. Pin di sudut jauh layar dan papan VS1053 membantu menstabilkannya. Lubang pemasangan modul berlapis sehingga Anda dapat menyoldernya. Pastikan milik Anda tidak terhubung ke ground - lubang pemasangan modul saya tidak.

Jika Anda memiliki modul VS1053 yang berbeda atau tampilan yang berbeda, Anda dapat mengubah pin Arduino:

  • D2 hingga D10 dan A0 hingga A5 dapat digunakan dalam urutan apa pun yang Anda suka; perbarui nomor pin di dekat awal sketsa INO
  • D11, D12, D13 didedikasikan untuk SPI dan tidak dapat ditugaskan kembali
  • D0, D1 didedikasikan untuk serial I/O
  • A6, A7 tidak dapat digunakan sebagai pin digital

Modul HC-SR04 berada pada 90 ° satu sama lain dihubungkan oleh sepotong stripboard. Tombol tekan ada di antara mereka. Tidak diragukan lagi Anda akan memiliki desain pilihan Anda sendiri.

Jika Anda memutuskan untuk memiliki pedal kaki, sambungkan melalui soket jack.

Langkah 6: Menambahkan PSU

Menambahkan PSU
Menambahkan PSU
Menambahkan PSU
Menambahkan PSU
Menambahkan PSU
Menambahkan PSU

Saya mengukur arus total Arduino, VS1053 dan ditampilkan sebagai 79mA. Menurut lembar data, Arduino adalah 20mA, layar 25mA, VS1053 11mA dan HC-SR04 masing-masing 15mA ketika "bekerja" - jadi 80mA tampaknya benar.

Layar membutuhkan 25mA dan ditenagai dari output 3V3 Arduino yang diberi nilai 50mA. Jadi sirkuit tidak boleh menekankan regulator 3V3 Arduino.

Bisakah kita menyalakan sirkuit melalui pin Vin Arduino? Saya tidak dapat menemukan jawabannya di mana pun di web. Itu tidak ada dalam dokumentasi Arduino. Regulator 5V terpasang akan menghilang (Vin-5)*80 mW. Berapa disipasi maksimumnya? Sepertinya tidak ada yang benar-benar tahu. Menurut lembar datanya, regulator NCP1117 dalam paket SOT-223 dengan bantalan tembaga minimum dapat menghilangkan 650mW. Jadi untuk arus 80mA,

  • Vin Power
  • 8V 240mW
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

Untuk amannya, saya kira kita tidak boleh melebihi 9V pada Vin.

PSU 5V eksternal akan jauh lebih aman tetapi saya menggunakan regulator Arduino dan itu baik-baik saja.

Untuk memberi daya pada sirkuit, saya memilih modul yang menggabungkan pengisi daya LI-ion dan penguat PSU. Mereka tersedia secara luas di eBay atau cari "Li Charger Boost".

Pengisi daya menggunakan chip TC4056 yang memiliki algoritma arus konstan dan tegangan konstan yang rumit. Saat Anda melepas input daya USB, input daya akan memasuki mode siaga dengan pengurasan baterai kurang dari 2uA. TC4056 memiliki input untuk sensor suhu tetapi tidak tersedia di papan modul (pin diarde).

Rangkaian penguat diduga efisien 87-91% di atas rentang tegangan baterai normal dengan arus keluaran 50-300mA. (Saya tidak mengukurnya sendiri.) Itu cukup bagus.

Namun, arus "siaga" saat Anda melepas beban adalah 0,3mA yang buruk. Sebuah sel 300mAH akan terkuras dalam 6 minggu. Mungkin akan terkuras sejauh ini tegangannya akan turun ke tingkat yang merusak.

Ada satu jalur yang menghubungkan baterai ke PSU boost. Anda dapat memotong trek dengan mudah (lihat foto). Solder kabel ke resistor besar di bagian atas sehingga Anda dapat menjembatani potongan melalui sakelar.

Arus yang ditarik sekarang 0,7uA dengan papan yang saya uji. Jadi sel akan bertahan 50 tahun - tentu saja tidak, self-discharge sel Li-ion adalah sekitar 3% per bulan. 3% per bulan untuk sel 300mAH adalah arus 13uA. Bandingkan dengan 300uA yang dibutuhkan sirkuit boost. Saya rasa ada baiknya mematikan sirkuit penguat.

Anda tidak boleh menyalakan beban saat sel sedang diisi. Arus yang ditarik oleh beban akan membingungkan algoritma pengisian.

Jadi, Anda memerlukan sakelar pengubah 2 kutub (mis. sakelar geser) yang berada dalam posisi "Aktif" atau "Pengisian".

Anda dapat mengabaikan soket USB bawaan dan menyolder kabel terpisah ke sakelar dan soket USB Anda sendiri.

Atau Anda dapat menyimpan soket internal dan memutuskan sambungan antara soket dan chip. Diagram di atas menunjukkan tempat untuk memotong.

Hubungkan output 5V dari PSU penguat ke pin 5V Arduino. Orang mengatakan "jangan lakukan itu - Anda melewati dioda perlindungan Arduino". Tetapi Nano tidak memiliki pin yang terhubung ke sisi USB dioda. Cukup sambungkan ke pin 5V. Apa hal terburuk yang bisa terjadi? Anda kehilangan Nano yang harganya di bawah £3.

Sirkuit PSU juga harus memberi daya pada amplifier untuk speaker.

Langkah 7: Menambahkan Pembicara

Menambahkan Pembicara
Menambahkan Pembicara

Saya ingin Theremin MIDI menjadi portabel. Ini harus mencakup speaker dan amplifiernya sendiri.

Anda dapat membuat amplifier sendiri atau membeli modul amplifier, lalu membeli speaker dan memasukkannya ke dalam wadah. Tapi apa gunanya? Di tengah-tengah teknologi saya, saya memiliki setengah lusin speaker bertenaga yang saya beli dari toko amal dan penjualan boot mobil dengan harga masing-masing di bawah £1.

Speaker biru pucat hanya menggunakan 30mA pada 5V tetapi memiliki respons bass yang buruk. Radio hitam bentuknya bagus - saya bisa membayangkan memasang modul HC-SR04 di sudut dan tampilan di permukaan atas. Yang "panel datar" abu-abu ditenagai dari soket USB yang ideal.

Dengan sedikit pencarian, Anda akan menemukan speaker bertenaga yang sudah memiliki casing bagus. Pastikan bahwa mereka akan berjalan pada tegangan catu daya Anda. Jika ditenagai oleh empat sel AA, mungkin akan berfungsi dengan baik pada 5V.

Tapi saya menggali lebih jauh ke dalam techno-midden dan menemukan stasiun dok yang sangat bagus yang saya dapatkan di kios "semuanya seharga £ 0,50". Itu kehilangan pengisi daya dan remote IR tetapi berfungsi dengan baik.

Jika Anda bertekad untuk membuat speaker bertenaga Anda sendiri, inilah Instructable yang bagus. Atau cari Instructables untuk PAM8403 atau Amplifier.

Langkah 8: Stasiun Docking

Stasiun dok
Stasiun dok
Stasiun dok
Stasiun dok
Stasiun dok
Stasiun dok
Stasiun dok
Stasiun dok

Ini adalah stasiun dok portabel Logitech yang sangat bagus. Kecil kemungkinan Anda akan mendapatkan yang sama tetapi prinsip konstruksinya akan serupa.

Stasiun dok termasuk sel Li-ion yang dapat diisi ulang dan meningkatkan PSU. (Jika milik Anda tidak, buat PSU yang dijelaskan di atas dan lewati beberapa paragraf berikutnya.)

Jika amp Anda memiliki sel Li-ion maka mungkin memiliki dorongan PSU. (Tegangan sel Li-ion tunggal sangat rendah sehingga perlu ditingkatkan.)

Pertama, temukan koneksi untuk daya ke amplifier. PSU akan memiliki kapasitor perataan besar - lihat foto PCB sampah. Ukur tegangan pada bantalan solder mereka di bagian bawah. Bantalan negatif harus menjadi bantalan "tanah" dari sirkuit. Jika PCB sudah terisi banjir maka akan digiling. Atau tanah mungkin trek tebal yang menuju ke banyak tempat di papan tulis.

Mungkin ada kapasitor besar pada tahap keluaran amp - itulah cara kuno untuk melakukannya. Ukur tegangan di antara mereka saat bekerja. Ini mungkin akan bervariasi sesuai dengan musik dan mungkin rata-rata setengah tegangan kapasitor catu daya. Itu adalah kapasitor yang salah - Anda ingin yang ada di PSU.

Sangat tidak mungkin bahwa papan akan memiliki kekuatan positif dan negatif (ampl daya stereo besar melakukannya tetapi saya belum pernah melihat yang ringan seperti itu). Pastikan Anda benar-benar telah memilih landasan dan kekuatan positif.

Stasiun dok Logitech yang saya gunakan memiliki sirkuit digital yang rumit serta ampli analog. Jika milik Anda seperti itu, ia akan memiliki kapasitor penghalus untuk 5V atau 3.3V plus mungkin 9V untuk amp. Ukur tegangan di semua kapasitor besar dan pilih tegangan terbesar.

Pastikan tegangan sambungan listrik yang Anda pilih tergantung pada sakelar hidup/mati. (Saat Anda mematikan sakelar, tegangan mungkin perlu beberapa saat untuk turun saat kapasitor kosong.)

Solder kabel ke apa pun yang Anda pilih sebagai sumber daya Anda. Stasiun dok Logitech menghasilkan sekitar 9V yang akan terhubung dengan baik ke pin Vin Arduino.

Speaker aktif atau stasiun dok Anda harus memiliki jack 3,5 mm untuk input audio. Salah satu sambungan solder akan digiling - mungkin yang paling dekat dengan tepi papan. Gunakan ohm-meter untuk memeriksa apakah itu terhubung ke apa yang Anda pikir adalah tanah. Dengan beberapa input audio, "perisai" jack tidak terhubung langsung ke ground. Ini mengambang. Jadi jika tidak ada pin jack yang di-ground, jangan khawatir untuk saat ini. ("Perisai" jack pada modul VS1053 juga mengambang.)

Gunakan meteran untuk memeriksa apakah pin "ground" jack berada pada tegangan yang sama dengan ground catu daya.

Stasiun dok Logitech itu aneh. Jika saya menghubungkan "ground" dari soket jack Logitech ke "ground" dari papan VS1053 (dengan menggunakan kabel audio, itu berfungsi dengan baik tetapi arus ke sistem Theremin saya naik dari 80mA menjadi lebih dari 200mA. Jadi saya memastikan Saya tidak menghubungkan kedua "alasan" itu. Ini berfungsi dengan baik tetapi saya tidak tahu apa yang sedang terjadi.

Langkah 9: Membuat Kasus

Membuat Kasus
Membuat Kasus
Membuat Kasus
Membuat Kasus
Membuat Kasus
Membuat Kasus
Membuat Kasus
Membuat Kasus

Kasing apa yang Anda buat akan bergantung pada bahan yang Anda miliki, apa yang Anda nikmati saat bekerja, dan speaker bertenaga yang Anda pilih. Apa pun yang Anda buat harus memastikan bahwa sonar saling menjauh dan naik pada 45°. Kemudian akan ada tampilan layar dan tombol tekan.

Jika Anda telah melihat Instuctables saya yang lain, Anda akan tahu bahwa saya adalah penggemar berat tinplate. Itu bisa ditekuk untuk dibentuk, disolder lembut dan dicat. Foto-foto menunjukkan bagaimana saya mengatur sesuatu.

Segitiga atas ditekuk pelat timah, disolder, diisi, dihaluskan, dan dicat. PCB direkatkan dalam segitiga dan memiliki potongan kayu kecil untuk bertindak sebagai spacer.

"Panel depan" adalah lembaran polystyrene 1mm. Standoff terbuat dari lebih banyak lembaran polystyrene dan sekrup self-tapping menahan stripboard di tempatnya. Penyangga kayu direkatkan ke dalam rongga di bagian depan stasiun dok dan PCB disekrupkan dengan sekrup self-tapping yang panjang.

Saya kira saya bisa mencetak sesuatu secara 3D tetapi saya lebih suka metode jadul di mana saya dapat menyesuaikan hal-hal saat saya melanjutkan. Membuat sesuatu adalah perjalanan penemuan daripada "rekayasa".

Langkah 10: Pengembangan Masa Depan

Pengembangan masa depan
Pengembangan masa depan

Bagaimana Anda bisa mengembangkan instrumen lebih lanjut? Anda dapat mengubah antarmuka pengguna. Anda dapat mengganti tombol dengan sensor jarak IR sehingga Anda tidak perlu menyentuh instrumen sama sekali. Atau mungkin menggunakan layar sentuh daripada tombol dan tangan kiri untuk mengontrol menu.

Menu Skala memungkinkan Anda untuk memilih tangga nada "musik non-Barat" tetapi mengasumsikan semua nada berasal dari papan ketik dengan nada rata - begitulah cara kerja MIDI Skala nada seperempat bahasa Arab memiliki nada yang tidak berada pada nada nada datar. Timbangan lain tidak terkait dengan keyboard yang tidak stabil dengan cara apa pun. Dimungkinkan untuk menggunakan pitch-bend untuk menghasilkan nada seperti itu. Anda memerlukan beberapa cara agar menu menentukan frekuensi setiap nada. Saya pikir pitch bend mungkin berlaku untuk semua nada di saluran. Saat ini saya hanya menggunakan satu saluran - saluran 0. Jadi jika itu polifonik atau memiliki akord, Anda harus memainkan setiap nada di saluran yang berbeda.

Instrumen itu bisa menjadi synthesizer drum. Tangan kiri bisa menentukan nada Melodic Tom sementara sonar kanan diganti dengan sensor piezo yang Anda pukul untuk membunyikan drum.

Kedua tangan bisa mengendalikan dua instrumen yang berbeda.

Tangan kiri bisa memilih instrumen.

Sekitar setengah jalan melalui proyek ini, saya menemukan Altura MkII Theremin MIDI Controller oleh Zeppelin Design Labs. Itu terlihat seperti instrumen yang bagus.

Mereka memiliki beberapa video yang sangat layak ditonton:

(Saya mencuri kata "tempat sampah" dari Altura dan gagasan bahwa tempat sampah mengembang saat Anda memasukkannya untuk membantu Anda tetap berada di dalamnya.)

Theremin MIDI saya berbeda dari Altura dalam beberapa hal. Milik saya menghasilkan suaranya sendiri dengan synth MIDI bawaan, amp, dll.; Altura mengirim pesan ke synth eksternal. Anda mungkin lebih suka cara mereka melakukannya. Milik saya memiliki layar TFT daripada tampilan 7-segmen - itu pasti lebih baik tetapi Anda mungkin berpikir layar yang lebih besar akan menjadi peningkatan. Milik saya menggunakan menu untuk mengatur parameter sementara milik mereka menggunakan kenop. Menu diperlukan karena milik saya membutuhkan banyak kontrol untuk perangkat input (sonar) dan synth; Altura membutuhkan lebih sedikit kontrol. Mungkin tombol lebih baik selama pertunjukan langsung. Mungkin milikku harus memiliki kenop. Sebuah tombol untuk memilih Setup mungkin bagus.

Altura memiliki kontrol "Artikulasi" yang mengatur seberapa cepat nada dapat dimainkan. Saya belum memasukkannya ke dalam perangkat lunak saya - mungkin seharusnya ada di sana. Altura memiliki Arpeggiator (sekuenser langkah). Itu ide yang bagus; saya memiliki akord yang tidak cukup sama.

Jadi itu saja. Saya harap Anda menikmati membangun dan menggunakan MIDI-Theremin. Beri tahu saya jika Anda menemukan kesalahan dalam deskripsi saya atau jika Anda dapat memikirkan perbaikan apa pun.

Direkomendasikan: